diff --git a/bundles/org.openhab.binding.jellyfin/pom.xml b/bundles/org.openhab.binding.jellyfin/pom.xml index 11ee1ab2e232d..5ebad8464b8f0 100644 --- a/bundles/org.openhab.binding.jellyfin/pom.xml +++ b/bundles/org.openhab.binding.jellyfin/pom.xml @@ -9,108 +9,43 @@ org.openhab.addons.reactor.bundles 4.3.0-SNAPSHOT + - - !android.*,!com.android.*,!kotlin.internal.jdk7,!kotlin.internal.jdk8,!kotlin.reflect.*,!okhttp3.*,!okio.* - - 1.4.7 + 7.10.0 + org.openhab.binding.jellyfin openHAB Add-ons :: Bundles :: Jellyfin Binding - - - org.jellyfin.sdk - jellyfin-core-jvm - ${jellyfin.sdk} - - - org.jellyfin.sdk - jellyfin-api-jvm - ${jellyfin.sdk} - - - org.jellyfin.sdk - jellyfin-model-jvm - ${jellyfin.sdk} - - - io.ktor - ktor-client-core-jvm - 1.6.8 - compile - - - io.ktor - ktor-client-cio-jvm - 1.6.8 - compile - - - io.ktor - ktor-http-jvm - 1.6.8 - compile - - - io.ktor - ktor-http-cio-jvm - 1.6.8 - compile - - - io.ktor - ktor-network-jvm - 1.6.8 - compile - - - io.ktor - ktor-utils-jvm - 1.6.8 - compile - - - io.ktor - ktor-io-jvm - 1.6.8 - compile - - - io.ktor - ktor-network-tls-jvm - 1.6.8 - compile - - - org.jetbrains.kotlin - kotlin-stdlib - ${kotlin.version} - compile - - - org.jetbrains.kotlinx - kotlinx-coroutines-core-jvm - 1.8.0 - compile - - - org.jetbrains.kotlinx - kotlinx-serialization-core-jvm - 1.6.3 - compile - - - org.jetbrains.kotlinx - kotlinx-serialization-json-jvm - 1.6.3 - compile - - - io.github.microutils - kotlin-logging-jvm - 3.0.5 - compile - - + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generate.sh b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generate.sh new file mode 100755 index 0000000000000..6482a3d5406ab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generate.sh @@ -0,0 +1,47 @@ +#!/usr/bin/bash + +set -e + +VERSIONS=("10.8.13" "10.10.3") +REQUIRED=("wget" "yq" "openapi-generator-cli") + +function checkEnvironment() { + for i in "${REQUIRED[@]}"; do + if ! type $i &>/dev/null; then + echo "⚠️ [${i}] could not be found" + exit 127 + fi + done +} + +checkEnvironment + +for i in "${VERSIONS[@]}"; do + echo "ℹ️ - API Version to generate: $i" + + FILENAME_JSON="./specifications/json/jellyfin-openapi-${i}.json" + FILENAME_YAML="./specifications/yaml/jellyfin-openapi-${i}.yaml" + + if [ ! -e "${FILENAME_JSON}" ]; then + echo "⏬ - Downloading OPENAPI definition for Version ${i}" + + SERVER=https://repo.jellyfin.org/files/openapi/stable/jellyfin-openapi-${i}.json + + wget \ + --no-verbose \ + --output-document=${FILENAME_JSON} \ + ${SERVER} + + if [ ! -e "${FILENAME_YAML}" ]; then + echo "⚙️ - json ➡️ yaml" + yq -oy ${FILENAME_JSON} >${FILENAME_YAML} + fi + fi + + echo "⚙️ - generate code for API ${i}" + + # TODO: config.yaml - https://openapi-generator.tech/docs/customization + openapi-generator-cli generate -g java \ + --global-property models,modelTests=false,apis,apiTests=false,library=native,serializationLibrary=jackson,apiPackage=org.openhab.binding.jellyfin.internal.api.${i} \ + --input-spec ${FILENAME_YAML} -o ./generated/${i} 1>/dev/null +done diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AccessSchedule.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AccessSchedule.md new file mode 100644 index 0000000000000..53ba0c75fd852 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AccessSchedule.md @@ -0,0 +1,18 @@ + + +# AccessSchedule + +An entity representing a user's access schedule. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | Gets the id of this instance. | [optional] [readonly] | +|**userId** | **UUID** | Gets the id of the associated user. | [optional] | +|**dayOfWeek** | **DynamicDayOfWeek** | Gets or sets the day of week. | [optional] | +|**startHour** | **Double** | Gets or sets the start hour. | [optional] | +|**endHour** | **Double** | Gets or sets the end hour. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogApi.md new file mode 100644 index 0000000000000..73da846d8d62a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogApi.md @@ -0,0 +1,84 @@ +# ActivityLogApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getLogEntries**](ActivityLogApi.md#getLogEntries) | **GET** /System/ActivityLog/Entries | Gets activity log entries. | + + + +# **getLogEntries** +> ActivityLogEntryQueryResult getLogEntries(startIndex, limit, minDate, hasUserId) + +Gets activity log entries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ActivityLogApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ActivityLogApi apiInstance = new ActivityLogApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + OffsetDateTime minDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum date. Format = ISO. + Boolean hasUserId = true; // Boolean | Optional. Filter log entries if it has user id, or not. + try { + ActivityLogEntryQueryResult result = apiInstance.getLogEntries(startIndex, limit, minDate, hasUserId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ActivityLogApi#getLogEntries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **minDate** | **OffsetDateTime**| Optional. The minimum date. Format = ISO. | [optional] | +| **hasUserId** | **Boolean**| Optional. Filter log entries if it has user id, or not. | [optional] | + +### Return type + +[**ActivityLogEntryQueryResult**](ActivityLogEntryQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Activity log returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntry.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntry.md new file mode 100644 index 0000000000000..d6bd5f3947c9c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntry.md @@ -0,0 +1,23 @@ + + +# ActivityLogEntry + +An activity log entry. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Long** | Gets or sets the identifier. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**overview** | **String** | Gets or sets the overview. | [optional] | +|**shortOverview** | **String** | Gets or sets the short overview. | [optional] | +|**type** | **String** | Gets or sets the type. | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | +|**date** | **OffsetDateTime** | Gets or sets the date. | [optional] | +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**userPrimaryImageTag** | **String** | Gets or sets the user primary image tag. | [optional] | +|**severity** | **LogLevel** | Gets or sets the log severity. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryMessage.md new file mode 100644 index 0000000000000..4ad25dc456d1a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryMessage.md @@ -0,0 +1,16 @@ + + +# ActivityLogEntryMessage + +Activity log created message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<ActivityLogEntry>**](ActivityLogEntry.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryQueryResult.md new file mode 100644 index 0000000000000..0de112353aca2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryQueryResult.md @@ -0,0 +1,16 @@ + + +# ActivityLogEntryQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<ActivityLogEntry>**](ActivityLogEntry.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStartMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStartMessage.md new file mode 100644 index 0000000000000..1985fa66ee602 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStartMessage.md @@ -0,0 +1,15 @@ + + +# ActivityLogEntryStartMessage + +Activity log entry start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **String** | Gets or sets the data. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStopMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStopMessage.md new file mode 100644 index 0000000000000..bdbdf25083d8c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ActivityLogEntryStopMessage.md @@ -0,0 +1,14 @@ + + +# ActivityLogEntryStopMessage + +Activity log entry stop message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AddVirtualFolderDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AddVirtualFolderDto.md new file mode 100644 index 0000000000000..2b8b67111179a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AddVirtualFolderDto.md @@ -0,0 +1,14 @@ + + +# AddVirtualFolderDto + +Add virtual folder dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | Gets or sets library options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfo.md new file mode 100644 index 0000000000000..327d7ecf3e6fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfo.md @@ -0,0 +1,26 @@ + + +# AlbumInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**albumArtists** | **List<String>** | Gets or sets the album artist. | [optional] | +|**artistProviderIds** | **Map<String, String>** | Gets or sets the artist provider ids. | [optional] | +|**songInfos** | [**List<SongInfo>**](SongInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..f2527670a1512 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AlbumInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# AlbumInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**AlbumInfo**](AlbumInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AllThemeMediaResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AllThemeMediaResult.md new file mode 100644 index 0000000000000..78ab2b10f2154 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AllThemeMediaResult.md @@ -0,0 +1,15 @@ + + +# AllThemeMediaResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**themeVideosResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | +|**themeSongsResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | +|**soundtrackSongsResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ApiKeyApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ApiKeyApi.md new file mode 100644 index 0000000000000..bfe184fdb2869 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ApiKeyApi.md @@ -0,0 +1,212 @@ +# ApiKeyApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createKey**](ApiKeyApi.md#createKey) | **POST** /Auth/Keys | Create a new api key. | +| [**getKeys**](ApiKeyApi.md#getKeys) | **GET** /Auth/Keys | Get all keys. | +| [**revokeKey**](ApiKeyApi.md#revokeKey) | **DELETE** /Auth/Keys/{key} | Remove an api key. | + + + +# **createKey** +> createKey(app) + +Create a new api key. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + String app = "app_example"; // String | Name of the app using the authentication key. + try { + apiInstance.createKey(app); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#createKey"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **app** | **String**| Name of the app using the authentication key. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Api key created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getKeys** +> AuthenticationInfoQueryResult getKeys() + +Get all keys. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + try { + AuthenticationInfoQueryResult result = apiInstance.getKeys(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#getKeys"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**AuthenticationInfoQueryResult**](AuthenticationInfoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Api keys retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **revokeKey** +> revokeKey(key) + +Remove an api key. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + String key = "key_example"; // String | The access token to delete. + try { + apiInstance.revokeKey(key); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#revokeKey"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| The access token to delete. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Api key deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfo.md new file mode 100644 index 0000000000000..df809445526da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfo.md @@ -0,0 +1,24 @@ + + +# ArtistInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**songInfos** | [**List<SongInfo>**](SongInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..ee3cd0eee7136 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# ArtistInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**ArtistInfo**](ArtistInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistsApi.md new file mode 100644 index 0000000000000..a9a9ef8883a8e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ArtistsApi.md @@ -0,0 +1,344 @@ +# ArtistsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAlbumArtists**](ArtistsApi.md#getAlbumArtists) | **GET** /Artists/AlbumArtists | Gets all album artists from a given item, folder, or the entire library. | +| [**getArtistByName**](ArtistsApi.md#getArtistByName) | **GET** /Artists/{name} | Gets an artist by name. | +| [**getArtists**](ArtistsApi.md#getArtists) | **GET** /Artists | Gets all artists from a given item, folder, or the entire library. | + + + +# **getAlbumArtists** +> BaseItemDtoQueryResult getAlbumArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all album artists from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person ids. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getAlbumArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getAlbumArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person ids. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Album artists returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getArtistByName** +> BaseItemDto getArtistByName(name, userId) + +Gets an artist by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + String name = "name_example"; // String | Studio name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getArtistByName(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getArtistByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Artist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getArtists** +> BaseItemDtoQueryResult getArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all artists from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person ids. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person ids. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Artists returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioApi.md new file mode 100644 index 0000000000000..ac65b12e2ed34 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioApi.md @@ -0,0 +1,644 @@ +# AudioApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAudioStream**](AudioApi.md#getAudioStream) | **GET** /Audio/{itemId}/stream | Gets an audio stream. | +| [**getAudioStreamByContainer**](AudioApi.md#getAudioStreamByContainer) | **GET** /Audio/{itemId}/stream.{container} | Gets an audio stream. | +| [**headAudioStream**](AudioApi.md#headAudioStream) | **HEAD** /Audio/{itemId}/stream | Gets an audio stream. | +| [**headAudioStreamByContainer**](AudioApi.md#headAudioStreamByContainer) | **HEAD** /Audio/{itemId}/stream.{container} | Gets an audio stream. | + + + +# **getAudioStream** +> File getAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#getAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **getAudioStreamByContainer** +> File getAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamporphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#getAudioStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamporphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **headAudioStream** +> File headAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.headAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#headAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **headAudioStreamByContainer** +> File headAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamporphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.headAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#headAudioStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamporphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioSpatialFormat.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioSpatialFormat.md new file mode 100644 index 0000000000000..49fa2aaed42be --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AudioSpatialFormat.md @@ -0,0 +1,15 @@ + + +# AudioSpatialFormat + +## Enum + + +* `NONE` (value: `"None"`) + +* `DOLBY_ATMOS` (value: `"DolbyAtmos"`) + +* `DTSX` (value: `"DTSX"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticateUserByName.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticateUserByName.md new file mode 100644 index 0000000000000..701c5cedbd79d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticateUserByName.md @@ -0,0 +1,15 @@ + + +# AuthenticateUserByName + +The authenticate user by name request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**username** | **String** | Gets or sets the username. | [optional] | +|**pw** | **String** | Gets or sets the plain text password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfo.md new file mode 100644 index 0000000000000..8f0b3b829c130 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfo.md @@ -0,0 +1,24 @@ + + +# AuthenticationInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Long** | Gets or sets the identifier. | [optional] | +|**accessToken** | **String** | Gets or sets the access token. | [optional] | +|**deviceId** | **String** | Gets or sets the device identifier. | [optional] | +|**appName** | **String** | Gets or sets the name of the application. | [optional] | +|**appVersion** | **String** | Gets or sets the application version. | [optional] | +|**deviceName** | **String** | Gets or sets the name of the device. | [optional] | +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**isActive** | **Boolean** | Gets or sets a value indicating whether this instance is active. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateRevoked** | **OffsetDateTime** | Gets or sets the date revoked. | [optional] | +|**dateLastActivity** | **OffsetDateTime** | | [optional] | +|**userName** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfoQueryResult.md new file mode 100644 index 0000000000000..e72217f1446b5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationInfoQueryResult.md @@ -0,0 +1,16 @@ + + +# AuthenticationInfoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<AuthenticationInfo>**](AuthenticationInfo.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationResult.md new file mode 100644 index 0000000000000..b5504f0109954 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/AuthenticationResult.md @@ -0,0 +1,17 @@ + + +# AuthenticationResult + +A class representing an authentication result. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**user** | [**UserDto**](UserDto.md) | Class UserDto. | [optional] | +|**sessionInfo** | [**SessionInfoDto**](SessionInfoDto.md) | Session info DTO. | [optional] | +|**accessToken** | **String** | Gets or sets the access token. | [optional] | +|**serverId** | **String** | Gets or sets the server id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDto.md new file mode 100644 index 0000000000000..d71761ea5e6ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDto.md @@ -0,0 +1,166 @@ + + +# BaseItemDto + +This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**id** | **UUID** | Gets or sets the id. | [optional] | +|**etag** | **String** | Gets or sets the etag. | [optional] | +|**sourceType** | **String** | Gets or sets the type of the source. | [optional] | +|**playlistItemId** | **String** | Gets or sets the playlist item identifier. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateLastMediaAdded** | **OffsetDateTime** | | [optional] | +|**extraType** | **ExtraType** | | [optional] | +|**airsBeforeSeasonNumber** | **Integer** | | [optional] | +|**airsAfterSeasonNumber** | **Integer** | | [optional] | +|**airsBeforeEpisodeNumber** | **Integer** | | [optional] | +|**canDelete** | **Boolean** | | [optional] | +|**canDownload** | **Boolean** | | [optional] | +|**hasLyrics** | **Boolean** | | [optional] | +|**hasSubtitles** | **Boolean** | | [optional] | +|**preferredMetadataLanguage** | **String** | | [optional] | +|**preferredMetadataCountryCode** | **String** | | [optional] | +|**container** | **String** | | [optional] | +|**sortName** | **String** | Gets or sets the name of the sort. | [optional] | +|**forcedSortName** | **String** | | [optional] | +|**video3DFormat** | **Video3DFormat** | Gets or sets the video3 D format. | [optional] | +|**premiereDate** | **OffsetDateTime** | Gets or sets the premiere date. | [optional] | +|**externalUrls** | [**List<ExternalUrl>**](ExternalUrl.md) | Gets or sets the external urls. | [optional] | +|**mediaSources** | [**List<MediaSourceInfo>**](MediaSourceInfo.md) | Gets or sets the media versions. | [optional] | +|**criticRating** | **Float** | Gets or sets the critic rating. | [optional] | +|**productionLocations** | **List<String>** | | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**enableMediaSourceDisplay** | **Boolean** | | [optional] | +|**officialRating** | **String** | Gets or sets the official rating. | [optional] | +|**customRating** | **String** | Gets or sets the custom rating. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel identifier. | [optional] | +|**channelName** | **String** | | [optional] | +|**overview** | **String** | Gets or sets the overview. | [optional] | +|**taglines** | **List<String>** | Gets or sets the taglines. | [optional] | +|**genres** | **List<String>** | Gets or sets the genres. | [optional] | +|**communityRating** | **Float** | Gets or sets the community rating. | [optional] | +|**cumulativeRunTimeTicks** | **Long** | Gets or sets the cumulative run time ticks. | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**playAccess** | **PlayAccess** | Gets or sets the play access. | [optional] | +|**aspectRatio** | **String** | Gets or sets the aspect ratio. | [optional] | +|**productionYear** | **Integer** | Gets or sets the production year. | [optional] | +|**isPlaceHolder** | **Boolean** | Gets or sets a value indicating whether this instance is place holder. | [optional] | +|**number** | **String** | Gets or sets the number. | [optional] | +|**channelNumber** | **String** | | [optional] | +|**indexNumber** | **Integer** | Gets or sets the index number. | [optional] | +|**indexNumberEnd** | **Integer** | Gets or sets the index number end. | [optional] | +|**parentIndexNumber** | **Integer** | Gets or sets the parent index number. | [optional] | +|**remoteTrailers** | [**List<MediaUrl>**](MediaUrl.md) | Gets or sets the trailer urls. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**isHD** | **Boolean** | Gets or sets a value indicating whether this instance is HD. | [optional] | +|**isFolder** | **Boolean** | Gets or sets a value indicating whether this instance is folder. | [optional] | +|**parentId** | **UUID** | Gets or sets the parent id. | [optional] | +|**type** | **BaseItemKind** | The base item kind. | [optional] | +|**people** | [**List<BaseItemPerson>**](BaseItemPerson.md) | Gets or sets the people. | [optional] | +|**studios** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the studios. | [optional] | +|**genreItems** | [**List<NameGuidPair>**](NameGuidPair.md) | | [optional] | +|**parentLogoItemId** | **UUID** | Gets or sets whether the item has a logo, this will hold the Id of the Parent that has one. | [optional] | +|**parentBackdropItemId** | **UUID** | Gets or sets whether the item has any backdrops, this will hold the Id of the Parent that has one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**localTrailerCount** | **Integer** | Gets or sets the local trailer count. | [optional] | +|**userData** | [**UserItemDataDto**](UserItemDataDto.md) | Gets or sets the user data for this item based on the user it's being requested for. | [optional] | +|**recursiveItemCount** | **Integer** | Gets or sets the recursive item count. | [optional] | +|**childCount** | **Integer** | Gets or sets the child count. | [optional] | +|**seriesName** | **String** | Gets or sets the name of the series. | [optional] | +|**seriesId** | **UUID** | Gets or sets the series id. | [optional] | +|**seasonId** | **UUID** | Gets or sets the season identifier. | [optional] | +|**specialFeatureCount** | **Integer** | Gets or sets the special feature count. | [optional] | +|**displayPreferencesId** | **String** | Gets or sets the display preferences id. | [optional] | +|**status** | **String** | Gets or sets the status. | [optional] | +|**airTime** | **String** | Gets or sets the air time. | [optional] | +|**airDays** | **List<DayOfWeek>** | Gets or sets the air days. | [optional] | +|**tags** | **List<String>** | Gets or sets the tags. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio, after image enhancements. | [optional] | +|**artists** | **List<String>** | Gets or sets the artists. | [optional] | +|**artistItems** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the artist items. | [optional] | +|**album** | **String** | Gets or sets the album. | [optional] | +|**collectionType** | **CollectionType** | Gets or sets the type of the collection. | [optional] | +|**displayOrder** | **String** | Gets or sets the display order. | [optional] | +|**albumId** | **UUID** | Gets or sets the album id. | [optional] | +|**albumPrimaryImageTag** | **String** | Gets or sets the album image tag. | [optional] | +|**seriesPrimaryImageTag** | **String** | Gets or sets the series primary image tag. | [optional] | +|**albumArtist** | **String** | Gets or sets the album artist. | [optional] | +|**albumArtists** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the album artists. | [optional] | +|**seasonName** | **String** | Gets or sets the name of the season. | [optional] | +|**mediaStreams** | [**List<MediaStream>**](MediaStream.md) | Gets or sets the media streams. | [optional] | +|**videoType** | **VideoType** | Gets or sets the type of the video. | [optional] | +|**partCount** | **Integer** | Gets or sets the part count. | [optional] | +|**mediaSourceCount** | **Integer** | | [optional] | +|**imageTags** | **Map<String, String>** | Gets or sets the image tags. | [optional] | +|**backdropImageTags** | **List<String>** | Gets or sets the backdrop image tags. | [optional] | +|**screenshotImageTags** | **List<String>** | Gets or sets the screenshot image tags. | [optional] | +|**parentLogoImageTag** | **String** | Gets or sets the parent logo image tag. | [optional] | +|**parentArtItemId** | **UUID** | Gets or sets whether the item has fan art, this will hold the Id of the Parent that has one. | [optional] | +|**parentArtImageTag** | **String** | Gets or sets the parent art image tag. | [optional] | +|**seriesThumbImageTag** | **String** | Gets or sets the series thumb image tag. | [optional] | +|**imageBlurHashes** | [**BaseItemDtoImageBlurHashes**](BaseItemDtoImageBlurHashes.md) | | [optional] | +|**seriesStudio** | **String** | Gets or sets the series studio. | [optional] | +|**parentThumbItemId** | **UUID** | Gets or sets the parent thumb item id. | [optional] | +|**parentThumbImageTag** | **String** | Gets or sets the parent thumb image tag. | [optional] | +|**parentPrimaryImageItemId** | **String** | Gets or sets the parent primary image item identifier. | [optional] | +|**parentPrimaryImageTag** | **String** | Gets or sets the parent primary image tag. | [optional] | +|**chapters** | [**List<ChapterInfo>**](ChapterInfo.md) | Gets or sets the chapters. | [optional] | +|**trickplay** | **Map<String, Map<String, TrickplayInfo>>** | Gets or sets the trickplay manifest. | [optional] | +|**locationType** | **LocationType** | Gets or sets the type of the location. | [optional] | +|**isoType** | **IsoType** | Gets or sets the type of the iso. | [optional] | +|**mediaType** | **MediaType** | Media types. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date. | [optional] | +|**lockedFields** | **List<MetadataField>** | Gets or sets the locked fields. | [optional] | +|**trailerCount** | **Integer** | Gets or sets the trailer count. | [optional] | +|**movieCount** | **Integer** | Gets or sets the movie count. | [optional] | +|**seriesCount** | **Integer** | Gets or sets the series count. | [optional] | +|**programCount** | **Integer** | | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**albumCount** | **Integer** | Gets or sets the album count. | [optional] | +|**artistCount** | **Integer** | | [optional] | +|**musicVideoCount** | **Integer** | Gets or sets the music video count. | [optional] | +|**lockData** | **Boolean** | Gets or sets a value indicating whether [enable internet providers]. | [optional] | +|**width** | **Integer** | | [optional] | +|**height** | **Integer** | | [optional] | +|**cameraMake** | **String** | | [optional] | +|**cameraModel** | **String** | | [optional] | +|**software** | **String** | | [optional] | +|**exposureTime** | **Double** | | [optional] | +|**focalLength** | **Double** | | [optional] | +|**imageOrientation** | **ImageOrientation** | | [optional] | +|**aperture** | **Double** | | [optional] | +|**shutterSpeed** | **Double** | | [optional] | +|**latitude** | **Double** | | [optional] | +|**longitude** | **Double** | | [optional] | +|**altitude** | **Double** | | [optional] | +|**isoSpeedRating** | **Integer** | | [optional] | +|**seriesTimerId** | **String** | Gets or sets the series timer identifier. | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**channelPrimaryImageTag** | **String** | Gets or sets the channel primary image tag. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**completionPercentage** | **Double** | Gets or sets the completion percentage. | [optional] | +|**isRepeat** | **Boolean** | Gets or sets a value indicating whether this instance is repeat. | [optional] | +|**episodeTitle** | **String** | Gets or sets the episode title. | [optional] | +|**channelType** | **ChannelType** | Gets or sets the type of the channel. | [optional] | +|**audio** | **ProgramAudio** | Gets or sets the audio. | [optional] | +|**isMovie** | **Boolean** | Gets or sets a value indicating whether this instance is movie. | [optional] | +|**isSports** | **Boolean** | Gets or sets a value indicating whether this instance is sports. | [optional] | +|**isSeries** | **Boolean** | Gets or sets a value indicating whether this instance is series. | [optional] | +|**isLive** | **Boolean** | Gets or sets a value indicating whether this instance is live. | [optional] | +|**isNews** | **Boolean** | Gets or sets a value indicating whether this instance is news. | [optional] | +|**isKids** | **Boolean** | Gets or sets a value indicating whether this instance is kids. | [optional] | +|**isPremiere** | **Boolean** | Gets or sets a value indicating whether this instance is premiere. | [optional] | +|**timerId** | **String** | Gets or sets the timer identifier. | [optional] | +|**normalizationGain** | **Float** | Gets or sets the gain required for audio normalization. | [optional] | +|**currentProgram** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the current program. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoImageBlurHashes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoImageBlurHashes.md new file mode 100644 index 0000000000000..642fd695b1e54 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoImageBlurHashes.md @@ -0,0 +1,26 @@ + + +# BaseItemDtoImageBlurHashes + +Gets or sets the blurhashes for the image tags. Maps image type to dictionary mapping image tag to blurhash value. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**primary** | **Map<String, String>** | | [optional] | +|**art** | **Map<String, String>** | | [optional] | +|**backdrop** | **Map<String, String>** | | [optional] | +|**banner** | **Map<String, String>** | | [optional] | +|**logo** | **Map<String, String>** | | [optional] | +|**thumb** | **Map<String, String>** | | [optional] | +|**disc** | **Map<String, String>** | | [optional] | +|**box** | **Map<String, String>** | | [optional] | +|**screenshot** | **Map<String, String>** | | [optional] | +|**menu** | **Map<String, String>** | | [optional] | +|**chapter** | **Map<String, String>** | | [optional] | +|**boxRear** | **Map<String, String>** | | [optional] | +|**profile** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoQueryResult.md new file mode 100644 index 0000000000000..05a805012f77e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemDtoQueryResult.md @@ -0,0 +1,16 @@ + + +# BaseItemDtoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemKind.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemKind.md new file mode 100644 index 0000000000000..351404447cf6d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemKind.md @@ -0,0 +1,83 @@ + + +# BaseItemKind + +## Enum + + +* `AGGREGATE_FOLDER` (value: `"AggregateFolder"`) + +* `AUDIO` (value: `"Audio"`) + +* `AUDIO_BOOK` (value: `"AudioBook"`) + +* `BASE_PLUGIN_FOLDER` (value: `"BasePluginFolder"`) + +* `BOOK` (value: `"Book"`) + +* `BOX_SET` (value: `"BoxSet"`) + +* `CHANNEL` (value: `"Channel"`) + +* `CHANNEL_FOLDER_ITEM` (value: `"ChannelFolderItem"`) + +* `COLLECTION_FOLDER` (value: `"CollectionFolder"`) + +* `EPISODE` (value: `"Episode"`) + +* `FOLDER` (value: `"Folder"`) + +* `GENRE` (value: `"Genre"`) + +* `MANUAL_PLAYLISTS_FOLDER` (value: `"ManualPlaylistsFolder"`) + +* `MOVIE` (value: `"Movie"`) + +* `LIVE_TV_CHANNEL` (value: `"LiveTvChannel"`) + +* `LIVE_TV_PROGRAM` (value: `"LiveTvProgram"`) + +* `MUSIC_ALBUM` (value: `"MusicAlbum"`) + +* `MUSIC_ARTIST` (value: `"MusicArtist"`) + +* `MUSIC_GENRE` (value: `"MusicGenre"`) + +* `MUSIC_VIDEO` (value: `"MusicVideo"`) + +* `PERSON` (value: `"Person"`) + +* `PHOTO` (value: `"Photo"`) + +* `PHOTO_ALBUM` (value: `"PhotoAlbum"`) + +* `PLAYLIST` (value: `"Playlist"`) + +* `PLAYLISTS_FOLDER` (value: `"PlaylistsFolder"`) + +* `PROGRAM` (value: `"Program"`) + +* `RECORDING` (value: `"Recording"`) + +* `SEASON` (value: `"Season"`) + +* `SERIES` (value: `"Series"`) + +* `STUDIO` (value: `"Studio"`) + +* `TRAILER` (value: `"Trailer"`) + +* `TV_CHANNEL` (value: `"TvChannel"`) + +* `TV_PROGRAM` (value: `"TvProgram"`) + +* `USER_ROOT_FOLDER` (value: `"UserRootFolder"`) + +* `USER_VIEW` (value: `"UserView"`) + +* `VIDEO` (value: `"Video"`) + +* `YEAR` (value: `"Year"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPerson.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPerson.md new file mode 100644 index 0000000000000..a5946f50d5731 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPerson.md @@ -0,0 +1,19 @@ + + +# BaseItemPerson + +This is used by the api to get information about a Person within a BaseItem. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **UUID** | Gets or sets the identifier. | [optional] | +|**role** | **String** | Gets or sets the role. | [optional] | +|**type** | **PersonKind** | The person kind. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the primary image tag. | [optional] | +|**imageBlurHashes** | [**BaseItemPersonImageBlurHashes**](BaseItemPersonImageBlurHashes.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPersonImageBlurHashes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPersonImageBlurHashes.md new file mode 100644 index 0000000000000..c47e2aea93f36 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BaseItemPersonImageBlurHashes.md @@ -0,0 +1,26 @@ + + +# BaseItemPersonImageBlurHashes + +Gets or sets the primary image blurhash. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**primary** | **Map<String, String>** | | [optional] | +|**art** | **Map<String, String>** | | [optional] | +|**backdrop** | **Map<String, String>** | | [optional] | +|**banner** | **Map<String, String>** | | [optional] | +|**logo** | **Map<String, String>** | | [optional] | +|**thumb** | **Map<String, String>** | | [optional] | +|**disc** | **Map<String, String>** | | [optional] | +|**box** | **Map<String, String>** | | [optional] | +|**screenshot** | **Map<String, String>** | | [optional] | +|**menu** | **Map<String, String>** | | [optional] | +|**chapter** | **Map<String, String>** | | [optional] | +|**boxRear** | **Map<String, String>** | | [optional] | +|**profile** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfo.md new file mode 100644 index 0000000000000..5d7a44e6bc122 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfo.md @@ -0,0 +1,24 @@ + + +# BookInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**seriesName** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..2888f713b6842 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BookInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# BookInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**BookInfo**](BookInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfo.md new file mode 100644 index 0000000000000..59b7231b3da01 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfo.md @@ -0,0 +1,23 @@ + + +# BoxSetInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..96391d240591e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BoxSetInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# BoxSetInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**BoxSetInfo**](BoxSetInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingApi.md new file mode 100644 index 0000000000000..056019cee52a0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingApi.md @@ -0,0 +1,181 @@ +# BrandingApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getBrandingCss**](BrandingApi.md#getBrandingCss) | **GET** /Branding/Css | Gets branding css. | +| [**getBrandingCss2**](BrandingApi.md#getBrandingCss2) | **GET** /Branding/Css.css | Gets branding css. | +| [**getBrandingOptions**](BrandingApi.md#getBrandingOptions) | **GET** /Branding/Configuration | Gets branding configuration. | + + + +# **getBrandingCss** +> String getBrandingCss() + +Gets branding css. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + String result = apiInstance.getBrandingCss(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingCss"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/css, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding css returned. | - | +| **204** | No branding css configured. | - | + + +# **getBrandingCss2** +> String getBrandingCss2() + +Gets branding css. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + String result = apiInstance.getBrandingCss2(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingCss2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/css, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding css returned. | - | +| **204** | No branding css configured. | - | + + +# **getBrandingOptions** +> BrandingOptions getBrandingOptions() + +Gets branding configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + BrandingOptions result = apiInstance.getBrandingOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**BrandingOptions**](BrandingOptions.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding configuration returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingOptions.md new file mode 100644 index 0000000000000..ec202b0b3caed --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BrandingOptions.md @@ -0,0 +1,16 @@ + + +# BrandingOptions + +The branding options. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**loginDisclaimer** | **String** | Gets or sets the login disclaimer. | [optional] | +|**customCss** | **String** | Gets or sets the custom CSS. | [optional] | +|**splashscreenEnabled** | **Boolean** | Gets or sets a value indicating whether to enable the splashscreen. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BufferRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BufferRequestDto.md new file mode 100644 index 0000000000000..7eaec4a279e90 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/BufferRequestDto.md @@ -0,0 +1,17 @@ + + +# BufferRequestDto + +Class BufferRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**when** | **OffsetDateTime** | Gets or sets when the request has been made by the client. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**isPlaying** | **Boolean** | Gets or sets a value indicating whether the client playback is unpaused. | [optional] | +|**playlistItemId** | **UUID** | Gets or sets the playlist item identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CastReceiverApplication.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CastReceiverApplication.md new file mode 100644 index 0000000000000..ad6f7241e0603 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CastReceiverApplication.md @@ -0,0 +1,15 @@ + + +# CastReceiverApplication + +The cast receiver application model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the cast receiver application id. | [optional] | +|**name** | **String** | Gets or sets the cast receiver application name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelFeatures.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelFeatures.md new file mode 100644 index 0000000000000..af359c837fad9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelFeatures.md @@ -0,0 +1,24 @@ + + +# ChannelFeatures + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **UUID** | Gets or sets the identifier. | [optional] | +|**canSearch** | **Boolean** | Gets or sets a value indicating whether this instance can search. | [optional] | +|**mediaTypes** | **List<ChannelMediaType>** | Gets or sets the media types. | [optional] | +|**contentTypes** | **List<ChannelMediaContentType>** | Gets or sets the content types. | [optional] | +|**maxPageSize** | **Integer** | Gets or sets the maximum number of records the channel allows retrieving at a time. | [optional] | +|**autoRefreshLevels** | **Integer** | Gets or sets the automatic refresh levels. | [optional] | +|**defaultSortFields** | **List<ChannelItemSortField>** | Gets or sets the default sort orders. | [optional] | +|**supportsSortOrderToggle** | **Boolean** | Gets or sets a value indicating whether a sort ascending/descending toggle is supported. | [optional] | +|**supportsLatestMedia** | **Boolean** | Gets or sets a value indicating whether [supports latest media]. | [optional] | +|**canFilter** | **Boolean** | Gets or sets a value indicating whether this instance can filter. | [optional] | +|**supportsContentDownloading** | **Boolean** | Gets or sets a value indicating whether [supports content downloading]. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelItemSortField.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelItemSortField.md new file mode 100644 index 0000000000000..e68b51c44b7f2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelItemSortField.md @@ -0,0 +1,23 @@ + + +# ChannelItemSortField + +## Enum + + +* `NAME` (value: `"Name"`) + +* `COMMUNITY_RATING` (value: `"CommunityRating"`) + +* `PREMIERE_DATE` (value: `"PremiereDate"`) + +* `DATE_CREATED` (value: `"DateCreated"`) + +* `RUNTIME` (value: `"Runtime"`) + +* `PLAY_COUNT` (value: `"PlayCount"`) + +* `COMMUNITY_PLAY_COUNT` (value: `"CommunityPlayCount"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMappingOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMappingOptionsDto.md new file mode 100644 index 0000000000000..47bf12440f8c7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMappingOptionsDto.md @@ -0,0 +1,17 @@ + + +# ChannelMappingOptionsDto + +Channel mapping options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**tunerChannels** | [**List<TunerChannelMapping>**](TunerChannelMapping.md) | Gets or sets list of tuner channels. | [optional] | +|**providerChannels** | [**List<NameIdPair>**](NameIdPair.md) | Gets or sets list of provider channels. | [optional] | +|**mappings** | [**List<NameValuePair>**](NameValuePair.md) | Gets or sets list of mappings. | [optional] | +|**providerName** | **String** | Gets or sets provider name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaContentType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaContentType.md new file mode 100644 index 0000000000000..13a9e33780643 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaContentType.md @@ -0,0 +1,25 @@ + + +# ChannelMediaContentType + +## Enum + + +* `CLIP` (value: `"Clip"`) + +* `PODCAST` (value: `"Podcast"`) + +* `TRAILER` (value: `"Trailer"`) + +* `MOVIE` (value: `"Movie"`) + +* `EPISODE` (value: `"Episode"`) + +* `SONG` (value: `"Song"`) + +* `MOVIE_EXTRA` (value: `"MovieExtra"`) + +* `TV_EXTRA` (value: `"TvExtra"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaType.md new file mode 100644 index 0000000000000..897ebf5d3d890 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelMediaType.md @@ -0,0 +1,15 @@ + + +# ChannelMediaType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `PHOTO` (value: `"Photo"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelType.md new file mode 100644 index 0000000000000..8be0c1ff2cdc5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelType.md @@ -0,0 +1,13 @@ + + +# ChannelType + +## Enum + + +* `TV` (value: `"TV"`) + +* `RADIO` (value: `"Radio"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelsApi.md new file mode 100644 index 0000000000000..b7e822a895d5f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChannelsApi.md @@ -0,0 +1,390 @@ +# ChannelsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAllChannelFeatures**](ChannelsApi.md#getAllChannelFeatures) | **GET** /Channels/Features | Get all channel features. | +| [**getChannelFeatures**](ChannelsApi.md#getChannelFeatures) | **GET** /Channels/{channelId}/Features | Get channel features. | +| [**getChannelItems**](ChannelsApi.md#getChannelItems) | **GET** /Channels/{channelId}/Items | Get channel items. | +| [**getChannels**](ChannelsApi.md#getChannels) | **GET** /Channels | Gets available channels. | +| [**getLatestChannelItems**](ChannelsApi.md#getLatestChannelItems) | **GET** /Channels/Items/Latest | Gets latest channel items. | + + + +# **getAllChannelFeatures** +> List<ChannelFeatures> getAllChannelFeatures() + +Get all channel features. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + try { + List result = apiInstance.getAllChannelFeatures(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getAllChannelFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ChannelFeatures>**](ChannelFeatures.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | All channel features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelFeatures** +> ChannelFeatures getChannelFeatures(channelId) + +Get channel features. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel id. + try { + ChannelFeatures result = apiInstance.getChannelFeatures(channelId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannelFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel id. | | + +### Return type + +[**ChannelFeatures**](ChannelFeatures.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelItems** +> BaseItemDtoQueryResult getChannelItems(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields) + +Get channel items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel Id. + UUID folderId = UUID.randomUUID(); // UUID | Optional. Folder Id. + UUID userId = UUID.randomUUID(); // UUID | Optional. User Id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortOrder = Arrays.asList(); // List | Optional. Sort Order - Ascending,Descending. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getChannelItems(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannelItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel Id. | | +| **folderId** | **UUID**| Optional. Folder Id. | [optional] | +| **userId** | **UUID**| Optional. User Id. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Optional. Sort Order - Ascending,Descending. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannels** +> BaseItemDtoQueryResult getChannels(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite) + +Gets available channels. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id to filter by. Use System.Guid.Empty to not filter by user. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean supportsLatestItems = true; // Boolean | Optional. Filter by channels that support getting latest items. + Boolean supportsMediaDeletion = true; // Boolean | Optional. Filter by channels that support media deletion. + Boolean isFavorite = true; // Boolean | Optional. Filter by channels that are favorite. + try { + BaseItemDtoQueryResult result = apiInstance.getChannels(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannels"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id to filter by. Use System.Guid.Empty to not filter by user. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **supportsLatestItems** | **Boolean**| Optional. Filter by channels that support getting latest items. | [optional] | +| **supportsMediaDeletion** | **Boolean**| Optional. Filter by channels that support media deletion. | [optional] | +| **isFavorite** | **Boolean**| Optional. Filter by channels that are favorite. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channels returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLatestChannelItems** +> BaseItemDtoQueryResult getLatestChannelItems(userId, startIndex, limit, filters, fields, channelIds) + +Gets latest channel items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User Id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List channelIds = Arrays.asList(); // List | Optional. Specify one or more channel id's, comma delimited. + try { + BaseItemDtoQueryResult result = apiInstance.getLatestChannelItems(userId, startIndex, limit, filters, fields, channelIds); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getLatestChannelItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User Id. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **channelIds** | [**List<UUID>**](UUID.md)| Optional. Specify one or more channel id's, comma delimited. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Latest channel items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChapterInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChapterInfo.md new file mode 100644 index 0000000000000..65859cb55f169 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ChapterInfo.md @@ -0,0 +1,18 @@ + + +# ChapterInfo + +Class ChapterInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startPositionTicks** | **Long** | Gets or sets the start position ticks. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**imagePath** | **String** | Gets or sets the image path. | [optional] | +|**imageDateModified** | **OffsetDateTime** | | [optional] | +|**imageTag** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientCapabilitiesDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientCapabilitiesDto.md new file mode 100644 index 0000000000000..aad82dd9eddc6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientCapabilitiesDto.md @@ -0,0 +1,20 @@ + + +# ClientCapabilitiesDto + +Client capabilities dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playableMediaTypes** | **List<MediaType>** | Gets or sets the list of playable media types. | [optional] | +|**supportedCommands** | **List<GeneralCommandType>** | Gets or sets the list of supported commands. | [optional] | +|**supportsMediaControl** | **Boolean** | Gets or sets a value indicating whether session supports media control. | [optional] | +|**supportsPersistentIdentifier** | **Boolean** | Gets or sets a value indicating whether session supports a persistent identifier. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | Gets or sets the device profile. | [optional] | +|**appStoreUrl** | **String** | Gets or sets the app store url. | [optional] | +|**iconUrl** | **String** | Gets or sets the icon url. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogApi.md new file mode 100644 index 0000000000000..f87e3f25bd03e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogApi.md @@ -0,0 +1,79 @@ +# ClientLogApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**logFile**](ClientLogApi.md#logFile) | **POST** /ClientLog/Document | Upload a document. | + + + +# **logFile** +> ClientLogDocumentResponseDto logFile(body) + +Upload a document. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ClientLogApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ClientLogApi apiInstance = new ClientLogApi(defaultClient); + File body = new File("/path/to/file"); // File | + try { + ClientLogDocumentResponseDto result = apiInstance.logFile(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ClientLogApi#logFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **body** | **File**| | [optional] | + +### Return type + +[**ClientLogDocumentResponseDto**](ClientLogDocumentResponseDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: text/plain + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Document saved. | - | +| **403** | Event logging disabled. | - | +| **413** | Upload size too large. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogDocumentResponseDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogDocumentResponseDto.md new file mode 100644 index 0000000000000..1a253382f017f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ClientLogDocumentResponseDto.md @@ -0,0 +1,14 @@ + + +# ClientLogDocumentResponseDto + +Client log document response dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**fileName** | **String** | Gets the resulting filename. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecProfile.md new file mode 100644 index 0000000000000..9481eecc1806f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecProfile.md @@ -0,0 +1,19 @@ + + +# CodecProfile + +Defines the MediaBrowser.Model.Dlna.CodecProfile. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **CodecType** | Gets or sets the MediaBrowser.Model.Dlna.CodecType which this container must meet. | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this profile must meet. | [optional] | +|**applyConditions** | [**List<ProfileCondition>**](ProfileCondition.md) | Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition to apply if this profile is met. | [optional] | +|**codec** | **String** | Gets or sets the codec(s) that this profile applies to. | [optional] | +|**container** | **String** | Gets or sets the container(s) which this profile will be applied to. | [optional] | +|**subContainer** | **String** | Gets or sets the sub-container(s) which this profile will be applied to. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecType.md new file mode 100644 index 0000000000000..0c29b612fdd8a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CodecType.md @@ -0,0 +1,15 @@ + + +# CodecType + +## Enum + + +* `VIDEO` (value: `"Video"`) + +* `VIDEO_AUDIO` (value: `"VideoAudio"`) + +* `AUDIO` (value: `"Audio"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionApi.md new file mode 100644 index 0000000000000..17c33a70bf280 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionApi.md @@ -0,0 +1,226 @@ +# CollectionApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addToCollection**](CollectionApi.md#addToCollection) | **POST** /Collections/{collectionId}/Items | Adds items to a collection. | +| [**createCollection**](CollectionApi.md#createCollection) | **POST** /Collections | Creates a new collection. | +| [**removeFromCollection**](CollectionApi.md#removeFromCollection) | **DELETE** /Collections/{collectionId}/Items | Removes items from a collection. | + + + +# **addToCollection** +> addToCollection(collectionId, ids) + +Adds items to a collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + UUID collectionId = UUID.randomUUID(); // UUID | The collection id. + List ids = Arrays.asList(); // List | Item ids, comma delimited. + try { + apiInstance.addToCollection(collectionId, ids); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#addToCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **collectionId** | **UUID**| The collection id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item ids, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items added to collection. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createCollection** +> CollectionCreationResult createCollection(name, ids, parentId, isLocked) + +Creates a new collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + String name = "name_example"; // String | The name of the collection. + List ids = Arrays.asList(); // List | Item Ids to add to the collection. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Create the collection within a specific folder. + Boolean isLocked = false; // Boolean | Whether or not to lock the new collection. + try { + CollectionCreationResult result = apiInstance.createCollection(name, ids, parentId, isLocked); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#createCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the collection. | [optional] | +| **ids** | [**List<String>**](String.md)| Item Ids to add to the collection. | [optional] | +| **parentId** | **UUID**| Optional. Create the collection within a specific folder. | [optional] | +| **isLocked** | **Boolean**| Whether or not to lock the new collection. | [optional] [default to false] | + +### Return type + +[**CollectionCreationResult**](CollectionCreationResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Collection created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeFromCollection** +> removeFromCollection(collectionId, ids) + +Removes items from a collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + UUID collectionId = UUID.randomUUID(); // UUID | The collection id. + List ids = Arrays.asList(); // List | Item ids, comma delimited. + try { + apiInstance.removeFromCollection(collectionId, ids); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#removeFromCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **collectionId** | **UUID**| The collection id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item ids, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items removed from collection. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionCreationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionCreationResult.md new file mode 100644 index 0000000000000..95d00f9002ead --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionCreationResult.md @@ -0,0 +1,13 @@ + + +# CollectionCreationResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionType.md new file mode 100644 index 0000000000000..c987c1c8bbdc0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionType.md @@ -0,0 +1,35 @@ + + +# CollectionType + +## Enum + + +* `UNKNOWN` (value: `"unknown"`) + +* `MOVIES` (value: `"movies"`) + +* `TVSHOWS` (value: `"tvshows"`) + +* `MUSIC` (value: `"music"`) + +* `MUSICVIDEOS` (value: `"musicvideos"`) + +* `TRAILERS` (value: `"trailers"`) + +* `HOMEVIDEOS` (value: `"homevideos"`) + +* `BOXSETS` (value: `"boxsets"`) + +* `BOOKS` (value: `"books"`) + +* `PHOTOS` (value: `"photos"`) + +* `LIVETV` (value: `"livetv"`) + +* `PLAYLISTS` (value: `"playlists"`) + +* `FOLDERS` (value: `"folders"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionTypeOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionTypeOptions.md new file mode 100644 index 0000000000000..92b27769c5fc4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CollectionTypeOptions.md @@ -0,0 +1,25 @@ + + +# CollectionTypeOptions + +## Enum + + +* `MOVIES` (value: `"movies"`) + +* `TVSHOWS` (value: `"tvshows"`) + +* `MUSIC` (value: `"music"`) + +* `MUSICVIDEOS` (value: `"musicvideos"`) + +* `HOMEVIDEOS` (value: `"homevideos"`) + +* `BOXSETS` (value: `"boxsets"`) + +* `BOOKS` (value: `"books"`) + +* `MIXED` (value: `"mixed"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigImageTypes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigImageTypes.md new file mode 100644 index 0000000000000..b739e7a2f09ff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigImageTypes.md @@ -0,0 +1,19 @@ + + +# ConfigImageTypes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**backdropSizes** | **List<String>** | | [optional] | +|**baseUrl** | **String** | | [optional] | +|**logoSizes** | **List<String>** | | [optional] | +|**posterSizes** | **List<String>** | | [optional] | +|**profileSizes** | **List<String>** | | [optional] | +|**secureBaseUrl** | **String** | | [optional] | +|**stillSizes** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationApi.md new file mode 100644 index 0000000000000..5c5bc7f4d7fd0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationApi.md @@ -0,0 +1,350 @@ +# ConfigurationApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConfiguration**](ConfigurationApi.md#getConfiguration) | **GET** /System/Configuration | Gets application configuration. | +| [**getDefaultMetadataOptions**](ConfigurationApi.md#getDefaultMetadataOptions) | **GET** /System/Configuration/MetadataOptions/Default | Gets a default MetadataOptions object. | +| [**getNamedConfiguration**](ConfigurationApi.md#getNamedConfiguration) | **GET** /System/Configuration/{key} | Gets a named configuration. | +| [**updateConfiguration**](ConfigurationApi.md#updateConfiguration) | **POST** /System/Configuration | Updates application configuration. | +| [**updateNamedConfiguration**](ConfigurationApi.md#updateNamedConfiguration) | **POST** /System/Configuration/{key} | Updates named configuration. | + + + +# **getConfiguration** +> ServerConfiguration getConfiguration() + +Gets application configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + try { + ServerConfiguration result = apiInstance.getConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ServerConfiguration**](ServerConfiguration.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Application configuration returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultMetadataOptions** +> MetadataOptions getDefaultMetadataOptions() + +Gets a default MetadataOptions object. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + try { + MetadataOptions result = apiInstance.getDefaultMetadataOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getDefaultMetadataOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**MetadataOptions**](MetadataOptions.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Metadata options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNamedConfiguration** +> File getNamedConfiguration(key) + +Gets a named configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + String key = "key_example"; // String | Configuration key. + try { + File result = apiInstance.getNamedConfiguration(key); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getNamedConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| Configuration key. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Configuration returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateConfiguration** +> updateConfiguration(serverConfiguration) + +Updates application configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + ServerConfiguration serverConfiguration = new ServerConfiguration(); // ServerConfiguration | Configuration. + try { + apiInstance.updateConfiguration(serverConfiguration); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#updateConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverConfiguration** | [**ServerConfiguration**](ServerConfiguration.md)| Configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateNamedConfiguration** +> updateNamedConfiguration(key, body) + +Updates named configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + String key = "key_example"; // String | Configuration key. + Object body = null; // Object | Configuration. + try { + apiInstance.updateNamedConfiguration(key, body); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#updateNamedConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| Configuration key. | | +| **body** | **Object**| Configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Named configuration updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationPageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationPageInfo.md new file mode 100644 index 0000000000000..c274f275b3049 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ConfigurationPageInfo.md @@ -0,0 +1,19 @@ + + +# ConfigurationPageInfo + +The configuration page info. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**enableInMainMenu** | **Boolean** | Gets or sets a value indicating whether the configurations page is enabled in the main menu. | [optional] | +|**menuSection** | **String** | Gets or sets the menu section. | [optional] | +|**menuIcon** | **String** | Gets or sets the menu icon. | [optional] | +|**displayName** | **String** | Gets or sets the display name. | [optional] | +|**pluginId** | **UUID** | Gets or sets the plugin id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ContainerProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ContainerProfile.md new file mode 100644 index 0000000000000..e0466d2e6d917 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ContainerProfile.md @@ -0,0 +1,17 @@ + + +# ContainerProfile + +Defines the MediaBrowser.Model.Dlna.ContainerProfile. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **DlnaProfileType** | Gets or sets the MediaBrowser.Model.Dlna.DlnaProfileType which this container must meet. | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this container will be applied to. | [optional] | +|**container** | **String** | Gets or sets the container(s) which this container must meet. | [optional] | +|**subContainer** | **String** | Gets or sets the sub container(s) which this container must meet. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CountryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CountryInfo.md new file mode 100644 index 0000000000000..b6b3ded8e68bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CountryInfo.md @@ -0,0 +1,17 @@ + + +# CountryInfo + +Class CountryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**displayName** | **String** | Gets or sets the display name. | [optional] | +|**twoLetterISORegionName** | **String** | Gets or sets the name of the two letter ISO region. | [optional] | +|**threeLetterISORegionName** | **String** | Gets or sets the name of the three letter ISO region. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreatePlaylistDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreatePlaylistDto.md new file mode 100644 index 0000000000000..47784b69711d3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreatePlaylistDto.md @@ -0,0 +1,19 @@ + + +# CreatePlaylistDto + +Create new playlist dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the new playlist. | [optional] | +|**ids** | **List<UUID>** | Gets or sets item ids to add to the playlist. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**mediaType** | **MediaType** | Gets or sets the media type. | [optional] | +|**users** | [**List<PlaylistUserPermissions>**](PlaylistUserPermissions.md) | Gets or sets the playlist users. | [optional] | +|**isPublic** | **Boolean** | Gets or sets a value indicating whether the playlist is public. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreateUserByName.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreateUserByName.md new file mode 100644 index 0000000000000..cb7aeaef96709 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CreateUserByName.md @@ -0,0 +1,15 @@ + + +# CreateUserByName + +The create user by name request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the username. | | +|**password** | **String** | Gets or sets the password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CultureDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CultureDto.md new file mode 100644 index 0000000000000..5e690825fd05e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/CultureDto.md @@ -0,0 +1,18 @@ + + +# CultureDto + +Class CultureDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**displayName** | **String** | Gets the display name. | [optional] | +|**twoLetterISOLanguageName** | **String** | Gets the name of the two letter ISO language. | [optional] | +|**threeLetterISOLanguageName** | **String** | Gets the name of the three letter ISO language. | [optional] [readonly] | +|**threeLetterISOLanguageNames** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DashboardApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DashboardApi.md new file mode 100644 index 0000000000000..34d8a226218e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DashboardApi.md @@ -0,0 +1,141 @@ +# DashboardApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConfigurationPages**](DashboardApi.md#getConfigurationPages) | **GET** /web/ConfigurationPages | Gets the configuration pages. | +| [**getDashboardConfigurationPage**](DashboardApi.md#getDashboardConfigurationPage) | **GET** /web/ConfigurationPage | Gets a dashboard configuration page. | + + + +# **getConfigurationPages** +> List<ConfigurationPageInfo> getConfigurationPages(enableInMainMenu) + +Gets the configuration pages. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DashboardApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DashboardApi apiInstance = new DashboardApi(defaultClient); + Boolean enableInMainMenu = true; // Boolean | Whether to enable in the main menu. + try { + List result = apiInstance.getConfigurationPages(enableInMainMenu); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardApi#getConfigurationPages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **enableInMainMenu** | **Boolean**| Whether to enable in the main menu. | [optional] | + +### Return type + +[**List<ConfigurationPageInfo>**](ConfigurationPageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ConfigurationPages returned. | - | +| **404** | Server still loading. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDashboardConfigurationPage** +> File getDashboardConfigurationPage(name) + +Gets a dashboard configuration page. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DashboardApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DashboardApi apiInstance = new DashboardApi(defaultClient); + String name = "name_example"; // String | The name of the page. + try { + File result = apiInstance.getDashboardConfigurationPage(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardApi#getDashboardConfigurationPage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the page. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/html, application/x-javascript, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ConfigurationPage returned. | - | +| **404** | Plugin configuration page not found. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayOfWeek.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayOfWeek.md new file mode 100644 index 0000000000000..ac36cca61ab45 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayOfWeek.md @@ -0,0 +1,23 @@ + + +# DayOfWeek + +## Enum + + +* `SUNDAY` (value: `"Sunday"`) + +* `MONDAY` (value: `"Monday"`) + +* `TUESDAY` (value: `"Tuesday"`) + +* `WEDNESDAY` (value: `"Wednesday"`) + +* `THURSDAY` (value: `"Thursday"`) + +* `FRIDAY` (value: `"Friday"`) + +* `SATURDAY` (value: `"Saturday"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayPattern.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayPattern.md new file mode 100644 index 0000000000000..1a355bd2c6079 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DayPattern.md @@ -0,0 +1,15 @@ + + +# DayPattern + +## Enum + + +* `DAILY` (value: `"Daily"`) + +* `WEEKDAYS` (value: `"Weekdays"`) + +* `WEEKENDS` (value: `"Weekends"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DefaultDirectoryBrowserInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DefaultDirectoryBrowserInfoDto.md new file mode 100644 index 0000000000000..e5bea9602bd23 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DefaultDirectoryBrowserInfoDto.md @@ -0,0 +1,14 @@ + + +# DefaultDirectoryBrowserInfoDto + +Default directory browser info. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | Gets or sets the path. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeinterlaceMethod.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeinterlaceMethod.md new file mode 100644 index 0000000000000..37fad6a87b82d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeinterlaceMethod.md @@ -0,0 +1,13 @@ + + +# DeinterlaceMethod + +## Enum + + +* `YADIF` (value: `"yadif"`) + +* `BWDIF` (value: `"bwdif"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDto.md new file mode 100644 index 0000000000000..6f5d33e1762c9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDto.md @@ -0,0 +1,24 @@ + + +# DeviceInfoDto + +A DTO representing device information. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**customName** | **String** | Gets or sets the custom name. | [optional] | +|**accessToken** | **String** | Gets or sets the access token. | [optional] | +|**id** | **String** | Gets or sets the identifier. | [optional] | +|**lastUserName** | **String** | Gets or sets the last name of the user. | [optional] | +|**appName** | **String** | Gets or sets the name of the application. | [optional] | +|**appVersion** | **String** | Gets or sets the application version. | [optional] | +|**lastUserId** | **UUID** | Gets or sets the last user identifier. | [optional] | +|**dateLastActivity** | **OffsetDateTime** | Gets or sets the date last modified. | [optional] | +|**capabilities** | [**ClientCapabilitiesDto**](ClientCapabilitiesDto.md) | Gets or sets the capabilities. | [optional] | +|**iconUrl** | **String** | Gets or sets the icon URL. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDtoQueryResult.md new file mode 100644 index 0000000000000..09a8ac62f3afb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceInfoDtoQueryResult.md @@ -0,0 +1,16 @@ + + +# DeviceInfoDtoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<DeviceInfoDto>**](DeviceInfoDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceOptionsDto.md new file mode 100644 index 0000000000000..5c2c0d33f8074 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceOptionsDto.md @@ -0,0 +1,16 @@ + + +# DeviceOptionsDto + +A dto representing custom options for a device. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | Gets or sets the id. | [optional] | +|**deviceId** | **String** | Gets or sets the device id. | [optional] | +|**customName** | **String** | Gets or sets the custom name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceProfile.md new file mode 100644 index 0000000000000..80ac7814b5c96 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DeviceProfile.md @@ -0,0 +1,24 @@ + + +# DeviceProfile + +A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.
Specifically, it defines the supported containers and codecs (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which containers/codecs to transcode to in case it isn't. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of this device profile. User profiles must have a unique name. | [optional] | +|**id** | **UUID** | Gets or sets the unique internal identifier. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for all streamed content. | [optional] | +|**maxStaticBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). | [optional] | +|**musicStreamingTranscodingBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for transcoded music streams. | [optional] | +|**maxStaticMusicBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. | [optional] | +|**directPlayProfiles** | [**List<DirectPlayProfile>**](DirectPlayProfile.md) | Gets or sets the direct play profiles. | [optional] | +|**transcodingProfiles** | [**List<TranscodingProfile>**](TranscodingProfile.md) | Gets or sets the transcoding profiles. | [optional] | +|**containerProfiles** | [**List<ContainerProfile>**](ContainerProfile.md) | Gets or sets the container profiles. Failing to meet these optional conditions causes transcoding to occur. | [optional] | +|**codecProfiles** | [**List<CodecProfile>**](CodecProfile.md) | Gets or sets the codec profiles. | [optional] | +|**subtitleProfiles** | [**List<SubtitleProfile>**](SubtitleProfile.md) | Gets or sets the subtitle profiles. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DevicesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DevicesApi.md new file mode 100644 index 0000000000000..c1e06152c8b07 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DevicesApi.md @@ -0,0 +1,361 @@ +# DevicesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteDevice**](DevicesApi.md#deleteDevice) | **DELETE** /Devices | Deletes a device. | +| [**getDeviceInfo**](DevicesApi.md#getDeviceInfo) | **GET** /Devices/Info | Get info for a device. | +| [**getDeviceOptions**](DevicesApi.md#getDeviceOptions) | **GET** /Devices/Options | Get options for a device. | +| [**getDevices**](DevicesApi.md#getDevices) | **GET** /Devices | Get Devices. | +| [**updateDeviceOptions**](DevicesApi.md#updateDeviceOptions) | **POST** /Devices/Options | Update device options. | + + + +# **deleteDevice** +> deleteDevice(id) + +Deletes a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + apiInstance.deleteDevice(id); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#deleteDevice"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device deleted. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDeviceInfo** +> DeviceInfoDto getDeviceInfo(id) + +Get info for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + DeviceInfoDto result = apiInstance.getDeviceInfo(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDeviceInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +[**DeviceInfoDto**](DeviceInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device info retrieved. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDeviceOptions** +> DeviceOptionsDto getDeviceOptions(id) + +Get options for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + DeviceOptionsDto result = apiInstance.getDeviceOptions(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDeviceOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +[**DeviceOptionsDto**](DeviceOptionsDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device options retrieved. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDevices** +> DeviceInfoDtoQueryResult getDevices(userId) + +Get Devices. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Gets or sets the user identifier. + try { + DeviceInfoDtoQueryResult result = apiInstance.getDevices(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDevices"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Gets or sets the user identifier. | [optional] | + +### Return type + +[**DeviceInfoDtoQueryResult**](DeviceInfoDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Devices retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateDeviceOptions** +> updateDeviceOptions(id, deviceOptionsDto) + +Update device options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + DeviceOptionsDto deviceOptionsDto = new DeviceOptionsDto(); // DeviceOptionsDto | Device Options. + try { + apiInstance.updateDeviceOptions(id, deviceOptionsDto); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#updateDeviceOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | +| **deviceOptionsDto** | [**DeviceOptionsDto**](DeviceOptionsDto.md)| Device Options. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device options updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DirectPlayProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DirectPlayProfile.md new file mode 100644 index 0000000000000..9997ce2f95856 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DirectPlayProfile.md @@ -0,0 +1,17 @@ + + +# DirectPlayProfile + +Defines the MediaBrowser.Model.Dlna.DirectPlayProfile. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**container** | **String** | Gets or sets the container. | [optional] | +|**audioCodec** | **String** | Gets or sets the audio codec. | [optional] | +|**videoCodec** | **String** | Gets or sets the video codec. | [optional] | +|**type** | **DlnaProfileType** | Gets or sets the Dlna profile type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesApi.md new file mode 100644 index 0000000000000..a4b03eb1611f2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesApi.md @@ -0,0 +1,157 @@ +# DisplayPreferencesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getDisplayPreferences**](DisplayPreferencesApi.md#getDisplayPreferences) | **GET** /DisplayPreferences/{displayPreferencesId} | Get Display Preferences. | +| [**updateDisplayPreferences**](DisplayPreferencesApi.md#updateDisplayPreferences) | **POST** /DisplayPreferences/{displayPreferencesId} | Update Display Preferences. | + + + +# **getDisplayPreferences** +> DisplayPreferencesDto getDisplayPreferences(displayPreferencesId, client, userId) + +Get Display Preferences. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DisplayPreferencesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DisplayPreferencesApi apiInstance = new DisplayPreferencesApi(defaultClient); + String displayPreferencesId = "displayPreferencesId_example"; // String | Display preferences id. + String client = "client_example"; // String | Client. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + DisplayPreferencesDto result = apiInstance.getDisplayPreferences(displayPreferencesId, client, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DisplayPreferencesApi#getDisplayPreferences"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **displayPreferencesId** | **String**| Display preferences id. | | +| **client** | **String**| Client. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**DisplayPreferencesDto**](DisplayPreferencesDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Display preferences retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateDisplayPreferences** +> updateDisplayPreferences(displayPreferencesId, client, displayPreferencesDto, userId) + +Update Display Preferences. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DisplayPreferencesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DisplayPreferencesApi apiInstance = new DisplayPreferencesApi(defaultClient); + String displayPreferencesId = "displayPreferencesId_example"; // String | Display preferences id. + String client = "client_example"; // String | Client. + DisplayPreferencesDto displayPreferencesDto = new DisplayPreferencesDto(); // DisplayPreferencesDto | New Display Preferences object. + UUID userId = UUID.randomUUID(); // UUID | User Id. + try { + apiInstance.updateDisplayPreferences(displayPreferencesId, client, displayPreferencesDto, userId); + } catch (ApiException e) { + System.err.println("Exception when calling DisplayPreferencesApi#updateDisplayPreferences"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **displayPreferencesId** | **String**| Display preferences id. | | +| **client** | **String**| Client. | | +| **displayPreferencesDto** | [**DisplayPreferencesDto**](DisplayPreferencesDto.md)| New Display Preferences object. | | +| **userId** | **UUID**| User Id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Display preferences updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesDto.md new file mode 100644 index 0000000000000..f81bf37b963f7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DisplayPreferencesDto.md @@ -0,0 +1,27 @@ + + +# DisplayPreferencesDto + +Defines the display preferences for any item that supports them (usually Folders). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the user id. | [optional] | +|**viewType** | **String** | Gets or sets the type of the view. | [optional] | +|**sortBy** | **String** | Gets or sets the sort by. | [optional] | +|**indexBy** | **String** | Gets or sets the index by. | [optional] | +|**rememberIndexing** | **Boolean** | Gets or sets a value indicating whether [remember indexing]. | [optional] | +|**primaryImageHeight** | **Integer** | Gets or sets the height of the primary image. | [optional] | +|**primaryImageWidth** | **Integer** | Gets or sets the width of the primary image. | [optional] | +|**customPrefs** | **Map<String, String>** | Gets or sets the custom prefs. | [optional] | +|**scrollDirection** | **ScrollDirection** | An enum representing the axis that should be scrolled. | [optional] | +|**showBackdrop** | **Boolean** | Gets or sets a value indicating whether to show backdrops on this item. | [optional] | +|**rememberSorting** | **Boolean** | Gets or sets a value indicating whether [remember sorting]. | [optional] | +|**sortOrder** | **SortOrder** | An enum representing the sorting order. | [optional] | +|**showSidebar** | **Boolean** | Gets or sets a value indicating whether [show sidebar]. | [optional] | +|**client** | **String** | Gets or sets the client. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DlnaProfileType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DlnaProfileType.md new file mode 100644 index 0000000000000..cc93228dd93aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DlnaProfileType.md @@ -0,0 +1,19 @@ + + +# DlnaProfileType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `PHOTO` (value: `"Photo"`) + +* `SUBTITLE` (value: `"Subtitle"`) + +* `LYRIC` (value: `"Lyric"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DownMixStereoAlgorithms.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DownMixStereoAlgorithms.md new file mode 100644 index 0000000000000..c518f981298df --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DownMixStereoAlgorithms.md @@ -0,0 +1,19 @@ + + +# DownMixStereoAlgorithms + +## Enum + + +* `NONE` (value: `"None"`) + +* `DAVE750` (value: `"Dave750"`) + +* `NIGHTMODE_DIALOGUE` (value: `"NightmodeDialogue"`) + +* `RFC7845` (value: `"Rfc7845"`) + +* `AC4` (value: `"Ac4"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicDayOfWeek.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicDayOfWeek.md new file mode 100644 index 0000000000000..f86a071d13b97 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicDayOfWeek.md @@ -0,0 +1,29 @@ + + +# DynamicDayOfWeek + +## Enum + + +* `SUNDAY` (value: `"Sunday"`) + +* `MONDAY` (value: `"Monday"`) + +* `TUESDAY` (value: `"Tuesday"`) + +* `WEDNESDAY` (value: `"Wednesday"`) + +* `THURSDAY` (value: `"Thursday"`) + +* `FRIDAY` (value: `"Friday"`) + +* `SATURDAY` (value: `"Saturday"`) + +* `EVERYDAY` (value: `"Everyday"`) + +* `WEEKDAY` (value: `"Weekday"`) + +* `WEEKEND` (value: `"Weekend"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicHlsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicHlsApi.md new file mode 100644 index 0000000000000..90b0e5a10d6fe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/DynamicHlsApi.md @@ -0,0 +1,1576 @@ +# DynamicHlsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getHlsAudioSegment**](DynamicHlsApi.md#getHlsAudioSegment) | **GET** /Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container} | Gets a video stream using HTTP live streaming. | +| [**getHlsVideoSegment**](DynamicHlsApi.md#getHlsVideoSegment) | **GET** /Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container} | Gets a video stream using HTTP live streaming. | +| [**getLiveHlsStream**](DynamicHlsApi.md#getLiveHlsStream) | **GET** /Videos/{itemId}/live.m3u8 | Gets a hls live stream. | +| [**getMasterHlsAudioPlaylist**](DynamicHlsApi.md#getMasterHlsAudioPlaylist) | **GET** /Audio/{itemId}/master.m3u8 | Gets an audio hls playlist stream. | +| [**getMasterHlsVideoPlaylist**](DynamicHlsApi.md#getMasterHlsVideoPlaylist) | **GET** /Videos/{itemId}/master.m3u8 | Gets a video hls playlist stream. | +| [**getVariantHlsAudioPlaylist**](DynamicHlsApi.md#getVariantHlsAudioPlaylist) | **GET** /Audio/{itemId}/main.m3u8 | Gets an audio stream using HTTP live streaming. | +| [**getVariantHlsVideoPlaylist**](DynamicHlsApi.md#getVariantHlsVideoPlaylist) | **GET** /Videos/{itemId}/main.m3u8 | Gets a video stream using HTTP live streaming. | +| [**headMasterHlsAudioPlaylist**](DynamicHlsApi.md#headMasterHlsAudioPlaylist) | **HEAD** /Audio/{itemId}/master.m3u8 | Gets an audio hls playlist stream. | +| [**headMasterHlsVideoPlaylist**](DynamicHlsApi.md#headMasterHlsVideoPlaylist) | **HEAD** /Videos/{itemId}/master.m3u8 | Gets a video hls playlist stream. | + + + +# **getHlsAudioSegment** +> File getHlsAudioSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + Integer segmentId = 56; // Integer | The segment id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Long runtimeTicks = 56L; // Long | The position of the requested segment in ticks. + Long actualSegmentLengthTicks = 56L; // Long | The length of the requested segment in ticks. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getHlsAudioSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getHlsAudioSegment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **Integer**| The segment id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **runtimeTicks** | **Long**| The position of the requested segment in ticks. | | +| **actualSegmentLengthTicks** | **Long**| The length of the requested segment in ticks. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getHlsVideoSegment** +> File getHlsVideoSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + Integer segmentId = 56; // Integer | The segment id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Long runtimeTicks = 56L; // Long | The position of the requested segment in ticks. + Long actualSegmentLengthTicks = 56L; // Long | The length of the requested segment in ticks. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The desired segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + Boolean alwaysBurnInSubtitleWhenTranscoding = false; // Boolean | Whether to always burn in subtitles when transcoding. + try { + File result = apiInstance.getHlsVideoSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getHlsVideoSegment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **Integer**| The segment id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **runtimeTicks** | **Long**| The position of the requested segment in ticks. | | +| **actualSegmentLengthTicks** | **Long**| The length of the requested segment in ticks. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The desired segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Whether to always burn in subtitles when transcoding. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveHlsStream** +> File getLiveHlsStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding) + +Gets a hls live stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Integer maxWidth = 56; // Integer | Optional. The max width. + Integer maxHeight = 56; // Integer | Optional. The max height. + Boolean enableSubtitlesInManifest = true; // Boolean | Optional. Whether to enable subtitles in the manifest. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + Boolean alwaysBurnInSubtitleWhenTranscoding = false; // Boolean | Whether to always burn in subtitles when transcoding. + try { + File result = apiInstance.getLiveHlsStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getLiveHlsStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **maxWidth** | **Integer**| Optional. The max width. | [optional] | +| **maxHeight** | **Integer**| Optional. The max height. | [optional] | +| **enableSubtitlesInManifest** | **Boolean**| Optional. Whether to enable subtitles in the manifest. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Whether to always burn in subtitles when transcoding. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls live stream retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMasterHlsAudioPlaylist** +> File getMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding) + +Gets an audio hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getMasterHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMasterHlsVideoPlaylist** +> File getMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding) + +Gets a video hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + Boolean enableTrickplay = true; // Boolean | Enable trickplay image playlists being added to master playlist. + Boolean enableAudioVbrEncoding = true; // Boolean | Whether to enable Audio Encoding. + Boolean alwaysBurnInSubtitleWhenTranscoding = false; // Boolean | Whether to always burn in subtitles when transcoding. + try { + File result = apiInstance.getMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getMasterHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | +| **enableTrickplay** | **Boolean**| Enable trickplay image playlists being added to master playlist. | [optional] [default to true] | +| **enableAudioVbrEncoding** | **Boolean**| Whether to enable Audio Encoding. | [optional] [default to true] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Whether to always burn in subtitles when transcoding. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVariantHlsAudioPlaylist** +> File getVariantHlsAudioPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets an audio stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getVariantHlsAudioPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getVariantHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVariantHlsVideoPlaylist** +> File getVariantHlsVideoPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + Boolean alwaysBurnInSubtitleWhenTranscoding = false; // Boolean | Whether to always burn in subtitles when transcoding. + try { + File result = apiInstance.getVariantHlsVideoPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getVariantHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Whether to always burn in subtitles when transcoding. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headMasterHlsAudioPlaylist** +> File headMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding) + +Gets an audio hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.headMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#headMasterHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headMasterHlsVideoPlaylist** +> File headMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding) + +Gets a video hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + Boolean enableTrickplay = true; // Boolean | Enable trickplay image playlists being added to master playlist. + Boolean enableAudioVbrEncoding = true; // Boolean | Whether to enable Audio Encoding. + Boolean alwaysBurnInSubtitleWhenTranscoding = false; // Boolean | Whether to always burn in subtitles when transcoding. + try { + File result = apiInstance.headMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#headMasterHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | +| **enableTrickplay** | **Boolean**| Enable trickplay image playlists being added to master playlist. | [optional] [default to true] | +| **enableAudioVbrEncoding** | **Boolean**| Whether to enable Audio Encoding. | [optional] [default to true] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Whether to always burn in subtitles when transcoding. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EmbeddedSubtitleOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EmbeddedSubtitleOptions.md new file mode 100644 index 0000000000000..157a005482b84 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EmbeddedSubtitleOptions.md @@ -0,0 +1,17 @@ + + +# EmbeddedSubtitleOptions + +## Enum + + +* `ALLOW_ALL` (value: `"AllowAll"`) + +* `ALLOW_TEXT` (value: `"AllowText"`) + +* `ALLOW_IMAGE` (value: `"AllowImage"`) + +* `ALLOW_NONE` (value: `"AllowNone"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncoderPreset.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncoderPreset.md new file mode 100644 index 0000000000000..c6f7daa97ba5a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncoderPreset.md @@ -0,0 +1,31 @@ + + +# EncoderPreset + +## Enum + + +* `AUTO` (value: `"auto"`) + +* `PLACEBO` (value: `"placebo"`) + +* `VERYSLOW` (value: `"veryslow"`) + +* `SLOWER` (value: `"slower"`) + +* `SLOW` (value: `"slow"`) + +* `MEDIUM` (value: `"medium"`) + +* `FAST` (value: `"fast"`) + +* `FASTER` (value: `"faster"`) + +* `VERYFAST` (value: `"veryfast"`) + +* `SUPERFAST` (value: `"superfast"`) + +* `ULTRAFAST` (value: `"ultrafast"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingContext.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingContext.md new file mode 100644 index 0000000000000..6ae43d9485bad --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingContext.md @@ -0,0 +1,13 @@ + + +# EncodingContext + +## Enum + + +* `STREAMING` (value: `"Streaming"`) + +* `STATIC` (value: `"Static"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingOptions.md new file mode 100644 index 0000000000000..1f16d8ff1fc25 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EncodingOptions.md @@ -0,0 +1,60 @@ + + +# EncodingOptions + +Class EncodingOptions. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**encodingThreadCount** | **Integer** | Gets or sets the thread count used for encoding. | [optional] | +|**transcodingTempPath** | **String** | Gets or sets the temporary transcoding path. | [optional] | +|**fallbackFontPath** | **String** | Gets or sets the path to the fallback font. | [optional] | +|**enableFallbackFont** | **Boolean** | Gets or sets a value indicating whether to use the fallback font. | [optional] | +|**enableAudioVbr** | **Boolean** | Gets or sets a value indicating whether audio VBR is enabled. | [optional] | +|**downMixAudioBoost** | **Double** | Gets or sets the audio boost applied when downmixing audio. | [optional] | +|**downMixStereoAlgorithm** | **DownMixStereoAlgorithms** | Gets or sets the algorithm used for downmixing audio to stereo. | [optional] | +|**maxMuxingQueueSize** | **Integer** | Gets or sets the maximum size of the muxing queue. | [optional] | +|**enableThrottling** | **Boolean** | Gets or sets a value indicating whether throttling is enabled. | [optional] | +|**throttleDelaySeconds** | **Integer** | Gets or sets the delay after which throttling happens. | [optional] | +|**enableSegmentDeletion** | **Boolean** | Gets or sets a value indicating whether segment deletion is enabled. | [optional] | +|**segmentKeepSeconds** | **Integer** | Gets or sets seconds for which segments should be kept before being deleted. | [optional] | +|**hardwareAccelerationType** | **HardwareAccelerationType** | Gets or sets the hardware acceleration type. | [optional] | +|**encoderAppPath** | **String** | Gets or sets the FFmpeg path as set by the user via the UI. | [optional] | +|**encoderAppPathDisplay** | **String** | Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. | [optional] | +|**vaapiDevice** | **String** | Gets or sets the VA-API device. | [optional] | +|**qsvDevice** | **String** | Gets or sets the QSV device. | [optional] | +|**enableTonemapping** | **Boolean** | Gets or sets a value indicating whether tonemapping is enabled. | [optional] | +|**enableVppTonemapping** | **Boolean** | Gets or sets a value indicating whether VPP tonemapping is enabled. | [optional] | +|**enableVideoToolboxTonemapping** | **Boolean** | Gets or sets a value indicating whether videotoolbox tonemapping is enabled. | [optional] | +|**tonemappingAlgorithm** | **TonemappingAlgorithm** | Gets or sets the tone-mapping algorithm. | [optional] | +|**tonemappingMode** | **TonemappingMode** | Gets or sets the tone-mapping mode. | [optional] | +|**tonemappingRange** | **TonemappingRange** | Gets or sets the tone-mapping range. | [optional] | +|**tonemappingDesat** | **Double** | Gets or sets the tone-mapping desaturation. | [optional] | +|**tonemappingPeak** | **Double** | Gets or sets the tone-mapping peak. | [optional] | +|**tonemappingParam** | **Double** | Gets or sets the tone-mapping parameters. | [optional] | +|**vppTonemappingBrightness** | **Double** | Gets or sets the VPP tone-mapping brightness. | [optional] | +|**vppTonemappingContrast** | **Double** | Gets or sets the VPP tone-mapping contrast. | [optional] | +|**h264Crf** | **Integer** | Gets or sets the H264 CRF. | [optional] | +|**h265Crf** | **Integer** | Gets or sets the H265 CRF. | [optional] | +|**encoderPreset** | **EncoderPreset** | Gets or sets the encoder preset. | [optional] | +|**deinterlaceDoubleRate** | **Boolean** | Gets or sets a value indicating whether the framerate is doubled when deinterlacing. | [optional] | +|**deinterlaceMethod** | **DeinterlaceMethod** | Gets or sets the deinterlace method. | [optional] | +|**enableDecodingColorDepth10Hevc** | **Boolean** | Gets or sets a value indicating whether 10bit HEVC decoding is enabled. | [optional] | +|**enableDecodingColorDepth10Vp9** | **Boolean** | Gets or sets a value indicating whether 10bit VP9 decoding is enabled. | [optional] | +|**enableDecodingColorDepth10HevcRext** | **Boolean** | Gets or sets a value indicating whether 8/10bit HEVC RExt decoding is enabled. | [optional] | +|**enableDecodingColorDepth12HevcRext** | **Boolean** | Gets or sets a value indicating whether 12bit HEVC RExt decoding is enabled. | [optional] | +|**enableEnhancedNvdecDecoder** | **Boolean** | Gets or sets a value indicating whether the enhanced NVDEC is enabled. | [optional] | +|**preferSystemNativeHwDecoder** | **Boolean** | Gets or sets a value indicating whether the system native hardware decoder should be used. | [optional] | +|**enableIntelLowPowerH264HwEncoder** | **Boolean** | Gets or sets a value indicating whether the Intel H264 low-power hardware encoder should be used. | [optional] | +|**enableIntelLowPowerHevcHwEncoder** | **Boolean** | Gets or sets a value indicating whether the Intel HEVC low-power hardware encoder should be used. | [optional] | +|**enableHardwareEncoding** | **Boolean** | Gets or sets a value indicating whether hardware encoding is enabled. | [optional] | +|**allowHevcEncoding** | **Boolean** | Gets or sets a value indicating whether HEVC encoding is enabled. | [optional] | +|**allowAv1Encoding** | **Boolean** | Gets or sets a value indicating whether AV1 encoding is enabled. | [optional] | +|**enableSubtitleExtraction** | **Boolean** | Gets or sets a value indicating whether subtitle extraction is enabled. | [optional] | +|**hardwareDecodingCodecs** | **List<String>** | Gets or sets the codecs hardware encoding is used for. | [optional] | +|**allowOnDemandMetadataBasedKeyframeExtractionForExtensions** | **List<String>** | Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EndPointInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EndPointInfo.md new file mode 100644 index 0000000000000..cf258ffac8063 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EndPointInfo.md @@ -0,0 +1,14 @@ + + +# EndPointInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isLocal** | **Boolean** | | [optional] | +|**isInNetwork** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EnvironmentApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EnvironmentApi.md new file mode 100644 index 0000000000000..d502c293cdd78 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/EnvironmentApi.md @@ -0,0 +1,420 @@ +# EnvironmentApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getDefaultDirectoryBrowser**](EnvironmentApi.md#getDefaultDirectoryBrowser) | **GET** /Environment/DefaultDirectoryBrowser | Get Default directory browser. | +| [**getDirectoryContents**](EnvironmentApi.md#getDirectoryContents) | **GET** /Environment/DirectoryContents | Gets the contents of a given directory in the file system. | +| [**getDrives**](EnvironmentApi.md#getDrives) | **GET** /Environment/Drives | Gets available drives from the server's file system. | +| [**getNetworkShares**](EnvironmentApi.md#getNetworkShares) | **GET** /Environment/NetworkShares | Gets network paths. | +| [**getParentPath**](EnvironmentApi.md#getParentPath) | **GET** /Environment/ParentPath | Gets the parent path of a given path. | +| [**validatePath**](EnvironmentApi.md#validatePath) | **POST** /Environment/ValidatePath | Validates path. | + + + +# **getDefaultDirectoryBrowser** +> DefaultDirectoryBrowserInfoDto getDefaultDirectoryBrowser() + +Get Default directory browser. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + DefaultDirectoryBrowserInfoDto result = apiInstance.getDefaultDirectoryBrowser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDefaultDirectoryBrowser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**DefaultDirectoryBrowserInfoDto**](DefaultDirectoryBrowserInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default directory browser returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDirectoryContents** +> List<FileSystemEntryInfo> getDirectoryContents(path, includeFiles, includeDirectories) + +Gets the contents of a given directory in the file system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + String path = "path_example"; // String | The path. + Boolean includeFiles = false; // Boolean | An optional filter to include or exclude files from the results. true/false. + Boolean includeDirectories = false; // Boolean | An optional filter to include or exclude folders from the results. true/false. + try { + List result = apiInstance.getDirectoryContents(path, includeFiles, includeDirectories); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDirectoryContents"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **path** | **String**| The path. | | +| **includeFiles** | **Boolean**| An optional filter to include or exclude files from the results. true/false. | [optional] [default to false] | +| **includeDirectories** | **Boolean**| An optional filter to include or exclude folders from the results. true/false. | [optional] [default to false] | + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Directory contents returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDrives** +> List<FileSystemEntryInfo> getDrives() + +Gets available drives from the server's file system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + List result = apiInstance.getDrives(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDrives"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | List of entries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNetworkShares** +> List<FileSystemEntryInfo> getNetworkShares() + +Gets network paths. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + List result = apiInstance.getNetworkShares(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getNetworkShares"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Empty array returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getParentPath** +> String getParentPath(path) + +Gets the parent path of a given path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + String path = "path_example"; // String | The path. + try { + String result = apiInstance.getParentPath(path); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getParentPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **path** | **String**| The path. | | + +### Return type + +**String** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **validatePath** +> validatePath(validatePathDto) + +Validates path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + ValidatePathDto validatePathDto = new ValidatePathDto(); // ValidatePathDto | Validate request object. + try { + apiInstance.validatePath(validatePathDto); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#validatePath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **validatePathDto** | [**ValidatePathDto**](ValidatePathDto.md)| Validate request object. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Path validated. | - | +| **404** | Path not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdInfo.md new file mode 100644 index 0000000000000..1915de19d174e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdInfo.md @@ -0,0 +1,17 @@ + + +# ExternalIdInfo + +Represents the external id information for serialization to the client. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc). | [optional] | +|**key** | **String** | Gets or sets the unique key for this id. This key should be unique across all providers. | [optional] | +|**type** | **ExternalIdMediaType** | Gets or sets the specific media type for this id. This is used to distinguish between the different external id types for providers with multiple ids. A null value indicates there is no specific media type associated with the external id, or this is the default id for the external provider so there is no need to specify a type. | [optional] | +|**urlFormatString** | **String** | Gets or sets the URL format string. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdMediaType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdMediaType.md new file mode 100644 index 0000000000000..fcb7fd41ab7fe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalIdMediaType.md @@ -0,0 +1,35 @@ + + +# ExternalIdMediaType + +## Enum + + +* `ALBUM` (value: `"Album"`) + +* `ALBUM_ARTIST` (value: `"AlbumArtist"`) + +* `ARTIST` (value: `"Artist"`) + +* `BOX_SET` (value: `"BoxSet"`) + +* `EPISODE` (value: `"Episode"`) + +* `MOVIE` (value: `"Movie"`) + +* `OTHER_ARTIST` (value: `"OtherArtist"`) + +* `PERSON` (value: `"Person"`) + +* `RELEASE_GROUP` (value: `"ReleaseGroup"`) + +* `SEASON` (value: `"Season"`) + +* `SERIES` (value: `"Series"`) + +* `TRACK` (value: `"Track"`) + +* `BOOK` (value: `"Book"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalUrl.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalUrl.md new file mode 100644 index 0000000000000..75a2b08a6cb63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExternalUrl.md @@ -0,0 +1,14 @@ + + +# ExternalUrl + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**url** | **String** | Gets or sets the type of the item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExtraType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExtraType.md new file mode 100644 index 0000000000000..60f0bef34acaa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ExtraType.md @@ -0,0 +1,33 @@ + + +# ExtraType + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `CLIP` (value: `"Clip"`) + +* `TRAILER` (value: `"Trailer"`) + +* `BEHIND_THE_SCENES` (value: `"BehindTheScenes"`) + +* `DELETED_SCENE` (value: `"DeletedScene"`) + +* `INTERVIEW` (value: `"Interview"`) + +* `SCENE` (value: `"Scene"`) + +* `SAMPLE` (value: `"Sample"`) + +* `THEME_SONG` (value: `"ThemeSong"`) + +* `THEME_VIDEO` (value: `"ThemeVideo"`) + +* `FEATURETTE` (value: `"Featurette"`) + +* `SHORT` (value: `"Short"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryInfo.md new file mode 100644 index 0000000000000..8994e3301eb17 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryInfo.md @@ -0,0 +1,16 @@ + + +# FileSystemEntryInfo + +Class FileSystemEntryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**path** | **String** | Gets the path. | [optional] | +|**type** | **FileSystemEntryType** | Gets the type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryType.md new file mode 100644 index 0000000000000..c3187822b27e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FileSystemEntryType.md @@ -0,0 +1,17 @@ + + +# FileSystemEntryType + +## Enum + + +* `FILE` (value: `"File"`) + +* `DIRECTORY` (value: `"Directory"`) + +* `NETWORK_COMPUTER` (value: `"NetworkComputer"`) + +* `NETWORK_SHARE` (value: `"NetworkShare"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FilterApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FilterApi.md new file mode 100644 index 0000000000000..11ca9d84da984 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FilterApi.md @@ -0,0 +1,172 @@ +# FilterApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getQueryFilters**](FilterApi.md#getQueryFilters) | **GET** /Items/Filters2 | Gets query filters. | +| [**getQueryFiltersLegacy**](FilterApi.md#getQueryFiltersLegacy) | **GET** /Items/Filters | Gets legacy query filters. | + + + +# **getQueryFilters** +> QueryFilters getQueryFilters(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive) + +Gets query filters. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.FilterApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + FilterApi apiInstance = new FilterApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isAiring = true; // Boolean | Optional. Is item airing. + Boolean isMovie = true; // Boolean | Optional. Is item movie. + Boolean isSports = true; // Boolean | Optional. Is item sports. + Boolean isKids = true; // Boolean | Optional. Is item kids. + Boolean isNews = true; // Boolean | Optional. Is item news. + Boolean isSeries = true; // Boolean | Optional. Is item series. + Boolean recursive = true; // Boolean | Optional. Search recursive. + try { + QueryFilters result = apiInstance.getQueryFilters(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FilterApi#getQueryFilters"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User id. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isAiring** | **Boolean**| Optional. Is item airing. | [optional] | +| **isMovie** | **Boolean**| Optional. Is item movie. | [optional] | +| **isSports** | **Boolean**| Optional. Is item sports. | [optional] | +| **isKids** | **Boolean**| Optional. Is item kids. | [optional] | +| **isNews** | **Boolean**| Optional. Is item news. | [optional] | +| **isSeries** | **Boolean**| Optional. Is item series. | [optional] | +| **recursive** | **Boolean**| Optional. Search recursive. | [optional] | + +### Return type + +[**QueryFilters**](QueryFilters.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Filters retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getQueryFiltersLegacy** +> QueryFiltersLegacy getQueryFiltersLegacy(userId, parentId, includeItemTypes, mediaTypes) + +Gets legacy query filters. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.FilterApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + FilterApi apiInstance = new FilterApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Parent id. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + try { + QueryFiltersLegacy result = apiInstance.getQueryFiltersLegacy(userId, parentId, includeItemTypes, mediaTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FilterApi#getQueryFiltersLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User id. | [optional] | +| **parentId** | **UUID**| Optional. Parent id. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | + +### Return type + +[**QueryFiltersLegacy**](QueryFiltersLegacy.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Legacy filters retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FontFile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FontFile.md new file mode 100644 index 0000000000000..a18a7c6f114b6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/FontFile.md @@ -0,0 +1,17 @@ + + +# FontFile + +Class FontFile. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateModified** | **OffsetDateTime** | Gets or sets the date modified. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForceKeepAliveMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForceKeepAliveMessage.md new file mode 100644 index 0000000000000..e6311bfa1a0f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForceKeepAliveMessage.md @@ -0,0 +1,16 @@ + + +# ForceKeepAliveMessage + +Force keep alive websocket messages. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **Integer** | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordAction.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordAction.md new file mode 100644 index 0000000000000..706a737eac14b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordAction.md @@ -0,0 +1,15 @@ + + +# ForgotPasswordAction + +## Enum + + +* `CONTACT_ADMIN` (value: `"ContactAdmin"`) + +* `PIN_CODE` (value: `"PinCode"`) + +* `IN_NETWORK_REQUIRED` (value: `"InNetworkRequired"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordDto.md new file mode 100644 index 0000000000000..86ea66245fb2d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordDto.md @@ -0,0 +1,14 @@ + + +# ForgotPasswordDto + +Forgot Password request body DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enteredUsername** | **String** | Gets or sets the entered username to have its password reset. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordPinDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordPinDto.md new file mode 100644 index 0000000000000..bbbafdbc98137 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordPinDto.md @@ -0,0 +1,14 @@ + + +# ForgotPasswordPinDto + +Forgot Password Pin enter request body DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pin** | **String** | Gets or sets the entered pin to have the password reset. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordResult.md new file mode 100644 index 0000000000000..89c1c13ea2991 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ForgotPasswordResult.md @@ -0,0 +1,15 @@ + + +# ForgotPasswordResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**action** | **ForgotPasswordAction** | Gets or sets the action. | [optional] | +|**pinFile** | **String** | Gets or sets the pin file. | [optional] | +|**pinExpirationDate** | **OffsetDateTime** | Gets or sets the pin expiration date. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommand.md new file mode 100644 index 0000000000000..25275e04154f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommand.md @@ -0,0 +1,15 @@ + + +# GeneralCommand + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **GeneralCommandType** | This exists simply to identify a set of known commands. | [optional] | +|**controllingUserId** | **UUID** | | [optional] | +|**arguments** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandMessage.md new file mode 100644 index 0000000000000..0710989cbfd84 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandMessage.md @@ -0,0 +1,16 @@ + + +# GeneralCommandMessage + +General command websocket message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**GeneralCommand**](GeneralCommand.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandType.md new file mode 100644 index 0000000000000..0592366c6fd7f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GeneralCommandType.md @@ -0,0 +1,95 @@ + + +# GeneralCommandType + +## Enum + + +* `MOVE_UP` (value: `"MoveUp"`) + +* `MOVE_DOWN` (value: `"MoveDown"`) + +* `MOVE_LEFT` (value: `"MoveLeft"`) + +* `MOVE_RIGHT` (value: `"MoveRight"`) + +* `PAGE_UP` (value: `"PageUp"`) + +* `PAGE_DOWN` (value: `"PageDown"`) + +* `PREVIOUS_LETTER` (value: `"PreviousLetter"`) + +* `NEXT_LETTER` (value: `"NextLetter"`) + +* `TOGGLE_OSD` (value: `"ToggleOsd"`) + +* `TOGGLE_CONTEXT_MENU` (value: `"ToggleContextMenu"`) + +* `SELECT` (value: `"Select"`) + +* `BACK` (value: `"Back"`) + +* `TAKE_SCREENSHOT` (value: `"TakeScreenshot"`) + +* `SEND_KEY` (value: `"SendKey"`) + +* `SEND_STRING` (value: `"SendString"`) + +* `GO_HOME` (value: `"GoHome"`) + +* `GO_TO_SETTINGS` (value: `"GoToSettings"`) + +* `VOLUME_UP` (value: `"VolumeUp"`) + +* `VOLUME_DOWN` (value: `"VolumeDown"`) + +* `MUTE` (value: `"Mute"`) + +* `UNMUTE` (value: `"Unmute"`) + +* `TOGGLE_MUTE` (value: `"ToggleMute"`) + +* `SET_VOLUME` (value: `"SetVolume"`) + +* `SET_AUDIO_STREAM_INDEX` (value: `"SetAudioStreamIndex"`) + +* `SET_SUBTITLE_STREAM_INDEX` (value: `"SetSubtitleStreamIndex"`) + +* `TOGGLE_FULLSCREEN` (value: `"ToggleFullscreen"`) + +* `DISPLAY_CONTENT` (value: `"DisplayContent"`) + +* `GO_TO_SEARCH` (value: `"GoToSearch"`) + +* `DISPLAY_MESSAGE` (value: `"DisplayMessage"`) + +* `SET_REPEAT_MODE` (value: `"SetRepeatMode"`) + +* `CHANNEL_UP` (value: `"ChannelUp"`) + +* `CHANNEL_DOWN` (value: `"ChannelDown"`) + +* `GUIDE` (value: `"Guide"`) + +* `TOGGLE_STATS` (value: `"ToggleStats"`) + +* `PLAY_MEDIA_SOURCE` (value: `"PlayMediaSource"`) + +* `PLAY_TRAILERS` (value: `"PlayTrailers"`) + +* `SET_SHUFFLE_QUEUE` (value: `"SetShuffleQueue"`) + +* `PLAY_STATE` (value: `"PlayState"`) + +* `PLAY_NEXT` (value: `"PlayNext"`) + +* `TOGGLE_OSD_MENU` (value: `"ToggleOsdMenu"`) + +* `PLAY` (value: `"Play"`) + +* `SET_MAX_STREAMING_BITRATE` (value: `"SetMaxStreamingBitrate"`) + +* `SET_PLAYBACK_ORDER` (value: `"SetPlaybackOrder"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GenresApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GenresApi.md new file mode 100644 index 0000000000000..852ae01bf258e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GenresApi.md @@ -0,0 +1,184 @@ +# GenresApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getGenre**](GenresApi.md#getGenre) | **GET** /Genres/{genreName} | Gets a genre, by name. | +| [**getGenres**](GenresApi.md#getGenres) | **GET** /Genres | Gets all genres from a given item, folder, or the entire library. | + + + +# **getGenre** +> BaseItemDto getGenre(genreName, userId) + +Gets a genre, by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.GenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + GenresApi apiInstance = new GenresApi(defaultClient); + String genreName = "genreName_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + BaseItemDto result = apiInstance.getGenre(genreName, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling GenresApi#getGenre"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **genreName** | **String**| The genre name. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getGenres** +> BaseItemDtoQueryResult getGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all genres from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.GenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + GenresApi apiInstance = new GenresApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Include total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling GenresApi#getGenres"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Optional. Include total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GetProgramsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GetProgramsDto.md new file mode 100644 index 0000000000000..6b08bcf5fbf99 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GetProgramsDto.md @@ -0,0 +1,40 @@ + + +# GetProgramsDto + +Get programs dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**channelIds** | **List<UUID>** | Gets or sets the channels to return guide information for. | [optional] | +|**userId** | **UUID** | Gets or sets optional. Filter by user id. | [optional] | +|**minStartDate** | **OffsetDateTime** | Gets or sets the minimum premiere start date. | [optional] | +|**hasAired** | **Boolean** | Gets or sets filter by programs that have completed airing, or not. | [optional] | +|**isAiring** | **Boolean** | Gets or sets filter by programs that are currently airing, or not. | [optional] | +|**maxStartDate** | **OffsetDateTime** | Gets or sets the maximum premiere start date. | [optional] | +|**minEndDate** | **OffsetDateTime** | Gets or sets the minimum premiere end date. | [optional] | +|**maxEndDate** | **OffsetDateTime** | Gets or sets the maximum premiere end date. | [optional] | +|**isMovie** | **Boolean** | Gets or sets filter for movies. | [optional] | +|**isSeries** | **Boolean** | Gets or sets filter for series. | [optional] | +|**isNews** | **Boolean** | Gets or sets filter for news. | [optional] | +|**isKids** | **Boolean** | Gets or sets filter for kids. | [optional] | +|**isSports** | **Boolean** | Gets or sets filter for sports. | [optional] | +|**startIndex** | **Integer** | Gets or sets the record index to start at. All items with a lower index will be dropped from the results. | [optional] | +|**limit** | **Integer** | Gets or sets the maximum number of records to return. | [optional] | +|**sortBy** | **List<ItemSortBy>** | Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate. | [optional] | +|**sortOrder** | **List<SortOrder>** | Gets or sets sort order. | [optional] | +|**genres** | **List<String>** | Gets or sets the genres to return guide information for. | [optional] | +|**genreIds** | **List<UUID>** | Gets or sets the genre ids to return guide information for. | [optional] | +|**enableImages** | **Boolean** | Gets or sets include image information in output. | [optional] | +|**enableTotalRecordCount** | **Boolean** | Gets or sets a value indicating whether retrieve total record count. | [optional] | +|**imageTypeLimit** | **Integer** | Gets or sets the max number of images to return, per image type. | [optional] | +|**enableImageTypes** | **List<ImageType>** | Gets or sets the image types to include in the output. | [optional] | +|**enableUserData** | **Boolean** | Gets or sets include user data. | [optional] | +|**seriesTimerId** | **String** | Gets or sets filter by series timer id. | [optional] | +|**librarySeriesId** | **UUID** | Gets or sets filter by library series id. | [optional] | +|**fields** | **List<ItemFields>** | Gets or sets specify additional fields of information to return in the output. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDto.md new file mode 100644 index 0000000000000..dad9fb69083eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDto.md @@ -0,0 +1,18 @@ + + +# GroupInfoDto + +Class GroupInfoDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] | +|**groupName** | **String** | Gets the group name. | [optional] | +|**state** | **GroupStateType** | Gets the group state. | [optional] | +|**participants** | **List<String>** | Gets the participants. | [optional] | +|**lastUpdatedAt** | **OffsetDateTime** | Gets the date when this DTO has been created. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDtoGroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDtoGroupUpdate.md new file mode 100644 index 0000000000000..b58664b8329fb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupInfoDtoGroupUpdate.md @@ -0,0 +1,16 @@ + + +# GroupInfoDtoGroupUpdate + +Class GroupUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] [readonly] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | [**GroupInfoDto**](GroupInfoDto.md) | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupQueueMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupQueueMode.md new file mode 100644 index 0000000000000..b8071426dfe86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupQueueMode.md @@ -0,0 +1,13 @@ + + +# GroupQueueMode + +## Enum + + +* `QUEUE` (value: `"Queue"`) + +* `QUEUE_NEXT` (value: `"QueueNext"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupRepeatMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupRepeatMode.md new file mode 100644 index 0000000000000..2ffe466256c3e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupRepeatMode.md @@ -0,0 +1,15 @@ + + +# GroupRepeatMode + +## Enum + + +* `REPEAT_ONE` (value: `"RepeatOne"`) + +* `REPEAT_ALL` (value: `"RepeatAll"`) + +* `REPEAT_NONE` (value: `"RepeatNone"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupShuffleMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupShuffleMode.md new file mode 100644 index 0000000000000..d6786fcecad18 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupShuffleMode.md @@ -0,0 +1,13 @@ + + +# GroupShuffleMode + +## Enum + + +* `SORTED` (value: `"Sorted"`) + +* `SHUFFLE` (value: `"Shuffle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateType.md new file mode 100644 index 0000000000000..58610ecda54b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateType.md @@ -0,0 +1,17 @@ + + +# GroupStateType + +## Enum + + +* `IDLE` (value: `"Idle"`) + +* `WAITING` (value: `"Waiting"`) + +* `PAUSED` (value: `"Paused"`) + +* `PLAYING` (value: `"Playing"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdate.md new file mode 100644 index 0000000000000..22f8107ebeeb3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdate.md @@ -0,0 +1,15 @@ + + +# GroupStateUpdate + +Class GroupStateUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**state** | **GroupStateType** | Gets the state of the group. | [optional] | +|**reason** | **PlaybackRequestType** | Gets the reason of the state change. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdateGroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdateGroupUpdate.md new file mode 100644 index 0000000000000..9c177baebae95 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupStateUpdateGroupUpdate.md @@ -0,0 +1,16 @@ + + +# GroupStateUpdateGroupUpdate + +Class GroupUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] [readonly] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | [**GroupStateUpdate**](GroupStateUpdate.md) | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdate.md new file mode 100644 index 0000000000000..8907877b33241 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdate.md @@ -0,0 +1,16 @@ + + +# GroupUpdate + +Group update without data. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] [readonly] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | [**PlayQueueUpdate**](PlayQueueUpdate.md) | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdateType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdateType.md new file mode 100644 index 0000000000000..60be6d293f957 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GroupUpdateType.md @@ -0,0 +1,31 @@ + + +# GroupUpdateType + +## Enum + + +* `USER_JOINED` (value: `"UserJoined"`) + +* `USER_LEFT` (value: `"UserLeft"`) + +* `GROUP_JOINED` (value: `"GroupJoined"`) + +* `GROUP_LEFT` (value: `"GroupLeft"`) + +* `STATE_UPDATE` (value: `"StateUpdate"`) + +* `PLAY_QUEUE` (value: `"PlayQueue"`) + +* `NOT_IN_GROUP` (value: `"NotInGroup"`) + +* `GROUP_DOES_NOT_EXIST` (value: `"GroupDoesNotExist"`) + +* `CREATE_GROUP_DENIED` (value: `"CreateGroupDenied"`) + +* `JOIN_GROUP_DENIED` (value: `"JoinGroupDenied"`) + +* `LIBRARY_ACCESS_DENIED` (value: `"LibraryAccessDenied"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GuideInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GuideInfo.md new file mode 100644 index 0000000000000..8fcd257ac979f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/GuideInfo.md @@ -0,0 +1,14 @@ + + +# GuideInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startDate** | **OffsetDateTime** | Gets or sets the start date. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HardwareAccelerationType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HardwareAccelerationType.md new file mode 100644 index 0000000000000..5dba0edb9cf12 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HardwareAccelerationType.md @@ -0,0 +1,25 @@ + + +# HardwareAccelerationType + +## Enum + + +* `NONE` (value: `"none"`) + +* `AMF` (value: `"amf"`) + +* `QSV` (value: `"qsv"`) + +* `NVENC` (value: `"nvenc"`) + +* `V4L2M2M` (value: `"v4l2m2m"`) + +* `VAAPI` (value: `"vaapi"`) + +* `VIDEOTOOLBOX` (value: `"videotoolbox"`) + +* `RKMPP` (value: `"rkmpp"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HlsSegmentApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HlsSegmentApi.md new file mode 100644 index 0000000000000..c729c73a46496 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/HlsSegmentApi.md @@ -0,0 +1,345 @@ +# HlsSegmentApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getHlsAudioSegmentLegacyAac**](HlsSegmentApi.md#getHlsAudioSegmentLegacyAac) | **GET** /Audio/{itemId}/hls/{segmentId}/stream.aac | Gets the specified audio segment for an audio item. | +| [**getHlsAudioSegmentLegacyMp3**](HlsSegmentApi.md#getHlsAudioSegmentLegacyMp3) | **GET** /Audio/{itemId}/hls/{segmentId}/stream.mp3 | Gets the specified audio segment for an audio item. | +| [**getHlsPlaylistLegacy**](HlsSegmentApi.md#getHlsPlaylistLegacy) | **GET** /Videos/{itemId}/hls/{playlistId}/stream.m3u8 | Gets a hls video playlist. | +| [**getHlsVideoSegmentLegacy**](HlsSegmentApi.md#getHlsVideoSegmentLegacy) | **GET** /Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer} | Gets a hls video segment. | +| [**stopEncodingProcess**](HlsSegmentApi.md#stopEncodingProcess) | **DELETE** /Videos/ActiveEncodings | Stops an active encoding. | + + + +# **getHlsAudioSegmentLegacyAac** +> File getHlsAudioSegmentLegacyAac(itemId, segmentId) + +Gets the specified audio segment for an audio item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String segmentId = "segmentId_example"; // String | The segment id. + try { + File result = apiInstance.getHlsAudioSegmentLegacyAac(itemId, segmentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsAudioSegmentLegacyAac"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **segmentId** | **String**| The segment id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls audio segment returned. | - | + + +# **getHlsAudioSegmentLegacyMp3** +> File getHlsAudioSegmentLegacyMp3(itemId, segmentId) + +Gets the specified audio segment for an audio item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String segmentId = "segmentId_example"; // String | The segment id. + try { + File result = apiInstance.getHlsAudioSegmentLegacyMp3(itemId, segmentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsAudioSegmentLegacyMp3"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **segmentId** | **String**| The segment id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls audio segment returned. | - | + + +# **getHlsPlaylistLegacy** +> File getHlsPlaylistLegacy(itemId, playlistId) + +Gets a hls video playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The video id. + String playlistId = "playlistId_example"; // String | The playlist id. + try { + File result = apiInstance.getHlsPlaylistLegacy(itemId, playlistId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsPlaylistLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The video id. | | +| **playlistId** | **String**| The playlist id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls video playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getHlsVideoSegmentLegacy** +> File getHlsVideoSegmentLegacy(itemId, playlistId, segmentId, segmentContainer) + +Gets a hls video segment. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + String segmentId = "segmentId_example"; // String | The segment id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + try { + File result = apiInstance.getHlsVideoSegmentLegacy(itemId, playlistId, segmentId, segmentContainer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsVideoSegmentLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **String**| The segment id. | | +| **segmentContainer** | **String**| The segment container. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls video segment returned. | - | +| **404** | Hls segment not found. | - | + + +# **stopEncodingProcess** +> stopEncodingProcess(deviceId, playSessionId) + +Stops an active encoding. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String playSessionId = "playSessionId_example"; // String | The play session id. + try { + apiInstance.stopEncodingProcess(deviceId, playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#stopEncodingProcess"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | | +| **playSessionId** | **String**| The play session id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Encoding stopped successfully. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IPlugin.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IPlugin.md new file mode 100644 index 0000000000000..7548ba304363f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IPlugin.md @@ -0,0 +1,20 @@ + + +# IPlugin + +Defines the MediaBrowser.Common.Plugins.IPlugin. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name of the plugin. | [optional] [readonly] | +|**description** | **String** | Gets the Description. | [optional] [readonly] | +|**id** | **UUID** | Gets the unique id. | [optional] [readonly] | +|**version** | **String** | Gets the plugin version. | [optional] [readonly] | +|**assemblyFilePath** | **String** | Gets the path to the assembly file. | [optional] [readonly] | +|**canUninstall** | **Boolean** | Gets a value indicating whether the plugin can be uninstalled. | [optional] [readonly] | +|**dataFolderPath** | **String** | Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IgnoreWaitRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IgnoreWaitRequestDto.md new file mode 100644 index 0000000000000..4485049a59dcb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IgnoreWaitRequestDto.md @@ -0,0 +1,14 @@ + + +# IgnoreWaitRequestDto + +Class IgnoreWaitRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ignoreWait** | **Boolean** | Gets or sets a value indicating whether the client should be ignored. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageApi.md new file mode 100644 index 0000000000000..fe12fa2d51977 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageApi.md @@ -0,0 +1,3257 @@ +# ImageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteCustomSplashscreen**](ImageApi.md#deleteCustomSplashscreen) | **DELETE** /Branding/Splashscreen | Delete a custom splashscreen. | +| [**deleteItemImage**](ImageApi.md#deleteItemImage) | **DELETE** /Items/{itemId}/Images/{imageType} | Delete an item's image. | +| [**deleteItemImageByIndex**](ImageApi.md#deleteItemImageByIndex) | **DELETE** /Items/{itemId}/Images/{imageType}/{imageIndex} | Delete an item's image. | +| [**deleteUserImage**](ImageApi.md#deleteUserImage) | **DELETE** /UserImage | Delete the user's image. | +| [**getArtistImage**](ImageApi.md#getArtistImage) | **GET** /Artists/{name}/Images/{imageType}/{imageIndex} | Get artist image by name. | +| [**getGenreImage**](ImageApi.md#getGenreImage) | **GET** /Genres/{name}/Images/{imageType} | Get genre image by name. | +| [**getGenreImageByIndex**](ImageApi.md#getGenreImageByIndex) | **GET** /Genres/{name}/Images/{imageType}/{imageIndex} | Get genre image by name. | +| [**getItemImage**](ImageApi.md#getItemImage) | **GET** /Items/{itemId}/Images/{imageType} | Gets the item's image. | +| [**getItemImage2**](ImageApi.md#getItemImage2) | **GET** /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount} | Gets the item's image. | +| [**getItemImageByIndex**](ImageApi.md#getItemImageByIndex) | **GET** /Items/{itemId}/Images/{imageType}/{imageIndex} | Gets the item's image. | +| [**getItemImageInfos**](ImageApi.md#getItemImageInfos) | **GET** /Items/{itemId}/Images | Get item image infos. | +| [**getMusicGenreImage**](ImageApi.md#getMusicGenreImage) | **GET** /MusicGenres/{name}/Images/{imageType} | Get music genre image by name. | +| [**getMusicGenreImageByIndex**](ImageApi.md#getMusicGenreImageByIndex) | **GET** /MusicGenres/{name}/Images/{imageType}/{imageIndex} | Get music genre image by name. | +| [**getPersonImage**](ImageApi.md#getPersonImage) | **GET** /Persons/{name}/Images/{imageType} | Get person image by name. | +| [**getPersonImageByIndex**](ImageApi.md#getPersonImageByIndex) | **GET** /Persons/{name}/Images/{imageType}/{imageIndex} | Get person image by name. | +| [**getSplashscreen**](ImageApi.md#getSplashscreen) | **GET** /Branding/Splashscreen | Generates or gets the splashscreen. | +| [**getStudioImage**](ImageApi.md#getStudioImage) | **GET** /Studios/{name}/Images/{imageType} | Get studio image by name. | +| [**getStudioImageByIndex**](ImageApi.md#getStudioImageByIndex) | **GET** /Studios/{name}/Images/{imageType}/{imageIndex} | Get studio image by name. | +| [**getUserImage**](ImageApi.md#getUserImage) | **GET** /UserImage | Get user profile image. | +| [**headArtistImage**](ImageApi.md#headArtistImage) | **HEAD** /Artists/{name}/Images/{imageType}/{imageIndex} | Get artist image by name. | +| [**headGenreImage**](ImageApi.md#headGenreImage) | **HEAD** /Genres/{name}/Images/{imageType} | Get genre image by name. | +| [**headGenreImageByIndex**](ImageApi.md#headGenreImageByIndex) | **HEAD** /Genres/{name}/Images/{imageType}/{imageIndex} | Get genre image by name. | +| [**headItemImage**](ImageApi.md#headItemImage) | **HEAD** /Items/{itemId}/Images/{imageType} | Gets the item's image. | +| [**headItemImage2**](ImageApi.md#headItemImage2) | **HEAD** /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount} | Gets the item's image. | +| [**headItemImageByIndex**](ImageApi.md#headItemImageByIndex) | **HEAD** /Items/{itemId}/Images/{imageType}/{imageIndex} | Gets the item's image. | +| [**headMusicGenreImage**](ImageApi.md#headMusicGenreImage) | **HEAD** /MusicGenres/{name}/Images/{imageType} | Get music genre image by name. | +| [**headMusicGenreImageByIndex**](ImageApi.md#headMusicGenreImageByIndex) | **HEAD** /MusicGenres/{name}/Images/{imageType}/{imageIndex} | Get music genre image by name. | +| [**headPersonImage**](ImageApi.md#headPersonImage) | **HEAD** /Persons/{name}/Images/{imageType} | Get person image by name. | +| [**headPersonImageByIndex**](ImageApi.md#headPersonImageByIndex) | **HEAD** /Persons/{name}/Images/{imageType}/{imageIndex} | Get person image by name. | +| [**headStudioImage**](ImageApi.md#headStudioImage) | **HEAD** /Studios/{name}/Images/{imageType} | Get studio image by name. | +| [**headStudioImageByIndex**](ImageApi.md#headStudioImageByIndex) | **HEAD** /Studios/{name}/Images/{imageType}/{imageIndex} | Get studio image by name. | +| [**headUserImage**](ImageApi.md#headUserImage) | **HEAD** /UserImage | Get user profile image. | +| [**postUserImage**](ImageApi.md#postUserImage) | **POST** /UserImage | Sets the user image. | +| [**setItemImage**](ImageApi.md#setItemImage) | **POST** /Items/{itemId}/Images/{imageType} | Set item image. | +| [**setItemImageByIndex**](ImageApi.md#setItemImageByIndex) | **POST** /Items/{itemId}/Images/{imageType}/{imageIndex} | Set item image. | +| [**updateItemImageIndex**](ImageApi.md#updateItemImageIndex) | **POST** /Items/{itemId}/Images/{imageType}/{imageIndex}/Index | Updates the index for an item image. | +| [**uploadCustomSplashscreen**](ImageApi.md#uploadCustomSplashscreen) | **POST** /Branding/Splashscreen | Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. | + + + +# **deleteCustomSplashscreen** +> deleteCustomSplashscreen() + +Delete a custom splashscreen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + try { + apiInstance.deleteCustomSplashscreen(); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteCustomSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Successfully deleted the custom splashscreen. | - | +| **403** | User does not have permission to delete splashscreen.. | - | +| **401** | Unauthorized | - | + + +# **deleteItemImage** +> deleteItemImage(itemId, imageType, imageIndex) + +Delete an item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | The image index. + try { + apiInstance.deleteItemImage(itemId, imageType, imageIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| The image index. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteItemImageByIndex** +> deleteItemImageByIndex(itemId, imageType, imageIndex) + +Delete an item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | The image index. + try { + apiInstance.deleteItemImageByIndex(itemId, imageType, imageIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| The image index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteUserImage** +> deleteUserImage(userId) + +Delete the user's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + try { + apiInstance.deleteUserImage(userId); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **403** | User does not have permission to delete the image. | - | +| **401** | Unauthorized | - | + + +# **getArtistImage** +> File getArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get artist image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Artist name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getArtistImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Artist name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getGenreImage** +> File getGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getGenreImageByIndex** +> File getGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImage** +> File getItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImage2** +> File getItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer imageIndex = 56; // Integer | Image index. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImage2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | | +| **maxHeight** | **Integer**| The maximum image height to return. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | | +| **imageIndex** | **Integer**| Image index. | | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImageByIndex** +> File getItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImageInfos** +> List<ImageInfo> getItemImageInfos(itemId) + +Get item image infos. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getItemImageInfos(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImageInfos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<ImageInfo>**](ImageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item images returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicGenreImage** +> File getMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getMusicGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getMusicGenreImageByIndex** +> File getMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getMusicGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getPersonImage** +> File getPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getPersonImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getPersonImageByIndex** +> File getPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getPersonImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getSplashscreen** +> File getSplashscreen(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality) + +Generates or gets the splashscreen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String tag = "tag_example"; // String | Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Blur image. + String backgroundColor = "backgroundColor_example"; // String | Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Apply a foreground layer on top of the image. + Integer quality = 90; // Integer | Quality setting, from 0-100. + try { + File result = apiInstance.getSplashscreen(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tag** | **String**| Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Blur image. | [optional] | +| **backgroundColor** | **String**| Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Apply a foreground layer on top of the image. | [optional] | +| **quality** | **Integer**| Quality setting, from 0-100. | [optional] [default to 90] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Splashscreen returned successfully. | - | + + +# **getStudioImage** +> File getStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getStudioImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getStudioImageByIndex** +> File getStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getStudioImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getUserImage** +> File getUserImage(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getUserImage(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **400** | User id not provided. | - | +| **404** | Item not found. | - | + + +# **headArtistImage** +> File headArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get artist image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Artist name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headArtistImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Artist name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headGenreImage** +> File headGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headGenreImageByIndex** +> File headGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImage** +> File headItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImage2** +> File headItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer imageIndex = 56; // Integer | Image index. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImage2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | | +| **maxHeight** | **Integer**| The maximum image height to return. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | | +| **imageIndex** | **Integer**| Image index. | | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImageByIndex** +> File headItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headMusicGenreImage** +> File headMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headMusicGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headMusicGenreImageByIndex** +> File headMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headMusicGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headPersonImage** +> File headPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headPersonImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headPersonImageByIndex** +> File headPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headPersonImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headStudioImage** +> File headStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headStudioImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headStudioImageByIndex** +> File headStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headStudioImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headUserImage** +> File headUserImage(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headUserImage(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | **ImageFormat**| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp, Svg] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **400** | User id not provided. | - | +| **404** | Item not found. | - | + + +# **postUserImage** +> postUserImage(userId, body) + +Sets the user image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + File body = new File("/path/to/file"); // File | + try { + apiInstance.postUserImage(userId, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#postUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | [optional] | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image updated. | - | +| **400** | Bad Request | - | +| **403** | User does not have permission to delete the image. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | + + +# **setItemImage** +> setItemImage(itemId, imageType, body) + +Set item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + File body = new File("/path/to/file"); // File | + try { + apiInstance.setItemImage(itemId, imageType, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#setItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image saved. | - | +| **400** | Bad Request | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setItemImageByIndex** +> setItemImageByIndex(itemId, imageType, imageIndex, body) + +Set item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | (Unused) Image index. + File body = new File("/path/to/file"); // File | + try { + apiInstance.setItemImageByIndex(itemId, imageType, imageIndex, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#setItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| (Unused) Image index. | | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image saved. | - | +| **400** | Bad Request | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItemImageIndex** +> updateItemImageIndex(itemId, imageType, imageIndex, newIndex) + +Updates the index for an item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Old image index. + Integer newIndex = 56; // Integer | New image index. + try { + apiInstance.updateItemImageIndex(itemId, imageType, imageIndex, newIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#updateItemImageIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | **ImageType**| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Old image index. | | +| **newIndex** | **Integer**| New image index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image index updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uploadCustomSplashscreen** +> uploadCustomSplashscreen(body) + +Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + File body = new File("/path/to/file"); // File | + try { + apiInstance.uploadCustomSplashscreen(body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#uploadCustomSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Successfully uploaded new splashscreen. | - | +| **400** | Error reading MimeType from uploaded image. | - | +| **403** | User does not have permission to upload splashscreen.. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageFormat.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageFormat.md new file mode 100644 index 0000000000000..d4aacfa8ab684 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageFormat.md @@ -0,0 +1,21 @@ + + +# ImageFormat + +## Enum + + +* `BMP` (value: `"Bmp"`) + +* `GIF` (value: `"Gif"`) + +* `JPG` (value: `"Jpg"`) + +* `PNG` (value: `"Png"`) + +* `WEBP` (value: `"Webp"`) + +* `SVG` (value: `"Svg"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageInfo.md new file mode 100644 index 0000000000000..51e9d082e97de --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageInfo.md @@ -0,0 +1,21 @@ + + +# ImageInfo + +Class ImageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**imageType** | **ImageType** | Gets or sets the type of the image. | [optional] | +|**imageIndex** | **Integer** | Gets or sets the index of the image. | [optional] | +|**imageTag** | **String** | Gets or sets the image tag. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**blurHash** | **String** | Gets or sets the blurhash. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOption.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOption.md new file mode 100644 index 0000000000000..5096b6b017add --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOption.md @@ -0,0 +1,15 @@ + + +# ImageOption + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **ImageType** | Gets or sets the type. | [optional] | +|**limit** | **Integer** | Gets or sets the limit. | [optional] | +|**minWidth** | **Integer** | Gets or sets the minimum width. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOrientation.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOrientation.md new file mode 100644 index 0000000000000..d40e07149947f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageOrientation.md @@ -0,0 +1,25 @@ + + +# ImageOrientation + +## Enum + + +* `TOP_LEFT` (value: `"TopLeft"`) + +* `TOP_RIGHT` (value: `"TopRight"`) + +* `BOTTOM_RIGHT` (value: `"BottomRight"`) + +* `BOTTOM_LEFT` (value: `"BottomLeft"`) + +* `LEFT_TOP` (value: `"LeftTop"`) + +* `RIGHT_TOP` (value: `"RightTop"`) + +* `RIGHT_BOTTOM` (value: `"RightBottom"`) + +* `LEFT_BOTTOM` (value: `"LeftBottom"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageProviderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageProviderInfo.md new file mode 100644 index 0000000000000..6766b50ab22ed --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageProviderInfo.md @@ -0,0 +1,15 @@ + + +# ImageProviderInfo + +Class ImageProviderInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**supportedImages** | **List<ImageType>** | Gets the supported image types. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageResolution.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageResolution.md new file mode 100644 index 0000000000000..07861a96b3e4b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageResolution.md @@ -0,0 +1,27 @@ + + +# ImageResolution + +## Enum + + +* `MATCH_SOURCE` (value: `"MatchSource"`) + +* `P144` (value: `"P144"`) + +* `P240` (value: `"P240"`) + +* `P360` (value: `"P360"`) + +* `P480` (value: `"P480"`) + +* `P720` (value: `"P720"`) + +* `P1080` (value: `"P1080"`) + +* `P1440` (value: `"P1440"`) + +* `P2160` (value: `"P2160"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageSavingConvention.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageSavingConvention.md new file mode 100644 index 0000000000000..52bb2043020f5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageSavingConvention.md @@ -0,0 +1,13 @@ + + +# ImageSavingConvention + +## Enum + + +* `LEGACY` (value: `"Legacy"`) + +* `COMPATIBLE` (value: `"Compatible"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageType.md new file mode 100644 index 0000000000000..eb42054dcf2b6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ImageType.md @@ -0,0 +1,35 @@ + + +# ImageType + +## Enum + + +* `PRIMARY` (value: `"Primary"`) + +* `ART` (value: `"Art"`) + +* `BACKDROP` (value: `"Backdrop"`) + +* `BANNER` (value: `"Banner"`) + +* `LOGO` (value: `"Logo"`) + +* `THUMB` (value: `"Thumb"`) + +* `DISC` (value: `"Disc"`) + +* `BOX` (value: `"Box"`) + +* `SCREENSHOT` (value: `"Screenshot"`) + +* `MENU` (value: `"Menu"`) + +* `CHAPTER` (value: `"Chapter"`) + +* `BOX_REAR` (value: `"BoxRear"`) + +* `PROFILE` (value: `"Profile"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundKeepAliveMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundKeepAliveMessage.md new file mode 100644 index 0000000000000..54af2fe5f3a53 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundKeepAliveMessage.md @@ -0,0 +1,14 @@ + + +# InboundKeepAliveMessage + +Keep alive websocket messages. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundWebSocketMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundWebSocketMessage.md new file mode 100644 index 0000000000000..2051e945b0897 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InboundWebSocketMessage.md @@ -0,0 +1,15 @@ + + +# InboundWebSocketMessage + +Represents the list of possible inbound websocket types + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **String** | Gets or sets the data. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstallationInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstallationInfo.md new file mode 100644 index 0000000000000..98fe1ff262d79 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstallationInfo.md @@ -0,0 +1,20 @@ + + +# InstallationInfo + +Class InstallationInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**guid** | **UUID** | Gets or sets the Id. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**changelog** | **String** | Gets or sets the changelog for this version. | [optional] | +|**sourceUrl** | **String** | Gets or sets the source URL. | [optional] | +|**checksum** | **String** | Gets or sets a checksum for the binary. | [optional] | +|**packageInfo** | [**PackageInfo**](PackageInfo.md) | Gets or sets package information for the installation. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstantMixApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstantMixApi.md new file mode 100644 index 0000000000000..ca877a00fb351 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/InstantMixApi.md @@ -0,0 +1,687 @@ +# InstantMixApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getInstantMixFromAlbum**](InstantMixApi.md#getInstantMixFromAlbum) | **GET** /Albums/{itemId}/InstantMix | Creates an instant playlist based on a given album. | +| [**getInstantMixFromArtists**](InstantMixApi.md#getInstantMixFromArtists) | **GET** /Artists/{itemId}/InstantMix | Creates an instant playlist based on a given artist. | +| [**getInstantMixFromArtists2**](InstantMixApi.md#getInstantMixFromArtists2) | **GET** /Artists/InstantMix | Creates an instant playlist based on a given artist. | +| [**getInstantMixFromItem**](InstantMixApi.md#getInstantMixFromItem) | **GET** /Items/{itemId}/InstantMix | Creates an instant playlist based on a given item. | +| [**getInstantMixFromMusicGenreById**](InstantMixApi.md#getInstantMixFromMusicGenreById) | **GET** /MusicGenres/InstantMix | Creates an instant playlist based on a given genre. | +| [**getInstantMixFromMusicGenreByName**](InstantMixApi.md#getInstantMixFromMusicGenreByName) | **GET** /MusicGenres/{name}/InstantMix | Creates an instant playlist based on a given genre. | +| [**getInstantMixFromPlaylist**](InstantMixApi.md#getInstantMixFromPlaylist) | **GET** /Playlists/{itemId}/InstantMix | Creates an instant playlist based on a given playlist. | +| [**getInstantMixFromSong**](InstantMixApi.md#getInstantMixFromSong) | **GET** /Songs/{itemId}/InstantMix | Creates an instant playlist based on a given song. | + + + +# **getInstantMixFromAlbum** +> BaseItemDtoQueryResult getInstantMixFromAlbum(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given album. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromAlbum(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromAlbum"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromArtists** +> BaseItemDtoQueryResult getInstantMixFromArtists(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given artist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromArtists(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromArtists2** +> BaseItemDtoQueryResult getInstantMixFromArtists2(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given artist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromArtists2(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromArtists2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromItem** +> BaseItemDtoQueryResult getInstantMixFromItem(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromItem(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromMusicGenreById** +> BaseItemDtoQueryResult getInstantMixFromMusicGenreById(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given genre. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromMusicGenreById(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromMusicGenreById"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromMusicGenreByName** +> BaseItemDtoQueryResult getInstantMixFromMusicGenreByName(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given genre. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + String name = "name_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromMusicGenreByName(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromMusicGenreByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The genre name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromPlaylist** +> BaseItemDtoQueryResult getInstantMixFromPlaylist(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromPlaylist(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromSong** +> BaseItemDtoQueryResult getInstantMixFromSong(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given song. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromSong(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromSong"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IsoType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IsoType.md new file mode 100644 index 0000000000000..1aeaa2b5f364b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/IsoType.md @@ -0,0 +1,13 @@ + + +# IsoType + +## Enum + + +* `DVD` (value: `"Dvd"`) + +* `BLU_RAY` (value: `"BluRay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemCounts.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemCounts.md new file mode 100644 index 0000000000000..4d0e2ff61ee9d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemCounts.md @@ -0,0 +1,25 @@ + + +# ItemCounts + +Class LibrarySummary. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**movieCount** | **Integer** | Gets or sets the movie count. | [optional] | +|**seriesCount** | **Integer** | Gets or sets the series count. | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**artistCount** | **Integer** | Gets or sets the artist count. | [optional] | +|**programCount** | **Integer** | Gets or sets the program count. | [optional] | +|**trailerCount** | **Integer** | Gets or sets the trailer count. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**albumCount** | **Integer** | Gets or sets the album count. | [optional] | +|**musicVideoCount** | **Integer** | Gets or sets the music video count. | [optional] | +|**boxSetCount** | **Integer** | Gets or sets the box set count. | [optional] | +|**bookCount** | **Integer** | Gets or sets the book count. | [optional] | +|**itemCount** | **Integer** | Gets or sets the item count. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFields.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFields.md new file mode 100644 index 0000000000000..98f007d9b30f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFields.md @@ -0,0 +1,129 @@ + + +# ItemFields + +## Enum + + +* `AIR_TIME` (value: `"AirTime"`) + +* `CAN_DELETE` (value: `"CanDelete"`) + +* `CAN_DOWNLOAD` (value: `"CanDownload"`) + +* `CHANNEL_INFO` (value: `"ChannelInfo"`) + +* `CHAPTERS` (value: `"Chapters"`) + +* `TRICKPLAY` (value: `"Trickplay"`) + +* `CHILD_COUNT` (value: `"ChildCount"`) + +* `CUMULATIVE_RUN_TIME_TICKS` (value: `"CumulativeRunTimeTicks"`) + +* `CUSTOM_RATING` (value: `"CustomRating"`) + +* `DATE_CREATED` (value: `"DateCreated"`) + +* `DATE_LAST_MEDIA_ADDED` (value: `"DateLastMediaAdded"`) + +* `DISPLAY_PREFERENCES_ID` (value: `"DisplayPreferencesId"`) + +* `ETAG` (value: `"Etag"`) + +* `EXTERNAL_URLS` (value: `"ExternalUrls"`) + +* `GENRES` (value: `"Genres"`) + +* `HOME_PAGE_URL` (value: `"HomePageUrl"`) + +* `ITEM_COUNTS` (value: `"ItemCounts"`) + +* `MEDIA_SOURCE_COUNT` (value: `"MediaSourceCount"`) + +* `MEDIA_SOURCES` (value: `"MediaSources"`) + +* `ORIGINAL_TITLE` (value: `"OriginalTitle"`) + +* `OVERVIEW` (value: `"Overview"`) + +* `PARENT_ID` (value: `"ParentId"`) + +* `PATH` (value: `"Path"`) + +* `PEOPLE` (value: `"People"`) + +* `PLAY_ACCESS` (value: `"PlayAccess"`) + +* `PRODUCTION_LOCATIONS` (value: `"ProductionLocations"`) + +* `PROVIDER_IDS` (value: `"ProviderIds"`) + +* `PRIMARY_IMAGE_ASPECT_RATIO` (value: `"PrimaryImageAspectRatio"`) + +* `RECURSIVE_ITEM_COUNT` (value: `"RecursiveItemCount"`) + +* `SETTINGS` (value: `"Settings"`) + +* `SCREENSHOT_IMAGE_TAGS` (value: `"ScreenshotImageTags"`) + +* `SERIES_PRIMARY_IMAGE` (value: `"SeriesPrimaryImage"`) + +* `SERIES_STUDIO` (value: `"SeriesStudio"`) + +* `SORT_NAME` (value: `"SortName"`) + +* `SPECIAL_EPISODE_NUMBERS` (value: `"SpecialEpisodeNumbers"`) + +* `STUDIOS` (value: `"Studios"`) + +* `TAGLINES` (value: `"Taglines"`) + +* `TAGS` (value: `"Tags"`) + +* `REMOTE_TRAILERS` (value: `"RemoteTrailers"`) + +* `MEDIA_STREAMS` (value: `"MediaStreams"`) + +* `SEASON_USER_DATA` (value: `"SeasonUserData"`) + +* `SERVICE_NAME` (value: `"ServiceName"`) + +* `THEME_SONG_IDS` (value: `"ThemeSongIds"`) + +* `THEME_VIDEO_IDS` (value: `"ThemeVideoIds"`) + +* `EXTERNAL_ETAG` (value: `"ExternalEtag"`) + +* `PRESENTATION_UNIQUE_KEY` (value: `"PresentationUniqueKey"`) + +* `INHERITED_PARENTAL_RATING_VALUE` (value: `"InheritedParentalRatingValue"`) + +* `EXTERNAL_SERIES_ID` (value: `"ExternalSeriesId"`) + +* `SERIES_PRESENTATION_UNIQUE_KEY` (value: `"SeriesPresentationUniqueKey"`) + +* `DATE_LAST_REFRESHED` (value: `"DateLastRefreshed"`) + +* `DATE_LAST_SAVED` (value: `"DateLastSaved"`) + +* `REFRESH_STATE` (value: `"RefreshState"`) + +* `CHANNEL_IMAGE` (value: `"ChannelImage"`) + +* `ENABLE_MEDIA_SOURCE_DISPLAY` (value: `"EnableMediaSourceDisplay"`) + +* `WIDTH` (value: `"Width"`) + +* `HEIGHT` (value: `"Height"`) + +* `EXTRA_IDS` (value: `"ExtraIds"`) + +* `LOCAL_TRAILER_COUNT` (value: `"LocalTrailerCount"`) + +* `IS_HD` (value: `"IsHD"`) + +* `SPECIAL_FEATURE_COUNT` (value: `"SpecialFeatureCount"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFilter.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFilter.md new file mode 100644 index 0000000000000..157df99b2e12c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemFilter.md @@ -0,0 +1,27 @@ + + +# ItemFilter + +## Enum + + +* `IS_FOLDER` (value: `"IsFolder"`) + +* `IS_NOT_FOLDER` (value: `"IsNotFolder"`) + +* `IS_UNPLAYED` (value: `"IsUnplayed"`) + +* `IS_PLAYED` (value: `"IsPlayed"`) + +* `IS_FAVORITE` (value: `"IsFavorite"`) + +* `IS_RESUMABLE` (value: `"IsResumable"`) + +* `LIKES` (value: `"Likes"`) + +* `DISLIKES` (value: `"Dislikes"`) + +* `IS_FAVORITE_OR_LIKES` (value: `"IsFavoriteOrLikes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemLookupApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemLookupApi.md new file mode 100644 index 0000000000000..fbee1b88289c3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemLookupApi.md @@ -0,0 +1,783 @@ +# ItemLookupApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**applySearchCriteria**](ItemLookupApi.md#applySearchCriteria) | **POST** /Items/RemoteSearch/Apply/{itemId} | Applies search criteria to an item and refreshes metadata. | +| [**getBookRemoteSearchResults**](ItemLookupApi.md#getBookRemoteSearchResults) | **POST** /Items/RemoteSearch/Book | Get book remote search. | +| [**getBoxSetRemoteSearchResults**](ItemLookupApi.md#getBoxSetRemoteSearchResults) | **POST** /Items/RemoteSearch/BoxSet | Get box set remote search. | +| [**getExternalIdInfos**](ItemLookupApi.md#getExternalIdInfos) | **GET** /Items/{itemId}/ExternalIdInfos | Get the item's external id info. | +| [**getMovieRemoteSearchResults**](ItemLookupApi.md#getMovieRemoteSearchResults) | **POST** /Items/RemoteSearch/Movie | Get movie remote search. | +| [**getMusicAlbumRemoteSearchResults**](ItemLookupApi.md#getMusicAlbumRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicAlbum | Get music album remote search. | +| [**getMusicArtistRemoteSearchResults**](ItemLookupApi.md#getMusicArtistRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicArtist | Get music artist remote search. | +| [**getMusicVideoRemoteSearchResults**](ItemLookupApi.md#getMusicVideoRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicVideo | Get music video remote search. | +| [**getPersonRemoteSearchResults**](ItemLookupApi.md#getPersonRemoteSearchResults) | **POST** /Items/RemoteSearch/Person | Get person remote search. | +| [**getSeriesRemoteSearchResults**](ItemLookupApi.md#getSeriesRemoteSearchResults) | **POST** /Items/RemoteSearch/Series | Get series remote search. | +| [**getTrailerRemoteSearchResults**](ItemLookupApi.md#getTrailerRemoteSearchResults) | **POST** /Items/RemoteSearch/Trailer | Get trailer remote search. | + + + +# **applySearchCriteria** +> applySearchCriteria(itemId, remoteSearchResult, replaceAllImages) + +Applies search criteria to an item and refreshes metadata. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + RemoteSearchResult remoteSearchResult = new RemoteSearchResult(); // RemoteSearchResult | The remote search result. + Boolean replaceAllImages = true; // Boolean | Optional. Whether or not to replace all images. Default: True. + try { + apiInstance.applySearchCriteria(itemId, remoteSearchResult, replaceAllImages); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#applySearchCriteria"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **remoteSearchResult** | [**RemoteSearchResult**](RemoteSearchResult.md)| The remote search result. | | +| **replaceAllImages** | **Boolean**| Optional. Whether or not to replace all images. Default: True. | [optional] [default to true] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item metadata refreshed. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBookRemoteSearchResults** +> List<RemoteSearchResult> getBookRemoteSearchResults(bookInfoRemoteSearchQuery) + +Get book remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery = new BookInfoRemoteSearchQuery(); // BookInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getBookRemoteSearchResults(bookInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getBookRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bookInfoRemoteSearchQuery** | [**BookInfoRemoteSearchQuery**](BookInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Book remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBoxSetRemoteSearchResults** +> List<RemoteSearchResult> getBoxSetRemoteSearchResults(boxSetInfoRemoteSearchQuery) + +Get box set remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery = new BoxSetInfoRemoteSearchQuery(); // BoxSetInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getBoxSetRemoteSearchResults(boxSetInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getBoxSetRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **boxSetInfoRemoteSearchQuery** | [**BoxSetInfoRemoteSearchQuery**](BoxSetInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Box set remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getExternalIdInfos** +> List<ExternalIdInfo> getExternalIdInfos(itemId) + +Get the item's external id info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getExternalIdInfos(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getExternalIdInfos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<ExternalIdInfo>**](ExternalIdInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | External id info retrieved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMovieRemoteSearchResults** +> List<RemoteSearchResult> getMovieRemoteSearchResults(movieInfoRemoteSearchQuery) + +Get movie remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery = new MovieInfoRemoteSearchQuery(); // MovieInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMovieRemoteSearchResults(movieInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMovieRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **movieInfoRemoteSearchQuery** | [**MovieInfoRemoteSearchQuery**](MovieInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Movie remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicAlbumRemoteSearchResults** +> List<RemoteSearchResult> getMusicAlbumRemoteSearchResults(albumInfoRemoteSearchQuery) + +Get music album remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery = new AlbumInfoRemoteSearchQuery(); // AlbumInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicAlbumRemoteSearchResults(albumInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicAlbumRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **albumInfoRemoteSearchQuery** | [**AlbumInfoRemoteSearchQuery**](AlbumInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music album remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicArtistRemoteSearchResults** +> List<RemoteSearchResult> getMusicArtistRemoteSearchResults(artistInfoRemoteSearchQuery) + +Get music artist remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery = new ArtistInfoRemoteSearchQuery(); // ArtistInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicArtistRemoteSearchResults(artistInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicArtistRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **artistInfoRemoteSearchQuery** | [**ArtistInfoRemoteSearchQuery**](ArtistInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music artist remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicVideoRemoteSearchResults** +> List<RemoteSearchResult> getMusicVideoRemoteSearchResults(musicVideoInfoRemoteSearchQuery) + +Get music video remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery = new MusicVideoInfoRemoteSearchQuery(); // MusicVideoInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicVideoRemoteSearchResults(musicVideoInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicVideoRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **musicVideoInfoRemoteSearchQuery** | [**MusicVideoInfoRemoteSearchQuery**](MusicVideoInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music video remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPersonRemoteSearchResults** +> List<RemoteSearchResult> getPersonRemoteSearchResults(personLookupInfoRemoteSearchQuery) + +Get person remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery = new PersonLookupInfoRemoteSearchQuery(); // PersonLookupInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getPersonRemoteSearchResults(personLookupInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getPersonRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **personLookupInfoRemoteSearchQuery** | [**PersonLookupInfoRemoteSearchQuery**](PersonLookupInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Person remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesRemoteSearchResults** +> List<RemoteSearchResult> getSeriesRemoteSearchResults(seriesInfoRemoteSearchQuery) + +Get series remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery = new SeriesInfoRemoteSearchQuery(); // SeriesInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getSeriesRemoteSearchResults(seriesInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getSeriesRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesInfoRemoteSearchQuery** | [**SeriesInfoRemoteSearchQuery**](SeriesInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Series remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTrailerRemoteSearchResults** +> List<RemoteSearchResult> getTrailerRemoteSearchResults(trailerInfoRemoteSearchQuery) + +Get trailer remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery = new TrailerInfoRemoteSearchQuery(); // TrailerInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getTrailerRemoteSearchResults(trailerInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getTrailerRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **trailerInfoRemoteSearchQuery** | [**TrailerInfoRemoteSearchQuery**](TrailerInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Trailer remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemRefreshApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemRefreshApi.md new file mode 100644 index 0000000000000..a4297cb41fe52 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemRefreshApi.md @@ -0,0 +1,88 @@ +# ItemRefreshApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**refreshItem**](ItemRefreshApi.md#refreshItem) | **POST** /Items/{itemId}/Refresh | Refreshes metadata for an item. | + + + +# **refreshItem** +> refreshItem(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay) + +Refreshes metadata for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemRefreshApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemRefreshApi apiInstance = new ItemRefreshApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + MetadataRefreshMode metadataRefreshMode = MetadataRefreshMode.fromValue("None"); // MetadataRefreshMode | (Optional) Specifies the metadata refresh mode. + MetadataRefreshMode imageRefreshMode = MetadataRefreshMode.fromValue("None"); // MetadataRefreshMode | (Optional) Specifies the image refresh mode. + Boolean replaceAllMetadata = false; // Boolean | (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. + Boolean replaceAllImages = false; // Boolean | (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. + Boolean regenerateTrickplay = false; // Boolean | (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. + try { + apiInstance.refreshItem(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay); + } catch (ApiException e) { + System.err.println("Exception when calling ItemRefreshApi#refreshItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **metadataRefreshMode** | **MetadataRefreshMode**| (Optional) Specifies the metadata refresh mode. | [optional] [default to None] [enum: None, ValidationOnly, Default, FullRefresh] | +| **imageRefreshMode** | **MetadataRefreshMode**| (Optional) Specifies the image refresh mode. | [optional] [default to None] [enum: None, ValidationOnly, Default, FullRefresh] | +| **replaceAllMetadata** | **Boolean**| (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. | [optional] [default to false] | +| **replaceAllImages** | **Boolean**| (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. | [optional] [default to false] | +| **regenerateTrickplay** | **Boolean**| (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item metadata refresh queued. | - | +| **404** | Item to refresh not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemSortBy.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemSortBy.md new file mode 100644 index 0000000000000..cd09a56e2cee8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemSortBy.md @@ -0,0 +1,73 @@ + + +# ItemSortBy + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `AIRED_EPISODE_ORDER` (value: `"AiredEpisodeOrder"`) + +* `ALBUM` (value: `"Album"`) + +* `ALBUM_ARTIST` (value: `"AlbumArtist"`) + +* `ARTIST` (value: `"Artist"`) + +* `DATE_CREATED` (value: `"DateCreated"`) + +* `OFFICIAL_RATING` (value: `"OfficialRating"`) + +* `DATE_PLAYED` (value: `"DatePlayed"`) + +* `PREMIERE_DATE` (value: `"PremiereDate"`) + +* `START_DATE` (value: `"StartDate"`) + +* `SORT_NAME` (value: `"SortName"`) + +* `NAME` (value: `"Name"`) + +* `RANDOM` (value: `"Random"`) + +* `RUNTIME` (value: `"Runtime"`) + +* `COMMUNITY_RATING` (value: `"CommunityRating"`) + +* `PRODUCTION_YEAR` (value: `"ProductionYear"`) + +* `PLAY_COUNT` (value: `"PlayCount"`) + +* `CRITIC_RATING` (value: `"CriticRating"`) + +* `IS_FOLDER` (value: `"IsFolder"`) + +* `IS_UNPLAYED` (value: `"IsUnplayed"`) + +* `IS_PLAYED` (value: `"IsPlayed"`) + +* `SERIES_SORT_NAME` (value: `"SeriesSortName"`) + +* `VIDEO_BIT_RATE` (value: `"VideoBitRate"`) + +* `AIR_TIME` (value: `"AirTime"`) + +* `STUDIO` (value: `"Studio"`) + +* `IS_FAVORITE_OR_LIKED` (value: `"IsFavoriteOrLiked"`) + +* `DATE_LAST_CONTENT_ADDED` (value: `"DateLastContentAdded"`) + +* `SERIES_DATE_PLAYED` (value: `"SeriesDatePlayed"`) + +* `PARENT_INDEX_NUMBER` (value: `"ParentIndexNumber"`) + +* `INDEX_NUMBER` (value: `"IndexNumber"`) + +* `SIMILARITY_SCORE` (value: `"SimilarityScore"`) + +* `SEARCH_SCORE` (value: `"SearchScore"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemUpdateApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemUpdateApi.md new file mode 100644 index 0000000000000..95ec04c230706 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemUpdateApi.md @@ -0,0 +1,223 @@ +# ItemUpdateApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMetadataEditorInfo**](ItemUpdateApi.md#getMetadataEditorInfo) | **GET** /Items/{itemId}/MetadataEditor | Gets metadata editor info for an item. | +| [**updateItem**](ItemUpdateApi.md#updateItem) | **POST** /Items/{itemId} | Updates an item. | +| [**updateItemContentType**](ItemUpdateApi.md#updateItemContentType) | **POST** /Items/{itemId}/ContentType | Updates an item's content type. | + + + +# **getMetadataEditorInfo** +> MetadataEditorInfo getMetadataEditorInfo(itemId) + +Gets metadata editor info for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + MetadataEditorInfo result = apiInstance.getMetadataEditorInfo(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#getMetadataEditorInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**MetadataEditorInfo**](MetadataEditorInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item metadata editor returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItem** +> updateItem(itemId, baseItemDto) + +Updates an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + BaseItemDto baseItemDto = new BaseItemDto(); // BaseItemDto | The new item properties. + try { + apiInstance.updateItem(itemId, baseItemDto); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#updateItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **baseItemDto** | [**BaseItemDto**](BaseItemDto.md)| The new item properties. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItemContentType** +> updateItemContentType(itemId, contentType) + +Updates an item's content type. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String contentType = "contentType_example"; // String | The content type of the item. + try { + apiInstance.updateItemContentType(itemId, contentType); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#updateItemContentType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **contentType** | **String**| The content type of the item. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item content type updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemsApi.md new file mode 100644 index 0000000000000..4c5a2a66f4175 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ItemsApi.md @@ -0,0 +1,494 @@ +# ItemsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getItemUserData**](ItemsApi.md#getItemUserData) | **GET** /UserItems/{itemId}/UserData | Get Item User Data. | +| [**getItems**](ItemsApi.md#getItems) | **GET** /Items | Gets items based on a query. | +| [**getResumeItems**](ItemsApi.md#getResumeItems) | **GET** /UserItems/Resume | Gets items based on a query. | +| [**updateItemUserData**](ItemsApi.md#updateItemUserData) | **POST** /UserItems/{itemId}/UserData | Update Item User Data. | + + + +# **getItemUserData** +> UserItemDataDto getItemUserData(itemId, userId) + +Get Item User Data. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + UserItemDataDto result = apiInstance.getItemUserData(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getItemUserData"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | return item user data. | - | +| **404** | Item is not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItems** +> BaseItemDtoQueryResult getItems(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages) + +Gets items based on a query. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id supplied as query parameter; this is required when not using an API key. + String maxOfficialRating = "maxOfficialRating_example"; // String | Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + Boolean hasThemeSong = true; // Boolean | Optional filter by items with theme songs. + Boolean hasThemeVideo = true; // Boolean | Optional filter by items with theme videos. + Boolean hasSubtitles = true; // Boolean | Optional filter by items with subtitles. + Boolean hasSpecialFeature = true; // Boolean | Optional filter by items with special features. + Boolean hasTrailer = true; // Boolean | Optional filter by items with trailers. + UUID adjacentTo = UUID.randomUUID(); // UUID | Optional. Return items that are siblings of a supplied item. + Integer indexNumber = 56; // Integer | Optional filter by index number. + Integer parentIndexNumber = 56; // Integer | Optional filter by parent index number. + Boolean hasParentalRating = true; // Boolean | Optional filter by items that have or do not have a parental rating. + Boolean isHd = true; // Boolean | Optional filter by items that are HD or not. + Boolean is4K = true; // Boolean | Optional filter by items that are 4K or not. + List locationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + List excludeLocationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + Boolean isMissing = true; // Boolean | Optional filter by items that are missing episodes or not. + Boolean isUnaired = true; // Boolean | Optional filter by items that are unaired episodes or not. + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Double minCriticRating = 3.4D; // Double | Optional filter by minimum critic rating. + OffsetDateTime minPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere date. Format = ISO. + OffsetDateTime minDateLastSaved = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date. Format = ISO. + OffsetDateTime minDateLastSavedForUser = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date for the current user. Format = ISO. + OffsetDateTime maxPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere date. Format = ISO. + Boolean hasOverview = true; // Boolean | Optional filter by items that have an overview or not. + Boolean hasImdbId = true; // Boolean | Optional filter by items that have an IMDb id or not. + Boolean hasTmdbId = true; // Boolean | Optional filter by items that have a TMDb id or not. + Boolean hasTvdbId = true; // Boolean | Optional filter by items that have a TVDb id or not. + Boolean isMovie = true; // Boolean | Optional filter for live tv movies. + Boolean isSeries = true; // Boolean | Optional filter for live tv series. + Boolean isNews = true; // Boolean | Optional filter for live tv news. + Boolean isKids = true; // Boolean | Optional filter for live tv kids. + Boolean isSports = true; // Boolean | Optional filter for live tv sports. + List excludeItemIds = Arrays.asList(); // List | Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean recursive = true; // Boolean | When searching within folders, this determines whether or not the search will be recursive. true/false. + String searchTerm = "searchTerm_example"; // String | Optional. Filter based on a search term. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending, Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List imageTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean isPlayed = true; // Boolean | Optional filter by items that are played, or not. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person id. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List artists = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + List excludeArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + List artistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified artist id. + List albumArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified album artist id. + List contributingArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + List albums = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + List albumIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + List ids = Arrays.asList(); // List | Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + List videoTypes = Arrays.asList(); // List | Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + String minOfficialRating = "minOfficialRating_example"; // String | Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + Boolean isLocked = true; // Boolean | Optional filter by items that are locked. + Boolean isPlaceHolder = true; // Boolean | Optional filter by items that are placeholders. + Boolean hasOfficialRating = true; // Boolean | Optional filter by items that have official ratings. + Boolean collapseBoxSetItems = true; // Boolean | Whether or not to hide items behind their boxsets. + Integer minWidth = 56; // Integer | Optional. Filter by the minimum width of the item. + Integer minHeight = 56; // Integer | Optional. Filter by the minimum height of the item. + Integer maxWidth = 56; // Integer | Optional. Filter by the maximum width of the item. + Integer maxHeight = 56; // Integer | Optional. Filter by the maximum height of the item. + Boolean is3D = true; // Boolean | Optional filter by items that are 3D, or not. + List seriesStatus = Arrays.asList(); // List | Optional filter by Series Status. Allows multiple, comma delimited. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getItems(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id supplied as query parameter; this is required when not using an API key. | [optional] | +| **maxOfficialRating** | **String**| Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **hasThemeSong** | **Boolean**| Optional filter by items with theme songs. | [optional] | +| **hasThemeVideo** | **Boolean**| Optional filter by items with theme videos. | [optional] | +| **hasSubtitles** | **Boolean**| Optional filter by items with subtitles. | [optional] | +| **hasSpecialFeature** | **Boolean**| Optional filter by items with special features. | [optional] | +| **hasTrailer** | **Boolean**| Optional filter by items with trailers. | [optional] | +| **adjacentTo** | **UUID**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **indexNumber** | **Integer**| Optional filter by index number. | [optional] | +| **parentIndexNumber** | **Integer**| Optional filter by parent index number. | [optional] | +| **hasParentalRating** | **Boolean**| Optional filter by items that have or do not have a parental rating. | [optional] | +| **isHd** | **Boolean**| Optional filter by items that are HD or not. | [optional] | +| **is4K** | **Boolean**| Optional filter by items that are 4K or not. | [optional] | +| **locationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. | [optional] | +| **excludeLocationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. | [optional] | +| **isMissing** | **Boolean**| Optional filter by items that are missing episodes or not. | [optional] | +| **isUnaired** | **Boolean**| Optional filter by items that are unaired episodes or not. | [optional] | +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **minCriticRating** | **Double**| Optional filter by minimum critic rating. | [optional] | +| **minPremiereDate** | **OffsetDateTime**| Optional. The minimum premiere date. Format = ISO. | [optional] | +| **minDateLastSaved** | **OffsetDateTime**| Optional. The minimum last saved date. Format = ISO. | [optional] | +| **minDateLastSavedForUser** | **OffsetDateTime**| Optional. The minimum last saved date for the current user. Format = ISO. | [optional] | +| **maxPremiereDate** | **OffsetDateTime**| Optional. The maximum premiere date. Format = ISO. | [optional] | +| **hasOverview** | **Boolean**| Optional filter by items that have an overview or not. | [optional] | +| **hasImdbId** | **Boolean**| Optional filter by items that have an IMDb id or not. | [optional] | +| **hasTmdbId** | **Boolean**| Optional filter by items that have a TMDb id or not. | [optional] | +| **hasTvdbId** | **Boolean**| Optional filter by items that have a TVDb id or not. | [optional] | +| **isMovie** | **Boolean**| Optional filter for live tv movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for live tv series. | [optional] | +| **isNews** | **Boolean**| Optional filter for live tv news. | [optional] | +| **isKids** | **Boolean**| Optional filter for live tv kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for live tv sports. | [optional] | +| **excludeItemIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **recursive** | **Boolean**| When searching within folders, this determines whether or not the search will be recursive. true/false. | [optional] | +| **searchTerm** | **String**| Optional. Filter based on a search term. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending, Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **imageTypes** | [**List<ImageType>**](ImageType.md)| Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **isPlayed** | **Boolean**| Optional filter by items that are played, or not. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person id. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **artists** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. | [optional] | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. | [optional] | +| **artistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified artist id. | [optional] | +| **albumArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified album artist id. | [optional] | +| **contributingArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. | [optional] | +| **albums** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. | [optional] | +| **albumIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. | [optional] | +| **videoTypes** | [**List<VideoType>**](VideoType.md)| Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. | [optional] | +| **minOfficialRating** | **String**| Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **isLocked** | **Boolean**| Optional filter by items that are locked. | [optional] | +| **isPlaceHolder** | **Boolean**| Optional filter by items that are placeholders. | [optional] | +| **hasOfficialRating** | **Boolean**| Optional filter by items that have official ratings. | [optional] | +| **collapseBoxSetItems** | **Boolean**| Whether or not to hide items behind their boxsets. | [optional] | +| **minWidth** | **Integer**| Optional. Filter by the minimum width of the item. | [optional] | +| **minHeight** | **Integer**| Optional. Filter by the minimum height of the item. | [optional] | +| **maxWidth** | **Integer**| Optional. Filter by the maximum width of the item. | [optional] | +| **maxHeight** | **Integer**| Optional. Filter by the maximum height of the item. | [optional] | +| **is3D** | **Boolean**| Optional filter by items that are 3D, or not. | [optional] | +| **seriesStatus** | [**List<SeriesStatus>**](SeriesStatus.md)| Optional filter by Series Status. Allows multiple, comma delimited. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getResumeItems** +> BaseItemDtoQueryResult getResumeItems(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions) + +Gets items based on a query. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + Integer startIndex = 56; // Integer | The start index. + Integer limit = 56; // Integer | The item limit. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean excludeActiveSessions = false; // Boolean | Optional. Whether to exclude the currently active sessions. + try { + BaseItemDtoQueryResult result = apiInstance.getResumeItems(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getResumeItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | [optional] | +| **startIndex** | **Integer**| The start index. | [optional] | +| **limit** | **Integer**| The item limit. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] [default to true] | +| **excludeActiveSessions** | **Boolean**| Optional. Whether to exclude the currently active sessions. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItemUserData** +> UserItemDataDto updateItemUserData(itemId, updateUserItemDataDto, userId) + +Update Item User Data. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UpdateUserItemDataDto updateUserItemDataDto = new UpdateUserItemDataDto(); // UpdateUserItemDataDto | New user data object. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + UserItemDataDto result = apiInstance.updateItemUserData(itemId, updateUserItemDataDto, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#updateItemUserData"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **updateUserItemDataDto** | [**UpdateUserItemDataDto**](UpdateUserItemDataDto.md)| New user data object. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | return updated user item data. | - | +| **404** | Item is not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/JoinGroupRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/JoinGroupRequestDto.md new file mode 100644 index 0000000000000..2b69685838904 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/JoinGroupRequestDto.md @@ -0,0 +1,14 @@ + + +# JoinGroupRequestDto + +Class JoinGroupRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets or sets the group identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/KeepUntil.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/KeepUntil.md new file mode 100644 index 0000000000000..8061580d8f480 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/KeepUntil.md @@ -0,0 +1,17 @@ + + +# KeepUntil + +## Enum + + +* `UNTIL_DELETED` (value: `"UntilDeleted"`) + +* `UNTIL_SPACE_NEEDED` (value: `"UntilSpaceNeeded"`) + +* `UNTIL_WATCHED` (value: `"UntilWatched"`) + +* `UNTIL_DATE` (value: `"UntilDate"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryApi.md new file mode 100644 index 0000000000000..2000cd2d7d0a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryApi.md @@ -0,0 +1,1832 @@ +# LibraryApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteItem**](LibraryApi.md#deleteItem) | **DELETE** /Items/{itemId} | Deletes an item from the library and filesystem. | +| [**deleteItems**](LibraryApi.md#deleteItems) | **DELETE** /Items | Deletes items from the library and filesystem. | +| [**getAncestors**](LibraryApi.md#getAncestors) | **GET** /Items/{itemId}/Ancestors | Gets all parents of an item. | +| [**getCriticReviews**](LibraryApi.md#getCriticReviews) | **GET** /Items/{itemId}/CriticReviews | Gets critic review for an item. | +| [**getDownload**](LibraryApi.md#getDownload) | **GET** /Items/{itemId}/Download | Downloads item media. | +| [**getFile**](LibraryApi.md#getFile) | **GET** /Items/{itemId}/File | Get the original file of an item. | +| [**getItemCounts**](LibraryApi.md#getItemCounts) | **GET** /Items/Counts | Get item counts. | +| [**getLibraryOptionsInfo**](LibraryApi.md#getLibraryOptionsInfo) | **GET** /Libraries/AvailableOptions | Gets the library options info. | +| [**getMediaFolders**](LibraryApi.md#getMediaFolders) | **GET** /Library/MediaFolders | Gets all user media folders. | +| [**getPhysicalPaths**](LibraryApi.md#getPhysicalPaths) | **GET** /Library/PhysicalPaths | Gets a list of physical paths from virtual folders. | +| [**getSimilarAlbums**](LibraryApi.md#getSimilarAlbums) | **GET** /Albums/{itemId}/Similar | Gets similar items. | +| [**getSimilarArtists**](LibraryApi.md#getSimilarArtists) | **GET** /Artists/{itemId}/Similar | Gets similar items. | +| [**getSimilarItems**](LibraryApi.md#getSimilarItems) | **GET** /Items/{itemId}/Similar | Gets similar items. | +| [**getSimilarMovies**](LibraryApi.md#getSimilarMovies) | **GET** /Movies/{itemId}/Similar | Gets similar items. | +| [**getSimilarShows**](LibraryApi.md#getSimilarShows) | **GET** /Shows/{itemId}/Similar | Gets similar items. | +| [**getSimilarTrailers**](LibraryApi.md#getSimilarTrailers) | **GET** /Trailers/{itemId}/Similar | Gets similar items. | +| [**getThemeMedia**](LibraryApi.md#getThemeMedia) | **GET** /Items/{itemId}/ThemeMedia | Get theme songs and videos for an item. | +| [**getThemeSongs**](LibraryApi.md#getThemeSongs) | **GET** /Items/{itemId}/ThemeSongs | Get theme songs for an item. | +| [**getThemeVideos**](LibraryApi.md#getThemeVideos) | **GET** /Items/{itemId}/ThemeVideos | Get theme videos for an item. | +| [**postAddedMovies**](LibraryApi.md#postAddedMovies) | **POST** /Library/Movies/Added | Reports that new movies have been added by an external source. | +| [**postAddedSeries**](LibraryApi.md#postAddedSeries) | **POST** /Library/Series/Added | Reports that new episodes of a series have been added by an external source. | +| [**postUpdatedMedia**](LibraryApi.md#postUpdatedMedia) | **POST** /Library/Media/Updated | Reports that new movies have been added by an external source. | +| [**postUpdatedMovies**](LibraryApi.md#postUpdatedMovies) | **POST** /Library/Movies/Updated | Reports that new movies have been added by an external source. | +| [**postUpdatedSeries**](LibraryApi.md#postUpdatedSeries) | **POST** /Library/Series/Updated | Reports that new episodes of a series have been added by an external source. | +| [**refreshLibrary**](LibraryApi.md#refreshLibrary) | **POST** /Library/Refresh | Starts a library scan. | + + + +# **deleteItem** +> deleteItem(itemId) + +Deletes an item from the library and filesystem. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + apiInstance.deleteItem(itemId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#deleteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item deleted. | - | +| **401** | Unauthorized access. | - | +| **404** | Item not found. | - | +| **403** | Forbidden | - | + + +# **deleteItems** +> deleteItems(ids) + +Deletes items from the library and filesystem. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + List ids = Arrays.asList(); // List | The item ids. + try { + apiInstance.deleteItems(ids); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#deleteItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ids** | [**List<UUID>**](UUID.md)| The item ids. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items deleted. | - | +| **401** | Unauthorized access. | - | +| **404** | Not Found | - | +| **403** | Forbidden | - | + + +# **getAncestors** +> List<BaseItemDto> getAncestors(itemId, userId) + +Gets all parents of an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + List result = apiInstance.getAncestors(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getAncestors"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item parents returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getCriticReviews** +> BaseItemDtoQueryResult getCriticReviews(itemId) + +Gets critic review for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String itemId = "itemId_example"; // String | + try { + BaseItemDtoQueryResult result = apiInstance.getCriticReviews(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getCriticReviews"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| | | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Critic reviews returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDownload** +> File getDownload(itemId) + +Downloads item media. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + File result = apiInstance.getDownload(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getDownload"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media downloaded. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFile** +> File getFile(itemId) + +Get the original file of an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + File result = apiInstance.getFile(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File stream returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItemCounts** +> ItemCounts getItemCounts(userId, isFavorite) + +Get item counts. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Get counts from a specific user's library. + Boolean isFavorite = true; // Boolean | Optional. Get counts of favorite items. + try { + ItemCounts result = apiInstance.getItemCounts(userId, isFavorite); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getItemCounts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Get counts from a specific user's library. | [optional] | +| **isFavorite** | **Boolean**| Optional. Get counts of favorite items. | [optional] | + +### Return type + +[**ItemCounts**](ItemCounts.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item counts returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLibraryOptionsInfo** +> LibraryOptionsResultDto getLibraryOptionsInfo(libraryContentType, isNewLibrary) + +Gets the library options info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + CollectionType libraryContentType = CollectionType.fromValue("unknown"); // CollectionType | Library content type. + Boolean isNewLibrary = false; // Boolean | Whether this is a new library. + try { + LibraryOptionsResultDto result = apiInstance.getLibraryOptionsInfo(libraryContentType, isNewLibrary); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getLibraryOptionsInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **libraryContentType** | **CollectionType**| Library content type. | [optional] [enum: unknown, movies, tvshows, music, musicvideos, trailers, homevideos, boxsets, books, photos, livetv, playlists, folders] | +| **isNewLibrary** | **Boolean**| Whether this is a new library. | [optional] [default to false] | + +### Return type + +[**LibraryOptionsResultDto**](LibraryOptionsResultDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Library options info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaFolders** +> BaseItemDtoQueryResult getMediaFolders(isHidden) + +Gets all user media folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional. Filter by folders that are marked hidden, or not. + try { + BaseItemDtoQueryResult result = apiInstance.getMediaFolders(isHidden); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getMediaFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional. Filter by folders that are marked hidden, or not. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media folders returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPhysicalPaths** +> List<String> getPhysicalPaths() + +Gets a list of physical paths from virtual folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + try { + List result = apiInstance.getPhysicalPaths(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getPhysicalPaths"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**List<String>** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Physical paths returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarAlbums** +> BaseItemDtoQueryResult getSimilarAlbums(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarAlbums(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarAlbums"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarArtists** +> BaseItemDtoQueryResult getSimilarArtists(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarArtists(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarItems** +> BaseItemDtoQueryResult getSimilarItems(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarItems(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarMovies** +> BaseItemDtoQueryResult getSimilarMovies(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarMovies(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarShows** +> BaseItemDtoQueryResult getSimilarShows(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarShows(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarShows"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarTrailers** +> BaseItemDtoQueryResult getSimilarTrailers(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarTrailers(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeMedia** +> AllThemeMediaResult getThemeMedia(itemId, userId, inheritFromParent, sortBy, sortOrder) + +Get theme songs and videos for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + List sortOrder = Arrays.asList(); // List | Optional. Sort Order - Ascending, Descending. + try { + AllThemeMediaResult result = apiInstance.getThemeMedia(itemId, userId, inheritFromParent, sortBy, sortOrder); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Optional. Sort Order - Ascending, Descending. | [optional] | + +### Return type + +[**AllThemeMediaResult**](AllThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme songs and videos returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeSongs** +> ThemeMediaResult getThemeSongs(itemId, userId, inheritFromParent, sortBy, sortOrder) + +Get theme songs for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + List sortOrder = Arrays.asList(); // List | Optional. Sort Order - Ascending, Descending. + try { + ThemeMediaResult result = apiInstance.getThemeSongs(itemId, userId, inheritFromParent, sortBy, sortOrder); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeSongs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Optional. Sort Order - Ascending, Descending. | [optional] | + +### Return type + +[**ThemeMediaResult**](ThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme songs returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeVideos** +> ThemeMediaResult getThemeVideos(itemId, userId, inheritFromParent, sortBy, sortOrder) + +Get theme videos for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + List sortOrder = Arrays.asList(); // List | Optional. Sort Order - Ascending, Descending. + try { + ThemeMediaResult result = apiInstance.getThemeVideos(itemId, userId, inheritFromParent, sortBy, sortOrder); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeVideos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Optional. Sort Order - Ascending, Descending. | [optional] | + +### Return type + +[**ThemeMediaResult**](ThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme videos returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postAddedMovies** +> postAddedMovies(tmdbId, imdbId) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tmdbId = "tmdbId_example"; // String | The tmdbId. + String imdbId = "imdbId_example"; // String | The imdbId. + try { + apiInstance.postAddedMovies(tmdbId, imdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postAddedMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tmdbId** | **String**| The tmdbId. | [optional] | +| **imdbId** | **String**| The imdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postAddedSeries** +> postAddedSeries(tvdbId) + +Reports that new episodes of a series have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tvdbId = "tvdbId_example"; // String | The tvdbId. + try { + apiInstance.postAddedSeries(tvdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postAddedSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tvdbId** | **String**| The tvdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedMedia** +> postUpdatedMedia(mediaUpdateInfoDto) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + MediaUpdateInfoDto mediaUpdateInfoDto = new MediaUpdateInfoDto(); // MediaUpdateInfoDto | The update paths. + try { + apiInstance.postUpdatedMedia(mediaUpdateInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mediaUpdateInfoDto** | [**MediaUpdateInfoDto**](MediaUpdateInfoDto.md)| The update paths. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedMovies** +> postUpdatedMovies(tmdbId, imdbId) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tmdbId = "tmdbId_example"; // String | The tmdbId. + String imdbId = "imdbId_example"; // String | The imdbId. + try { + apiInstance.postUpdatedMovies(tmdbId, imdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tmdbId** | **String**| The tmdbId. | [optional] | +| **imdbId** | **String**| The imdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedSeries** +> postUpdatedSeries(tvdbId) + +Reports that new episodes of a series have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tvdbId = "tvdbId_example"; // String | The tvdbId. + try { + apiInstance.postUpdatedSeries(tvdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tvdbId** | **String**| The tvdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **refreshLibrary** +> refreshLibrary() + +Starts a library scan. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + try { + apiInstance.refreshLibrary(); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#refreshLibrary"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Library scan started. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryChangedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryChangedMessage.md new file mode 100644 index 0000000000000..41bc346821c21 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryChangedMessage.md @@ -0,0 +1,16 @@ + + +# LibraryChangedMessage + +Library changed message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**LibraryUpdateInfo**](LibraryUpdateInfo.md) | Class LibraryUpdateInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionInfoDto.md new file mode 100644 index 0000000000000..5a3c8ae3ce685 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionInfoDto.md @@ -0,0 +1,15 @@ + + +# LibraryOptionInfoDto + +Library option info dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets name. | [optional] | +|**defaultEnabled** | **Boolean** | Gets or sets a value indicating whether default enabled. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptions.md new file mode 100644 index 0000000000000..d5a5b5a821a7f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptions.md @@ -0,0 +1,54 @@ + + +# LibraryOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enabled** | **Boolean** | | [optional] | +|**enablePhotos** | **Boolean** | | [optional] | +|**enableRealtimeMonitor** | **Boolean** | | [optional] | +|**enableLUFSScan** | **Boolean** | | [optional] | +|**enableChapterImageExtraction** | **Boolean** | | [optional] | +|**extractChapterImagesDuringLibraryScan** | **Boolean** | | [optional] | +|**enableTrickplayImageExtraction** | **Boolean** | | [optional] | +|**extractTrickplayImagesDuringLibraryScan** | **Boolean** | | [optional] | +|**pathInfos** | [**List<MediaPathInfo>**](MediaPathInfo.md) | | [optional] | +|**saveLocalMetadata** | **Boolean** | | [optional] | +|**enableInternetProviders** | **Boolean** | | [optional] | +|**enableAutomaticSeriesGrouping** | **Boolean** | | [optional] | +|**enableEmbeddedTitles** | **Boolean** | | [optional] | +|**enableEmbeddedExtrasTitles** | **Boolean** | | [optional] | +|**enableEmbeddedEpisodeInfos** | **Boolean** | | [optional] | +|**automaticRefreshIntervalDays** | **Integer** | | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**seasonZeroDisplayName** | **String** | | [optional] | +|**metadataSavers** | **List<String>** | | [optional] | +|**disabledLocalMetadataReaders** | **List<String>** | | [optional] | +|**localMetadataReaderOrder** | **List<String>** | | [optional] | +|**disabledSubtitleFetchers** | **List<String>** | | [optional] | +|**subtitleFetcherOrder** | **List<String>** | | [optional] | +|**disabledMediaSegmentProviders** | **List<String>** | | [optional] | +|**mediaSegmentProvideOrder** | **List<String>** | | [optional] | +|**skipSubtitlesIfEmbeddedSubtitlesPresent** | **Boolean** | | [optional] | +|**skipSubtitlesIfAudioTrackMatches** | **Boolean** | | [optional] | +|**subtitleDownloadLanguages** | **List<String>** | | [optional] | +|**requirePerfectSubtitleMatch** | **Boolean** | | [optional] | +|**saveSubtitlesWithMedia** | **Boolean** | | [optional] | +|**saveLyricsWithMedia** | **Boolean** | | [optional] | +|**saveTrickplayWithMedia** | **Boolean** | | [optional] | +|**disabledLyricFetchers** | **List<String>** | | [optional] | +|**lyricFetcherOrder** | **List<String>** | | [optional] | +|**preferNonstandardArtistsTag** | **Boolean** | | [optional] | +|**useCustomTagDelimiters** | **Boolean** | | [optional] | +|**customTagDelimiters** | **List<String>** | | [optional] | +|**delimiterWhitelist** | **List<String>** | | [optional] | +|**automaticallyAddToCollection** | **Boolean** | | [optional] | +|**allowEmbeddedSubtitles** | **EmbeddedSubtitleOptions** | An enum representing the options to disable embedded subs. | [optional] | +|**typeOptions** | [**List<TypeOptions>**](TypeOptions.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionsResultDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionsResultDto.md new file mode 100644 index 0000000000000..e23f647476d46 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryOptionsResultDto.md @@ -0,0 +1,18 @@ + + +# LibraryOptionsResultDto + +Library options result dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**metadataSavers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata savers. | [optional] | +|**metadataReaders** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata readers. | [optional] | +|**subtitleFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the subtitle fetchers. | [optional] | +|**lyricFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the list of lyric fetchers. | [optional] | +|**typeOptions** | [**List<LibraryTypeOptionsDto>**](LibraryTypeOptionsDto.md) | Gets or sets the type options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryStructureApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryStructureApi.md new file mode 100644 index 0000000000000..92444fdc320dc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryStructureApi.md @@ -0,0 +1,580 @@ +# LibraryStructureApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addMediaPath**](LibraryStructureApi.md#addMediaPath) | **POST** /Library/VirtualFolders/Paths | Add a media path to a library. | +| [**addVirtualFolder**](LibraryStructureApi.md#addVirtualFolder) | **POST** /Library/VirtualFolders | Adds a virtual folder. | +| [**getVirtualFolders**](LibraryStructureApi.md#getVirtualFolders) | **GET** /Library/VirtualFolders | Gets all virtual folders. | +| [**removeMediaPath**](LibraryStructureApi.md#removeMediaPath) | **DELETE** /Library/VirtualFolders/Paths | Remove a media path. | +| [**removeVirtualFolder**](LibraryStructureApi.md#removeVirtualFolder) | **DELETE** /Library/VirtualFolders | Removes a virtual folder. | +| [**renameVirtualFolder**](LibraryStructureApi.md#renameVirtualFolder) | **POST** /Library/VirtualFolders/Name | Renames a virtual folder. | +| [**updateLibraryOptions**](LibraryStructureApi.md#updateLibraryOptions) | **POST** /Library/VirtualFolders/LibraryOptions | Update library options. | +| [**updateMediaPath**](LibraryStructureApi.md#updateMediaPath) | **POST** /Library/VirtualFolders/Paths/Update | Updates a media path. | + + + +# **addMediaPath** +> addMediaPath(mediaPathDto, refreshLibrary) + +Add a media path to a library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + MediaPathDto mediaPathDto = new MediaPathDto(); // MediaPathDto | The media path dto. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.addMediaPath(mediaPathDto, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#addMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mediaPathDto** | [**MediaPathDto**](MediaPathDto.md)| The media path dto. | | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path added. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **addVirtualFolder** +> addVirtualFolder(name, collectionType, paths, refreshLibrary, addVirtualFolderDto) + +Adds a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the virtual folder. + CollectionTypeOptions collectionType = CollectionTypeOptions.fromValue("movies"); // CollectionTypeOptions | The type of the collection. + List paths = Arrays.asList(); // List | The paths of the virtual folder. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + AddVirtualFolderDto addVirtualFolderDto = new AddVirtualFolderDto(); // AddVirtualFolderDto | The library options. + try { + apiInstance.addVirtualFolder(name, collectionType, paths, refreshLibrary, addVirtualFolderDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#addVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the virtual folder. | [optional] | +| **collectionType** | **CollectionTypeOptions**| The type of the collection. | [optional] [enum: movies, tvshows, music, musicvideos, homevideos, boxsets, books, mixed] | +| **paths** | [**List<String>**](String.md)| The paths of the virtual folder. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | +| **addVirtualFolderDto** | [**AddVirtualFolderDto**](AddVirtualFolderDto.md)| The library options. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder added. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVirtualFolders** +> List<VirtualFolderInfo> getVirtualFolders() + +Gets all virtual folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + try { + List result = apiInstance.getVirtualFolders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#getVirtualFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<VirtualFolderInfo>**](VirtualFolderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Virtual folders retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeMediaPath** +> removeMediaPath(name, path, refreshLibrary) + +Remove a media path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the library. + String path = "path_example"; // String | The path to remove. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.removeMediaPath(name, path, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#removeMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the library. | [optional] | +| **path** | **String**| The path to remove. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeVirtualFolder** +> removeVirtualFolder(name, refreshLibrary) + +Removes a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the folder. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.removeVirtualFolder(name, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#removeVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the folder. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **renameVirtualFolder** +> renameVirtualFolder(name, newName, refreshLibrary) + +Renames a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the virtual folder. + String newName = "newName_example"; // String | The new name. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.renameVirtualFolder(name, newName, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#renameVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the virtual folder. | [optional] | +| **newName** | **String**| The new name. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder renamed. | - | +| **404** | Library doesn't exist. | - | +| **409** | Library already exists. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateLibraryOptions** +> updateLibraryOptions(updateLibraryOptionsDto) + +Update library options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + UpdateLibraryOptionsDto updateLibraryOptionsDto = new UpdateLibraryOptionsDto(); // UpdateLibraryOptionsDto | The library name and options. + try { + apiInstance.updateLibraryOptions(updateLibraryOptionsDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#updateLibraryOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **updateLibraryOptionsDto** | [**UpdateLibraryOptionsDto**](UpdateLibraryOptionsDto.md)| The library name and options. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Library updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateMediaPath** +> updateMediaPath(updateMediaPathRequestDto) + +Updates a media path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + UpdateMediaPathRequestDto updateMediaPathRequestDto = new UpdateMediaPathRequestDto(); // UpdateMediaPathRequestDto | The name of the library and path infos. + try { + apiInstance.updateMediaPath(updateMediaPathRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#updateMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **updateMediaPathRequestDto** | [**UpdateMediaPathRequestDto**](UpdateMediaPathRequestDto.md)| The name of the library and path infos. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryTypeOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryTypeOptionsDto.md new file mode 100644 index 0000000000000..36af73de136bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryTypeOptionsDto.md @@ -0,0 +1,18 @@ + + +# LibraryTypeOptionsDto + +Library type options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Gets or sets the type. | [optional] | +|**metadataFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata fetchers. | [optional] | +|**imageFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the image fetchers. | [optional] | +|**supportedImageTypes** | **List<ImageType>** | Gets or sets the supported image types. | [optional] | +|**defaultImageOptions** | [**List<ImageOption>**](ImageOption.md) | Gets or sets the default image options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryUpdateInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryUpdateInfo.md new file mode 100644 index 0000000000000..67f6e71b412d4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LibraryUpdateInfo.md @@ -0,0 +1,20 @@ + + +# LibraryUpdateInfo + +Class LibraryUpdateInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**foldersAddedTo** | **List<String>** | Gets or sets the folders added to. | [optional] | +|**foldersRemovedFrom** | **List<String>** | Gets or sets the folders removed from. | [optional] | +|**itemsAdded** | **List<String>** | Gets or sets the items added. | [optional] | +|**itemsRemoved** | **List<String>** | Gets or sets the items removed. | [optional] | +|**itemsUpdated** | **List<String>** | Gets or sets the items updated. | [optional] | +|**collectionFolders** | **List<String>** | | [optional] | +|**isEmpty** | **Boolean** | | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ListingsProviderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ListingsProviderInfo.md new file mode 100644 index 0000000000000..e2895564f6d42 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ListingsProviderInfo.md @@ -0,0 +1,30 @@ + + +# ListingsProviderInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | **String** | | [optional] | +|**username** | **String** | | [optional] | +|**password** | **String** | | [optional] | +|**listingsId** | **String** | | [optional] | +|**zipCode** | **String** | | [optional] | +|**country** | **String** | | [optional] | +|**path** | **String** | | [optional] | +|**enabledTuners** | **List<String>** | | [optional] | +|**enableAllTuners** | **Boolean** | | [optional] | +|**newsCategories** | **List<String>** | | [optional] | +|**sportsCategories** | **List<String>** | | [optional] | +|**kidsCategories** | **List<String>** | | [optional] | +|**movieCategories** | **List<String>** | | [optional] | +|**channelMappings** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | +|**moviePrefix** | **String** | | [optional] | +|**preferredLanguage** | **String** | | [optional] | +|**userAgent** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveStreamResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveStreamResponse.md new file mode 100644 index 0000000000000..e0f9b7c68ce16 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveStreamResponse.md @@ -0,0 +1,13 @@ + + +# LiveStreamResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mediaSource** | [**MediaSourceInfo**](MediaSourceInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvApi.md new file mode 100644 index 0000000000000..6c674a1785ab0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvApi.md @@ -0,0 +1,3051 @@ +# LiveTvApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addListingProvider**](LiveTvApi.md#addListingProvider) | **POST** /LiveTv/ListingProviders | Adds a listings provider. | +| [**addTunerHost**](LiveTvApi.md#addTunerHost) | **POST** /LiveTv/TunerHosts | Adds a tuner host. | +| [**cancelSeriesTimer**](LiveTvApi.md#cancelSeriesTimer) | **DELETE** /LiveTv/SeriesTimers/{timerId} | Cancels a live tv series timer. | +| [**cancelTimer**](LiveTvApi.md#cancelTimer) | **DELETE** /LiveTv/Timers/{timerId} | Cancels a live tv timer. | +| [**createSeriesTimer**](LiveTvApi.md#createSeriesTimer) | **POST** /LiveTv/SeriesTimers | Creates a live tv series timer. | +| [**createTimer**](LiveTvApi.md#createTimer) | **POST** /LiveTv/Timers | Creates a live tv timer. | +| [**deleteListingProvider**](LiveTvApi.md#deleteListingProvider) | **DELETE** /LiveTv/ListingProviders | Delete listing provider. | +| [**deleteRecording**](LiveTvApi.md#deleteRecording) | **DELETE** /LiveTv/Recordings/{recordingId} | Deletes a live tv recording. | +| [**deleteTunerHost**](LiveTvApi.md#deleteTunerHost) | **DELETE** /LiveTv/TunerHosts | Deletes a tuner host. | +| [**discoverTuners**](LiveTvApi.md#discoverTuners) | **GET** /LiveTv/Tuners/Discover | Discover tuners. | +| [**discvoverTuners**](LiveTvApi.md#discvoverTuners) | **GET** /LiveTv/Tuners/Discvover | Discover tuners. | +| [**getChannel**](LiveTvApi.md#getChannel) | **GET** /LiveTv/Channels/{channelId} | Gets a live tv channel. | +| [**getChannelMappingOptions**](LiveTvApi.md#getChannelMappingOptions) | **GET** /LiveTv/ChannelMappingOptions | Get channel mapping options. | +| [**getDefaultListingProvider**](LiveTvApi.md#getDefaultListingProvider) | **GET** /LiveTv/ListingProviders/Default | Gets default listings provider info. | +| [**getDefaultTimer**](LiveTvApi.md#getDefaultTimer) | **GET** /LiveTv/Timers/Defaults | Gets the default values for a new timer. | +| [**getGuideInfo**](LiveTvApi.md#getGuideInfo) | **GET** /LiveTv/GuideInfo | Get guid info. | +| [**getLineups**](LiveTvApi.md#getLineups) | **GET** /LiveTv/ListingProviders/Lineups | Gets available lineups. | +| [**getLiveRecordingFile**](LiveTvApi.md#getLiveRecordingFile) | **GET** /LiveTv/LiveRecordings/{recordingId}/stream | Gets a live tv recording stream. | +| [**getLiveStreamFile**](LiveTvApi.md#getLiveStreamFile) | **GET** /LiveTv/LiveStreamFiles/{streamId}/stream.{container} | Gets a live tv channel stream. | +| [**getLiveTvChannels**](LiveTvApi.md#getLiveTvChannels) | **GET** /LiveTv/Channels | Gets available live tv channels. | +| [**getLiveTvInfo**](LiveTvApi.md#getLiveTvInfo) | **GET** /LiveTv/Info | Gets available live tv services. | +| [**getLiveTvPrograms**](LiveTvApi.md#getLiveTvPrograms) | **GET** /LiveTv/Programs | Gets available live tv epgs. | +| [**getProgram**](LiveTvApi.md#getProgram) | **GET** /LiveTv/Programs/{programId} | Gets a live tv program. | +| [**getPrograms**](LiveTvApi.md#getPrograms) | **POST** /LiveTv/Programs | Gets available live tv epgs. | +| [**getRecommendedPrograms**](LiveTvApi.md#getRecommendedPrograms) | **GET** /LiveTv/Programs/Recommended | Gets recommended live tv epgs. | +| [**getRecording**](LiveTvApi.md#getRecording) | **GET** /LiveTv/Recordings/{recordingId} | Gets a live tv recording. | +| [**getRecordingFolders**](LiveTvApi.md#getRecordingFolders) | **GET** /LiveTv/Recordings/Folders | Gets recording folders. | +| [**getRecordingGroup**](LiveTvApi.md#getRecordingGroup) | **GET** /LiveTv/Recordings/Groups/{groupId} | Get recording group. | +| [**getRecordingGroups**](LiveTvApi.md#getRecordingGroups) | **GET** /LiveTv/Recordings/Groups | Gets live tv recording groups. | +| [**getRecordings**](LiveTvApi.md#getRecordings) | **GET** /LiveTv/Recordings | Gets live tv recordings. | +| [**getRecordingsSeries**](LiveTvApi.md#getRecordingsSeries) | **GET** /LiveTv/Recordings/Series | Gets live tv recording series. | +| [**getSchedulesDirectCountries**](LiveTvApi.md#getSchedulesDirectCountries) | **GET** /LiveTv/ListingProviders/SchedulesDirect/Countries | Gets available countries. | +| [**getSeriesTimer**](LiveTvApi.md#getSeriesTimer) | **GET** /LiveTv/SeriesTimers/{timerId} | Gets a live tv series timer. | +| [**getSeriesTimers**](LiveTvApi.md#getSeriesTimers) | **GET** /LiveTv/SeriesTimers | Gets live tv series timers. | +| [**getTimer**](LiveTvApi.md#getTimer) | **GET** /LiveTv/Timers/{timerId} | Gets a timer. | +| [**getTimers**](LiveTvApi.md#getTimers) | **GET** /LiveTv/Timers | Gets the live tv timers. | +| [**getTunerHostTypes**](LiveTvApi.md#getTunerHostTypes) | **GET** /LiveTv/TunerHosts/Types | Get tuner host types. | +| [**resetTuner**](LiveTvApi.md#resetTuner) | **POST** /LiveTv/Tuners/{tunerId}/Reset | Resets a tv tuner. | +| [**setChannelMapping**](LiveTvApi.md#setChannelMapping) | **POST** /LiveTv/ChannelMappings | Set channel mappings. | +| [**updateSeriesTimer**](LiveTvApi.md#updateSeriesTimer) | **POST** /LiveTv/SeriesTimers/{timerId} | Updates a live tv series timer. | +| [**updateTimer**](LiveTvApi.md#updateTimer) | **POST** /LiveTv/Timers/{timerId} | Updates a live tv timer. | + + + +# **addListingProvider** +> ListingsProviderInfo addListingProvider(pw, validateListings, validateLogin, listingsProviderInfo) + +Adds a listings provider. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String pw = "pw_example"; // String | Password. + Boolean validateListings = false; // Boolean | Validate listings. + Boolean validateLogin = false; // Boolean | Validate login. + ListingsProviderInfo listingsProviderInfo = new ListingsProviderInfo(); // ListingsProviderInfo | New listings info. + try { + ListingsProviderInfo result = apiInstance.addListingProvider(pw, validateListings, validateLogin, listingsProviderInfo); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#addListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pw** | **String**| Password. | [optional] | +| **validateListings** | **Boolean**| Validate listings. | [optional] [default to false] | +| **validateLogin** | **Boolean**| Validate login. | [optional] [default to false] | +| **listingsProviderInfo** | [**ListingsProviderInfo**](ListingsProviderInfo.md)| New listings info. | [optional] | + +### Return type + +[**ListingsProviderInfo**](ListingsProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created listings provider returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **addTunerHost** +> TunerHostInfo addTunerHost(tunerHostInfo) + +Adds a tuner host. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + TunerHostInfo tunerHostInfo = new TunerHostInfo(); // TunerHostInfo | New tuner host. + try { + TunerHostInfo result = apiInstance.addTunerHost(tunerHostInfo); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#addTunerHost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tunerHostInfo** | [**TunerHostInfo**](TunerHostInfo.md)| New tuner host. | [optional] | + +### Return type + +[**TunerHostInfo**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created tuner host returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **cancelSeriesTimer** +> cancelSeriesTimer(timerId) + +Cancels a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + apiInstance.cancelSeriesTimer(timerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#cancelSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer cancelled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **cancelTimer** +> cancelTimer(timerId) + +Cancels a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + apiInstance.cancelTimer(timerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#cancelTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createSeriesTimer** +> createSeriesTimer(seriesTimerInfoDto) + +Creates a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + SeriesTimerInfoDto seriesTimerInfoDto = new SeriesTimerInfoDto(); // SeriesTimerInfoDto | New series timer info. + try { + apiInstance.createSeriesTimer(seriesTimerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#createSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesTimerInfoDto** | [**SeriesTimerInfoDto**](SeriesTimerInfoDto.md)| New series timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Series timer info created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createTimer** +> createTimer(timerInfoDto) + +Creates a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + TimerInfoDto timerInfoDto = new TimerInfoDto(); // TimerInfoDto | New timer info. + try { + apiInstance.createTimer(timerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#createTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerInfoDto** | [**TimerInfoDto**](TimerInfoDto.md)| New timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteListingProvider** +> deleteListingProvider(id) + +Delete listing provider. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Listing provider id. + try { + apiInstance.deleteListingProvider(id); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Listing provider id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Listing provider deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteRecording** +> deleteRecording(recordingId) + +Deletes a live tv recording. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID recordingId = UUID.randomUUID(); // UUID | Recording id. + try { + apiInstance.deleteRecording(recordingId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **UUID**| Recording id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Recording deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteTunerHost** +> deleteTunerHost(id) + +Deletes a tuner host. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Tuner host id. + try { + apiInstance.deleteTunerHost(id); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteTunerHost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Tuner host id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Tuner host deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **discoverTuners** +> List<TunerHostInfo> discoverTuners(newDevicesOnly) + +Discover tuners. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + Boolean newDevicesOnly = false; // Boolean | Only discover new tuners. + try { + List result = apiInstance.discoverTuners(newDevicesOnly); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#discoverTuners"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newDevicesOnly** | **Boolean**| Only discover new tuners. | [optional] [default to false] | + +### Return type + +[**List<TunerHostInfo>**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuners returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **discvoverTuners** +> List<TunerHostInfo> discvoverTuners(newDevicesOnly) + +Discover tuners. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + Boolean newDevicesOnly = false; // Boolean | Only discover new tuners. + try { + List result = apiInstance.discvoverTuners(newDevicesOnly); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#discvoverTuners"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newDevicesOnly** | **Boolean**| Only discover new tuners. | [optional] [default to false] | + +### Return type + +[**List<TunerHostInfo>**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuners returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannel** +> BaseItemDto getChannel(channelId, userId) + +Gets a live tv channel. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getChannel(channelId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getChannel"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv channel returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelMappingOptions** +> ChannelMappingOptionsDto getChannelMappingOptions(providerId) + +Get channel mapping options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String providerId = "providerId_example"; // String | Provider id. + try { + ChannelMappingOptionsDto result = apiInstance.getChannelMappingOptions(providerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getChannelMappingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **providerId** | **String**| Provider id. | [optional] | + +### Return type + +[**ChannelMappingOptionsDto**](ChannelMappingOptionsDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel mapping options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultListingProvider** +> ListingsProviderInfo getDefaultListingProvider() + +Gets default listings provider info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + ListingsProviderInfo result = apiInstance.getDefaultListingProvider(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getDefaultListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ListingsProviderInfo**](ListingsProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default listings provider info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultTimer** +> SeriesTimerInfoDto getDefaultTimer(programId) + +Gets the default values for a new timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String programId = "programId_example"; // String | Optional. To attach default values based on a program. + try { + SeriesTimerInfoDto result = apiInstance.getDefaultTimer(programId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getDefaultTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **programId** | **String**| Optional. To attach default values based on a program. | [optional] | + +### Return type + +[**SeriesTimerInfoDto**](SeriesTimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default values returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getGuideInfo** +> GuideInfo getGuideInfo() + +Get guid info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + GuideInfo result = apiInstance.getGuideInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getGuideInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**GuideInfo**](GuideInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Guid info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLineups** +> List<NameIdPair> getLineups(id, type, location, country) + +Gets available lineups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Provider id. + String type = "type_example"; // String | Provider type. + String location = "location_example"; // String | Location. + String country = "country_example"; // String | Country. + try { + List result = apiInstance.getLineups(id, type, location, country); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLineups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Provider id. | [optional] | +| **type** | **String**| Provider type. | [optional] | +| **location** | **String**| Location. | [optional] | +| **country** | **String**| Country. | [optional] | + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available lineups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveRecordingFile** +> File getLiveRecordingFile(recordingId) + +Gets a live tv recording stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String recordingId = "recordingId_example"; // String | Recording id. + try { + File result = apiInstance.getLiveRecordingFile(recordingId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveRecordingFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **String**| Recording id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording stream returned. | - | +| **404** | Recording not found. | - | + + +# **getLiveStreamFile** +> File getLiveStreamFile(streamId, container) + +Gets a live tv channel stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String streamId = "streamId_example"; // String | Stream id. + String container = "container_example"; // String | Container type. + try { + File result = apiInstance.getLiveStreamFile(streamId, container); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveStreamFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **streamId** | **String**| Stream id. | | +| **container** | **String**| Container type. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Stream returned. | - | +| **404** | Stream not found. | - | + + +# **getLiveTvChannels** +> BaseItemDtoQueryResult getLiveTvChannels(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram) + +Gets available live tv channels. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + ChannelType type = ChannelType.fromValue("TV"); // ChannelType | Optional. Filter by channel type. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean isFavorite = true; // Boolean | Optional. Filter by channels that are favorites, or not. + Boolean isLiked = true; // Boolean | Optional. Filter by channels that are liked, or not. + Boolean isDisliked = true; // Boolean | Optional. Filter by channels that are disliked, or not. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | \"Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + List sortBy = Arrays.asList(); // List | Optional. Key to sort by. + SortOrder sortOrder = SortOrder.fromValue("Ascending"); // SortOrder | Optional. Sort order. + Boolean enableFavoriteSorting = false; // Boolean | Optional. Incorporate favorite and like status into channel sorting. + Boolean addCurrentProgram = true; // Boolean | Optional. Adds current program info to each channel. + try { + BaseItemDtoQueryResult result = apiInstance.getLiveTvChannels(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvChannels"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **type** | **ChannelType**| Optional. Filter by channel type. | [optional] [enum: TV, Radio] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **isFavorite** | **Boolean**| Optional. Filter by channels that are favorites, or not. | [optional] | +| **isLiked** | **Boolean**| Optional. Filter by channels that are liked, or not. | [optional] | +| **isDisliked** | **Boolean**| Optional. Filter by channels that are disliked, or not. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| \"Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Key to sort by. | [optional] | +| **sortOrder** | **SortOrder**| Optional. Sort order. | [optional] [enum: Ascending, Descending] | +| **enableFavoriteSorting** | **Boolean**| Optional. Incorporate favorite and like status into channel sorting. | [optional] [default to false] | +| **addCurrentProgram** | **Boolean**| Optional. Adds current program info to each channel. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available live tv channels returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveTvInfo** +> LiveTvInfo getLiveTvInfo() + +Gets available live tv services. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + LiveTvInfo result = apiInstance.getLiveTvInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**LiveTvInfo**](LiveTvInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available live tv services returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveTvPrograms** +> BaseItemDtoQueryResult getLiveTvPrograms(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount) + +Gets available live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + List channelIds = Arrays.asList(); // List | The channels to return guide information for. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id. + OffsetDateTime minStartDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere start date. + Boolean hasAired = true; // Boolean | Optional. Filter by programs that have completed airing, or not. + Boolean isAiring = true; // Boolean | Optional. Filter by programs that are currently airing, or not. + OffsetDateTime maxStartDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere start date. + OffsetDateTime minEndDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere end date. + OffsetDateTime maxEndDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere end date. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + List genres = Arrays.asList(); // List | The genres to return guide information for. + List genreIds = Arrays.asList(); // List | The genre ids to return guide information for. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by series timer id. + UUID librarySeriesId = UUID.randomUUID(); // UUID | Optional. Filter by library series id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableTotalRecordCount = true; // Boolean | Retrieve total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getLiveTvPrograms(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelIds** | [**List<UUID>**](UUID.md)| The channels to return guide information for. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id. | [optional] | +| **minStartDate** | **OffsetDateTime**| Optional. The minimum premiere start date. | [optional] | +| **hasAired** | **Boolean**| Optional. Filter by programs that have completed airing, or not. | [optional] | +| **isAiring** | **Boolean**| Optional. Filter by programs that are currently airing, or not. | [optional] | +| **maxStartDate** | **OffsetDateTime**| Optional. The maximum premiere start date. | [optional] | +| **minEndDate** | **OffsetDateTime**| Optional. The minimum premiere end date. | [optional] | +| **maxEndDate** | **OffsetDateTime**| Optional. The maximum premiere end date. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **genres** | [**List<String>**](String.md)| The genres to return guide information for. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| The genre ids to return guide information for. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by series timer id. | [optional] | +| **librarySeriesId** | **UUID**| Optional. Filter by library series id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Retrieve total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getProgram** +> BaseItemDto getProgram(programId, userId) + +Gets a live tv program. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String programId = "programId_example"; // String | Program id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getProgram(programId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getProgram"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **programId** | **String**| Program id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Program returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPrograms** +> BaseItemDtoQueryResult getPrograms(getProgramsDto) + +Gets available live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + GetProgramsDto getProgramsDto = new GetProgramsDto(); // GetProgramsDto | Request body. + try { + BaseItemDtoQueryResult result = apiInstance.getPrograms(getProgramsDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **getProgramsDto** | [**GetProgramsDto**](GetProgramsDto.md)| Request body. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecommendedPrograms** +> BaseItemDtoQueryResult getRecommendedPrograms(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount) + +Gets recommended live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. filter by user id. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean isAiring = true; // Boolean | Optional. Filter by programs that are currently airing, or not. + Boolean hasAired = true; // Boolean | Optional. Filter by programs that have completed airing, or not. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List genreIds = Arrays.asList(); // List | The genres to return guide information for. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. include user data. + Boolean enableTotalRecordCount = true; // Boolean | Retrieve total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecommendedPrograms(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecommendedPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. filter by user id. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **isAiring** | **Boolean**| Optional. Filter by programs that are currently airing, or not. | [optional] | +| **hasAired** | **Boolean**| Optional. Filter by programs that have completed airing, or not. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| The genres to return guide information for. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. include user data. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Retrieve total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recommended epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecording** +> BaseItemDto getRecording(recordingId, userId) + +Gets a live tv recording. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID recordingId = UUID.randomUUID(); // UUID | Recording id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getRecording(recordingId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **UUID**| Recording id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingFolders** +> BaseItemDtoQueryResult getRecordingFolders(userId) + +Gets recording folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingFolders(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording folders returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingGroup** +> getRecordingGroup(groupId) + +Get recording group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID groupId = UUID.randomUUID(); // UUID | Group id. + try { + apiInstance.getRecordingGroup(groupId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **groupId** | **UUID**| Group id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingGroups** +> BaseItemDtoQueryResult getRecordingGroups(userId) + +Gets live tv recording groups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingGroups(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording groups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordings** +> BaseItemDtoQueryResult getRecordings(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount) + +Gets live tv recordings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + RecordingStatus status = RecordingStatus.fromValue("New"); // RecordingStatus | Optional. Filter by recording status. + Boolean isInProgress = true; // Boolean | Optional. Filter by recordings that are in progress, or not. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by recordings belonging to a series timer. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isLibraryItem = true; // Boolean | Optional. Filter for is library item. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Return total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordings(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **status** | **RecordingStatus**| Optional. Filter by recording status. | [optional] [enum: New, InProgress, Completed, Cancelled, ConflictedOk, ConflictedNotOk, Error] | +| **isInProgress** | **Boolean**| Optional. Filter by recordings that are in progress, or not. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by recordings belonging to a series timer. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isLibraryItem** | **Boolean**| Optional. Filter for is library item. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Return total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv recordings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingsSeries** +> BaseItemDtoQueryResult getRecordingsSeries(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount) + +Gets live tv recording series. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + String groupId = "groupId_example"; // String | Optional. Filter by recording group. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + RecordingStatus status = RecordingStatus.fromValue("New"); // RecordingStatus | Optional. Filter by recording status. + Boolean isInProgress = true; // Boolean | Optional. Filter by recordings that are in progress, or not. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by recordings belonging to a series timer. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Return total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingsSeries(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingsSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **groupId** | **String**| Optional. Filter by recording group. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **status** | **RecordingStatus**| Optional. Filter by recording status. | [optional] [enum: New, InProgress, Completed, Cancelled, ConflictedOk, ConflictedNotOk, Error] | +| **isInProgress** | **Boolean**| Optional. Filter by recordings that are in progress, or not. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by recordings belonging to a series timer. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Return total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv recordings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSchedulesDirectCountries** +> File getSchedulesDirectCountries() + +Gets available countries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + File result = apiInstance.getSchedulesDirectCountries(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSchedulesDirectCountries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available countries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesTimer** +> SeriesTimerInfoDto getSeriesTimer(timerId) + +Gets a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + SeriesTimerInfoDto result = apiInstance.getSeriesTimer(timerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +[**SeriesTimerInfoDto**](SeriesTimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Series timer returned. | - | +| **404** | Series timer not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesTimers** +> SeriesTimerInfoDtoQueryResult getSeriesTimers(sortBy, sortOrder) + +Gets live tv series timers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String sortBy = "sortBy_example"; // String | Optional. Sort by SortName or Priority. + SortOrder sortOrder = SortOrder.fromValue("Ascending"); // SortOrder | Optional. Sort in Ascending or Descending order. + try { + SeriesTimerInfoDtoQueryResult result = apiInstance.getSeriesTimers(sortBy, sortOrder); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSeriesTimers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sortBy** | **String**| Optional. Sort by SortName or Priority. | [optional] | +| **sortOrder** | **SortOrder**| Optional. Sort in Ascending or Descending order. | [optional] [enum: Ascending, Descending] | + +### Return type + +[**SeriesTimerInfoDtoQueryResult**](SeriesTimerInfoDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Timers returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTimer** +> TimerInfoDto getTimer(timerId) + +Gets a timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + TimerInfoDto result = apiInstance.getTimer(timerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +[**TimerInfoDto**](TimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Timer returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTimers** +> TimerInfoDtoQueryResult getTimers(channelId, seriesTimerId, isActive, isScheduled) + +Gets the live tv timers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by timers belonging to a series timer. + Boolean isActive = true; // Boolean | Optional. Filter by timers that are active. + Boolean isScheduled = true; // Boolean | Optional. Filter by timers that are scheduled. + try { + TimerInfoDtoQueryResult result = apiInstance.getTimers(channelId, seriesTimerId, isActive, isScheduled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTimers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by timers belonging to a series timer. | [optional] | +| **isActive** | **Boolean**| Optional. Filter by timers that are active. | [optional] | +| **isScheduled** | **Boolean**| Optional. Filter by timers that are scheduled. | [optional] | + +### Return type + +[**TimerInfoDtoQueryResult**](TimerInfoDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTunerHostTypes** +> List<NameIdPair> getTunerHostTypes() + +Get tuner host types. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + List result = apiInstance.getTunerHostTypes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTunerHostTypes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuner host types returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **resetTuner** +> resetTuner(tunerId) + +Resets a tv tuner. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String tunerId = "tunerId_example"; // String | Tuner id. + try { + apiInstance.resetTuner(tunerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#resetTuner"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tunerId** | **String**| Tuner id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Tuner reset. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setChannelMapping** +> TunerChannelMapping setChannelMapping(setChannelMappingDto) + +Set channel mappings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + SetChannelMappingDto setChannelMappingDto = new SetChannelMappingDto(); // SetChannelMappingDto | The set channel mapping dto. + try { + TunerChannelMapping result = apiInstance.setChannelMapping(setChannelMappingDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#setChannelMapping"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setChannelMappingDto** | [**SetChannelMappingDto**](SetChannelMappingDto.md)| The set channel mapping dto. | | + +### Return type + +[**TunerChannelMapping**](TunerChannelMapping.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created channel mapping returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateSeriesTimer** +> updateSeriesTimer(timerId, seriesTimerInfoDto) + +Updates a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + SeriesTimerInfoDto seriesTimerInfoDto = new SeriesTimerInfoDto(); // SeriesTimerInfoDto | New series timer info. + try { + apiInstance.updateSeriesTimer(timerId, seriesTimerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#updateSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | +| **seriesTimerInfoDto** | [**SeriesTimerInfoDto**](SeriesTimerInfoDto.md)| New series timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Series timer updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateTimer** +> updateTimer(timerId, timerInfoDto) + +Updates a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + TimerInfoDto timerInfoDto = new TimerInfoDto(); // TimerInfoDto | New timer info. + try { + apiInstance.updateTimer(timerId, timerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#updateTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | +| **timerInfoDto** | [**TimerInfoDto**](TimerInfoDto.md)| New timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvInfo.md new file mode 100644 index 0000000000000..c3d69a9f38540 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvInfo.md @@ -0,0 +1,15 @@ + + +# LiveTvInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**services** | [**List<LiveTvServiceInfo>**](LiveTvServiceInfo.md) | Gets or sets the services. | [optional] | +|**isEnabled** | **Boolean** | Gets or sets a value indicating whether this instance is enabled. | [optional] | +|**enabledUsers** | **List<String>** | Gets or sets the enabled users. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvOptions.md new file mode 100644 index 0000000000000..13bf496ac87aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvOptions.md @@ -0,0 +1,27 @@ + + +# LiveTvOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**guideDays** | **Integer** | | [optional] | +|**recordingPath** | **String** | | [optional] | +|**movieRecordingPath** | **String** | | [optional] | +|**seriesRecordingPath** | **String** | | [optional] | +|**enableRecordingSubfolders** | **Boolean** | | [optional] | +|**enableOriginalAudioWithEncodedRecordings** | **Boolean** | | [optional] | +|**tunerHosts** | [**List<TunerHostInfo>**](TunerHostInfo.md) | | [optional] | +|**listingProviders** | [**List<ListingsProviderInfo>**](ListingsProviderInfo.md) | | [optional] | +|**prePaddingSeconds** | **Integer** | | [optional] | +|**postPaddingSeconds** | **Integer** | | [optional] | +|**mediaLocationsCreated** | **List<String>** | | [optional] | +|**recordingPostProcessor** | **String** | | [optional] | +|**recordingPostProcessorArguments** | **String** | | [optional] | +|**saveRecordingNFO** | **Boolean** | | [optional] | +|**saveRecordingImages** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceInfo.md new file mode 100644 index 0000000000000..164786e24f1d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceInfo.md @@ -0,0 +1,21 @@ + + +# LiveTvServiceInfo + +Class ServiceInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**homePageUrl** | **String** | Gets or sets the home page URL. | [optional] | +|**status** | **LiveTvServiceStatus** | Gets or sets the status. | [optional] | +|**statusMessage** | **String** | Gets or sets the status message. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**hasUpdateAvailable** | **Boolean** | Gets or sets a value indicating whether this instance has update available. | [optional] | +|**isVisible** | **Boolean** | Gets or sets a value indicating whether this instance is visible. | [optional] | +|**tuners** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceStatus.md new file mode 100644 index 0000000000000..192787a0edd12 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LiveTvServiceStatus.md @@ -0,0 +1,13 @@ + + +# LiveTvServiceStatus + +## Enum + + +* `OK` (value: `"Ok"`) + +* `UNAVAILABLE` (value: `"Unavailable"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationApi.md new file mode 100644 index 0000000000000..2ddb03f71418e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationApi.md @@ -0,0 +1,272 @@ +# LocalizationApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getCountries**](LocalizationApi.md#getCountries) | **GET** /Localization/Countries | Gets known countries. | +| [**getCultures**](LocalizationApi.md#getCultures) | **GET** /Localization/Cultures | Gets known cultures. | +| [**getLocalizationOptions**](LocalizationApi.md#getLocalizationOptions) | **GET** /Localization/Options | Gets localization options. | +| [**getParentalRatings**](LocalizationApi.md#getParentalRatings) | **GET** /Localization/ParentalRatings | Gets known parental ratings. | + + + +# **getCountries** +> List<CountryInfo> getCountries() + +Gets known countries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getCountries(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getCountries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<CountryInfo>**](CountryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known countries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getCultures** +> List<CultureDto> getCultures() + +Gets known cultures. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getCultures(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getCultures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<CultureDto>**](CultureDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known cultures returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLocalizationOptions** +> List<LocalizationOption> getLocalizationOptions() + +Gets localization options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getLocalizationOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getLocalizationOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<LocalizationOption>**](LocalizationOption.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Localization options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getParentalRatings** +> List<ParentalRating> getParentalRatings() + +Gets known parental ratings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getParentalRatings(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getParentalRatings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ParentalRating>**](ParentalRating.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known parental ratings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationOption.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationOption.md new file mode 100644 index 0000000000000..4d2355a59551f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocalizationOption.md @@ -0,0 +1,14 @@ + + +# LocalizationOption + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**value** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocationType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocationType.md new file mode 100644 index 0000000000000..80cb2192ade70 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LocationType.md @@ -0,0 +1,17 @@ + + +# LocationType + +## Enum + + +* `FILE_SYSTEM` (value: `"FileSystem"`) + +* `REMOTE` (value: `"Remote"`) + +* `VIRTUAL` (value: `"Virtual"`) + +* `OFFLINE` (value: `"Offline"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogFile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogFile.md new file mode 100644 index 0000000000000..7540d59c945cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogFile.md @@ -0,0 +1,16 @@ + + +# LogFile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateModified** | **OffsetDateTime** | Gets or sets the date modified. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogLevel.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogLevel.md new file mode 100644 index 0000000000000..7d32ff2a98081 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LogLevel.md @@ -0,0 +1,23 @@ + + +# LogLevel + +## Enum + + +* `TRACE` (value: `"Trace"`) + +* `DEBUG` (value: `"Debug"`) + +* `INFORMATION` (value: `"Information"`) + +* `WARNING` (value: `"Warning"`) + +* `ERROR` (value: `"Error"`) + +* `CRITICAL` (value: `"Critical"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricDto.md new file mode 100644 index 0000000000000..3e378d2442122 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricDto.md @@ -0,0 +1,15 @@ + + +# LyricDto + +LyricResponse model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**metadata** | [**LyricMetadata**](LyricMetadata.md) | Gets or sets Metadata for the lyrics. | [optional] | +|**lyrics** | [**List<LyricLine>**](LyricLine.md) | Gets or sets a collection of individual lyric lines. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricLine.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricLine.md new file mode 100644 index 0000000000000..392902684ca7f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricLine.md @@ -0,0 +1,15 @@ + + +# LyricLine + +Lyric model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**text** | **String** | Gets the text of this lyric line. | [optional] | +|**start** | **Long** | Gets the start time in ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricMetadata.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricMetadata.md new file mode 100644 index 0000000000000..aa2df97d3f2ec --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricMetadata.md @@ -0,0 +1,23 @@ + + +# LyricMetadata + +LyricMetadata model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**artist** | **String** | Gets or sets the song artist. | [optional] | +|**album** | **String** | Gets or sets the album this song is on. | [optional] | +|**title** | **String** | Gets or sets the title of the song. | [optional] | +|**author** | **String** | Gets or sets the author of the lyric data. | [optional] | +|**length** | **Long** | Gets or sets the length of the song in ticks. | [optional] | +|**by** | **String** | Gets or sets who the LRC file was created by. | [optional] | +|**offset** | **Long** | Gets or sets the lyric offset compared to audio in ticks. | [optional] | +|**creator** | **String** | Gets or sets the software used to create the LRC file. | [optional] | +|**version** | **String** | Gets or sets the version of the creator used. | [optional] | +|**isSynced** | **Boolean** | Gets or sets a value indicating whether this lyric is synced. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricsApi.md new file mode 100644 index 0000000000000..71773873e169c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/LyricsApi.md @@ -0,0 +1,440 @@ +# LyricsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteLyrics**](LyricsApi.md#deleteLyrics) | **DELETE** /Audio/{itemId}/Lyrics | Deletes an external lyric file. | +| [**downloadRemoteLyrics**](LyricsApi.md#downloadRemoteLyrics) | **POST** /Audio/{itemId}/RemoteSearch/Lyrics/{lyricId} | Downloads a remote lyric. | +| [**getLyrics**](LyricsApi.md#getLyrics) | **GET** /Audio/{itemId}/Lyrics | Gets an item's lyrics. | +| [**getRemoteLyrics**](LyricsApi.md#getRemoteLyrics) | **GET** /Providers/Lyrics/{lyricId} | Gets the remote lyrics. | +| [**searchRemoteLyrics**](LyricsApi.md#searchRemoteLyrics) | **GET** /Audio/{itemId}/RemoteSearch/Lyrics | Search remote lyrics. | +| [**uploadLyrics**](LyricsApi.md#uploadLyrics) | **POST** /Audio/{itemId}/Lyrics | Upload an external lyric file. | + + + +# **deleteLyrics** +> deleteLyrics(itemId) + +Deletes an external lyric file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + apiInstance.deleteLyrics(itemId); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#deleteLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Lyric deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **downloadRemoteLyrics** +> LyricDto downloadRemoteLyrics(itemId, lyricId) + +Downloads a remote lyric. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String lyricId = "lyricId_example"; // String | The lyric id. + try { + LyricDto result = apiInstance.downloadRemoteLyrics(itemId, lyricId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#downloadRemoteLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **lyricId** | **String**| The lyric id. | | + +### Return type + +[**LyricDto**](LyricDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Lyric downloaded. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLyrics** +> LyricDto getLyrics(itemId) + +Gets an item's lyrics. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + LyricDto result = apiInstance.getLyrics(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#getLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**LyricDto**](LyricDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Lyrics returned. | - | +| **404** | Something went wrong. No Lyrics will be returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteLyrics** +> LyricDto getRemoteLyrics(lyricId) + +Gets the remote lyrics. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + String lyricId = "lyricId_example"; // String | The remote provider item id. + try { + LyricDto result = apiInstance.getRemoteLyrics(lyricId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#getRemoteLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **lyricId** | **String**| The remote provider item id. | | + +### Return type + +[**LyricDto**](LyricDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | +| **404** | Lyric not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **searchRemoteLyrics** +> List<RemoteLyricInfoDto> searchRemoteLyrics(itemId) + +Search remote lyrics. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + List result = apiInstance.searchRemoteLyrics(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#searchRemoteLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**List<RemoteLyricInfoDto>**](RemoteLyricInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Lyrics retrieved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uploadLyrics** +> LyricDto uploadLyrics(itemId, fileName, body) + +Upload an external lyric file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LyricsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LyricsApi apiInstance = new LyricsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item the lyric belongs to. + String fileName = "fileName_example"; // String | Name of the file being uploaded. + File body = new File("/path/to/file"); // File | + try { + LyricDto result = apiInstance.uploadLyrics(itemId, fileName, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LyricsApi#uploadLyrics"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item the lyric belongs to. | | +| **fileName** | **String**| Name of the file being uploaded. | | +| **body** | **File**| | [optional] | + +### Return type + +[**LyricDto**](LyricDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: text/plain + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Lyrics uploaded. | - | +| **400** | Error processing upload. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaAttachment.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaAttachment.md new file mode 100644 index 0000000000000..221c33973ebfa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaAttachment.md @@ -0,0 +1,20 @@ + + +# MediaAttachment + +Class MediaAttachment. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**codec** | **String** | Gets or sets the codec. | [optional] | +|**codecTag** | **String** | Gets or sets the codec tag. | [optional] | +|**comment** | **String** | Gets or sets the comment. | [optional] | +|**index** | **Integer** | Gets or sets the index. | [optional] | +|**fileName** | **String** | Gets or sets the filename. | [optional] | +|**mimeType** | **String** | Gets or sets the MIME type. | [optional] | +|**deliveryUrl** | **String** | Gets or sets the delivery URL. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaInfoApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaInfoApi.md new file mode 100644 index 0000000000000..d37f770f76b5a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaInfoApi.md @@ -0,0 +1,417 @@ +# MediaInfoApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**closeLiveStream**](MediaInfoApi.md#closeLiveStream) | **POST** /LiveStreams/Close | Closes a media source. | +| [**getBitrateTestBytes**](MediaInfoApi.md#getBitrateTestBytes) | **GET** /Playback/BitrateTest | Tests the network with a request with the size of the bitrate. | +| [**getPlaybackInfo**](MediaInfoApi.md#getPlaybackInfo) | **GET** /Items/{itemId}/PlaybackInfo | Gets live playback media info for an item. | +| [**getPostedPlaybackInfo**](MediaInfoApi.md#getPostedPlaybackInfo) | **POST** /Items/{itemId}/PlaybackInfo | Gets live playback media info for an item. | +| [**openLiveStream**](MediaInfoApi.md#openLiveStream) | **POST** /LiveStreams/Open | Opens a media source. | + + + +# **closeLiveStream** +> closeLiveStream(liveStreamId) + +Closes a media source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + String liveStreamId = "liveStreamId_example"; // String | The livestream id. + try { + apiInstance.closeLiveStream(liveStreamId); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#closeLiveStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **liveStreamId** | **String**| The livestream id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Livestream closed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBitrateTestBytes** +> File getBitrateTestBytes(size) + +Tests the network with a request with the size of the bitrate. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + Integer size = 102400; // Integer | The bitrate. Defaults to 102400. + try { + File result = apiInstance.getBitrateTestBytes(size); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getBitrateTestBytes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **size** | **Integer**| The bitrate. Defaults to 102400. | [optional] [default to 102400] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/octet-stream + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Test buffer returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlaybackInfo** +> PlaybackInfoResponse getPlaybackInfo(itemId, userId) + +Gets live playback media info for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + PlaybackInfoResponse result = apiInstance.getPlaybackInfo(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getPlaybackInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +[**PlaybackInfoResponse**](PlaybackInfoResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Playback info returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPostedPlaybackInfo** +> PlaybackInfoResponse getPostedPlaybackInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto) + +Gets live playback media info for an item. + +For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + Integer maxStreamingBitrate = 56; // Integer | The maximum streaming bitrate. + Long startTimeTicks = 56L; // Long | The start time in ticks. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer maxAudioChannels = 56; // Integer | The maximum number of audio channels. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + String liveStreamId = "liveStreamId_example"; // String | The livestream id. + Boolean autoOpenLiveStream = true; // Boolean | Whether to auto open the livestream. + Boolean enableDirectPlay = true; // Boolean | Whether to enable direct play. Default: true. + Boolean enableDirectStream = true; // Boolean | Whether to enable direct stream. Default: true. + Boolean enableTranscoding = true; // Boolean | Whether to enable transcoding. Default: true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether to allow to copy the video stream. Default: true. + Boolean allowAudioStreamCopy = true; // Boolean | Whether to allow to copy the audio stream. Default: true. + PlaybackInfoDto playbackInfoDto = new PlaybackInfoDto(); // PlaybackInfoDto | The playback info. + try { + PlaybackInfoResponse result = apiInstance.getPostedPlaybackInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getPostedPlaybackInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **maxStreamingBitrate** | **Integer**| The maximum streaming bitrate. | [optional] | +| **startTimeTicks** | **Long**| The start time in ticks. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **maxAudioChannels** | **Integer**| The maximum number of audio channels. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **liveStreamId** | **String**| The livestream id. | [optional] | +| **autoOpenLiveStream** | **Boolean**| Whether to auto open the livestream. | [optional] | +| **enableDirectPlay** | **Boolean**| Whether to enable direct play. Default: true. | [optional] | +| **enableDirectStream** | **Boolean**| Whether to enable direct stream. Default: true. | [optional] | +| **enableTranscoding** | **Boolean**| Whether to enable transcoding. Default: true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether to allow to copy the video stream. Default: true. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether to allow to copy the audio stream. Default: true. | [optional] | +| **playbackInfoDto** | [**PlaybackInfoDto**](PlaybackInfoDto.md)| The playback info. | [optional] | + +### Return type + +[**PlaybackInfoResponse**](PlaybackInfoResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Playback info returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **openLiveStream** +> LiveStreamResponse openLiveStream(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto) + +Opens a media source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + String openToken = "openToken_example"; // String | The open token. + UUID userId = UUID.randomUUID(); // UUID | The user id. + String playSessionId = "playSessionId_example"; // String | The play session id. + Integer maxStreamingBitrate = 56; // Integer | The maximum streaming bitrate. + Long startTimeTicks = 56L; // Long | The start time in ticks. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer maxAudioChannels = 56; // Integer | The maximum number of audio channels. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean enableDirectPlay = true; // Boolean | Whether to enable direct play. Default: true. + Boolean enableDirectStream = true; // Boolean | Whether to enable direct stream. Default: true. + Boolean alwaysBurnInSubtitleWhenTranscoding = true; // Boolean | Always burn-in subtitle when transcoding. + OpenLiveStreamDto openLiveStreamDto = new OpenLiveStreamDto(); // OpenLiveStreamDto | The open live stream dto. + try { + LiveStreamResponse result = apiInstance.openLiveStream(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#openLiveStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **openToken** | **String**| The open token. | [optional] | +| **userId** | **UUID**| The user id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **maxStreamingBitrate** | **Integer**| The maximum streaming bitrate. | [optional] | +| **startTimeTicks** | **Long**| The start time in ticks. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **maxAudioChannels** | **Integer**| The maximum number of audio channels. | [optional] | +| **itemId** | **UUID**| The item id. | [optional] | +| **enableDirectPlay** | **Boolean**| Whether to enable direct play. Default: true. | [optional] | +| **enableDirectStream** | **Boolean**| Whether to enable direct stream. Default: true. | [optional] | +| **alwaysBurnInSubtitleWhenTranscoding** | **Boolean**| Always burn-in subtitle when transcoding. | [optional] | +| **openLiveStreamDto** | [**OpenLiveStreamDto**](OpenLiveStreamDto.md)| The open live stream dto. | [optional] | + +### Return type + +[**LiveStreamResponse**](LiveStreamResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media source opened. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathDto.md new file mode 100644 index 0000000000000..8c4d30faf15a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathDto.md @@ -0,0 +1,16 @@ + + +# MediaPathDto + +Media Path dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the library. | | +|**path** | **String** | Gets or sets the path to add. | [optional] | +|**pathInfo** | [**MediaPathInfo**](MediaPathInfo.md) | Gets or sets the path info. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathInfo.md new file mode 100644 index 0000000000000..927dc8cfac2fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaPathInfo.md @@ -0,0 +1,13 @@ + + +# MediaPathInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaProtocol.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaProtocol.md new file mode 100644 index 0000000000000..8f939fc6e906b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaProtocol.md @@ -0,0 +1,23 @@ + + +# MediaProtocol + +## Enum + + +* `FILE` (value: `"File"`) + +* `HTTP` (value: `"Http"`) + +* `RTMP` (value: `"Rtmp"`) + +* `RTSP` (value: `"Rtsp"`) + +* `UDP` (value: `"Udp"`) + +* `RTP` (value: `"Rtp"`) + +* `FTP` (value: `"Ftp"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDto.md new file mode 100644 index 0000000000000..93bf630c630e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDto.md @@ -0,0 +1,18 @@ + + +# MediaSegmentDto + +Api model for MediaSegment's. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Gets or sets the id of the media segment. | [optional] | +|**itemId** | **UUID** | Gets or sets the id of the associated item. | [optional] | +|**type** | **MediaSegmentType** | Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents. | [optional] | +|**startTicks** | **Long** | Gets or sets the start of the segment. | [optional] | +|**endTicks** | **Long** | Gets or sets the end of the segment. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDtoQueryResult.md new file mode 100644 index 0000000000000..29ad7959e1488 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentDtoQueryResult.md @@ -0,0 +1,16 @@ + + +# MediaSegmentDtoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<MediaSegmentDto>**](MediaSegmentDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentType.md new file mode 100644 index 0000000000000..c8e2fb3ae9a21 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentType.md @@ -0,0 +1,21 @@ + + +# MediaSegmentType + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `COMMERCIAL` (value: `"Commercial"`) + +* `PREVIEW` (value: `"Preview"`) + +* `RECAP` (value: `"Recap"`) + +* `OUTRO` (value: `"Outro"`) + +* `INTRO` (value: `"Intro"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentsApi.md new file mode 100644 index 0000000000000..ffc0025918ab6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSegmentsApi.md @@ -0,0 +1,81 @@ +# MediaSegmentsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getItemSegments**](MediaSegmentsApi.md#getItemSegments) | **GET** /MediaSegments/{itemId} | Gets all media segments based on an itemId. | + + + +# **getItemSegments** +> MediaSegmentDtoQueryResult getItemSegments(itemId, includeSegmentTypes) + +Gets all media segments based on an itemId. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaSegmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaSegmentsApi apiInstance = new MediaSegmentsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The ItemId. + List includeSegmentTypes = Arrays.asList(); // List | Optional filter of requested segment types. + try { + MediaSegmentDtoQueryResult result = apiInstance.getItemSegments(itemId, includeSegmentTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaSegmentsApi#getItemSegments"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The ItemId. | | +| **includeSegmentTypes** | [**List<MediaSegmentType>**](MediaSegmentType.md)| Optional filter of requested segment types. | [optional] | + +### Return type + +[**MediaSegmentDtoQueryResult**](MediaSegmentDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceInfo.md new file mode 100644 index 0000000000000..c584762d9721a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceInfo.md @@ -0,0 +1,57 @@ + + +# MediaSourceInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**protocol** | **MediaProtocol** | | [optional] | +|**id** | **String** | | [optional] | +|**path** | **String** | | [optional] | +|**encoderPath** | **String** | | [optional] | +|**encoderProtocol** | **MediaProtocol** | | [optional] | +|**type** | **MediaSourceType** | | [optional] | +|**container** | **String** | | [optional] | +|**size** | **Long** | | [optional] | +|**name** | **String** | | [optional] | +|**isRemote** | **Boolean** | Gets or sets a value indicating whether the media is remote. Differentiate internet url vs local network. | [optional] | +|**etag** | **String** | | [optional] | +|**runTimeTicks** | **Long** | | [optional] | +|**readAtNativeFramerate** | **Boolean** | | [optional] | +|**ignoreDts** | **Boolean** | | [optional] | +|**ignoreIndex** | **Boolean** | | [optional] | +|**genPtsInput** | **Boolean** | | [optional] | +|**supportsTranscoding** | **Boolean** | | [optional] | +|**supportsDirectStream** | **Boolean** | | [optional] | +|**supportsDirectPlay** | **Boolean** | | [optional] | +|**isInfiniteStream** | **Boolean** | | [optional] | +|**useMostCompatibleTranscodingProfile** | **Boolean** | | [optional] | +|**requiresOpening** | **Boolean** | | [optional] | +|**openToken** | **String** | | [optional] | +|**requiresClosing** | **Boolean** | | [optional] | +|**liveStreamId** | **String** | | [optional] | +|**bufferMs** | **Integer** | | [optional] | +|**requiresLooping** | **Boolean** | | [optional] | +|**supportsProbing** | **Boolean** | | [optional] | +|**videoType** | **VideoType** | | [optional] | +|**isoType** | **IsoType** | | [optional] | +|**video3DFormat** | **Video3DFormat** | | [optional] | +|**mediaStreams** | [**List<MediaStream>**](MediaStream.md) | | [optional] | +|**mediaAttachments** | [**List<MediaAttachment>**](MediaAttachment.md) | | [optional] | +|**formats** | **List<String>** | | [optional] | +|**bitrate** | **Integer** | | [optional] | +|**fallbackMaxStreamingBitrate** | **Integer** | | [optional] | +|**timestamp** | **TransportStreamTimestamp** | | [optional] | +|**requiredHttpHeaders** | **Map<String, String>** | | [optional] | +|**transcodingUrl** | **String** | | [optional] | +|**transcodingSubProtocol** | **MediaStreamProtocol** | Media streaming protocol. Lowercase for backwards compatibility. | [optional] | +|**transcodingContainer** | **String** | | [optional] | +|**analyzeDurationMs** | **Integer** | | [optional] | +|**defaultAudioStreamIndex** | **Integer** | | [optional] | +|**defaultSubtitleStreamIndex** | **Integer** | | [optional] | +|**hasSegments** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceType.md new file mode 100644 index 0000000000000..c804c515c1eeb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaSourceType.md @@ -0,0 +1,15 @@ + + +# MediaSourceType + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `GROUPING` (value: `"Grouping"`) + +* `PLACEHOLDER` (value: `"Placeholder"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStream.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStream.md new file mode 100644 index 0000000000000..0c341942e211d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStream.md @@ -0,0 +1,76 @@ + + +# MediaStream + +Class MediaStream. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**codec** | **String** | Gets or sets the codec. | [optional] | +|**codecTag** | **String** | Gets or sets the codec tag. | [optional] | +|**language** | **String** | Gets or sets the language. | [optional] | +|**colorRange** | **String** | Gets or sets the color range. | [optional] | +|**colorSpace** | **String** | Gets or sets the color space. | [optional] | +|**colorTransfer** | **String** | Gets or sets the color transfer. | [optional] | +|**colorPrimaries** | **String** | Gets or sets the color primaries. | [optional] | +|**dvVersionMajor** | **Integer** | Gets or sets the Dolby Vision version major. | [optional] | +|**dvVersionMinor** | **Integer** | Gets or sets the Dolby Vision version minor. | [optional] | +|**dvProfile** | **Integer** | Gets or sets the Dolby Vision profile. | [optional] | +|**dvLevel** | **Integer** | Gets or sets the Dolby Vision level. | [optional] | +|**rpuPresentFlag** | **Integer** | Gets or sets the Dolby Vision rpu present flag. | [optional] | +|**elPresentFlag** | **Integer** | Gets or sets the Dolby Vision el present flag. | [optional] | +|**blPresentFlag** | **Integer** | Gets or sets the Dolby Vision bl present flag. | [optional] | +|**dvBlSignalCompatibilityId** | **Integer** | Gets or sets the Dolby Vision bl signal compatibility id. | [optional] | +|**rotation** | **Integer** | Gets or sets the Rotation in degrees. | [optional] | +|**comment** | **String** | Gets or sets the comment. | [optional] | +|**timeBase** | **String** | Gets or sets the time base. | [optional] | +|**codecTimeBase** | **String** | Gets or sets the codec time base. | [optional] | +|**title** | **String** | Gets or sets the title. | [optional] | +|**videoRange** | **VideoRange** | An enum representing video ranges. | [optional] [readonly] | +|**videoRangeType** | **VideoRangeType** | An enum representing types of video ranges. | [optional] [readonly] | +|**videoDoViTitle** | **String** | Gets the video dovi title. | [optional] [readonly] | +|**audioSpatialFormat** | **AudioSpatialFormat** | An enum representing formats of spatial audio. | [optional] [readonly] | +|**localizedUndefined** | **String** | | [optional] | +|**localizedDefault** | **String** | | [optional] | +|**localizedForced** | **String** | | [optional] | +|**localizedExternal** | **String** | | [optional] | +|**localizedHearingImpaired** | **String** | | [optional] | +|**displayTitle** | **String** | | [optional] [readonly] | +|**nalLengthSize** | **String** | | [optional] | +|**isInterlaced** | **Boolean** | Gets or sets a value indicating whether this instance is interlaced. | [optional] | +|**isAVC** | **Boolean** | | [optional] | +|**channelLayout** | **String** | Gets or sets the channel layout. | [optional] | +|**bitRate** | **Integer** | Gets or sets the bit rate. | [optional] | +|**bitDepth** | **Integer** | Gets or sets the bit depth. | [optional] | +|**refFrames** | **Integer** | Gets or sets the reference frames. | [optional] | +|**packetLength** | **Integer** | Gets or sets the length of the packet. | [optional] | +|**channels** | **Integer** | Gets or sets the channels. | [optional] | +|**sampleRate** | **Integer** | Gets or sets the sample rate. | [optional] | +|**isDefault** | **Boolean** | Gets or sets a value indicating whether this instance is default. | [optional] | +|**isForced** | **Boolean** | Gets or sets a value indicating whether this instance is forced. | [optional] | +|**isHearingImpaired** | **Boolean** | Gets or sets a value indicating whether this instance is for the hearing impaired. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**averageFrameRate** | **Float** | Gets or sets the average frame rate. | [optional] | +|**realFrameRate** | **Float** | Gets or sets the real frame rate. | [optional] | +|**referenceFrameRate** | **Float** | Gets the framerate used as reference. Prefer AverageFrameRate, if that is null or an unrealistic value then fallback to RealFrameRate. | [optional] [readonly] | +|**profile** | **String** | Gets or sets the profile. | [optional] | +|**type** | **MediaStreamType** | Gets or sets the type. | [optional] | +|**aspectRatio** | **String** | Gets or sets the aspect ratio. | [optional] | +|**index** | **Integer** | Gets or sets the index. | [optional] | +|**score** | **Integer** | Gets or sets the score. | [optional] | +|**isExternal** | **Boolean** | Gets or sets a value indicating whether this instance is external. | [optional] | +|**deliveryMethod** | **SubtitleDeliveryMethod** | Gets or sets the method. | [optional] | +|**deliveryUrl** | **String** | Gets or sets the delivery URL. | [optional] | +|**isExternalUrl** | **Boolean** | Gets or sets a value indicating whether this instance is external URL. | [optional] | +|**isTextSubtitleStream** | **Boolean** | | [optional] [readonly] | +|**supportsExternalStream** | **Boolean** | Gets or sets a value indicating whether [supports external stream]. | [optional] | +|**path** | **String** | Gets or sets the filename. | [optional] | +|**pixelFormat** | **String** | Gets or sets the pixel format. | [optional] | +|**level** | **Double** | Gets or sets the level. | [optional] | +|**isAnamorphic** | **Boolean** | Gets or sets whether this instance is anamorphic. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamProtocol.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamProtocol.md new file mode 100644 index 0000000000000..cbd84b777249b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamProtocol.md @@ -0,0 +1,13 @@ + + +# MediaStreamProtocol + +## Enum + + +* `HTTP` (value: `"http"`) + +* `HLS` (value: `"hls"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamType.md new file mode 100644 index 0000000000000..2ca0ca0e6e16c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaStreamType.md @@ -0,0 +1,21 @@ + + +# MediaStreamType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `SUBTITLE` (value: `"Subtitle"`) + +* `EMBEDDED_IMAGE` (value: `"EmbeddedImage"`) + +* `DATA` (value: `"Data"`) + +* `LYRIC` (value: `"Lyric"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaType.md new file mode 100644 index 0000000000000..d5e2f87a30bc6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaType.md @@ -0,0 +1,19 @@ + + +# MediaType + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `VIDEO` (value: `"Video"`) + +* `AUDIO` (value: `"Audio"`) + +* `PHOTO` (value: `"Photo"`) + +* `BOOK` (value: `"Book"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoDto.md new file mode 100644 index 0000000000000..d32466df4484a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoDto.md @@ -0,0 +1,14 @@ + + +# MediaUpdateInfoDto + +Media Update Info Dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**updates** | [**List<MediaUpdateInfoPathDto>**](MediaUpdateInfoPathDto.md) | Gets or sets the list of updates. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoPathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoPathDto.md new file mode 100644 index 0000000000000..a7993f4b1cb8c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUpdateInfoPathDto.md @@ -0,0 +1,15 @@ + + +# MediaUpdateInfoPathDto + +The media update info path. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | Gets or sets media path. | [optional] | +|**updateType** | **String** | Gets or sets media update type. Created, Modified, Deleted. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUrl.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUrl.md new file mode 100644 index 0000000000000..3e36b4ba4fa6c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MediaUrl.md @@ -0,0 +1,14 @@ + + +# MediaUrl + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**url** | **String** | | [optional] | +|**name** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MessageCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MessageCommand.md new file mode 100644 index 0000000000000..b2d74f578e65d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MessageCommand.md @@ -0,0 +1,15 @@ + + +# MessageCommand + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**header** | **String** | | [optional] | +|**text** | **String** | | | +|**timeoutMs** | **Long** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataConfiguration.md new file mode 100644 index 0000000000000..5143c200a8c68 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataConfiguration.md @@ -0,0 +1,13 @@ + + +# MetadataConfiguration + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**useFileCreationTimeForDateAdded** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataEditorInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataEditorInfo.md new file mode 100644 index 0000000000000..9e64132debc48 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataEditorInfo.md @@ -0,0 +1,18 @@ + + +# MetadataEditorInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**parentalRatingOptions** | [**List<ParentalRating>**](ParentalRating.md) | | [optional] | +|**countries** | [**List<CountryInfo>**](CountryInfo.md) | | [optional] | +|**cultures** | [**List<CultureDto>**](CultureDto.md) | | [optional] | +|**externalIdInfos** | [**List<ExternalIdInfo>**](ExternalIdInfo.md) | | [optional] | +|**contentType** | **CollectionType** | | [optional] | +|**contentTypeOptions** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataField.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataField.md new file mode 100644 index 0000000000000..39c7ba8fd190d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataField.md @@ -0,0 +1,27 @@ + + +# MetadataField + +## Enum + + +* `CAST` (value: `"Cast"`) + +* `GENRES` (value: `"Genres"`) + +* `PRODUCTION_LOCATIONS` (value: `"ProductionLocations"`) + +* `STUDIOS` (value: `"Studios"`) + +* `TAGS` (value: `"Tags"`) + +* `NAME` (value: `"Name"`) + +* `OVERVIEW` (value: `"Overview"`) + +* `RUNTIME` (value: `"Runtime"`) + +* `OFFICIAL_RATING` (value: `"OfficialRating"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataOptions.md new file mode 100644 index 0000000000000..9de1b45667afa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataOptions.md @@ -0,0 +1,20 @@ + + +# MetadataOptions + +Class MetadataOptions. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemType** | **String** | | [optional] | +|**disabledMetadataSavers** | **List<String>** | | [optional] | +|**localMetadataReaderOrder** | **List<String>** | | [optional] | +|**disabledMetadataFetchers** | **List<String>** | | [optional] | +|**metadataFetcherOrder** | **List<String>** | | [optional] | +|**disabledImageFetchers** | **List<String>** | | [optional] | +|**imageFetcherOrder** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataRefreshMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataRefreshMode.md new file mode 100644 index 0000000000000..560a2e5259712 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MetadataRefreshMode.md @@ -0,0 +1,17 @@ + + +# MetadataRefreshMode + +## Enum + + +* `NONE` (value: `"None"`) + +* `VALIDATION_ONLY` (value: `"ValidationOnly"`) + +* `DEFAULT` (value: `"Default"`) + +* `FULL_REFRESH` (value: `"FullRefresh"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovePlaylistItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovePlaylistItemRequestDto.md new file mode 100644 index 0000000000000..e7b9661efdc9e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovePlaylistItemRequestDto.md @@ -0,0 +1,15 @@ + + +# MovePlaylistItemRequestDto + +Class MovePlaylistItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playlist identifier of the item. | [optional] | +|**newIndex** | **Integer** | Gets or sets the new position. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfo.md new file mode 100644 index 0000000000000..22fca87269397 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfo.md @@ -0,0 +1,23 @@ + + +# MovieInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..f67d2ba561437 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MovieInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# MovieInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**MovieInfo**](MovieInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MoviesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MoviesApi.md new file mode 100644 index 0000000000000..b30a6c4a4ca82 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MoviesApi.md @@ -0,0 +1,86 @@ +# MoviesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMovieRecommendations**](MoviesApi.md#getMovieRecommendations) | **GET** /Movies/Recommendations | Gets movie recommendations. | + + + +# **getMovieRecommendations** +> List<RecommendationDto> getMovieRecommendations(userId, parentId, fields, categoryLimit, itemLimit) + +Gets movie recommendations. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MoviesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MoviesApi apiInstance = new MoviesApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. The fields to return. + Integer categoryLimit = 5; // Integer | The max number of categories to return. + Integer itemLimit = 8; // Integer | The max number of items to return per category. + try { + List result = apiInstance.getMovieRecommendations(userId, parentId, fields, categoryLimit, itemLimit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MoviesApi#getMovieRecommendations"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. The fields to return. | [optional] | +| **categoryLimit** | **Integer**| The max number of categories to return. | [optional] [default to 5] | +| **itemLimit** | **Integer**| The max number of items to return per category. | [optional] [default to 8] | + +### Return type + +[**List<RecommendationDto>**](RecommendationDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Movie recommendations returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicGenresApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicGenresApi.md new file mode 100644 index 0000000000000..6405de6880c8e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicGenresApi.md @@ -0,0 +1,184 @@ +# MusicGenresApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMusicGenre**](MusicGenresApi.md#getMusicGenre) | **GET** /MusicGenres/{genreName} | Gets a music genre, by name. | +| [**getMusicGenres**](MusicGenresApi.md#getMusicGenres) | **GET** /MusicGenres | Gets all music genres from a given item, folder, or the entire library. | + + + +# **getMusicGenre** +> BaseItemDto getMusicGenre(genreName, userId) + +Gets a music genre, by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MusicGenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MusicGenresApi apiInstance = new MusicGenresApi(defaultClient); + String genreName = "genreName_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getMusicGenre(genreName, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MusicGenresApi#getMusicGenre"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **genreName** | **String**| The genre name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicGenres** +> BaseItemDtoQueryResult getMusicGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all music genres from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MusicGenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MusicGenresApi apiInstance = new MusicGenresApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Include total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getMusicGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MusicGenresApi#getMusicGenres"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Optional. Include total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfo.md new file mode 100644 index 0000000000000..468d5407edb7b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfo.md @@ -0,0 +1,24 @@ + + +# MusicVideoInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**artists** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..4ffde0b6e98e5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/MusicVideoInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# MusicVideoInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**MusicVideoInfo**](MusicVideoInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameGuidPair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameGuidPair.md new file mode 100644 index 0000000000000..39a9c57b74284 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameGuidPair.md @@ -0,0 +1,14 @@ + + +# NameGuidPair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**id** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameIdPair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameIdPair.md new file mode 100644 index 0000000000000..356f265817585 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameIdPair.md @@ -0,0 +1,14 @@ + + +# NameIdPair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **String** | Gets or sets the identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameValuePair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameValuePair.md new file mode 100644 index 0000000000000..5d9bf7d6ce3a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NameValuePair.md @@ -0,0 +1,14 @@ + + +# NameValuePair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**value** | **String** | Gets or sets the value. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NetworkConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NetworkConfiguration.md new file mode 100644 index 0000000000000..18f9c6a84bbd6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NetworkConfiguration.md @@ -0,0 +1,36 @@ + + +# NetworkConfiguration + +Defines the MediaBrowser.Common.Net.NetworkConfiguration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**baseUrl** | **String** | Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. | [optional] | +|**enableHttps** | **Boolean** | Gets or sets a value indicating whether to use HTTPS. | [optional] | +|**requireHttps** | **Boolean** | Gets or sets a value indicating whether the server should force connections over HTTPS. | [optional] | +|**certificatePath** | **String** | Gets or sets the filesystem path of an X.509 certificate to use for SSL. | [optional] | +|**certificatePassword** | **String** | Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Common.Net.NetworkConfiguration.CertificatePath. | [optional] | +|**internalHttpPort** | **Integer** | Gets or sets the internal HTTP server port. | [optional] | +|**internalHttpsPort** | **Integer** | Gets or sets the internal HTTPS server port. | [optional] | +|**publicHttpPort** | **Integer** | Gets or sets the public HTTP port. | [optional] | +|**publicHttpsPort** | **Integer** | Gets or sets the public HTTPS port. | [optional] | +|**autoDiscovery** | **Boolean** | Gets or sets a value indicating whether Autodiscovery is enabled. | [optional] | +|**enableUPnP** | **Boolean** | Gets or sets a value indicating whether to enable automatic port forwarding. | [optional] | +|**enableIPv4** | **Boolean** | Gets or sets a value indicating whether IPv6 is enabled. | [optional] | +|**enableIPv6** | **Boolean** | Gets or sets a value indicating whether IPv6 is enabled. | [optional] | +|**enableRemoteAccess** | **Boolean** | Gets or sets a value indicating whether access from outside of the LAN is permitted. | [optional] | +|**localNetworkSubnets** | **List<String>** | Gets or sets the subnets that are deemed to make up the LAN. | [optional] | +|**localNetworkAddresses** | **List<String>** | Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. | [optional] | +|**knownProxies** | **List<String>** | Gets or sets the known proxies. | [optional] | +|**ignoreVirtualInterfaces** | **Boolean** | Gets or sets a value indicating whether address names that match MediaBrowser.Common.Net.NetworkConfiguration.VirtualInterfaceNames should be ignored for the purposes of binding. | [optional] | +|**virtualInterfaceNames** | **List<String>** | Gets or sets a value indicating the interface name prefixes that should be ignored. The list can be comma separated and values are case-insensitive. <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.IgnoreVirtualInterfaces\" />. | [optional] | +|**enablePublishedServerUriByRequest** | **Boolean** | Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. | [optional] | +|**publishedServerUriBySubnet** | **List<String>** | Gets or sets the PublishedServerUriBySubnet Gets or sets PublishedServerUri to advertise for specific subnets. | [optional] | +|**remoteIPFilter** | **List<String>** | Gets or sets the filter for remote IP connectivity. Used in conjunction with <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.IsRemoteIPFilterBlacklist\" />. | [optional] | +|**isRemoteIPFilterBlacklist** | **Boolean** | Gets or sets a value indicating whether <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.RemoteIPFilter\" /> contains a blacklist or a whitelist. Default is a whitelist. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NewGroupRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NewGroupRequestDto.md new file mode 100644 index 0000000000000..45f60a5ab04a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NewGroupRequestDto.md @@ -0,0 +1,14 @@ + + +# NewGroupRequestDto + +Class NewGroupRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupName** | **String** | Gets or sets the group name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NextItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NextItemRequestDto.md new file mode 100644 index 0000000000000..cc79e4a25b1fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/NextItemRequestDto.md @@ -0,0 +1,14 @@ + + +# NextItemRequestDto + +Class NextItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playing item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OpenLiveStreamDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OpenLiveStreamDto.md new file mode 100644 index 0000000000000..e099f166edf71 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OpenLiveStreamDto.md @@ -0,0 +1,27 @@ + + +# OpenLiveStreamDto + +Open live stream dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**openToken** | **String** | Gets or sets the open token. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session id. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the max streaming bitrate. | [optional] | +|**startTimeTicks** | **Long** | Gets or sets the start time in ticks. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the audio stream index. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the subtitle stream index. | [optional] | +|**maxAudioChannels** | **Integer** | Gets or sets the max audio channels. | [optional] | +|**itemId** | **UUID** | Gets or sets the item id. | [optional] | +|**enableDirectPlay** | **Boolean** | Gets or sets a value indicating whether to enable direct play. | [optional] | +|**enableDirectStream** | **Boolean** | Gets or sets a value indicating whether to enale direct stream. | [optional] | +|**alwaysBurnInSubtitleWhenTranscoding** | **Boolean** | Gets or sets a value indicating whether always burn in subtitles when transcoding. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | Gets or sets the device profile. | [optional] | +|**directPlayProtocols** | **List<MediaProtocol>** | Gets or sets the device play protocols. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundKeepAliveMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundKeepAliveMessage.md new file mode 100644 index 0000000000000..51779bc4390fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundKeepAliveMessage.md @@ -0,0 +1,15 @@ + + +# OutboundKeepAliveMessage + +Keep alive websocket messages. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundWebSocketMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundWebSocketMessage.md new file mode 100644 index 0000000000000..f838ebe2d1cba --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/OutboundWebSocketMessage.md @@ -0,0 +1,16 @@ + + +# OutboundWebSocketMessage + +Represents the list of possible outbound websocket types + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UserDto**](UserDto.md) | Class UserDto. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageApi.md new file mode 100644 index 0000000000000..0de884e7b16a7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageApi.md @@ -0,0 +1,426 @@ +# PackageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**cancelPackageInstallation**](PackageApi.md#cancelPackageInstallation) | **DELETE** /Packages/Installing/{packageId} | Cancels a package installation. | +| [**getPackageInfo**](PackageApi.md#getPackageInfo) | **GET** /Packages/{name} | Gets a package by name or assembly GUID. | +| [**getPackages**](PackageApi.md#getPackages) | **GET** /Packages | Gets available packages. | +| [**getRepositories**](PackageApi.md#getRepositories) | **GET** /Repositories | Gets all package repositories. | +| [**installPackage**](PackageApi.md#installPackage) | **POST** /Packages/Installed/{name} | Installs a package. | +| [**setRepositories**](PackageApi.md#setRepositories) | **POST** /Repositories | Sets the enabled and existing package repositories. | + + + +# **cancelPackageInstallation** +> cancelPackageInstallation(packageId) + +Cancels a package installation. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + UUID packageId = UUID.randomUUID(); // UUID | Installation Id. + try { + apiInstance.cancelPackageInstallation(packageId); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#cancelPackageInstallation"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **packageId** | **UUID**| Installation Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Installation cancelled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPackageInfo** +> PackageInfo getPackageInfo(name, assemblyGuid) + +Gets a package by name or assembly GUID. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + String name = "name_example"; // String | The name of the package. + UUID assemblyGuid = UUID.randomUUID(); // UUID | The GUID of the associated assembly. + try { + PackageInfo result = apiInstance.getPackageInfo(name, assemblyGuid); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getPackageInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the package. | | +| **assemblyGuid** | **UUID**| The GUID of the associated assembly. | [optional] | + +### Return type + +[**PackageInfo**](PackageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Package retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPackages** +> List<PackageInfo> getPackages() + +Gets available packages. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + try { + List result = apiInstance.getPackages(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getPackages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<PackageInfo>**](PackageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available packages returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRepositories** +> List<RepositoryInfo> getRepositories() + +Gets all package repositories. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + try { + List result = apiInstance.getRepositories(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getRepositories"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<RepositoryInfo>**](RepositoryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Package repositories returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **installPackage** +> installPackage(name, assemblyGuid, version, repositoryUrl) + +Installs a package. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + String name = "name_example"; // String | Package name. + UUID assemblyGuid = UUID.randomUUID(); // UUID | GUID of the associated assembly. + String version = "version_example"; // String | Optional version. Defaults to latest version. + String repositoryUrl = "repositoryUrl_example"; // String | Optional. Specify the repository to install from. + try { + apiInstance.installPackage(name, assemblyGuid, version, repositoryUrl); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#installPackage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Package name. | | +| **assemblyGuid** | **UUID**| GUID of the associated assembly. | [optional] | +| **version** | **String**| Optional version. Defaults to latest version. | [optional] | +| **repositoryUrl** | **String**| Optional. Specify the repository to install from. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Package found. | - | +| **404** | Package not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setRepositories** +> setRepositories(repositoryInfo) + +Sets the enabled and existing package repositories. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + List repositoryInfo = Arrays.asList(); // List | The list of package repositories. + try { + apiInstance.setRepositories(repositoryInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#setRepositories"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **repositoryInfo** | [**List<RepositoryInfo>**](RepositoryInfo.md)| The list of package repositories. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Package repositories saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageInfo.md new file mode 100644 index 0000000000000..705865fc88560 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PackageInfo.md @@ -0,0 +1,21 @@ + + +# PackageInfo + +Class PackageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**description** | **String** | Gets or sets a long description of the plugin containing features or helpful explanations. | [optional] | +|**overview** | **String** | Gets or sets a short overview of what the plugin does. | [optional] | +|**owner** | **String** | Gets or sets the owner. | [optional] | +|**category** | **String** | Gets or sets the category. | [optional] | +|**guid** | **UUID** | Gets or sets the guid of the assembly associated with this plugin. This is used to identify the proper item for automatic updates. | [optional] | +|**versions** | [**List<VersionInfo>**](VersionInfo.md) | Gets or sets the versions. | [optional] | +|**imageUrl** | **String** | Gets or sets the image url for the package. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ParentalRating.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ParentalRating.md new file mode 100644 index 0000000000000..4f9002a9137aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ParentalRating.md @@ -0,0 +1,15 @@ + + +# ParentalRating + +Class ParentalRating. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**value** | **Integer** | Gets or sets the value. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PathSubstitution.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PathSubstitution.md new file mode 100644 index 0000000000000..56ec38301fb33 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PathSubstitution.md @@ -0,0 +1,15 @@ + + +# PathSubstitution + +Defines the MediaBrowser.Model.Configuration.PathSubstitution. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**from** | **String** | Gets or sets the value to substitute. | [optional] | +|**to** | **String** | Gets or sets the value to substitution with. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonKind.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonKind.md new file mode 100644 index 0000000000000..2dd6148486e89 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonKind.md @@ -0,0 +1,59 @@ + + +# PersonKind + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `ACTOR` (value: `"Actor"`) + +* `DIRECTOR` (value: `"Director"`) + +* `COMPOSER` (value: `"Composer"`) + +* `WRITER` (value: `"Writer"`) + +* `GUEST_STAR` (value: `"GuestStar"`) + +* `PRODUCER` (value: `"Producer"`) + +* `CONDUCTOR` (value: `"Conductor"`) + +* `LYRICIST` (value: `"Lyricist"`) + +* `ARRANGER` (value: `"Arranger"`) + +* `ENGINEER` (value: `"Engineer"`) + +* `MIXER` (value: `"Mixer"`) + +* `REMIXER` (value: `"Remixer"`) + +* `CREATOR` (value: `"Creator"`) + +* `ARTIST` (value: `"Artist"`) + +* `ALBUM_ARTIST` (value: `"AlbumArtist"`) + +* `AUTHOR` (value: `"Author"`) + +* `ILLUSTRATOR` (value: `"Illustrator"`) + +* `PENCILLER` (value: `"Penciller"`) + +* `INKER` (value: `"Inker"`) + +* `COLORIST` (value: `"Colorist"`) + +* `LETTERER` (value: `"Letterer"`) + +* `COVER_ARTIST` (value: `"CoverArtist"`) + +* `EDITOR` (value: `"Editor"`) + +* `TRANSLATOR` (value: `"Translator"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfo.md new file mode 100644 index 0000000000000..739af0b4ad24c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfo.md @@ -0,0 +1,23 @@ + + +# PersonLookupInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..a11d17ed1df2b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonLookupInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# PersonLookupInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**PersonLookupInfo**](PersonLookupInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonsApi.md new file mode 100644 index 0000000000000..00502c58cc518 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PersonsApi.md @@ -0,0 +1,175 @@ +# PersonsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getPerson**](PersonsApi.md#getPerson) | **GET** /Persons/{name} | Get person by name. | +| [**getPersons**](PersonsApi.md#getPersons) | **GET** /Persons | Gets all persons. | + + + +# **getPerson** +> BaseItemDto getPerson(name, userId) + +Get person by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PersonsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PersonsApi apiInstance = new PersonsApi(defaultClient); + String name = "name_example"; // String | Person name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getPerson(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PersonsApi#getPerson"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Person returned. | - | +| **404** | Person not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPersons** +> BaseItemDtoQueryResult getPersons(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages) + +Gets all persons. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PersonsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PersonsApi apiInstance = new PersonsApi(defaultClient); + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. userId is required. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List excludePersonTypes = Arrays.asList(); // List | Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. + List personTypes = Arrays.asList(); // List | Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. + UUID appearsInItemId = UUID.randomUUID(); // UUID | Optional. If specified, person results will be filtered on items related to said persons. + UUID userId = UUID.randomUUID(); // UUID | User id. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getPersons(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PersonsApi#getPersons"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. userId is required. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **excludePersonTypes** | [**List<String>**](String.md)| Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. | [optional] | +| **appearsInItemId** | **UUID**| Optional. If specified, person results will be filtered on items related to said persons. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Persons returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PinRedeemResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PinRedeemResult.md new file mode 100644 index 0000000000000..7c3888c99528f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PinRedeemResult.md @@ -0,0 +1,14 @@ + + +# PinRedeemResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**success** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. | [optional] | +|**usersReset** | **List<String>** | Gets or sets the users reset. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PingRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PingRequestDto.md new file mode 100644 index 0000000000000..76b6eb1d7be65 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PingRequestDto.md @@ -0,0 +1,14 @@ + + +# PingRequestDto + +Class PingRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ping** | **Long** | Gets or sets the ping time. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayAccess.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayAccess.md new file mode 100644 index 0000000000000..f171c350817b7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayAccess.md @@ -0,0 +1,13 @@ + + +# PlayAccess + +## Enum + + +* `FULL` (value: `"Full"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayCommand.md new file mode 100644 index 0000000000000..5ace5922bc0d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayCommand.md @@ -0,0 +1,19 @@ + + +# PlayCommand + +## Enum + + +* `PLAY_NOW` (value: `"PlayNow"`) + +* `PLAY_NEXT` (value: `"PlayNext"`) + +* `PLAY_LAST` (value: `"PlayLast"`) + +* `PLAY_INSTANT_MIX` (value: `"PlayInstantMix"`) + +* `PLAY_SHUFFLE` (value: `"PlayShuffle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMessage.md new file mode 100644 index 0000000000000..e10d1ee91c053 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMessage.md @@ -0,0 +1,16 @@ + + +# PlayMessage + +Play command websocket message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**PlayRequest**](PlayRequest.md) | Class PlayRequest. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMethod.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMethod.md new file mode 100644 index 0000000000000..ccf74c17b0c37 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayMethod.md @@ -0,0 +1,15 @@ + + +# PlayMethod + +## Enum + + +* `TRANSCODE` (value: `"Transcode"`) + +* `DIRECT_STREAM` (value: `"DirectStream"`) + +* `DIRECT_PLAY` (value: `"DirectPlay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdate.md new file mode 100644 index 0000000000000..46e7262f5200c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdate.md @@ -0,0 +1,21 @@ + + +# PlayQueueUpdate + +Class PlayQueueUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**reason** | **PlayQueueUpdateReason** | Gets the request type that originated this update. | [optional] | +|**lastUpdate** | **OffsetDateTime** | Gets the UTC time of the last change to the playing queue. | [optional] | +|**playlist** | [**List<SyncPlayQueueItem>**](SyncPlayQueueItem.md) | Gets the playlist. | [optional] | +|**playingItemIndex** | **Integer** | Gets the playing item index in the playlist. | [optional] | +|**startPositionTicks** | **Long** | Gets the start position ticks. | [optional] | +|**isPlaying** | **Boolean** | Gets a value indicating whether the current item is playing. | [optional] | +|**shuffleMode** | **GroupShuffleMode** | Gets the shuffle mode. | [optional] | +|**repeatMode** | **GroupRepeatMode** | Gets the repeat mode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateGroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateGroupUpdate.md new file mode 100644 index 0000000000000..4041676645bdb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateGroupUpdate.md @@ -0,0 +1,16 @@ + + +# PlayQueueUpdateGroupUpdate + +Class GroupUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] [readonly] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | [**PlayQueueUpdate**](PlayQueueUpdate.md) | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateReason.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateReason.md new file mode 100644 index 0000000000000..b3c1332e5c98b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayQueueUpdateReason.md @@ -0,0 +1,29 @@ + + +# PlayQueueUpdateReason + +## Enum + + +* `NEW_PLAYLIST` (value: `"NewPlaylist"`) + +* `SET_CURRENT_ITEM` (value: `"SetCurrentItem"`) + +* `REMOVE_ITEMS` (value: `"RemoveItems"`) + +* `MOVE_ITEM` (value: `"MoveItem"`) + +* `QUEUE` (value: `"Queue"`) + +* `QUEUE_NEXT` (value: `"QueueNext"`) + +* `NEXT_ITEM` (value: `"NextItem"`) + +* `PREVIOUS_ITEM` (value: `"PreviousItem"`) + +* `REPEAT_MODE` (value: `"RepeatMode"`) + +* `SHUFFLE_MODE` (value: `"ShuffleMode"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequest.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequest.md new file mode 100644 index 0000000000000..422cfb0faf1d9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequest.md @@ -0,0 +1,21 @@ + + +# PlayRequest + +Class PlayRequest. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemIds** | **List<UUID>** | Gets or sets the item ids. | [optional] | +|**startPositionTicks** | **Long** | Gets or sets the start position ticks that the first item should be played at. | [optional] | +|**playCommand** | **PlayCommand** | Gets or sets the play command. | [optional] | +|**controllingUserId** | **UUID** | Gets or sets the controlling user identifier. | [optional] | +|**subtitleStreamIndex** | **Integer** | | [optional] | +|**audioStreamIndex** | **Integer** | | [optional] | +|**mediaSourceId** | **String** | | [optional] | +|**startIndex** | **Integer** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequestDto.md new file mode 100644 index 0000000000000..92c92788b8544 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayRequestDto.md @@ -0,0 +1,16 @@ + + +# PlayRequestDto + +Class PlayRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playingQueue** | **List<UUID>** | Gets or sets the playing queue. | [optional] | +|**playingItemPosition** | **Integer** | Gets or sets the position of the playing item in the queue. | [optional] | +|**startPositionTicks** | **Long** | Gets or sets the start position ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackErrorCode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackErrorCode.md new file mode 100644 index 0000000000000..9da3cd58d2275 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackErrorCode.md @@ -0,0 +1,15 @@ + + +# PlaybackErrorCode + +## Enum + + +* `NOT_ALLOWED` (value: `"NotAllowed"`) + +* `NO_COMPATIBLE_STREAM` (value: `"NoCompatibleStream"`) + +* `RATE_LIMIT_EXCEEDED` (value: `"RateLimitExceeded"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoDto.md new file mode 100644 index 0000000000000..628f60f4a1fa1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoDto.md @@ -0,0 +1,29 @@ + + +# PlaybackInfoDto + +Plabyback info dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the playback userId. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the max streaming bitrate. | [optional] | +|**startTimeTicks** | **Long** | Gets or sets the start time in ticks. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the audio stream index. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the subtitle stream index. | [optional] | +|**maxAudioChannels** | **Integer** | Gets or sets the max audio channels. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media source id. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream id. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | Gets or sets the device profile. | [optional] | +|**enableDirectPlay** | **Boolean** | Gets or sets a value indicating whether to enable direct play. | [optional] | +|**enableDirectStream** | **Boolean** | Gets or sets a value indicating whether to enable direct stream. | [optional] | +|**enableTranscoding** | **Boolean** | Gets or sets a value indicating whether to enable transcoding. | [optional] | +|**allowVideoStreamCopy** | **Boolean** | Gets or sets a value indicating whether to enable video stream copy. | [optional] | +|**allowAudioStreamCopy** | **Boolean** | Gets or sets a value indicating whether to allow audio stream copy. | [optional] | +|**autoOpenLiveStream** | **Boolean** | Gets or sets a value indicating whether to auto open the live stream. | [optional] | +|**alwaysBurnInSubtitleWhenTranscoding** | **Boolean** | Gets or sets a value indicating whether always burn in subtitles when transcoding. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoResponse.md new file mode 100644 index 0000000000000..83da6f88f4225 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackInfoResponse.md @@ -0,0 +1,16 @@ + + +# PlaybackInfoResponse + +Class PlaybackInfoResponse. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mediaSources** | [**List<MediaSourceInfo>**](MediaSourceInfo.md) | Gets or sets the media sources. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**errorCode** | **PlaybackErrorCode** | Gets or sets the error code. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackOrder.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackOrder.md new file mode 100644 index 0000000000000..4e4ac23ae1dd3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackOrder.md @@ -0,0 +1,13 @@ + + +# PlaybackOrder + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `SHUFFLE` (value: `"Shuffle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackProgressInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackProgressInfo.md new file mode 100644 index 0000000000000..a4e943ccf2a0c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackProgressInfo.md @@ -0,0 +1,34 @@ + + +# PlaybackProgressInfo + +Class PlaybackProgressInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the subtitle stream. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**playbackStartTimeTicks** | **Long** | | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**brightness** | **Integer** | | [optional] | +|**aspectRatio** | **String** | | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**playbackOrder** | **PlaybackOrder** | Gets or sets the playback order. | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackRequestType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackRequestType.md new file mode 100644 index 0000000000000..e36548dec91bb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackRequestType.md @@ -0,0 +1,43 @@ + + +# PlaybackRequestType + +## Enum + + +* `PLAY` (value: `"Play"`) + +* `SET_PLAYLIST_ITEM` (value: `"SetPlaylistItem"`) + +* `REMOVE_FROM_PLAYLIST` (value: `"RemoveFromPlaylist"`) + +* `MOVE_PLAYLIST_ITEM` (value: `"MovePlaylistItem"`) + +* `QUEUE` (value: `"Queue"`) + +* `UNPAUSE` (value: `"Unpause"`) + +* `PAUSE` (value: `"Pause"`) + +* `STOP` (value: `"Stop"`) + +* `SEEK` (value: `"Seek"`) + +* `BUFFER` (value: `"Buffer"`) + +* `READY` (value: `"Ready"`) + +* `NEXT_ITEM` (value: `"NextItem"`) + +* `PREVIOUS_ITEM` (value: `"PreviousItem"`) + +* `SET_REPEAT_MODE` (value: `"SetRepeatMode"`) + +* `SET_SHUFFLE_MODE` (value: `"SetShuffleMode"`) + +* `PING` (value: `"Ping"`) + +* `IGNORE_WAIT` (value: `"IgnoreWait"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStartInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStartInfo.md new file mode 100644 index 0000000000000..62165a15f52b0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStartInfo.md @@ -0,0 +1,34 @@ + + +# PlaybackStartInfo + +Class PlaybackStartInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the subtitle stream. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**playbackStartTimeTicks** | **Long** | | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**brightness** | **Integer** | | [optional] | +|**aspectRatio** | **String** | | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**playbackOrder** | **PlaybackOrder** | Gets or sets the playback order. | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStopInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStopInfo.md new file mode 100644 index 0000000000000..eeb380d21ccdd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaybackStopInfo.md @@ -0,0 +1,24 @@ + + +# PlaybackStopInfo + +Class PlaybackStopInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**failed** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. | [optional] | +|**nextMediaType** | **String** | | [optional] | +|**playlistItemId** | **String** | | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayerStateInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayerStateInfo.md new file mode 100644 index 0000000000000..f4c01671aeb7e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlayerStateInfo.md @@ -0,0 +1,24 @@ + + +# PlayerStateInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**positionTicks** | **Long** | Gets or sets the now playing position ticks. | [optional] | +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the now playing audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the now playing subtitle stream. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the now playing media version identifier. | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**playbackOrder** | **PlaybackOrder** | Gets or sets the playback order. | [optional] | +|**liveStreamId** | **String** | Gets or sets the now playing live stream identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistCreationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistCreationResult.md new file mode 100644 index 0000000000000..cc4f2c3484d8a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistCreationResult.md @@ -0,0 +1,13 @@ + + +# PlaylistCreationResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistDto.md new file mode 100644 index 0000000000000..60d25bba4d3b8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistDto.md @@ -0,0 +1,16 @@ + + +# PlaylistDto + +DTO for playlists. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**openAccess** | **Boolean** | Gets or sets a value indicating whether the playlist is publicly readable. | [optional] | +|**shares** | [**List<PlaylistUserPermissions>**](PlaylistUserPermissions.md) | Gets or sets the share permissions. | [optional] | +|**itemIds** | **List<UUID>** | Gets or sets the item ids. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistUserPermissions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistUserPermissions.md new file mode 100644 index 0000000000000..07e2969753ad9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistUserPermissions.md @@ -0,0 +1,15 @@ + + +# PlaylistUserPermissions + +Class to hold data on user permissions for playlists. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**canEdit** | **Boolean** | Gets or sets a value indicating whether the user has edit permissions. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistsApi.md new file mode 100644 index 0000000000000..d98d02f8dfe50 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaylistsApi.md @@ -0,0 +1,828 @@ +# PlaylistsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addItemToPlaylist**](PlaylistsApi.md#addItemToPlaylist) | **POST** /Playlists/{playlistId}/Items | Adds items to a playlist. | +| [**createPlaylist**](PlaylistsApi.md#createPlaylist) | **POST** /Playlists | Creates a new playlist. | +| [**getPlaylist**](PlaylistsApi.md#getPlaylist) | **GET** /Playlists/{playlistId} | Get a playlist. | +| [**getPlaylistItems**](PlaylistsApi.md#getPlaylistItems) | **GET** /Playlists/{playlistId}/Items | Gets the original items of a playlist. | +| [**getPlaylistUser**](PlaylistsApi.md#getPlaylistUser) | **GET** /Playlists/{playlistId}/Users/{userId} | Get a playlist user. | +| [**getPlaylistUsers**](PlaylistsApi.md#getPlaylistUsers) | **GET** /Playlists/{playlistId}/Users | Get a playlist's users. | +| [**moveItem**](PlaylistsApi.md#moveItem) | **POST** /Playlists/{playlistId}/Items/{itemId}/Move/{newIndex} | Moves a playlist item. | +| [**removeItemFromPlaylist**](PlaylistsApi.md#removeItemFromPlaylist) | **DELETE** /Playlists/{playlistId}/Items | Removes items from a playlist. | +| [**removeUserFromPlaylist**](PlaylistsApi.md#removeUserFromPlaylist) | **DELETE** /Playlists/{playlistId}/Users/{userId} | Remove a user from a playlist's users. | +| [**updatePlaylist**](PlaylistsApi.md#updatePlaylist) | **POST** /Playlists/{playlistId} | Updates a playlist. | +| [**updatePlaylistUser**](PlaylistsApi.md#updatePlaylistUser) | **POST** /Playlists/{playlistId}/Users/{userId} | Modify a user of a playlist's users. | + + + +# **addItemToPlaylist** +> addItemToPlaylist(playlistId, ids, userId) + +Adds items to a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + List ids = Arrays.asList(); // List | Item id, comma delimited. + UUID userId = UUID.randomUUID(); // UUID | The userId. + try { + apiInstance.addItemToPlaylist(playlistId, ids, userId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#addItemToPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item id, comma delimited. | [optional] | +| **userId** | **UUID**| The userId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items added to playlist. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **createPlaylist** +> PlaylistCreationResult createPlaylist(name, ids, userId, mediaType, createPlaylistDto) + +Creates a new playlist. + +For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String name = "name_example"; // String | The playlist name. + List ids = Arrays.asList(); // List | The item ids. + UUID userId = UUID.randomUUID(); // UUID | The user id. + MediaType mediaType = MediaType.fromValue("Unknown"); // MediaType | The media type. + CreatePlaylistDto createPlaylistDto = new CreatePlaylistDto(); // CreatePlaylistDto | The create playlist payload. + try { + PlaylistCreationResult result = apiInstance.createPlaylist(name, ids, userId, mediaType, createPlaylistDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#createPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The playlist name. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| The item ids. | [optional] | +| **userId** | **UUID**| The user id. | [optional] | +| **mediaType** | **MediaType**| The media type. | [optional] [enum: Unknown, Video, Audio, Photo, Book] | +| **createPlaylistDto** | [**CreatePlaylistDto**](CreatePlaylistDto.md)| The create playlist payload. | [optional] | + +### Return type + +[**PlaylistCreationResult**](PlaylistCreationResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Playlist created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlaylist** +> PlaylistDto getPlaylist(playlistId) + +Get a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + try { + PlaylistDto result = apiInstance.getPlaylist(playlistId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#getPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | + +### Return type + +[**PlaylistDto**](PlaylistDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | The playlist. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlaylistItems** +> BaseItemDtoQueryResult getPlaylistItems(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Gets the original items of a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UUID userId = UUID.randomUUID(); // UUID | User id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getPlaylistItems(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#getPlaylistItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **userId** | **UUID**| User id. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Original playlist returned. | - | +| **403** | Forbidden | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **getPlaylistUser** +> PlaylistUserPermissions getPlaylistUser(playlistId, userId) + +Get a playlist user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + PlaylistUserPermissions result = apiInstance.getPlaylistUser(playlistId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#getPlaylistUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +[**PlaylistUserPermissions**](PlaylistUserPermissions.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User permission found. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **getPlaylistUsers** +> List<PlaylistUserPermissions> getPlaylistUsers(playlistId) + +Get a playlist's users. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + try { + List result = apiInstance.getPlaylistUsers(playlistId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#getPlaylistUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | + +### Return type + +[**List<PlaylistUserPermissions>**](PlaylistUserPermissions.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Found shares. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **moveItem** +> moveItem(playlistId, itemId, newIndex) + +Moves a playlist item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String playlistId = "playlistId_example"; // String | The playlist id. + String itemId = "itemId_example"; // String | The item id. + Integer newIndex = 56; // Integer | The new index. + try { + apiInstance.moveItem(playlistId, itemId, newIndex); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#moveItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **String**| The playlist id. | | +| **itemId** | **String**| The item id. | | +| **newIndex** | **Integer**| The new index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item moved to new index. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **removeItemFromPlaylist** +> removeItemFromPlaylist(playlistId, entryIds) + +Removes items from a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String playlistId = "playlistId_example"; // String | The playlist id. + List entryIds = Arrays.asList(); // List | The item ids, comma delimited. + try { + apiInstance.removeItemFromPlaylist(playlistId, entryIds); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#removeItemFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **String**| The playlist id. | | +| **entryIds** | [**List<String>**](String.md)| The item ids, comma delimited. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items removed. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **removeUserFromPlaylist** +> removeUserFromPlaylist(playlistId, userId) + +Remove a user from a playlist's users. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.removeUserFromPlaylist(playlistId, userId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#removeUserFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User permissions removed from playlist. | - | +| **403** | Forbidden | - | +| **404** | No playlist or user permissions found. | - | +| **401** | Unauthorized access. | - | + + +# **updatePlaylist** +> updatePlaylist(playlistId, updatePlaylistDto) + +Updates a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UpdatePlaylistDto updatePlaylistDto = new UpdatePlaylistDto(); // UpdatePlaylistDto | The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. + try { + apiInstance.updatePlaylist(playlistId, updatePlaylistDto); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#updatePlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **updatePlaylistDto** | [**UpdatePlaylistDto**](UpdatePlaylistDto.md)| The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playlist updated. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + + +# **updatePlaylistUser** +> updatePlaylistUser(playlistId, userId, updatePlaylistUserDto) + +Modify a user of a playlist's users. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + UpdatePlaylistUserDto updatePlaylistUserDto = new UpdatePlaylistUserDto(); // UpdatePlaylistUserDto | The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. + try { + apiInstance.updatePlaylistUser(playlistId, userId, updatePlaylistUserDto); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#updatePlaylistUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **userId** | **UUID**| The user id. | | +| **updatePlaylistUserDto** | [**UpdatePlaylistUserDto**](UpdatePlaylistUserDto.md)| The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User's permissions modified. | - | +| **403** | Access forbidden. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateApi.md new file mode 100644 index 0000000000000..19b33c7753d7b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateApi.md @@ -0,0 +1,685 @@ +# PlaystateApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**markPlayedItem**](PlaystateApi.md#markPlayedItem) | **POST** /UserPlayedItems/{itemId} | Marks an item as played for user. | +| [**markUnplayedItem**](PlaystateApi.md#markUnplayedItem) | **DELETE** /UserPlayedItems/{itemId} | Marks an item as unplayed for user. | +| [**onPlaybackProgress**](PlaystateApi.md#onPlaybackProgress) | **POST** /PlayingItems/{itemId}/Progress | Reports a session's playback progress. | +| [**onPlaybackStart**](PlaystateApi.md#onPlaybackStart) | **POST** /PlayingItems/{itemId} | Reports that a session has begun playing an item. | +| [**onPlaybackStopped**](PlaystateApi.md#onPlaybackStopped) | **DELETE** /PlayingItems/{itemId} | Reports that a session has stopped playing an item. | +| [**pingPlaybackSession**](PlaystateApi.md#pingPlaybackSession) | **POST** /Sessions/Playing/Ping | Pings a playback session. | +| [**reportPlaybackProgress**](PlaystateApi.md#reportPlaybackProgress) | **POST** /Sessions/Playing/Progress | Reports playback progress within a session. | +| [**reportPlaybackStart**](PlaystateApi.md#reportPlaybackStart) | **POST** /Sessions/Playing | Reports playback has started within a session. | +| [**reportPlaybackStopped**](PlaystateApi.md#reportPlaybackStopped) | **POST** /Sessions/Playing/Stopped | Reports playback has stopped within a session. | + + + +# **markPlayedItem** +> UserItemDataDto markPlayedItem(itemId, userId, datePlayed) + +Marks an item as played for user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + OffsetDateTime datePlayed = OffsetDateTime.now(); // OffsetDateTime | Optional. The date the item was played. + try { + UserItemDataDto result = apiInstance.markPlayedItem(itemId, userId, datePlayed); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#markPlayedItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | +| **datePlayed** | **OffsetDateTime**| Optional. The date the item was played. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as played. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **markUnplayedItem** +> UserItemDataDto markUnplayedItem(itemId, userId) + +Marks an item as unplayed for user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + UserItemDataDto result = apiInstance.markUnplayedItem(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#markUnplayedItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as unplayed. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackProgress** +> onPlaybackProgress(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted) + +Reports a session's playback progress. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + Long positionTicks = 56L; // Long | Optional. The current position, in ticks. 1 tick = 10000 ms. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer volumeLevel = 56; // Integer | Scale of 0-100. + PlayMethod playMethod = PlayMethod.fromValue("Transcode"); // PlayMethod | The play method. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + RepeatMode repeatMode = RepeatMode.fromValue("RepeatNone"); // RepeatMode | The repeat mode. + Boolean isPaused = false; // Boolean | Indicates if the player is paused. + Boolean isMuted = false; // Boolean | Indicates if the player is muted. + try { + apiInstance.onPlaybackProgress(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackProgress"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **positionTicks** | **Long**| Optional. The current position, in ticks. 1 tick = 10000 ms. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **volumeLevel** | **Integer**| Scale of 0-100. | [optional] | +| **playMethod** | **PlayMethod**| The play method. | [optional] [enum: Transcode, DirectStream, DirectPlay] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **repeatMode** | **RepeatMode**| The repeat mode. | [optional] [enum: RepeatNone, RepeatAll, RepeatOne] | +| **isPaused** | **Boolean**| Indicates if the player is paused. | [optional] [default to false] | +| **isMuted** | **Boolean**| Indicates if the player is muted. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play progress recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackStart** +> onPlaybackStart(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek) + +Reports that a session has begun playing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + PlayMethod playMethod = PlayMethod.fromValue("Transcode"); // PlayMethod | The play method. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + Boolean canSeek = false; // Boolean | Indicates if the client can seek. + try { + apiInstance.onPlaybackStart(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackStart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **playMethod** | **PlayMethod**| The play method. | [optional] [enum: Transcode, DirectStream, DirectPlay] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **canSeek** | **Boolean**| Indicates if the client can seek. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play start recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackStopped** +> onPlaybackStopped(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId) + +Reports that a session has stopped playing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + String nextMediaType = "nextMediaType_example"; // String | The next media type that will play. + Long positionTicks = 56L; // Long | Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + try { + apiInstance.onPlaybackStopped(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackStopped"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **nextMediaType** | **String**| The next media type that will play. | [optional] | +| **positionTicks** | **Long**| Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback stop recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **pingPlaybackSession** +> pingPlaybackSession(playSessionId) + +Pings a playback session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + String playSessionId = "playSessionId_example"; // String | Playback session id. + try { + apiInstance.pingPlaybackSession(playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#pingPlaybackSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playSessionId** | **String**| Playback session id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback session pinged. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackProgress** +> reportPlaybackProgress(playbackProgressInfo) + +Reports playback progress within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackProgressInfo playbackProgressInfo = new PlaybackProgressInfo(); // PlaybackProgressInfo | The playback progress info. + try { + apiInstance.reportPlaybackProgress(playbackProgressInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackProgress"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackProgressInfo** | [**PlaybackProgressInfo**](PlaybackProgressInfo.md)| The playback progress info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback progress recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackStart** +> reportPlaybackStart(playbackStartInfo) + +Reports playback has started within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackStartInfo playbackStartInfo = new PlaybackStartInfo(); // PlaybackStartInfo | The playback start info. + try { + apiInstance.reportPlaybackStart(playbackStartInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackStart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackStartInfo** | [**PlaybackStartInfo**](PlaybackStartInfo.md)| The playback start info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback start recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackStopped** +> reportPlaybackStopped(playbackStopInfo) + +Reports playback has stopped within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackStopInfo playbackStopInfo = new PlaybackStopInfo(); // PlaybackStopInfo | The playback stop info. + try { + apiInstance.reportPlaybackStopped(playbackStopInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackStopped"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackStopInfo** | [**PlaybackStopInfo**](PlaybackStopInfo.md)| The playback stop info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback stop recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateCommand.md new file mode 100644 index 0000000000000..0b511a77f1b9e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateCommand.md @@ -0,0 +1,27 @@ + + +# PlaystateCommand + +## Enum + + +* `STOP` (value: `"Stop"`) + +* `PAUSE` (value: `"Pause"`) + +* `UNPAUSE` (value: `"Unpause"`) + +* `NEXT_TRACK` (value: `"NextTrack"`) + +* `PREVIOUS_TRACK` (value: `"PreviousTrack"`) + +* `SEEK` (value: `"Seek"`) + +* `REWIND` (value: `"Rewind"`) + +* `FAST_FORWARD` (value: `"FastForward"`) + +* `PLAY_PAUSE` (value: `"PlayPause"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateMessage.md new file mode 100644 index 0000000000000..5b2ab380d14dc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateMessage.md @@ -0,0 +1,16 @@ + + +# PlaystateMessage + +Playstate message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**PlaystateRequest**](PlaystateRequest.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateRequest.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateRequest.md new file mode 100644 index 0000000000000..b06c88ce949f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PlaystateRequest.md @@ -0,0 +1,15 @@ + + +# PlaystateRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**command** | **PlaystateCommand** | Enum PlaystateCommand. | [optional] | +|**seekPositionTicks** | **Long** | | [optional] | +|**controllingUserId** | **String** | Gets or sets the controlling user identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInfo.md new file mode 100644 index 0000000000000..d7097c2d11bcc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInfo.md @@ -0,0 +1,21 @@ + + +# PluginInfo + +This is a serializable stub class that is used by the api to provide information about installed plugins. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**configurationFileName** | **String** | Gets or sets the name of the configuration file. | [optional] | +|**description** | **String** | Gets or sets the description. | [optional] | +|**id** | **UUID** | Gets or sets the unique id. | [optional] | +|**canUninstall** | **Boolean** | Gets or sets a value indicating whether the plugin can be uninstalled. | [optional] | +|**hasImage** | **Boolean** | Gets or sets a value indicating whether this plugin has a valid image. | [optional] | +|**status** | **PluginStatus** | Gets or sets a value indicating the status of the plugin. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCancelledMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCancelledMessage.md new file mode 100644 index 0000000000000..6529f1f801f9f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCancelledMessage.md @@ -0,0 +1,16 @@ + + +# PluginInstallationCancelledMessage + +Plugin installation cancelled message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**InstallationInfo**](InstallationInfo.md) | Class InstallationInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCompletedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCompletedMessage.md new file mode 100644 index 0000000000000..3127280415fe5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationCompletedMessage.md @@ -0,0 +1,16 @@ + + +# PluginInstallationCompletedMessage + +Plugin installation completed message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**InstallationInfo**](InstallationInfo.md) | Class InstallationInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationFailedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationFailedMessage.md new file mode 100644 index 0000000000000..46dbed5374955 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallationFailedMessage.md @@ -0,0 +1,16 @@ + + +# PluginInstallationFailedMessage + +Plugin installation failed message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**InstallationInfo**](InstallationInfo.md) | Class InstallationInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallingMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallingMessage.md new file mode 100644 index 0000000000000..a8e549464d8b9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginInstallingMessage.md @@ -0,0 +1,16 @@ + + +# PluginInstallingMessage + +Package installing message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**InstallationInfo**](InstallationInfo.md) | Class InstallationInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginStatus.md new file mode 100644 index 0000000000000..8443f56dd259f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginStatus.md @@ -0,0 +1,23 @@ + + +# PluginStatus + +## Enum + + +* `ACTIVE` (value: `"Active"`) + +* `RESTART` (value: `"Restart"`) + +* `DELETED` (value: `"Deleted"`) + +* `SUPERCEDED` (value: `"Superceded"`) + +* `MALFUNCTIONED` (value: `"Malfunctioned"`) + +* `NOT_SUPPORTED` (value: `"NotSupported"`) + +* `DISABLED` (value: `"Disabled"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginUninstalledMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginUninstalledMessage.md new file mode 100644 index 0000000000000..aacc50c70b4c7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginUninstalledMessage.md @@ -0,0 +1,16 @@ + + +# PluginUninstalledMessage + +Plugin uninstalled message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**PluginInfo**](PluginInfo.md) | This is a serializable stub class that is used by the api to provide information about installed plugins. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginsApi.md new file mode 100644 index 0000000000000..f231e4c47dad4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PluginsApi.md @@ -0,0 +1,646 @@ +# PluginsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**disablePlugin**](PluginsApi.md#disablePlugin) | **POST** /Plugins/{pluginId}/{version}/Disable | Disable a plugin. | +| [**enablePlugin**](PluginsApi.md#enablePlugin) | **POST** /Plugins/{pluginId}/{version}/Enable | Enables a disabled plugin. | +| [**getPluginConfiguration**](PluginsApi.md#getPluginConfiguration) | **GET** /Plugins/{pluginId}/Configuration | Gets plugin configuration. | +| [**getPluginImage**](PluginsApi.md#getPluginImage) | **GET** /Plugins/{pluginId}/{version}/Image | Gets a plugin's image. | +| [**getPluginManifest**](PluginsApi.md#getPluginManifest) | **POST** /Plugins/{pluginId}/Manifest | Gets a plugin's manifest. | +| [**getPlugins**](PluginsApi.md#getPlugins) | **GET** /Plugins | Gets a list of currently installed plugins. | +| [**uninstallPlugin**](PluginsApi.md#uninstallPlugin) | **DELETE** /Plugins/{pluginId} | Uninstalls a plugin. | +| [**uninstallPluginByVersion**](PluginsApi.md#uninstallPluginByVersion) | **DELETE** /Plugins/{pluginId}/{version} | Uninstalls a plugin by version. | +| [**updatePluginConfiguration**](PluginsApi.md#updatePluginConfiguration) | **POST** /Plugins/{pluginId}/Configuration | Updates plugin configuration. | + + + +# **disablePlugin** +> disablePlugin(pluginId, version) + +Disable a plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.disablePlugin(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#disablePlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin disabled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **enablePlugin** +> enablePlugin(pluginId, version) + +Enables a disabled plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.enablePlugin(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#enablePlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin enabled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginConfiguration** +> Object getPluginConfiguration(pluginId) + +Gets plugin configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + Object result = apiInstance.getPluginConfiguration(pluginId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +**Object** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Plugin configuration returned. | - | +| **404** | Plugin not found or plugin configuration not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginImage** +> File getPluginImage(pluginId, version) + +Gets a plugin's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + File result = apiInstance.getPluginImage(pluginId, version); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Plugin image returned. | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginManifest** +> getPluginManifest(pluginId) + +Gets a plugin's manifest. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.getPluginManifest(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginManifest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin manifest returned. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlugins** +> List<PluginInfo> getPlugins() + +Gets a list of currently installed plugins. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + try { + List result = apiInstance.getPlugins(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPlugins"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<PluginInfo>**](PluginInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Installed plugins returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uninstallPlugin** +> uninstallPlugin(pluginId) + +Uninstalls a plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.uninstallPlugin(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#uninstallPlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin uninstalled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uninstallPluginByVersion** +> uninstallPluginByVersion(pluginId, version) + +Uninstalls a plugin by version. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.uninstallPluginByVersion(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#uninstallPluginByVersion"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin uninstalled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updatePluginConfiguration** +> updatePluginConfiguration(pluginId) + +Updates plugin configuration. + +Accepts plugin configuration as JSON body. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.updatePluginConfiguration(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#updatePluginConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin configuration updated. | - | +| **404** | Plugin not found or plugin does not have configuration. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PreviousItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PreviousItemRequestDto.md new file mode 100644 index 0000000000000..27a55129e62eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PreviousItemRequestDto.md @@ -0,0 +1,14 @@ + + +# PreviousItemRequestDto + +Class PreviousItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playing item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProblemDetails.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProblemDetails.md new file mode 100644 index 0000000000000..1111c411027e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProblemDetails.md @@ -0,0 +1,17 @@ + + +# ProblemDetails + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**title** | **String** | | [optional] | +|**status** | **Integer** | | [optional] | +|**detail** | **String** | | [optional] | +|**instance** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProcessPriorityClass.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProcessPriorityClass.md new file mode 100644 index 0000000000000..8538f468c6277 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProcessPriorityClass.md @@ -0,0 +1,21 @@ + + +# ProcessPriorityClass + +## Enum + + +* `NORMAL` (value: `"Normal"`) + +* `IDLE` (value: `"Idle"`) + +* `HIGH` (value: `"High"`) + +* `REAL_TIME` (value: `"RealTime"`) + +* `BELOW_NORMAL` (value: `"BelowNormal"`) + +* `ABOVE_NORMAL` (value: `"AboveNormal"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileCondition.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileCondition.md new file mode 100644 index 0000000000000..cb92bbf54784b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileCondition.md @@ -0,0 +1,16 @@ + + +# ProfileCondition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**condition** | **ProfileConditionType** | | [optional] | +|**property** | **ProfileConditionValue** | | [optional] | +|**value** | **String** | | [optional] | +|**isRequired** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionType.md new file mode 100644 index 0000000000000..a22f336020bb7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionType.md @@ -0,0 +1,19 @@ + + +# ProfileConditionType + +## Enum + + +* `EQUALS` (value: `"Equals"`) + +* `NOT_EQUALS` (value: `"NotEquals"`) + +* `LESS_THAN_EQUAL` (value: `"LessThanEqual"`) + +* `GREATER_THAN_EQUAL` (value: `"GreaterThanEqual"`) + +* `EQUALS_ANY` (value: `"EqualsAny"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionValue.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionValue.md new file mode 100644 index 0000000000000..439677d2b00fb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProfileConditionValue.md @@ -0,0 +1,57 @@ + + +# ProfileConditionValue + +## Enum + + +* `AUDIO_CHANNELS` (value: `"AudioChannels"`) + +* `AUDIO_BITRATE` (value: `"AudioBitrate"`) + +* `AUDIO_PROFILE` (value: `"AudioProfile"`) + +* `WIDTH` (value: `"Width"`) + +* `HEIGHT` (value: `"Height"`) + +* `HAS64_BIT_OFFSETS` (value: `"Has64BitOffsets"`) + +* `PACKET_LENGTH` (value: `"PacketLength"`) + +* `VIDEO_BIT_DEPTH` (value: `"VideoBitDepth"`) + +* `VIDEO_BITRATE` (value: `"VideoBitrate"`) + +* `VIDEO_FRAMERATE` (value: `"VideoFramerate"`) + +* `VIDEO_LEVEL` (value: `"VideoLevel"`) + +* `VIDEO_PROFILE` (value: `"VideoProfile"`) + +* `VIDEO_TIMESTAMP` (value: `"VideoTimestamp"`) + +* `IS_ANAMORPHIC` (value: `"IsAnamorphic"`) + +* `REF_FRAMES` (value: `"RefFrames"`) + +* `NUM_AUDIO_STREAMS` (value: `"NumAudioStreams"`) + +* `NUM_VIDEO_STREAMS` (value: `"NumVideoStreams"`) + +* `IS_SECONDARY_AUDIO` (value: `"IsSecondaryAudio"`) + +* `VIDEO_CODEC_TAG` (value: `"VideoCodecTag"`) + +* `IS_AVC` (value: `"IsAvc"`) + +* `IS_INTERLACED` (value: `"IsInterlaced"`) + +* `AUDIO_SAMPLE_RATE` (value: `"AudioSampleRate"`) + +* `AUDIO_BIT_DEPTH` (value: `"AudioBitDepth"`) + +* `VIDEO_RANGE_TYPE` (value: `"VideoRangeType"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProgramAudio.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProgramAudio.md new file mode 100644 index 0000000000000..bc0b57e807ca7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ProgramAudio.md @@ -0,0 +1,21 @@ + + +# ProgramAudio + +## Enum + + +* `MONO` (value: `"Mono"`) + +* `STEREO` (value: `"Stereo"`) + +* `DOLBY` (value: `"Dolby"`) + +* `DOLBY_DIGITAL` (value: `"DolbyDigital"`) + +* `THX` (value: `"Thx"`) + +* `ATMOS` (value: `"Atmos"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PublicSystemInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PublicSystemInfo.md new file mode 100644 index 0000000000000..44cb6880d3d4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/PublicSystemInfo.md @@ -0,0 +1,19 @@ + + +# PublicSystemInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**localAddress** | **String** | Gets or sets the local address. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. | [optional] | +|**version** | **String** | Gets or sets the server version. | [optional] | +|**productName** | **String** | Gets or sets the product name. This is the AssemblyProduct name. | [optional] | +|**operatingSystem** | **String** | Gets or sets the operating system. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**startupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether the startup wizard is completed. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFilters.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFilters.md new file mode 100644 index 0000000000000..35038891c8bd2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFilters.md @@ -0,0 +1,14 @@ + + +# QueryFilters + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**genres** | [**List<NameGuidPair>**](NameGuidPair.md) | | [optional] | +|**tags** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFiltersLegacy.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFiltersLegacy.md new file mode 100644 index 0000000000000..20e572267cd24 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueryFiltersLegacy.md @@ -0,0 +1,16 @@ + + +# QueryFiltersLegacy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**genres** | **List<String>** | | [optional] | +|**tags** | **List<String>** | | [optional] | +|**officialRatings** | **List<String>** | | [optional] | +|**years** | **List<Integer>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueItem.md new file mode 100644 index 0000000000000..51807e0dc5e99 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueItem.md @@ -0,0 +1,14 @@ + + +# QueueItem + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueRequestDto.md new file mode 100644 index 0000000000000..7d3bc29b37daa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QueueRequestDto.md @@ -0,0 +1,15 @@ + + +# QueueRequestDto + +Class QueueRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemIds** | **List<UUID>** | Gets or sets the items to enqueue. | [optional] | +|**mode** | **GroupQueueMode** | Gets or sets the mode in which to add the new items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectApi.md new file mode 100644 index 0000000000000..03c56db67bae4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectApi.md @@ -0,0 +1,257 @@ +# QuickConnectApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**authorizeQuickConnect**](QuickConnectApi.md#authorizeQuickConnect) | **POST** /QuickConnect/Authorize | Authorizes a pending quick connect request. | +| [**getQuickConnectEnabled**](QuickConnectApi.md#getQuickConnectEnabled) | **GET** /QuickConnect/Enabled | Gets the current quick connect state. | +| [**getQuickConnectState**](QuickConnectApi.md#getQuickConnectState) | **GET** /QuickConnect/Connect | Attempts to retrieve authentication information. | +| [**initiateQuickConnect**](QuickConnectApi.md#initiateQuickConnect) | **POST** /QuickConnect/Initiate | Initiate a new quick connect request. | + + + +# **authorizeQuickConnect** +> Boolean authorizeQuickConnect(code, userId) + +Authorizes a pending quick connect request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + String code = "code_example"; // String | Quick connect code to authorize. + UUID userId = UUID.randomUUID(); // UUID | The user the authorize. Access to the requested user is required. + try { + Boolean result = apiInstance.authorizeQuickConnect(code, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#authorizeQuickConnect"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **code** | **String**| Quick connect code to authorize. | | +| **userId** | **UUID**| The user the authorize. Access to the requested user is required. | [optional] | + +### Return type + +**Boolean** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect result authorized successfully. | - | +| **403** | Unknown user id. | - | +| **401** | Unauthorized | - | + + +# **getQuickConnectEnabled** +> Boolean getQuickConnectEnabled() + +Gets the current quick connect state. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + try { + Boolean result = apiInstance.getQuickConnectEnabled(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#getQuickConnectEnabled"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**Boolean** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect state returned. | - | + + +# **getQuickConnectState** +> QuickConnectResult getQuickConnectState(secret) + +Attempts to retrieve authentication information. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + String secret = "secret_example"; // String | Secret previously returned from the Initiate endpoint. + try { + QuickConnectResult result = apiInstance.getQuickConnectState(secret); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#getQuickConnectState"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **secret** | **String**| Secret previously returned from the Initiate endpoint. | | + +### Return type + +[**QuickConnectResult**](QuickConnectResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect result returned. | - | +| **404** | Unknown quick connect secret. | - | + + +# **initiateQuickConnect** +> QuickConnectResult initiateQuickConnect() + +Initiate a new quick connect request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + try { + QuickConnectResult result = apiInstance.initiateQuickConnect(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#initiateQuickConnect"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**QuickConnectResult**](QuickConnectResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect request successfully created. | - | +| **401** | Quick connect is not active on this server. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectDto.md new file mode 100644 index 0000000000000..031b523afdf3a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectDto.md @@ -0,0 +1,14 @@ + + +# QuickConnectDto + +The quick connect request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**secret** | **String** | Gets or sets the quick connect secret. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectResult.md new file mode 100644 index 0000000000000..4d085f92952f0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/QuickConnectResult.md @@ -0,0 +1,21 @@ + + +# QuickConnectResult + +Stores the state of an quick connect request. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**authenticated** | **Boolean** | Gets or sets a value indicating whether this request is authorized. | [optional] | +|**secret** | **String** | Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. | [optional] | +|**code** | **String** | Gets the user facing code used so the user can quickly differentiate this request from others. | [optional] | +|**deviceId** | **String** | Gets the requesting device id. | [optional] | +|**deviceName** | **String** | Gets the requesting device name. | [optional] | +|**appName** | **String** | Gets the requesting app name. | [optional] | +|**appVersion** | **String** | Gets the requesting app version. | [optional] | +|**dateAdded** | **OffsetDateTime** | Gets or sets the DateTime that this request was created. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RatingType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RatingType.md new file mode 100644 index 0000000000000..1283e38169d14 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RatingType.md @@ -0,0 +1,13 @@ + + +# RatingType + +## Enum + + +* `SCORE` (value: `"Score"`) + +* `LIKES` (value: `"Likes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ReadyRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ReadyRequestDto.md new file mode 100644 index 0000000000000..8bcae06f3730b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ReadyRequestDto.md @@ -0,0 +1,17 @@ + + +# ReadyRequestDto + +Class ReadyRequest. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**when** | **OffsetDateTime** | Gets or sets when the request has been made by the client. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**isPlaying** | **Boolean** | Gets or sets a value indicating whether the client playback is unpaused. | [optional] | +|**playlistItemId** | **UUID** | Gets or sets the playlist item identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationDto.md new file mode 100644 index 0000000000000..284e8f4a85024 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationDto.md @@ -0,0 +1,16 @@ + + +# RecommendationDto + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | | [optional] | +|**recommendationType** | **RecommendationType** | | [optional] | +|**baselineItemName** | **String** | | [optional] | +|**categoryId** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationType.md new file mode 100644 index 0000000000000..465f4d2f98374 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecommendationType.md @@ -0,0 +1,21 @@ + + +# RecommendationType + +## Enum + + +* `SIMILAR_TO_RECENTLY_PLAYED` (value: `"SimilarToRecentlyPlayed"`) + +* `SIMILAR_TO_LIKED_ITEM` (value: `"SimilarToLikedItem"`) + +* `HAS_DIRECTOR_FROM_RECENTLY_PLAYED` (value: `"HasDirectorFromRecentlyPlayed"`) + +* `HAS_ACTOR_FROM_RECENTLY_PLAYED` (value: `"HasActorFromRecentlyPlayed"`) + +* `HAS_LIKED_DIRECTOR` (value: `"HasLikedDirector"`) + +* `HAS_LIKED_ACTOR` (value: `"HasLikedActor"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecordingStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecordingStatus.md new file mode 100644 index 0000000000000..79298e8669b89 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RecordingStatus.md @@ -0,0 +1,23 @@ + + +# RecordingStatus + +## Enum + + +* `NEW` (value: `"New"`) + +* `IN_PROGRESS` (value: `"InProgress"`) + +* `COMPLETED` (value: `"Completed"`) + +* `CANCELLED` (value: `"Cancelled"`) + +* `CONFLICTED_OK` (value: `"ConflictedOk"`) + +* `CONFLICTED_NOT_OK` (value: `"ConflictedNotOk"`) + +* `ERROR` (value: `"Error"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RefreshProgressMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RefreshProgressMessage.md new file mode 100644 index 0000000000000..aa313f6261eaf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RefreshProgressMessage.md @@ -0,0 +1,16 @@ + + +# RefreshProgressMessage + +Refresh progress message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **Map<String, String>** | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageApi.md new file mode 100644 index 0000000000000..99df1bda07516 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageApi.md @@ -0,0 +1,234 @@ +# RemoteImageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**downloadRemoteImage**](RemoteImageApi.md#downloadRemoteImage) | **POST** /Items/{itemId}/RemoteImages/Download | Downloads a remote image for an item. | +| [**getRemoteImageProviders**](RemoteImageApi.md#getRemoteImageProviders) | **GET** /Items/{itemId}/RemoteImages/Providers | Gets available remote image providers for an item. | +| [**getRemoteImages**](RemoteImageApi.md#getRemoteImages) | **GET** /Items/{itemId}/RemoteImages | Gets available remote images for an item. | + + + +# **downloadRemoteImage** +> downloadRemoteImage(itemId, type, imageUrl) + +Downloads a remote image for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + ImageType type = ImageType.fromValue("Primary"); // ImageType | The image type. + String imageUrl = "imageUrl_example"; // String | The image url. + try { + apiInstance.downloadRemoteImage(itemId, type, imageUrl); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#downloadRemoteImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | +| **type** | **ImageType**| The image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageUrl** | **String**| The image url. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Remote image downloaded. | - | +| **404** | Remote image not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteImageProviders** +> List<ImageProviderInfo> getRemoteImageProviders(itemId) + +Gets available remote image providers for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + try { + List result = apiInstance.getRemoteImageProviders(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#getRemoteImageProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | + +### Return type + +[**List<ImageProviderInfo>**](ImageProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Returned remote image providers. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteImages** +> RemoteImageResult getRemoteImages(itemId, type, startIndex, limit, providerName, includeAllLanguages) + +Gets available remote images for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + ImageType type = ImageType.fromValue("Primary"); // ImageType | The image type. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String providerName = "providerName_example"; // String | Optional. The image provider to use. + Boolean includeAllLanguages = false; // Boolean | Optional. Include all languages. + try { + RemoteImageResult result = apiInstance.getRemoteImages(itemId, type, startIndex, limit, providerName, includeAllLanguages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#getRemoteImages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | +| **type** | **ImageType**| The image type. | [optional] [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **providerName** | **String**| Optional. The image provider to use. | [optional] | +| **includeAllLanguages** | **Boolean**| Optional. Include all languages. | [optional] [default to false] | + +### Return type + +[**RemoteImageResult**](RemoteImageResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Remote Images returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageInfo.md new file mode 100644 index 0000000000000..137ce7ad0d583 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageInfo.md @@ -0,0 +1,23 @@ + + +# RemoteImageInfo + +Class RemoteImageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerName** | **String** | Gets or sets the name of the provider. | [optional] | +|**url** | **String** | Gets or sets the URL. | [optional] | +|**thumbnailUrl** | **String** | Gets or sets a url used for previewing a smaller version. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**communityRating** | **Double** | Gets or sets the community rating. | [optional] | +|**voteCount** | **Integer** | Gets or sets the vote count. | [optional] | +|**language** | **String** | Gets or sets the language. | [optional] | +|**type** | **ImageType** | Gets or sets the type. | [optional] | +|**ratingType** | **RatingType** | Gets or sets the type of the rating. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageResult.md new file mode 100644 index 0000000000000..9cc9a81699103 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteImageResult.md @@ -0,0 +1,16 @@ + + +# RemoteImageResult + +Class RemoteImageResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**images** | [**List<RemoteImageInfo>**](RemoteImageInfo.md) | Gets or sets the images. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total record count. | [optional] | +|**providers** | **List<String>** | Gets or sets the providers. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteLyricInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteLyricInfoDto.md new file mode 100644 index 0000000000000..4c3ca188201b9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteLyricInfoDto.md @@ -0,0 +1,16 @@ + + +# RemoteLyricInfoDto + +The remote lyric info dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the id for the lyric. | [optional] | +|**providerName** | **String** | Gets the provider name. | [optional] | +|**lyrics** | [**LyricDto**](LyricDto.md) | Gets the lyrics. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSearchResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSearchResult.md new file mode 100644 index 0000000000000..0aa2973fdb8b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSearchResult.md @@ -0,0 +1,24 @@ + + +# RemoteSearchResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**productionYear** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**indexNumberEnd** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**imageUrl** | **String** | | [optional] | +|**searchProviderName** | **String** | | [optional] | +|**overview** | **String** | | [optional] | +|**albumArtist** | [**RemoteSearchResult**](RemoteSearchResult.md) | | [optional] | +|**artists** | [**List<RemoteSearchResult>**](RemoteSearchResult.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSubtitleInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSubtitleInfo.md new file mode 100644 index 0000000000000..3f0c7fd8019c0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoteSubtitleInfo.md @@ -0,0 +1,28 @@ + + +# RemoteSubtitleInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**threeLetterISOLanguageName** | **String** | | [optional] | +|**id** | **String** | | [optional] | +|**providerName** | **String** | | [optional] | +|**name** | **String** | | [optional] | +|**format** | **String** | | [optional] | +|**author** | **String** | | [optional] | +|**comment** | **String** | | [optional] | +|**dateCreated** | **OffsetDateTime** | | [optional] | +|**communityRating** | **Float** | | [optional] | +|**frameRate** | **Float** | | [optional] | +|**downloadCount** | **Integer** | | [optional] | +|**isHashMatch** | **Boolean** | | [optional] | +|**aiTranslated** | **Boolean** | | [optional] | +|**machineTranslated** | **Boolean** | | [optional] | +|**forced** | **Boolean** | | [optional] | +|**hearingImpaired** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoveFromPlaylistRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoveFromPlaylistRequestDto.md new file mode 100644 index 0000000000000..722d32e0b84b6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RemoveFromPlaylistRequestDto.md @@ -0,0 +1,16 @@ + + +# RemoveFromPlaylistRequestDto + +Class RemoveFromPlaylistRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemIds** | **List<UUID>** | Gets or sets the playlist identifiers of the items. Ignored when clearing the playlist. | [optional] | +|**clearPlaylist** | **Boolean** | Gets or sets a value indicating whether the entire playlist should be cleared. | [optional] | +|**clearPlayingItem** | **Boolean** | Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepeatMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepeatMode.md new file mode 100644 index 0000000000000..9f9ca10f07b03 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepeatMode.md @@ -0,0 +1,15 @@ + + +# RepeatMode + +## Enum + + +* `REPEAT_NONE` (value: `"RepeatNone"`) + +* `REPEAT_ALL` (value: `"RepeatAll"`) + +* `REPEAT_ONE` (value: `"RepeatOne"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepositoryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepositoryInfo.md new file mode 100644 index 0000000000000..b2579a998bc60 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RepositoryInfo.md @@ -0,0 +1,16 @@ + + +# RepositoryInfo + +Class RepositoryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**url** | **String** | Gets or sets the URL. | [optional] | +|**enabled** | **Boolean** | Gets or sets a value indicating whether the repository is enabled. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RestartRequiredMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RestartRequiredMessage.md new file mode 100644 index 0000000000000..6ed459b408aee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/RestartRequiredMessage.md @@ -0,0 +1,15 @@ + + +# RestartRequiredMessage + +Restart required. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTaskEndedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTaskEndedMessage.md new file mode 100644 index 0000000000000..2ce25ee995ce3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTaskEndedMessage.md @@ -0,0 +1,16 @@ + + +# ScheduledTaskEndedMessage + +Scheduled task ended message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**TaskResult**](TaskResult.md) | Class TaskExecutionInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksApi.md new file mode 100644 index 0000000000000..98b1586f22439 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksApi.md @@ -0,0 +1,363 @@ +# ScheduledTasksApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTask**](ScheduledTasksApi.md#getTask) | **GET** /ScheduledTasks/{taskId} | Get task by id. | +| [**getTasks**](ScheduledTasksApi.md#getTasks) | **GET** /ScheduledTasks | Get tasks. | +| [**startTask**](ScheduledTasksApi.md#startTask) | **POST** /ScheduledTasks/Running/{taskId} | Start specified task. | +| [**stopTask**](ScheduledTasksApi.md#stopTask) | **DELETE** /ScheduledTasks/Running/{taskId} | Stop specified task. | +| [**updateTask**](ScheduledTasksApi.md#updateTask) | **POST** /ScheduledTasks/{taskId}/Triggers | Update specified task triggers. | + + + +# **getTask** +> TaskInfo getTask(taskId) + +Get task by id. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + TaskInfo result = apiInstance.getTask(taskId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#getTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +[**TaskInfo**](TaskInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Task retrieved. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTasks** +> List<TaskInfo> getTasks(isHidden, isEnabled) + +Get tasks. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional filter tasks that are hidden, or not. + Boolean isEnabled = true; // Boolean | Optional filter tasks that are enabled, or not. + try { + List result = apiInstance.getTasks(isHidden, isEnabled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#getTasks"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional filter tasks that are hidden, or not. | [optional] | +| **isEnabled** | **Boolean**| Optional filter tasks that are enabled, or not. | [optional] | + +### Return type + +[**List<TaskInfo>**](TaskInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Scheduled tasks retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **startTask** +> startTask(taskId) + +Start specified task. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + apiInstance.startTask(taskId); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#startTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task started. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **stopTask** +> stopTask(taskId) + +Stop specified task. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + apiInstance.stopTask(taskId); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#stopTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task stopped. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateTask** +> updateTask(taskId, taskTriggerInfo) + +Update specified task triggers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + List taskTriggerInfo = Arrays.asList(); // List | Triggers. + try { + apiInstance.updateTask(taskId, taskTriggerInfo); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#updateTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | +| **taskTriggerInfo** | [**List<TaskTriggerInfo>**](TaskTriggerInfo.md)| Triggers. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task triggers updated. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoMessage.md new file mode 100644 index 0000000000000..79c5488c0282f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoMessage.md @@ -0,0 +1,16 @@ + + +# ScheduledTasksInfoMessage + +Scheduled tasks info message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<TaskInfo>**](TaskInfo.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStartMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStartMessage.md new file mode 100644 index 0000000000000..9b57533f51d3c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStartMessage.md @@ -0,0 +1,15 @@ + + +# ScheduledTasksInfoStartMessage + +Scheduled tasks info start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **String** | Gets or sets the data. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStopMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStopMessage.md new file mode 100644 index 0000000000000..60b03b15e7f36 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScheduledTasksInfoStopMessage.md @@ -0,0 +1,14 @@ + + +# ScheduledTasksInfoStopMessage + +Scheduled tasks info stop message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScrollDirection.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScrollDirection.md new file mode 100644 index 0000000000000..567f1e23d6353 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ScrollDirection.md @@ -0,0 +1,13 @@ + + +# ScrollDirection + +## Enum + + +* `HORIZONTAL` (value: `"Horizontal"`) + +* `VERTICAL` (value: `"Vertical"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchApi.md new file mode 100644 index 0000000000000..27452c60de0cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchApi.md @@ -0,0 +1,112 @@ +# SearchApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getSearchHints**](SearchApi.md#getSearchHints) | **GET** /Search/Hints | Gets the search hint result. | + + + +# **getSearchHints** +> SearchHintResult getSearchHints(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists) + +Gets the search hint result. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SearchApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SearchApi apiInstance = new SearchApi(defaultClient); + String searchTerm = "searchTerm_example"; // String | The search term to filter on. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + UUID userId = UUID.randomUUID(); // UUID | Optional. Supply a user id to search within a user's library or omit to search all. + List includeItemTypes = Arrays.asList(); // List | If specified, only results with the specified item types are returned. This allows multiple, comma delimited. + List excludeItemTypes = Arrays.asList(); // List | If specified, results with these item types are filtered out. This allows multiple, comma delimited. + List mediaTypes = Arrays.asList(); // List | If specified, only results with the specified media types are returned. This allows multiple, comma delimited. + UUID parentId = UUID.randomUUID(); // UUID | If specified, only children of the parent are returned. + Boolean isMovie = true; // Boolean | Optional filter for movies. + Boolean isSeries = true; // Boolean | Optional filter for series. + Boolean isNews = true; // Boolean | Optional filter for news. + Boolean isKids = true; // Boolean | Optional filter for kids. + Boolean isSports = true; // Boolean | Optional filter for sports. + Boolean includePeople = true; // Boolean | Optional filter whether to include people. + Boolean includeMedia = true; // Boolean | Optional filter whether to include media. + Boolean includeGenres = true; // Boolean | Optional filter whether to include genres. + Boolean includeStudios = true; // Boolean | Optional filter whether to include studios. + Boolean includeArtists = true; // Boolean | Optional filter whether to include artists. + try { + SearchHintResult result = apiInstance.getSearchHints(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SearchApi#getSearchHints"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **searchTerm** | **String**| The search term to filter on. | | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **userId** | **UUID**| Optional. Supply a user id to search within a user's library or omit to search all. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| If specified, only results with the specified item types are returned. This allows multiple, comma delimited. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| If specified, results with these item types are filtered out. This allows multiple, comma delimited. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| If specified, only results with the specified media types are returned. This allows multiple, comma delimited. | [optional] | +| **parentId** | **UUID**| If specified, only children of the parent are returned. | [optional] | +| **isMovie** | **Boolean**| Optional filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for series. | [optional] | +| **isNews** | **Boolean**| Optional filter for news. | [optional] | +| **isKids** | **Boolean**| Optional filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for sports. | [optional] | +| **includePeople** | **Boolean**| Optional filter whether to include people. | [optional] [default to true] | +| **includeMedia** | **Boolean**| Optional filter whether to include media. | [optional] [default to true] | +| **includeGenres** | **Boolean**| Optional filter whether to include genres. | [optional] [default to true] | +| **includeStudios** | **Boolean**| Optional filter whether to include studios. | [optional] [default to true] | +| **includeArtists** | **Boolean**| Optional filter whether to include artists. | [optional] [default to true] | + +### Return type + +[**SearchHintResult**](SearchHintResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Search hint returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHint.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHint.md new file mode 100644 index 0000000000000..5e2d93c6d5403 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHint.md @@ -0,0 +1,42 @@ + + +# SearchHint + +Class SearchHintResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemId** | **UUID** | Gets or sets the item id. | [optional] | +|**id** | **UUID** | Gets or sets the item id. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**matchedTerm** | **String** | Gets or sets the matched term. | [optional] | +|**indexNumber** | **Integer** | Gets or sets the index number. | [optional] | +|**productionYear** | **Integer** | Gets or sets the production year. | [optional] | +|**parentIndexNumber** | **Integer** | Gets or sets the parent index number. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the image tag. | [optional] | +|**thumbImageTag** | **String** | Gets or sets the thumb image tag. | [optional] | +|**thumbImageItemId** | **String** | Gets or sets the thumb image item identifier. | [optional] | +|**backdropImageTag** | **String** | Gets or sets the backdrop image tag. | [optional] | +|**backdropImageItemId** | **String** | Gets or sets the backdrop image item identifier. | [optional] | +|**type** | **BaseItemKind** | The base item kind. | [optional] | +|**isFolder** | **Boolean** | Gets or sets a value indicating whether this instance is folder. | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**mediaType** | **MediaType** | Media types. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date. | [optional] | +|**series** | **String** | Gets or sets the series. | [optional] | +|**status** | **String** | Gets or sets the status. | [optional] | +|**album** | **String** | Gets or sets the album. | [optional] | +|**albumId** | **UUID** | Gets or sets the album id. | [optional] | +|**albumArtist** | **String** | Gets or sets the album artist. | [optional] | +|**artists** | **List<String>** | Gets or sets the artists. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the name of the channel. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHintResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHintResult.md new file mode 100644 index 0000000000000..a4855dc7ec74a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SearchHintResult.md @@ -0,0 +1,15 @@ + + +# SearchHintResult + +Class SearchHintResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchHints** | [**List<SearchHint>**](SearchHint.md) | Gets the search hints. | [optional] | +|**totalRecordCount** | **Integer** | Gets the total record count. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeekRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeekRequestDto.md new file mode 100644 index 0000000000000..b6878cf641b40 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeekRequestDto.md @@ -0,0 +1,14 @@ + + +# SeekRequestDto + +Class SeekRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommand.md new file mode 100644 index 0000000000000..bdbea9d5acac8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommand.md @@ -0,0 +1,19 @@ + + +# SendCommand + +Class SendCommand. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] | +|**playlistItemId** | **UUID** | Gets the playlist identifier of the playing item. | [optional] | +|**when** | **OffsetDateTime** | Gets or sets the UTC time when to execute the command. | [optional] | +|**positionTicks** | **Long** | Gets the position ticks. | [optional] | +|**command** | **SendCommandType** | Gets the command. | [optional] | +|**emittedAt** | **OffsetDateTime** | Gets the UTC time when this command has been emitted. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommandType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommandType.md new file mode 100644 index 0000000000000..9899b3666a021 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SendCommandType.md @@ -0,0 +1,17 @@ + + +# SendCommandType + +## Enum + + +* `UNPAUSE` (value: `"Unpause"`) + +* `PAUSE` (value: `"Pause"`) + +* `STOP` (value: `"Stop"`) + +* `SEEK` (value: `"Seek"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfo.md new file mode 100644 index 0000000000000..3884e122f223c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfo.md @@ -0,0 +1,23 @@ + + +# SeriesInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..34f0ce4dbf57e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# SeriesInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**SeriesInfo**](SeriesInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesStatus.md new file mode 100644 index 0000000000000..20fcf4ad30889 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesStatus.md @@ -0,0 +1,15 @@ + + +# SeriesStatus + +## Enum + + +* `CONTINUING` (value: `"Continuing"`) + +* `ENDED` (value: `"Ended"`) + +* `UNRELEASED` (value: `"Unreleased"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCancelledMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCancelledMessage.md new file mode 100644 index 0000000000000..82e086f34ba7a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCancelledMessage.md @@ -0,0 +1,16 @@ + + +# SeriesTimerCancelledMessage + +Series timer cancelled message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**TimerEventInfo**](TimerEventInfo.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCreatedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCreatedMessage.md new file mode 100644 index 0000000000000..5410e96127d98 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerCreatedMessage.md @@ -0,0 +1,16 @@ + + +# SeriesTimerCreatedMessage + +Series timer created message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**TimerEventInfo**](TimerEventInfo.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDto.md new file mode 100644 index 0000000000000..c2afd27a739b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDto.md @@ -0,0 +1,48 @@ + + +# SeriesTimerInfoDto + +Class SeriesTimerInfoDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the Id of the recording. | [optional] | +|**type** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**externalId** | **String** | Gets or sets the external identifier. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel id of the recording. | [optional] | +|**externalChannelId** | **String** | Gets or sets the external channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the channel name of the recording. | [optional] | +|**channelPrimaryImageTag** | **String** | | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**externalProgramId** | **String** | Gets or sets the external program identifier. | [optional] | +|**name** | **String** | Gets or sets the name of the recording. | [optional] | +|**overview** | **String** | Gets or sets the description of the recording. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date of the recording, in UTC. | [optional] | +|**serviceName** | **String** | Gets or sets the name of the service. | [optional] | +|**priority** | **Integer** | Gets or sets the priority. | [optional] | +|**prePaddingSeconds** | **Integer** | Gets or sets the pre padding seconds. | [optional] | +|**postPaddingSeconds** | **Integer** | Gets or sets the post padding seconds. | [optional] | +|**isPrePaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is pre padding required. | [optional] | +|**parentBackdropItemId** | **String** | Gets or sets the Id of the Parent that has a backdrop if the item does not have one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**isPostPaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is post padding required. | [optional] | +|**keepUntil** | **KeepUntil** | | [optional] | +|**recordAnyTime** | **Boolean** | Gets or sets a value indicating whether [record any time]. | [optional] | +|**skipEpisodesInLibrary** | **Boolean** | | [optional] | +|**recordAnyChannel** | **Boolean** | Gets or sets a value indicating whether [record any channel]. | [optional] | +|**keepUpTo** | **Integer** | | [optional] | +|**recordNewOnly** | **Boolean** | Gets or sets a value indicating whether [record new only]. | [optional] | +|**days** | **List<DayOfWeek>** | Gets or sets the days. | [optional] | +|**dayPattern** | **DayPattern** | Gets or sets the day pattern. | [optional] | +|**imageTags** | **Map<String, String>** | Gets or sets the image tags. | [optional] | +|**parentThumbItemId** | **String** | Gets or sets the parent thumb item id. | [optional] | +|**parentThumbImageTag** | **String** | Gets or sets the parent thumb image tag. | [optional] | +|**parentPrimaryImageItemId** | **String** | Gets or sets the parent primary image item identifier. | [optional] | +|**parentPrimaryImageTag** | **String** | Gets or sets the parent primary image tag. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDtoQueryResult.md new file mode 100644 index 0000000000000..16c0ed89d3cef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SeriesTimerInfoDtoQueryResult.md @@ -0,0 +1,16 @@ + + +# SeriesTimerInfoDtoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<SeriesTimerInfoDto>**](SeriesTimerInfoDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerConfiguration.md new file mode 100644 index 0000000000000..7b47917baaf18 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerConfiguration.md @@ -0,0 +1,67 @@ + + +# ServerConfiguration + +Represents the server configuration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**logFileRetentionDays** | **Integer** | Gets or sets the number of days we should retain log files. | [optional] | +|**isStartupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether this instance is first run. | [optional] | +|**cachePath** | **String** | Gets or sets the cache path. | [optional] | +|**previousVersion** | **String** | Gets or sets the last known version that was ran using the configuration. | [optional] | +|**previousVersionStr** | **String** | Gets or sets the stringified PreviousVersion to be stored/loaded, because System.Version itself isn't xml-serializable. | [optional] | +|**enableMetrics** | **Boolean** | Gets or sets a value indicating whether to enable prometheus metrics exporting. | [optional] | +|**enableNormalizedItemByNameIds** | **Boolean** | | [optional] | +|**isPortAuthorized** | **Boolean** | Gets or sets a value indicating whether this instance is port authorized. | [optional] | +|**quickConnectAvailable** | **Boolean** | Gets or sets a value indicating whether quick connect is available for use on this server. | [optional] | +|**enableCaseSensitiveItemIds** | **Boolean** | Gets or sets a value indicating whether [enable case sensitive item ids]. | [optional] | +|**disableLiveTvChannelUserDataName** | **Boolean** | | [optional] | +|**metadataPath** | **String** | Gets or sets the metadata path. | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**sortReplaceCharacters** | **List<String>** | Gets or sets characters to be replaced with a ' ' in strings to create a sort name. | [optional] | +|**sortRemoveCharacters** | **List<String>** | Gets or sets characters to be removed from strings to create a sort name. | [optional] | +|**sortRemoveWords** | **List<String>** | Gets or sets words to be removed from strings to create a sort name. | [optional] | +|**minResumePct** | **Integer** | Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. | [optional] | +|**maxResumePct** | **Integer** | Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. | [optional] | +|**minResumeDurationSeconds** | **Integer** | Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. | [optional] | +|**minAudiobookResume** | **Integer** | Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. | [optional] | +|**maxAudiobookResume** | **Integer** | Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. | [optional] | +|**inactiveSessionThreshold** | **Integer** | Gets or sets the threshold in minutes after a inactive session gets closed automatically. If set to 0 the check for inactive sessions gets disabled. | [optional] | +|**libraryMonitorDelay** | **Integer** | Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed Some delay is necessary with some items because their creation is not atomic. It involves the creation of several different directories and files. | [optional] | +|**libraryUpdateDuration** | **Integer** | Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification. | [optional] | +|**imageSavingConvention** | **ImageSavingConvention** | Gets or sets the image saving convention. | [optional] | +|**metadataOptions** | [**List<MetadataOptions>**](MetadataOptions.md) | | [optional] | +|**skipDeserializationForBasicTypes** | **Boolean** | | [optional] | +|**serverName** | **String** | | [optional] | +|**uiCulture** | **String** | | [optional] | +|**saveMetadataHidden** | **Boolean** | | [optional] | +|**contentTypes** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | +|**remoteClientBitrateLimit** | **Integer** | | [optional] | +|**enableFolderView** | **Boolean** | | [optional] | +|**enableGroupingIntoCollections** | **Boolean** | | [optional] | +|**displaySpecialsWithinSeasons** | **Boolean** | | [optional] | +|**codecsUsed** | **List<String>** | | [optional] | +|**pluginRepositories** | [**List<RepositoryInfo>**](RepositoryInfo.md) | | [optional] | +|**enableExternalContentInSuggestions** | **Boolean** | | [optional] | +|**imageExtractionTimeoutMs** | **Integer** | | [optional] | +|**pathSubstitutions** | [**List<PathSubstitution>**](PathSubstitution.md) | | [optional] | +|**enableSlowResponseWarning** | **Boolean** | Gets or sets a value indicating whether slow server responses should be logged as a warning. | [optional] | +|**slowResponseThresholdMs** | **Long** | Gets or sets the threshold for the slow response time warning in ms. | [optional] | +|**corsHosts** | **List<String>** | Gets or sets the cors hosts. | [optional] | +|**activityLogRetentionDays** | **Integer** | Gets or sets the number of days we should retain activity logs. | [optional] | +|**libraryScanFanoutConcurrency** | **Integer** | Gets or sets the how the library scan fans out. | [optional] | +|**libraryMetadataRefreshConcurrency** | **Integer** | Gets or sets the how many metadata refreshes can run concurrently. | [optional] | +|**removeOldPlugins** | **Boolean** | Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. | [optional] | +|**allowClientLogUpload** | **Boolean** | Gets or sets a value indicating whether clients should be allowed to upload logs. | [optional] | +|**dummyChapterDuration** | **Integer** | Gets or sets the dummy chapter duration in seconds, use 0 (zero) or less to disable generation alltogether. | [optional] | +|**chapterImageResolution** | **ImageResolution** | Gets or sets the chapter image resolution. | [optional] | +|**parallelImageEncodingLimit** | **Integer** | Gets or sets the limit for parallel image encoding. | [optional] | +|**castReceiverApplications** | [**List<CastReceiverApplication>**](CastReceiverApplication.md) | Gets or sets the list of cast receiver applications. | [optional] | +|**trickplayOptions** | [**TrickplayOptions**](TrickplayOptions.md) | Gets or sets the trickplay options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerDiscoveryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerDiscoveryInfo.md new file mode 100644 index 0000000000000..50c4a3654bbfa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerDiscoveryInfo.md @@ -0,0 +1,17 @@ + + +# ServerDiscoveryInfo + +The server discovery info model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**address** | **String** | Gets the address. | [optional] | +|**id** | **String** | Gets the server identifier. | [optional] | +|**name** | **String** | Gets the name. | [optional] | +|**endpointAddress** | **String** | Gets the endpoint address. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerRestartingMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerRestartingMessage.md new file mode 100644 index 0000000000000..d405114f141c0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerRestartingMessage.md @@ -0,0 +1,15 @@ + + +# ServerRestartingMessage + +Server restarting down message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerShuttingDownMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerShuttingDownMessage.md new file mode 100644 index 0000000000000..eac2462247bf5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ServerShuttingDownMessage.md @@ -0,0 +1,15 @@ + + +# ServerShuttingDownMessage + +Server shutting down message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionApi.md new file mode 100644 index 0000000000000..7e234a2f2efc6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionApi.md @@ -0,0 +1,1157 @@ +# SessionApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addUserToSession**](SessionApi.md#addUserToSession) | **POST** /Sessions/{sessionId}/User/{userId} | Adds an additional user to a session. | +| [**displayContent**](SessionApi.md#displayContent) | **POST** /Sessions/{sessionId}/Viewing | Instructs a session to browse to an item or view. | +| [**getAuthProviders**](SessionApi.md#getAuthProviders) | **GET** /Auth/Providers | Get all auth providers. | +| [**getPasswordResetProviders**](SessionApi.md#getPasswordResetProviders) | **GET** /Auth/PasswordResetProviders | Get all password reset providers. | +| [**getSessions**](SessionApi.md#getSessions) | **GET** /Sessions | Gets a list of sessions. | +| [**play**](SessionApi.md#play) | **POST** /Sessions/{sessionId}/Playing | Instructs a session to play an item. | +| [**postCapabilities**](SessionApi.md#postCapabilities) | **POST** /Sessions/Capabilities | Updates capabilities for a device. | +| [**postFullCapabilities**](SessionApi.md#postFullCapabilities) | **POST** /Sessions/Capabilities/Full | Updates capabilities for a device. | +| [**removeUserFromSession**](SessionApi.md#removeUserFromSession) | **DELETE** /Sessions/{sessionId}/User/{userId} | Removes an additional user from a session. | +| [**reportSessionEnded**](SessionApi.md#reportSessionEnded) | **POST** /Sessions/Logout | Reports that a session has ended. | +| [**reportViewing**](SessionApi.md#reportViewing) | **POST** /Sessions/Viewing | Reports that a session is viewing an item. | +| [**sendFullGeneralCommand**](SessionApi.md#sendFullGeneralCommand) | **POST** /Sessions/{sessionId}/Command | Issues a full general command to a client. | +| [**sendGeneralCommand**](SessionApi.md#sendGeneralCommand) | **POST** /Sessions/{sessionId}/Command/{command} | Issues a general command to a client. | +| [**sendMessageCommand**](SessionApi.md#sendMessageCommand) | **POST** /Sessions/{sessionId}/Message | Issues a command to a client to display a message to the user. | +| [**sendPlaystateCommand**](SessionApi.md#sendPlaystateCommand) | **POST** /Sessions/{sessionId}/Playing/{command} | Issues a playstate command to a client. | +| [**sendSystemCommand**](SessionApi.md#sendSystemCommand) | **POST** /Sessions/{sessionId}/System/{command} | Issues a system command to a client. | + + + +# **addUserToSession** +> addUserToSession(sessionId, userId) + +Adds an additional user to a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.addUserToSession(sessionId, userId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#addUserToSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User added to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **displayContent** +> displayContent(sessionId, itemType, itemId, itemName) + +Instructs a session to browse to an item or view. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session Id. + BaseItemKind itemType = BaseItemKind.fromValue("AggregateFolder"); // BaseItemKind | The type of item to browse to. + String itemId = "itemId_example"; // String | The Id of the item. + String itemName = "itemName_example"; // String | The name of the item. + try { + apiInstance.displayContent(sessionId, itemType, itemId, itemName); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#displayContent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session Id. | | +| **itemType** | **BaseItemKind**| The type of item to browse to. | [enum: AggregateFolder, Audio, AudioBook, BasePluginFolder, Book, BoxSet, Channel, ChannelFolderItem, CollectionFolder, Episode, Folder, Genre, ManualPlaylistsFolder, Movie, LiveTvChannel, LiveTvProgram, MusicAlbum, MusicArtist, MusicGenre, MusicVideo, Person, Photo, PhotoAlbum, Playlist, PlaylistsFolder, Program, Recording, Season, Series, Studio, Trailer, TvChannel, TvProgram, UserRootFolder, UserView, Video, Year] | +| **itemId** | **String**| The Id of the item. | | +| **itemName** | **String**| The name of the item. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Instruction sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getAuthProviders** +> List<NameIdPair> getAuthProviders() + +Get all auth providers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + List result = apiInstance.getAuthProviders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getAuthProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Auth providers retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPasswordResetProviders** +> List<NameIdPair> getPasswordResetProviders() + +Get all password reset providers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + List result = apiInstance.getPasswordResetProviders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getPasswordResetProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Password reset providers retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSessions** +> List<SessionInfoDto> getSessions(controllableByUserId, deviceId, activeWithinSeconds) + +Gets a list of sessions. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + UUID controllableByUserId = UUID.randomUUID(); // UUID | Filter by sessions that a given user is allowed to remote control. + String deviceId = "deviceId_example"; // String | Filter by device Id. + Integer activeWithinSeconds = 56; // Integer | Optional. Filter by sessions that were active in the last n seconds. + try { + List result = apiInstance.getSessions(controllableByUserId, deviceId, activeWithinSeconds); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getSessions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **controllableByUserId** | **UUID**| Filter by sessions that a given user is allowed to remote control. | [optional] | +| **deviceId** | **String**| Filter by device Id. | [optional] | +| **activeWithinSeconds** | **Integer**| Optional. Filter by sessions that were active in the last n seconds. | [optional] | + +### Return type + +[**List<SessionInfoDto>**](SessionInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | List of sessions returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **play** +> play(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex) + +Instructs a session to play an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + PlayCommand playCommand = PlayCommand.fromValue("PlayNow"); // PlayCommand | The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. + List itemIds = Arrays.asList(); // List | The ids of the items to play, comma delimited. + Long startPositionTicks = 56L; // Long | The starting position of the first item. + String mediaSourceId = "mediaSourceId_example"; // String | Optional. The media source id. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to play. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to play. + Integer startIndex = 56; // Integer | Optional. The start index. + try { + apiInstance.play(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#play"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **playCommand** | **PlayCommand**| The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. | [enum: PlayNow, PlayNext, PlayLast, PlayInstantMix, PlayShuffle] | +| **itemIds** | [**List<UUID>**](UUID.md)| The ids of the items to play, comma delimited. | | +| **startPositionTicks** | **Long**| The starting position of the first item. | [optional] | +| **mediaSourceId** | **String**| Optional. The media source id. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to play. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to play. | [optional] | +| **startIndex** | **Integer**| Optional. The start index. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Instruction sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postCapabilities** +> postCapabilities(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier) + +Updates capabilities for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String id = "id_example"; // String | The session id. + List playableMediaTypes = Arrays.asList(); // List | A list of playable media types, comma delimited. Audio, Video, Book, Photo. + List supportedCommands = Arrays.asList(); // List | A list of supported remote control commands, comma delimited. + Boolean supportsMediaControl = false; // Boolean | Determines whether media can be played remotely.. + Boolean supportsPersistentIdentifier = true; // Boolean | Determines whether the device supports a unique identifier. + try { + apiInstance.postCapabilities(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#postCapabilities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| The session id. | [optional] | +| **playableMediaTypes** | [**List<MediaType>**](MediaType.md)| A list of playable media types, comma delimited. Audio, Video, Book, Photo. | [optional] | +| **supportedCommands** | [**List<GeneralCommandType>**](GeneralCommandType.md)| A list of supported remote control commands, comma delimited. | [optional] | +| **supportsMediaControl** | **Boolean**| Determines whether media can be played remotely.. | [optional] [default to false] | +| **supportsPersistentIdentifier** | **Boolean**| Determines whether the device supports a unique identifier. | [optional] [default to true] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Capabilities posted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postFullCapabilities** +> postFullCapabilities(clientCapabilitiesDto, id) + +Updates capabilities for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + ClientCapabilitiesDto clientCapabilitiesDto = new ClientCapabilitiesDto(); // ClientCapabilitiesDto | The MediaBrowser.Model.Session.ClientCapabilities. + String id = "id_example"; // String | The session id. + try { + apiInstance.postFullCapabilities(clientCapabilitiesDto, id); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#postFullCapabilities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **clientCapabilitiesDto** | [**ClientCapabilitiesDto**](ClientCapabilitiesDto.md)| The MediaBrowser.Model.Session.ClientCapabilities. | | +| **id** | **String**| The session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Capabilities updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeUserFromSession** +> removeUserFromSession(sessionId, userId) + +Removes an additional user from a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.removeUserFromSession(sessionId, userId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#removeUserFromSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User removed from session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportSessionEnded** +> reportSessionEnded() + +Reports that a session has ended. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + apiInstance.reportSessionEnded(); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#reportSessionEnded"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Session end reported to server. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportViewing** +> reportViewing(itemId, sessionId) + +Reports that a session is viewing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String sessionId = "sessionId_example"; // String | The session id. + try { + apiInstance.reportViewing(itemId, sessionId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#reportViewing"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **sessionId** | **String**| The session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Session reported to server. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendFullGeneralCommand** +> sendFullGeneralCommand(sessionId, generalCommand) + +Issues a full general command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommand generalCommand = new GeneralCommand(); // GeneralCommand | The MediaBrowser.Model.Session.GeneralCommand. + try { + apiInstance.sendFullGeneralCommand(sessionId, generalCommand); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendFullGeneralCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **generalCommand** | [**GeneralCommand**](GeneralCommand.md)| The MediaBrowser.Model.Session.GeneralCommand. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Full general command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendGeneralCommand** +> sendGeneralCommand(sessionId, command) + +Issues a general command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommandType command = GeneralCommandType.fromValue("MoveUp"); // GeneralCommandType | The command to send. + try { + apiInstance.sendGeneralCommand(sessionId, command); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendGeneralCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | **GeneralCommandType**| The command to send. | [enum: MoveUp, MoveDown, MoveLeft, MoveRight, PageUp, PageDown, PreviousLetter, NextLetter, ToggleOsd, ToggleContextMenu, Select, Back, TakeScreenshot, SendKey, SendString, GoHome, GoToSettings, VolumeUp, VolumeDown, Mute, Unmute, ToggleMute, SetVolume, SetAudioStreamIndex, SetSubtitleStreamIndex, ToggleFullscreen, DisplayContent, GoToSearch, DisplayMessage, SetRepeatMode, ChannelUp, ChannelDown, Guide, ToggleStats, PlayMediaSource, PlayTrailers, SetShuffleQueue, PlayState, PlayNext, ToggleOsdMenu, Play, SetMaxStreamingBitrate, SetPlaybackOrder] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | General command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendMessageCommand** +> sendMessageCommand(sessionId, messageCommand) + +Issues a command to a client to display a message to the user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + MessageCommand messageCommand = new MessageCommand(); // MessageCommand | The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. + try { + apiInstance.sendMessageCommand(sessionId, messageCommand); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendMessageCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **messageCommand** | [**MessageCommand**](MessageCommand.md)| The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Message sent. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendPlaystateCommand** +> sendPlaystateCommand(sessionId, command, seekPositionTicks, controllingUserId) + +Issues a playstate command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + PlaystateCommand command = PlaystateCommand.fromValue("Stop"); // PlaystateCommand | The MediaBrowser.Model.Session.PlaystateCommand. + Long seekPositionTicks = 56L; // Long | The optional position ticks. + String controllingUserId = "controllingUserId_example"; // String | The optional controlling user id. + try { + apiInstance.sendPlaystateCommand(sessionId, command, seekPositionTicks, controllingUserId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendPlaystateCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | **PlaystateCommand**| The MediaBrowser.Model.Session.PlaystateCommand. | [enum: Stop, Pause, Unpause, NextTrack, PreviousTrack, Seek, Rewind, FastForward, PlayPause] | +| **seekPositionTicks** | **Long**| The optional position ticks. | [optional] | +| **controllingUserId** | **String**| The optional controlling user id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playstate command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendSystemCommand** +> sendSystemCommand(sessionId, command) + +Issues a system command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommandType command = GeneralCommandType.fromValue("MoveUp"); // GeneralCommandType | The command to send. + try { + apiInstance.sendSystemCommand(sessionId, command); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendSystemCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | **GeneralCommandType**| The command to send. | [enum: MoveUp, MoveDown, MoveLeft, MoveRight, PageUp, PageDown, PreviousLetter, NextLetter, ToggleOsd, ToggleContextMenu, Select, Back, TakeScreenshot, SendKey, SendString, GoHome, GoToSettings, VolumeUp, VolumeDown, Mute, Unmute, ToggleMute, SetVolume, SetAudioStreamIndex, SetSubtitleStreamIndex, ToggleFullscreen, DisplayContent, GoToSearch, DisplayMessage, SetRepeatMode, ChannelUp, ChannelDown, Guide, ToggleStats, PlayMediaSource, PlayTrailers, SetShuffleQueue, PlayState, PlayNext, ToggleOsdMenu, Play, SetMaxStreamingBitrate, SetPlaybackOrder] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | System command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionInfoDto.md new file mode 100644 index 0000000000000..903b5f57ac0c6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionInfoDto.md @@ -0,0 +1,42 @@ + + +# SessionInfoDto + +Session info DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playState** | [**PlayerStateInfo**](PlayerStateInfo.md) | Gets or sets the play state. | [optional] | +|**additionalUsers** | [**List<SessionUserInfo>**](SessionUserInfo.md) | Gets or sets the additional users. | [optional] | +|**capabilities** | [**ClientCapabilitiesDto**](ClientCapabilitiesDto.md) | Gets or sets the client capabilities. | [optional] | +|**remoteEndPoint** | **String** | Gets or sets the remote end point. | [optional] | +|**playableMediaTypes** | **List<MediaType>** | Gets or sets the playable media types. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**userName** | **String** | Gets or sets the username. | [optional] | +|**client** | **String** | Gets or sets the type of the client. | [optional] | +|**lastActivityDate** | **OffsetDateTime** | Gets or sets the last activity date. | [optional] | +|**lastPlaybackCheckIn** | **OffsetDateTime** | Gets or sets the last playback check in. | [optional] | +|**lastPausedDate** | **OffsetDateTime** | Gets or sets the last paused date. | [optional] | +|**deviceName** | **String** | Gets or sets the name of the device. | [optional] | +|**deviceType** | **String** | Gets or sets the type of the device. | [optional] | +|**nowPlayingItem** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the now playing item. | [optional] | +|**nowViewingItem** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the now viewing item. | [optional] | +|**deviceId** | **String** | Gets or sets the device id. | [optional] | +|**applicationVersion** | **String** | Gets or sets the application version. | [optional] | +|**transcodingInfo** | [**TranscodingInfo**](TranscodingInfo.md) | Gets or sets the transcoding info. | [optional] | +|**isActive** | **Boolean** | Gets or sets a value indicating whether this session is active. | [optional] | +|**supportsMediaControl** | **Boolean** | Gets or sets a value indicating whether the session supports media control. | [optional] | +|**supportsRemoteControl** | **Boolean** | Gets or sets a value indicating whether the session supports remote control. | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | Gets or sets the now playing queue. | [optional] | +|**nowPlayingQueueFullItems** | [**List<BaseItemDto>**](BaseItemDto.md) | Gets or sets the now playing queue full items. | [optional] | +|**hasCustomDeviceName** | **Boolean** | Gets or sets a value indicating whether the session has a custom device name. | [optional] | +|**playlistItemId** | **String** | Gets or sets the playlist item id. | [optional] | +|**serverId** | **String** | Gets or sets the server id. | [optional] | +|**userPrimaryImageTag** | **String** | Gets or sets the user primary image tag. | [optional] | +|**supportedCommands** | **List<GeneralCommandType>** | Gets or sets the supported commands. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionMessageType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionMessageType.md new file mode 100644 index 0000000000000..1f869056af973 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionMessageType.md @@ -0,0 +1,77 @@ + + +# SessionMessageType + +## Enum + + +* `FORCE_KEEP_ALIVE` (value: `"ForceKeepAlive"`) + +* `GENERAL_COMMAND` (value: `"GeneralCommand"`) + +* `USER_DATA_CHANGED` (value: `"UserDataChanged"`) + +* `SESSIONS` (value: `"Sessions"`) + +* `PLAY` (value: `"Play"`) + +* `SYNC_PLAY_COMMAND` (value: `"SyncPlayCommand"`) + +* `SYNC_PLAY_GROUP_UPDATE` (value: `"SyncPlayGroupUpdate"`) + +* `PLAYSTATE` (value: `"Playstate"`) + +* `RESTART_REQUIRED` (value: `"RestartRequired"`) + +* `SERVER_SHUTTING_DOWN` (value: `"ServerShuttingDown"`) + +* `SERVER_RESTARTING` (value: `"ServerRestarting"`) + +* `LIBRARY_CHANGED` (value: `"LibraryChanged"`) + +* `USER_DELETED` (value: `"UserDeleted"`) + +* `USER_UPDATED` (value: `"UserUpdated"`) + +* `SERIES_TIMER_CREATED` (value: `"SeriesTimerCreated"`) + +* `TIMER_CREATED` (value: `"TimerCreated"`) + +* `SERIES_TIMER_CANCELLED` (value: `"SeriesTimerCancelled"`) + +* `TIMER_CANCELLED` (value: `"TimerCancelled"`) + +* `REFRESH_PROGRESS` (value: `"RefreshProgress"`) + +* `SCHEDULED_TASK_ENDED` (value: `"ScheduledTaskEnded"`) + +* `PACKAGE_INSTALLATION_CANCELLED` (value: `"PackageInstallationCancelled"`) + +* `PACKAGE_INSTALLATION_FAILED` (value: `"PackageInstallationFailed"`) + +* `PACKAGE_INSTALLATION_COMPLETED` (value: `"PackageInstallationCompleted"`) + +* `PACKAGE_INSTALLING` (value: `"PackageInstalling"`) + +* `PACKAGE_UNINSTALLED` (value: `"PackageUninstalled"`) + +* `ACTIVITY_LOG_ENTRY` (value: `"ActivityLogEntry"`) + +* `SCHEDULED_TASKS_INFO` (value: `"ScheduledTasksInfo"`) + +* `ACTIVITY_LOG_ENTRY_START` (value: `"ActivityLogEntryStart"`) + +* `ACTIVITY_LOG_ENTRY_STOP` (value: `"ActivityLogEntryStop"`) + +* `SESSIONS_START` (value: `"SessionsStart"`) + +* `SESSIONS_STOP` (value: `"SessionsStop"`) + +* `SCHEDULED_TASKS_INFO_START` (value: `"ScheduledTasksInfoStart"`) + +* `SCHEDULED_TASKS_INFO_STOP` (value: `"ScheduledTasksInfoStop"`) + +* `KEEP_ALIVE` (value: `"KeepAlive"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionUserInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionUserInfo.md new file mode 100644 index 0000000000000..9368022458ede --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionUserInfo.md @@ -0,0 +1,15 @@ + + +# SessionUserInfo + +Class SessionUserInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**userName** | **String** | Gets or sets the name of the user. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsMessage.md new file mode 100644 index 0000000000000..de7e242df89ff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsMessage.md @@ -0,0 +1,16 @@ + + +# SessionsMessage + +Sessions message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<SessionInfoDto>**](SessionInfoDto.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStartMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStartMessage.md new file mode 100644 index 0000000000000..237dbc28ae4d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStartMessage.md @@ -0,0 +1,15 @@ + + +# SessionsStartMessage + +Sessions start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **String** | Gets or sets the data. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStopMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStopMessage.md new file mode 100644 index 0000000000000..76b68ad42ac4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SessionsStopMessage.md @@ -0,0 +1,14 @@ + + +# SessionsStopMessage + +Sessions stop message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetChannelMappingDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetChannelMappingDto.md new file mode 100644 index 0000000000000..bae15591a58a6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetChannelMappingDto.md @@ -0,0 +1,16 @@ + + +# SetChannelMappingDto + +Set channel mapping dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerId** | **String** | Gets or sets the provider id. | | +|**tunerChannelId** | **String** | Gets or sets the tuner channel id. | | +|**providerChannelId** | **String** | Gets or sets the provider channel id. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetPlaylistItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetPlaylistItemRequestDto.md new file mode 100644 index 0000000000000..fcbe651c68387 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetPlaylistItemRequestDto.md @@ -0,0 +1,14 @@ + + +# SetPlaylistItemRequestDto + +Class SetPlaylistItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playlist identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetRepeatModeRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetRepeatModeRequestDto.md new file mode 100644 index 0000000000000..0f7d4e9fc1a51 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetRepeatModeRequestDto.md @@ -0,0 +1,14 @@ + + +# SetRepeatModeRequestDto + +Class SetRepeatModeRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mode** | **GroupRepeatMode** | Gets or sets the repeat mode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetShuffleModeRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetShuffleModeRequestDto.md new file mode 100644 index 0000000000000..320e6e7b7136d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SetShuffleModeRequestDto.md @@ -0,0 +1,14 @@ + + +# SetShuffleModeRequestDto + +Class SetShuffleModeRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mode** | **GroupShuffleMode** | Gets or sets the shuffle mode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SongInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SongInfo.md new file mode 100644 index 0000000000000..e9237fdbfe52a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SongInfo.md @@ -0,0 +1,26 @@ + + +# SongInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**albumArtists** | **List<String>** | | [optional] | +|**album** | **String** | | [optional] | +|**artists** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SortOrder.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SortOrder.md new file mode 100644 index 0000000000000..6ce9bbe6165af --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SortOrder.md @@ -0,0 +1,13 @@ + + +# SortOrder + +## Enum + + +* `ASCENDING` (value: `"Ascending"`) + +* `DESCENDING` (value: `"Descending"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SpecialViewOptionDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SpecialViewOptionDto.md new file mode 100644 index 0000000000000..bd69fe6588943 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SpecialViewOptionDto.md @@ -0,0 +1,15 @@ + + +# SpecialViewOptionDto + +Special view option dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets view option name. | [optional] | +|**id** | **String** | Gets or sets view option id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupApi.md new file mode 100644 index 0000000000000..259a044f5754f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupApi.md @@ -0,0 +1,478 @@ +# StartupApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**completeWizard**](StartupApi.md#completeWizard) | **POST** /Startup/Complete | Completes the startup wizard. | +| [**getFirstUser**](StartupApi.md#getFirstUser) | **GET** /Startup/User | Gets the first user. | +| [**getFirstUser2**](StartupApi.md#getFirstUser2) | **GET** /Startup/FirstUser | Gets the first user. | +| [**getStartupConfiguration**](StartupApi.md#getStartupConfiguration) | **GET** /Startup/Configuration | Gets the initial startup wizard configuration. | +| [**setRemoteAccess**](StartupApi.md#setRemoteAccess) | **POST** /Startup/RemoteAccess | Sets remote access and UPnP. | +| [**updateInitialConfiguration**](StartupApi.md#updateInitialConfiguration) | **POST** /Startup/Configuration | Sets the initial startup wizard configuration. | +| [**updateStartupUser**](StartupApi.md#updateStartupUser) | **POST** /Startup/User | Sets the user name and password. | + + + +# **completeWizard** +> completeWizard() + +Completes the startup wizard. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + apiInstance.completeWizard(); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#completeWizard"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Startup wizard completed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFirstUser** +> StartupUserDto getFirstUser() + +Gets the first user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupUserDto result = apiInstance.getFirstUser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getFirstUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupUserDto**](StartupUserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial user retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFirstUser2** +> StartupUserDto getFirstUser2() + +Gets the first user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupUserDto result = apiInstance.getFirstUser2(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getFirstUser2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupUserDto**](StartupUserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial user retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getStartupConfiguration** +> StartupConfigurationDto getStartupConfiguration() + +Gets the initial startup wizard configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupConfigurationDto result = apiInstance.getStartupConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getStartupConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupConfigurationDto**](StartupConfigurationDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial startup wizard configuration retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setRemoteAccess** +> setRemoteAccess(startupRemoteAccessDto) + +Sets remote access and UPnP. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupRemoteAccessDto startupRemoteAccessDto = new StartupRemoteAccessDto(); // StartupRemoteAccessDto | The startup remote access dto. + try { + apiInstance.setRemoteAccess(startupRemoteAccessDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#setRemoteAccess"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupRemoteAccessDto** | [**StartupRemoteAccessDto**](StartupRemoteAccessDto.md)| The startup remote access dto. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateInitialConfiguration** +> updateInitialConfiguration(startupConfigurationDto) + +Sets the initial startup wizard configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupConfigurationDto startupConfigurationDto = new StartupConfigurationDto(); // StartupConfigurationDto | The updated startup configuration. + try { + apiInstance.updateInitialConfiguration(startupConfigurationDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#updateInitialConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupConfigurationDto** | [**StartupConfigurationDto**](StartupConfigurationDto.md)| The updated startup configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateStartupUser** +> updateStartupUser(startupUserDto) + +Sets the user name and password. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupUserDto startupUserDto = new StartupUserDto(); // StartupUserDto | The DTO containing username and password. + try { + apiInstance.updateStartupUser(startupUserDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#updateStartupUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupUserDto** | [**StartupUserDto**](StartupUserDto.md)| The DTO containing username and password. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Updated user name and password. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupConfigurationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupConfigurationDto.md new file mode 100644 index 0000000000000..e9b4ebaea5244 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupConfigurationDto.md @@ -0,0 +1,16 @@ + + +# StartupConfigurationDto + +The startup configuration DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uiCulture** | **String** | Gets or sets UI language culture. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred language for the metadata. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupRemoteAccessDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupRemoteAccessDto.md new file mode 100644 index 0000000000000..55b57ba0b1981 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupRemoteAccessDto.md @@ -0,0 +1,15 @@ + + +# StartupRemoteAccessDto + +Startup remote access dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enableRemoteAccess** | **Boolean** | Gets or sets a value indicating whether enable remote access. | | +|**enableAutomaticPortMapping** | **Boolean** | Gets or sets a value indicating whether enable automatic port mapping. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupUserDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupUserDto.md new file mode 100644 index 0000000000000..17e67c4be6cc1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StartupUserDto.md @@ -0,0 +1,15 @@ + + +# StartupUserDto + +The startup user DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the username. | [optional] | +|**password** | **String** | Gets or sets the user's password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StringGroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StringGroupUpdate.md new file mode 100644 index 0000000000000..dea4a3c5357f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StringGroupUpdate.md @@ -0,0 +1,16 @@ + + +# StringGroupUpdate + +Class GroupUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] [readonly] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | **String** | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StudiosApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StudiosApi.md new file mode 100644 index 0000000000000..0948b8bf22bb2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/StudiosApi.md @@ -0,0 +1,182 @@ +# StudiosApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getStudio**](StudiosApi.md#getStudio) | **GET** /Studios/{name} | Gets a studio by name. | +| [**getStudios**](StudiosApi.md#getStudios) | **GET** /Studios | Gets all studios from a given item, folder, or the entire library. | + + + +# **getStudio** +> BaseItemDto getStudio(name, userId) + +Gets a studio by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StudiosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StudiosApi apiInstance = new StudiosApi(defaultClient); + String name = "name_example"; // String | Studio name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getStudio(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StudiosApi#getStudio"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Studio returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getStudios** +> BaseItemDtoQueryResult getStudios(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount) + +Gets all studios from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StudiosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StudiosApi apiInstance = new StudiosApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getStudios(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StudiosApi#getStudios"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Studios returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleApi.md new file mode 100644 index 0000000000000..a012923506d2d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleApi.md @@ -0,0 +1,750 @@ +# SubtitleApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteSubtitle**](SubtitleApi.md#deleteSubtitle) | **DELETE** /Videos/{itemId}/Subtitles/{index} | Deletes an external subtitle file. | +| [**downloadRemoteSubtitles**](SubtitleApi.md#downloadRemoteSubtitles) | **POST** /Items/{itemId}/RemoteSearch/Subtitles/{subtitleId} | Downloads a remote subtitle. | +| [**getFallbackFont**](SubtitleApi.md#getFallbackFont) | **GET** /FallbackFont/Fonts/{name} | Gets a fallback font file. | +| [**getFallbackFontList**](SubtitleApi.md#getFallbackFontList) | **GET** /FallbackFont/Fonts | Gets a list of available fallback font files. | +| [**getRemoteSubtitles**](SubtitleApi.md#getRemoteSubtitles) | **GET** /Providers/Subtitles/Subtitles/{subtitleId} | Gets the remote subtitles. | +| [**getSubtitle**](SubtitleApi.md#getSubtitle) | **GET** /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat} | Gets subtitles in a specified format. | +| [**getSubtitlePlaylist**](SubtitleApi.md#getSubtitlePlaylist) | **GET** /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8 | Gets an HLS subtitle playlist. | +| [**getSubtitleWithTicks**](SubtitleApi.md#getSubtitleWithTicks) | **GET** /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat} | Gets subtitles in a specified format. | +| [**searchRemoteSubtitles**](SubtitleApi.md#searchRemoteSubtitles) | **GET** /Items/{itemId}/RemoteSearch/Subtitles/{language} | Search remote subtitles. | +| [**uploadSubtitle**](SubtitleApi.md#uploadSubtitle) | **POST** /Videos/{itemId}/Subtitles | Upload an external subtitle file. | + + + +# **deleteSubtitle** +> deleteSubtitle(itemId, index) + +Deletes an external subtitle file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer index = 56; // Integer | The index of the subtitle file. + try { + apiInstance.deleteSubtitle(itemId, index); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#deleteSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **index** | **Integer**| The index of the subtitle file. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **downloadRemoteSubtitles** +> downloadRemoteSubtitles(itemId, subtitleId) + +Downloads a remote subtitle. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String subtitleId = "subtitleId_example"; // String | The subtitle id. + try { + apiInstance.downloadRemoteSubtitles(itemId, subtitleId); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#downloadRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **subtitleId** | **String**| The subtitle id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle downloaded. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFallbackFont** +> File getFallbackFont(name) + +Gets a fallback font file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + String name = "name_example"; // String | The name of the fallback font file to get. + try { + File result = apiInstance.getFallbackFont(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getFallbackFont"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the fallback font file to get. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: font/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Fallback font file retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFallbackFontList** +> List<FontFile> getFallbackFontList() + +Gets a list of available fallback font files. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + try { + List result = apiInstance.getFallbackFontList(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getFallbackFontList"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FontFile>**](FontFile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteSubtitles** +> File getRemoteSubtitles(subtitleId) + +Gets the remote subtitles. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + String subtitleId = "subtitleId_example"; // String | The item id. + try { + File result = apiInstance.getRemoteSubtitles(subtitleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **subtitleId** | **String**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSubtitle** +> File getSubtitle(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks) + +Gets subtitles in a specified format. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID routeItemId = UUID.randomUUID(); // UUID | The (route) item id. + String routeMediaSourceId = "routeMediaSourceId_example"; // String | The (route) media source id. + Integer routeIndex = 56; // Integer | The (route) subtitle stream index. + String routeFormat = "routeFormat_example"; // String | The (route) format of the returned subtitle. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer index = 56; // Integer | The subtitle stream index. + String format = "format_example"; // String | The format of the returned subtitle. + Long endPositionTicks = 56L; // Long | Optional. The end position of the subtitle in ticks. + Boolean copyTimestamps = false; // Boolean | Optional. Whether to copy the timestamps. + Boolean addVttTimeMap = false; // Boolean | Optional. Whether to add a VTT time map. + Long startPositionTicks = 0L; // Long | The start position of the subtitle in ticks. + try { + File result = apiInstance.getSubtitle(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeItemId** | **UUID**| The (route) item id. | | +| **routeMediaSourceId** | **String**| The (route) media source id. | | +| **routeIndex** | **Integer**| The (route) subtitle stream index. | | +| **routeFormat** | **String**| The (route) format of the returned subtitle. | | +| **itemId** | **UUID**| The item id. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **index** | **Integer**| The subtitle stream index. | [optional] | +| **format** | **String**| The format of the returned subtitle. | [optional] | +| **endPositionTicks** | **Long**| Optional. The end position of the subtitle in ticks. | [optional] | +| **copyTimestamps** | **Boolean**| Optional. Whether to copy the timestamps. | [optional] [default to false] | +| **addVttTimeMap** | **Boolean**| Optional. Whether to add a VTT time map. | [optional] [default to false] | +| **startPositionTicks** | **Long**| The start position of the subtitle in ticks. | [optional] [default to 0] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | + + +# **getSubtitlePlaylist** +> File getSubtitlePlaylist(itemId, index, mediaSourceId, segmentLength) + +Gets an HLS subtitle playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer index = 56; // Integer | The subtitle stream index. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer segmentLength = 56; // Integer | The subtitle segment length. + try { + File result = apiInstance.getSubtitlePlaylist(itemId, index, mediaSourceId, segmentLength); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitlePlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **index** | **Integer**| The subtitle stream index. | | +| **mediaSourceId** | **String**| The media source id. | | +| **segmentLength** | **Integer**| The subtitle segment length. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Subtitle playlist retrieved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSubtitleWithTicks** +> File getSubtitleWithTicks(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap) + +Gets subtitles in a specified format. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID routeItemId = UUID.randomUUID(); // UUID | The (route) item id. + String routeMediaSourceId = "routeMediaSourceId_example"; // String | The (route) media source id. + Integer routeIndex = 56; // Integer | The (route) subtitle stream index. + Long routeStartPositionTicks = 56L; // Long | The (route) start position of the subtitle in ticks. + String routeFormat = "routeFormat_example"; // String | The (route) format of the returned subtitle. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer index = 56; // Integer | The subtitle stream index. + Long startPositionTicks = 56L; // Long | The start position of the subtitle in ticks. + String format = "format_example"; // String | The format of the returned subtitle. + Long endPositionTicks = 56L; // Long | Optional. The end position of the subtitle in ticks. + Boolean copyTimestamps = false; // Boolean | Optional. Whether to copy the timestamps. + Boolean addVttTimeMap = false; // Boolean | Optional. Whether to add a VTT time map. + try { + File result = apiInstance.getSubtitleWithTicks(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitleWithTicks"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeItemId** | **UUID**| The (route) item id. | | +| **routeMediaSourceId** | **String**| The (route) media source id. | | +| **routeIndex** | **Integer**| The (route) subtitle stream index. | | +| **routeStartPositionTicks** | **Long**| The (route) start position of the subtitle in ticks. | | +| **routeFormat** | **String**| The (route) format of the returned subtitle. | | +| **itemId** | **UUID**| The item id. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **index** | **Integer**| The subtitle stream index. | [optional] | +| **startPositionTicks** | **Long**| The start position of the subtitle in ticks. | [optional] | +| **format** | **String**| The format of the returned subtitle. | [optional] | +| **endPositionTicks** | **Long**| Optional. The end position of the subtitle in ticks. | [optional] | +| **copyTimestamps** | **Boolean**| Optional. Whether to copy the timestamps. | [optional] [default to false] | +| **addVttTimeMap** | **Boolean**| Optional. Whether to add a VTT time map. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | + + +# **searchRemoteSubtitles** +> List<RemoteSubtitleInfo> searchRemoteSubtitles(itemId, language, isPerfectMatch) + +Search remote subtitles. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String language = "language_example"; // String | The language of the subtitles. + Boolean isPerfectMatch = true; // Boolean | Optional. Only show subtitles which are a perfect match. + try { + List result = apiInstance.searchRemoteSubtitles(itemId, language, isPerfectMatch); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#searchRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **language** | **String**| The language of the subtitles. | | +| **isPerfectMatch** | **Boolean**| Optional. Only show subtitles which are a perfect match. | [optional] | + +### Return type + +[**List<RemoteSubtitleInfo>**](RemoteSubtitleInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Subtitles retrieved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uploadSubtitle** +> uploadSubtitle(itemId, uploadSubtitleDto) + +Upload an external subtitle file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item the subtitle belongs to. + UploadSubtitleDto uploadSubtitleDto = new UploadSubtitleDto(); // UploadSubtitleDto | The request body. + try { + apiInstance.uploadSubtitle(itemId, uploadSubtitleDto); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#uploadSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item the subtitle belongs to. | | +| **uploadSubtitleDto** | [**UploadSubtitleDto**](UploadSubtitleDto.md)| The request body. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle uploaded. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleDeliveryMethod.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleDeliveryMethod.md new file mode 100644 index 0000000000000..89e45605228cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleDeliveryMethod.md @@ -0,0 +1,19 @@ + + +# SubtitleDeliveryMethod + +## Enum + + +* `ENCODE` (value: `"Encode"`) + +* `EMBED` (value: `"Embed"`) + +* `EXTERNAL` (value: `"External"`) + +* `HLS` (value: `"Hls"`) + +* `DROP` (value: `"Drop"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleOptions.md new file mode 100644 index 0000000000000..08588796d6f86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleOptions.md @@ -0,0 +1,21 @@ + + +# SubtitleOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**skipIfEmbeddedSubtitlesPresent** | **Boolean** | | [optional] | +|**skipIfAudioTrackMatches** | **Boolean** | | [optional] | +|**downloadLanguages** | **List<String>** | | [optional] | +|**downloadMovieSubtitles** | **Boolean** | | [optional] | +|**downloadEpisodeSubtitles** | **Boolean** | | [optional] | +|**openSubtitlesUsername** | **String** | | [optional] | +|**openSubtitlesPasswordHash** | **String** | | [optional] | +|**isOpenSubtitleVipAccount** | **Boolean** | | [optional] | +|**requirePerfectMatch** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitlePlaybackMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitlePlaybackMode.md new file mode 100644 index 0000000000000..b3ad6953acc86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitlePlaybackMode.md @@ -0,0 +1,19 @@ + + +# SubtitlePlaybackMode + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `ALWAYS` (value: `"Always"`) + +* `ONLY_FORCED` (value: `"OnlyForced"`) + +* `NONE` (value: `"None"`) + +* `SMART` (value: `"Smart"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleProfile.md new file mode 100644 index 0000000000000..4a3e43769cd63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SubtitleProfile.md @@ -0,0 +1,18 @@ + + +# SubtitleProfile + +A class for subtitle profile information. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**format** | **String** | Gets or sets the format. | [optional] | +|**method** | **SubtitleDeliveryMethod** | Gets or sets the delivery method. | [optional] | +|**didlMode** | **String** | Gets or sets the DIDL mode. | [optional] | +|**language** | **String** | Gets or sets the language. | [optional] | +|**container** | **String** | Gets or sets the container. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SuggestionsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SuggestionsApi.md new file mode 100644 index 0000000000000..d01e97f86f736 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SuggestionsApi.md @@ -0,0 +1,88 @@ +# SuggestionsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getSuggestions**](SuggestionsApi.md#getSuggestions) | **GET** /Items/Suggestions | Gets suggestions. | + + + +# **getSuggestions** +> BaseItemDtoQueryResult getSuggestions(userId, mediaType, type, startIndex, limit, enableTotalRecordCount) + +Gets suggestions. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SuggestionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SuggestionsApi apiInstance = new SuggestionsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + List mediaType = Arrays.asList(); // List | The media types. + List type = Arrays.asList(); // List | The type. + Integer startIndex = 56; // Integer | Optional. The start index. + Integer limit = 56; // Integer | Optional. The limit. + Boolean enableTotalRecordCount = false; // Boolean | Whether to enable the total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getSuggestions(userId, mediaType, type, startIndex, limit, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SuggestionsApi#getSuggestions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | [optional] | +| **mediaType** | [**List<MediaType>**](MediaType.md)| The media types. | [optional] | +| **type** | [**List<BaseItemKind>**](BaseItemKind.md)| The type. | [optional] | +| **startIndex** | **Integer**| Optional. The start index. | [optional] | +| **limit** | **Integer**| Optional. The limit. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Whether to enable the total record count. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Suggestions returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayApi.md new file mode 100644 index 0000000000000..d5049ab1aa2ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayApi.md @@ -0,0 +1,1438 @@ +# SyncPlayApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**syncPlayBuffering**](SyncPlayApi.md#syncPlayBuffering) | **POST** /SyncPlay/Buffering | Notify SyncPlay group that member is buffering. | +| [**syncPlayCreateGroup**](SyncPlayApi.md#syncPlayCreateGroup) | **POST** /SyncPlay/New | Create a new SyncPlay group. | +| [**syncPlayGetGroups**](SyncPlayApi.md#syncPlayGetGroups) | **GET** /SyncPlay/List | Gets all SyncPlay groups. | +| [**syncPlayJoinGroup**](SyncPlayApi.md#syncPlayJoinGroup) | **POST** /SyncPlay/Join | Join an existing SyncPlay group. | +| [**syncPlayLeaveGroup**](SyncPlayApi.md#syncPlayLeaveGroup) | **POST** /SyncPlay/Leave | Leave the joined SyncPlay group. | +| [**syncPlayMovePlaylistItem**](SyncPlayApi.md#syncPlayMovePlaylistItem) | **POST** /SyncPlay/MovePlaylistItem | Request to move an item in the playlist in SyncPlay group. | +| [**syncPlayNextItem**](SyncPlayApi.md#syncPlayNextItem) | **POST** /SyncPlay/NextItem | Request next item in SyncPlay group. | +| [**syncPlayPause**](SyncPlayApi.md#syncPlayPause) | **POST** /SyncPlay/Pause | Request pause in SyncPlay group. | +| [**syncPlayPing**](SyncPlayApi.md#syncPlayPing) | **POST** /SyncPlay/Ping | Update session ping. | +| [**syncPlayPreviousItem**](SyncPlayApi.md#syncPlayPreviousItem) | **POST** /SyncPlay/PreviousItem | Request previous item in SyncPlay group. | +| [**syncPlayQueue**](SyncPlayApi.md#syncPlayQueue) | **POST** /SyncPlay/Queue | Request to queue items to the playlist of a SyncPlay group. | +| [**syncPlayReady**](SyncPlayApi.md#syncPlayReady) | **POST** /SyncPlay/Ready | Notify SyncPlay group that member is ready for playback. | +| [**syncPlayRemoveFromPlaylist**](SyncPlayApi.md#syncPlayRemoveFromPlaylist) | **POST** /SyncPlay/RemoveFromPlaylist | Request to remove items from the playlist in SyncPlay group. | +| [**syncPlaySeek**](SyncPlayApi.md#syncPlaySeek) | **POST** /SyncPlay/Seek | Request seek in SyncPlay group. | +| [**syncPlaySetIgnoreWait**](SyncPlayApi.md#syncPlaySetIgnoreWait) | **POST** /SyncPlay/SetIgnoreWait | Request SyncPlay group to ignore member during group-wait. | +| [**syncPlaySetNewQueue**](SyncPlayApi.md#syncPlaySetNewQueue) | **POST** /SyncPlay/SetNewQueue | Request to set new playlist in SyncPlay group. | +| [**syncPlaySetPlaylistItem**](SyncPlayApi.md#syncPlaySetPlaylistItem) | **POST** /SyncPlay/SetPlaylistItem | Request to change playlist item in SyncPlay group. | +| [**syncPlaySetRepeatMode**](SyncPlayApi.md#syncPlaySetRepeatMode) | **POST** /SyncPlay/SetRepeatMode | Request to set repeat mode in SyncPlay group. | +| [**syncPlaySetShuffleMode**](SyncPlayApi.md#syncPlaySetShuffleMode) | **POST** /SyncPlay/SetShuffleMode | Request to set shuffle mode in SyncPlay group. | +| [**syncPlayStop**](SyncPlayApi.md#syncPlayStop) | **POST** /SyncPlay/Stop | Request stop in SyncPlay group. | +| [**syncPlayUnpause**](SyncPlayApi.md#syncPlayUnpause) | **POST** /SyncPlay/Unpause | Request unpause in SyncPlay group. | + + + +# **syncPlayBuffering** +> syncPlayBuffering(bufferRequestDto) + +Notify SyncPlay group that member is buffering. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + BufferRequestDto bufferRequestDto = new BufferRequestDto(); // BufferRequestDto | The player status. + try { + apiInstance.syncPlayBuffering(bufferRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayBuffering"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bufferRequestDto** | [**BufferRequestDto**](BufferRequestDto.md)| The player status. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group state update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayCreateGroup** +> syncPlayCreateGroup(newGroupRequestDto) + +Create a new SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + NewGroupRequestDto newGroupRequestDto = new NewGroupRequestDto(); // NewGroupRequestDto | The settings of the new group. + try { + apiInstance.syncPlayCreateGroup(newGroupRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayCreateGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newGroupRequestDto** | [**NewGroupRequestDto**](NewGroupRequestDto.md)| The settings of the new group. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | New group created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayGetGroups** +> List<GroupInfoDto> syncPlayGetGroups() + +Gets all SyncPlay groups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + List result = apiInstance.syncPlayGetGroups(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayGetGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<GroupInfoDto>**](GroupInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Groups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayJoinGroup** +> syncPlayJoinGroup(joinGroupRequestDto) + +Join an existing SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + JoinGroupRequestDto joinGroupRequestDto = new JoinGroupRequestDto(); // JoinGroupRequestDto | The group to join. + try { + apiInstance.syncPlayJoinGroup(joinGroupRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayJoinGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **joinGroupRequestDto** | [**JoinGroupRequestDto**](JoinGroupRequestDto.md)| The group to join. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group join successful. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayLeaveGroup** +> syncPlayLeaveGroup() + +Leave the joined SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayLeaveGroup(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayLeaveGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group leave successful. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayMovePlaylistItem** +> syncPlayMovePlaylistItem(movePlaylistItemRequestDto) + +Request to move an item in the playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + MovePlaylistItemRequestDto movePlaylistItemRequestDto = new MovePlaylistItemRequestDto(); // MovePlaylistItemRequestDto | The new position for the item. + try { + apiInstance.syncPlayMovePlaylistItem(movePlaylistItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayMovePlaylistItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **movePlaylistItemRequestDto** | [**MovePlaylistItemRequestDto**](MovePlaylistItemRequestDto.md)| The new position for the item. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayNextItem** +> syncPlayNextItem(nextItemRequestDto) + +Request next item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + NextItemRequestDto nextItemRequestDto = new NextItemRequestDto(); // NextItemRequestDto | The current item information. + try { + apiInstance.syncPlayNextItem(nextItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayNextItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **nextItemRequestDto** | [**NextItemRequestDto**](NextItemRequestDto.md)| The current item information. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Next item update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPause** +> syncPlayPause() + +Request pause in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayPause(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPause"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Pause update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPing** +> syncPlayPing(pingRequestDto) + +Update session ping. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PingRequestDto pingRequestDto = new PingRequestDto(); // PingRequestDto | The new ping. + try { + apiInstance.syncPlayPing(pingRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPing"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pingRequestDto** | [**PingRequestDto**](PingRequestDto.md)| The new ping. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Ping updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPreviousItem** +> syncPlayPreviousItem(previousItemRequestDto) + +Request previous item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PreviousItemRequestDto previousItemRequestDto = new PreviousItemRequestDto(); // PreviousItemRequestDto | The current item information. + try { + apiInstance.syncPlayPreviousItem(previousItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPreviousItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **previousItemRequestDto** | [**PreviousItemRequestDto**](PreviousItemRequestDto.md)| The current item information. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Previous item update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayQueue** +> syncPlayQueue(queueRequestDto) + +Request to queue items to the playlist of a SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + QueueRequestDto queueRequestDto = new QueueRequestDto(); // QueueRequestDto | The items to add. + try { + apiInstance.syncPlayQueue(queueRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayQueue"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **queueRequestDto** | [**QueueRequestDto**](QueueRequestDto.md)| The items to add. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayReady** +> syncPlayReady(readyRequestDto) + +Notify SyncPlay group that member is ready for playback. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + ReadyRequestDto readyRequestDto = new ReadyRequestDto(); // ReadyRequestDto | The player status. + try { + apiInstance.syncPlayReady(readyRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayReady"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **readyRequestDto** | [**ReadyRequestDto**](ReadyRequestDto.md)| The player status. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group state update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayRemoveFromPlaylist** +> syncPlayRemoveFromPlaylist(removeFromPlaylistRequestDto) + +Request to remove items from the playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto = new RemoveFromPlaylistRequestDto(); // RemoveFromPlaylistRequestDto | The items to remove. + try { + apiInstance.syncPlayRemoveFromPlaylist(removeFromPlaylistRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayRemoveFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **removeFromPlaylistRequestDto** | [**RemoveFromPlaylistRequestDto**](RemoveFromPlaylistRequestDto.md)| The items to remove. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySeek** +> syncPlaySeek(seekRequestDto) + +Request seek in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SeekRequestDto seekRequestDto = new SeekRequestDto(); // SeekRequestDto | The new playback position. + try { + apiInstance.syncPlaySeek(seekRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySeek"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seekRequestDto** | [**SeekRequestDto**](SeekRequestDto.md)| The new playback position. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Seek update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetIgnoreWait** +> syncPlaySetIgnoreWait(ignoreWaitRequestDto) + +Request SyncPlay group to ignore member during group-wait. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + IgnoreWaitRequestDto ignoreWaitRequestDto = new IgnoreWaitRequestDto(); // IgnoreWaitRequestDto | The settings to set. + try { + apiInstance.syncPlaySetIgnoreWait(ignoreWaitRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetIgnoreWait"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ignoreWaitRequestDto** | [**IgnoreWaitRequestDto**](IgnoreWaitRequestDto.md)| The settings to set. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Member state updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetNewQueue** +> syncPlaySetNewQueue(playRequestDto) + +Request to set new playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PlayRequestDto playRequestDto = new PlayRequestDto(); // PlayRequestDto | The new playlist to play in the group. + try { + apiInstance.syncPlaySetNewQueue(playRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetNewQueue"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playRequestDto** | [**PlayRequestDto**](PlayRequestDto.md)| The new playlist to play in the group. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetPlaylistItem** +> syncPlaySetPlaylistItem(setPlaylistItemRequestDto) + +Request to change playlist item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetPlaylistItemRequestDto setPlaylistItemRequestDto = new SetPlaylistItemRequestDto(); // SetPlaylistItemRequestDto | The new item to play. + try { + apiInstance.syncPlaySetPlaylistItem(setPlaylistItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetPlaylistItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setPlaylistItemRequestDto** | [**SetPlaylistItemRequestDto**](SetPlaylistItemRequestDto.md)| The new item to play. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetRepeatMode** +> syncPlaySetRepeatMode(setRepeatModeRequestDto) + +Request to set repeat mode in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetRepeatModeRequestDto setRepeatModeRequestDto = new SetRepeatModeRequestDto(); // SetRepeatModeRequestDto | The new repeat mode. + try { + apiInstance.syncPlaySetRepeatMode(setRepeatModeRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetRepeatMode"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setRepeatModeRequestDto** | [**SetRepeatModeRequestDto**](SetRepeatModeRequestDto.md)| The new repeat mode. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetShuffleMode** +> syncPlaySetShuffleMode(setShuffleModeRequestDto) + +Request to set shuffle mode in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetShuffleModeRequestDto setShuffleModeRequestDto = new SetShuffleModeRequestDto(); // SetShuffleModeRequestDto | The new shuffle mode. + try { + apiInstance.syncPlaySetShuffleMode(setShuffleModeRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetShuffleMode"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setShuffleModeRequestDto** | [**SetShuffleModeRequestDto**](SetShuffleModeRequestDto.md)| The new shuffle mode. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayStop** +> syncPlayStop() + +Request stop in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayStop(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayStop"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Stop update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayUnpause** +> syncPlayUnpause() + +Request unpause in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayUnpause(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayUnpause"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Unpause update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayCommandMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayCommandMessage.md new file mode 100644 index 0000000000000..2512131922e12 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayCommandMessage.md @@ -0,0 +1,16 @@ + + +# SyncPlayCommandMessage + +Sync play command. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**SendCommand**](SendCommand.md) | Class SendCommand. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayGroupUpdateCommandMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayGroupUpdateCommandMessage.md new file mode 100644 index 0000000000000..e1659cb412b8f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayGroupUpdateCommandMessage.md @@ -0,0 +1,16 @@ + + +# SyncPlayGroupUpdateCommandMessage + +Untyped sync play command. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**GroupUpdate**](GroupUpdate.md) | Group update without data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayQueueItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayQueueItem.md new file mode 100644 index 0000000000000..3e12418cb7807 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayQueueItem.md @@ -0,0 +1,15 @@ + + +# SyncPlayQueueItem + +Class QueueItem. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemId** | **UUID** | Gets the item identifier. | [optional] | +|**playlistItemId** | **UUID** | Gets the playlist identifier of the item. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayUserAccessType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayUserAccessType.md new file mode 100644 index 0000000000000..c2c4f745efe06 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SyncPlayUserAccessType.md @@ -0,0 +1,15 @@ + + +# SyncPlayUserAccessType + +## Enum + + +* `CREATE_AND_JOIN_GROUPS` (value: `"CreateAndJoinGroups"`) + +* `JOIN_GROUPS` (value: `"JoinGroups"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemApi.md new file mode 100644 index 0000000000000..1e689570f3c0b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemApi.md @@ -0,0 +1,644 @@ +# SystemApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getEndpointInfo**](SystemApi.md#getEndpointInfo) | **GET** /System/Endpoint | Gets information about the request endpoint. | +| [**getLogFile**](SystemApi.md#getLogFile) | **GET** /System/Logs/Log | Gets a log file. | +| [**getPingSystem**](SystemApi.md#getPingSystem) | **GET** /System/Ping | Pings the system. | +| [**getPublicSystemInfo**](SystemApi.md#getPublicSystemInfo) | **GET** /System/Info/Public | Gets public information about the server. | +| [**getServerLogs**](SystemApi.md#getServerLogs) | **GET** /System/Logs | Gets a list of available server log files. | +| [**getSystemInfo**](SystemApi.md#getSystemInfo) | **GET** /System/Info | Gets information about the server. | +| [**getWakeOnLanInfo**](SystemApi.md#getWakeOnLanInfo) | **GET** /System/WakeOnLanInfo | Gets wake on lan information. | +| [**postPingSystem**](SystemApi.md#postPingSystem) | **POST** /System/Ping | Pings the system. | +| [**restartApplication**](SystemApi.md#restartApplication) | **POST** /System/Restart | Restarts the application. | +| [**shutdownApplication**](SystemApi.md#shutdownApplication) | **POST** /System/Shutdown | Shuts down the application. | + + + +# **getEndpointInfo** +> EndPointInfo getEndpointInfo() + +Gets information about the request endpoint. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + EndPointInfo result = apiInstance.getEndpointInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getEndpointInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**EndPointInfo**](EndPointInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **403** | User does not have permission to get endpoint information. | - | +| **401** | Unauthorized | - | + + +# **getLogFile** +> File getLogFile(name) + +Gets a log file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + String name = "name_example"; // String | The name of the log file to get. + try { + File result = apiInstance.getLogFile(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getLogFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the log file to get. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/plain, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Log file retrieved. | - | +| **403** | User does not have permission to get log files. | - | +| **404** | Could not find a log file with the name. | - | +| **401** | Unauthorized | - | + + +# **getPingSystem** +> String getPingSystem() + +Pings the system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + String result = apiInstance.getPingSystem(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getPingSystem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **getPublicSystemInfo** +> PublicSystemInfo getPublicSystemInfo() + +Gets public information about the server. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + PublicSystemInfo result = apiInstance.getPublicSystemInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getPublicSystemInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**PublicSystemInfo**](PublicSystemInfo.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **getServerLogs** +> List<LogFile> getServerLogs() + +Gets a list of available server log files. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + List result = apiInstance.getServerLogs(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getServerLogs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<LogFile>**](LogFile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **403** | User does not have permission to get server logs. | - | +| **401** | Unauthorized | - | + + +# **getSystemInfo** +> SystemInfo getSystemInfo() + +Gets information about the server. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + SystemInfo result = apiInstance.getSystemInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getSystemInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**SystemInfo**](SystemInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **403** | User does not have permission to retrieve information. | - | +| **401** | Unauthorized | - | + + +# **getWakeOnLanInfo** +> List<WakeOnLanInfo> getWakeOnLanInfo() + +Gets wake on lan information. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + List result = apiInstance.getWakeOnLanInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getWakeOnLanInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<WakeOnLanInfo>**](WakeOnLanInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postPingSystem** +> String postPingSystem() + +Pings the system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + String result = apiInstance.postPingSystem(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#postPingSystem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **restartApplication** +> restartApplication() + +Restarts the application. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + apiInstance.restartApplication(); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#restartApplication"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Server restarted. | - | +| **403** | User does not have permission to restart server. | - | +| **401** | Unauthorized | - | + + +# **shutdownApplication** +> shutdownApplication() + +Shuts down the application. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + apiInstance.shutdownApplication(); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#shutdownApplication"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Server shut down. | - | +| **403** | User does not have permission to shutdown server. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemInfo.md new file mode 100644 index 0000000000000..e46f650b27177 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/SystemInfo.md @@ -0,0 +1,40 @@ + + +# SystemInfo + +Class SystemInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**localAddress** | **String** | Gets or sets the local address. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. | [optional] | +|**version** | **String** | Gets or sets the server version. | [optional] | +|**productName** | **String** | Gets or sets the product name. This is the AssemblyProduct name. | [optional] | +|**operatingSystem** | **String** | Gets or sets the operating system. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**startupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether the startup wizard is completed. | [optional] | +|**operatingSystemDisplayName** | **String** | Gets or sets the display name of the operating system. | [optional] | +|**packageName** | **String** | Gets or sets the package name. | [optional] | +|**hasPendingRestart** | **Boolean** | Gets or sets a value indicating whether this instance has pending restart. | [optional] | +|**isShuttingDown** | **Boolean** | | [optional] | +|**supportsLibraryMonitor** | **Boolean** | Gets or sets a value indicating whether [supports library monitor]. | [optional] | +|**webSocketPortNumber** | **Integer** | Gets or sets the web socket port number. | [optional] | +|**completedInstallations** | [**List<InstallationInfo>**](InstallationInfo.md) | Gets or sets the completed installations. | [optional] | +|**canSelfRestart** | **Boolean** | Gets or sets a value indicating whether this instance can self restart. | [optional] | +|**canLaunchWebBrowser** | **Boolean** | | [optional] | +|**programDataPath** | **String** | Gets or sets the program data path. | [optional] | +|**webPath** | **String** | Gets or sets the web UI resources path. | [optional] | +|**itemsByNamePath** | **String** | Gets or sets the items by name path. | [optional] | +|**cachePath** | **String** | Gets or sets the cache path. | [optional] | +|**logPath** | **String** | Gets or sets the log path. | [optional] | +|**internalMetadataPath** | **String** | Gets or sets the internal metadata path. | [optional] | +|**transcodingTempPath** | **String** | Gets or sets the transcode path. | [optional] | +|**castReceiverApplications** | [**List<CastReceiverApplication>**](CastReceiverApplication.md) | Gets or sets the list of cast receiver applications. | [optional] | +|**hasUpdateAvailable** | **Boolean** | Gets or sets a value indicating whether this instance has update available. | [optional] | +|**encoderLocation** | **String** | | [optional] | +|**systemArchitecture** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskCompletionStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskCompletionStatus.md new file mode 100644 index 0000000000000..dac37b76bcdc1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskCompletionStatus.md @@ -0,0 +1,17 @@ + + +# TaskCompletionStatus + +## Enum + + +* `COMPLETED` (value: `"Completed"`) + +* `FAILED` (value: `"Failed"`) + +* `CANCELLED` (value: `"Cancelled"`) + +* `ABORTED` (value: `"Aborted"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskInfo.md new file mode 100644 index 0000000000000..c02e2fd31d9eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskInfo.md @@ -0,0 +1,23 @@ + + +# TaskInfo + +Class TaskInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**state** | **TaskState** | Gets or sets the state of the task. | [optional] | +|**currentProgressPercentage** | **Double** | Gets or sets the progress. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**lastExecutionResult** | [**TaskResult**](TaskResult.md) | Gets or sets the last execution result. | [optional] | +|**triggers** | [**List<TaskTriggerInfo>**](TaskTriggerInfo.md) | Gets or sets the triggers. | [optional] | +|**description** | **String** | Gets or sets the description. | [optional] | +|**category** | **String** | Gets or sets the category. | [optional] | +|**isHidden** | **Boolean** | Gets or sets a value indicating whether this instance is hidden. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskResult.md new file mode 100644 index 0000000000000..c68827cce3b46 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskResult.md @@ -0,0 +1,21 @@ + + +# TaskResult + +Class TaskExecutionInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startTimeUtc** | **OffsetDateTime** | Gets or sets the start time UTC. | [optional] | +|**endTimeUtc** | **OffsetDateTime** | Gets or sets the end time UTC. | [optional] | +|**status** | **TaskCompletionStatus** | Gets or sets the status. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**errorMessage** | **String** | Gets or sets the error message. | [optional] | +|**longErrorMessage** | **String** | Gets or sets the long error message. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskState.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskState.md new file mode 100644 index 0000000000000..ef2086f874538 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskState.md @@ -0,0 +1,15 @@ + + +# TaskState + +## Enum + + +* `IDLE` (value: `"Idle"`) + +* `CANCELLING` (value: `"Cancelling"`) + +* `RUNNING` (value: `"Running"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskTriggerInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskTriggerInfo.md new file mode 100644 index 0000000000000..365bcf881c2b0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TaskTriggerInfo.md @@ -0,0 +1,18 @@ + + +# TaskTriggerInfo + +Class TaskTriggerInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Gets or sets the type. | [optional] | +|**timeOfDayTicks** | **Long** | Gets or sets the time of day. | [optional] | +|**intervalTicks** | **Long** | Gets or sets the interval. | [optional] | +|**dayOfWeek** | **DayOfWeek** | Gets or sets the day of week. | [optional] | +|**maxRuntimeTicks** | **Long** | Gets or sets the maximum runtime ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ThemeMediaResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ThemeMediaResult.md new file mode 100644 index 0000000000000..68475378ac127 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ThemeMediaResult.md @@ -0,0 +1,17 @@ + + +# ThemeMediaResult + +Class ThemeMediaResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | +|**ownerId** | **UUID** | Gets or sets the owner id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimeSyncApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimeSyncApi.md new file mode 100644 index 0000000000000..32320f124bfb0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimeSyncApi.md @@ -0,0 +1,65 @@ +# TimeSyncApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getUtcTime**](TimeSyncApi.md#getUtcTime) | **GET** /GetUtcTime | Gets the current UTC time. | + + + +# **getUtcTime** +> UtcTimeResponse getUtcTime() + +Gets the current UTC time. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TimeSyncApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + TimeSyncApi apiInstance = new TimeSyncApi(defaultClient); + try { + UtcTimeResponse result = apiInstance.getUtcTime(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TimeSyncApi#getUtcTime"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**UtcTimeResponse**](UtcTimeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Time returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCancelledMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCancelledMessage.md new file mode 100644 index 0000000000000..634dd3aac0fb4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCancelledMessage.md @@ -0,0 +1,16 @@ + + +# TimerCancelledMessage + +Timer cancelled message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**TimerEventInfo**](TimerEventInfo.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCreatedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCreatedMessage.md new file mode 100644 index 0000000000000..0615bb1debf78 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerCreatedMessage.md @@ -0,0 +1,16 @@ + + +# TimerCreatedMessage + +Timer created message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**TimerEventInfo**](TimerEventInfo.md) | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerEventInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerEventInfo.md new file mode 100644 index 0000000000000..b7bd6c1acdc04 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerEventInfo.md @@ -0,0 +1,14 @@ + + +# TimerEventInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**programId** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDto.md new file mode 100644 index 0000000000000..15bb934361fc8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDto.md @@ -0,0 +1,40 @@ + + +# TimerInfoDto + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the Id of the recording. | [optional] | +|**type** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**externalId** | **String** | Gets or sets the external identifier. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel id of the recording. | [optional] | +|**externalChannelId** | **String** | Gets or sets the external channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the channel name of the recording. | [optional] | +|**channelPrimaryImageTag** | **String** | | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**externalProgramId** | **String** | Gets or sets the external program identifier. | [optional] | +|**name** | **String** | Gets or sets the name of the recording. | [optional] | +|**overview** | **String** | Gets or sets the description of the recording. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date of the recording, in UTC. | [optional] | +|**serviceName** | **String** | Gets or sets the name of the service. | [optional] | +|**priority** | **Integer** | Gets or sets the priority. | [optional] | +|**prePaddingSeconds** | **Integer** | Gets or sets the pre padding seconds. | [optional] | +|**postPaddingSeconds** | **Integer** | Gets or sets the post padding seconds. | [optional] | +|**isPrePaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is pre padding required. | [optional] | +|**parentBackdropItemId** | **String** | Gets or sets the Id of the Parent that has a backdrop if the item does not have one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**isPostPaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is post padding required. | [optional] | +|**keepUntil** | **KeepUntil** | | [optional] | +|**status** | **RecordingStatus** | Gets or sets the status. | [optional] | +|**seriesTimerId** | **String** | Gets or sets the series timer identifier. | [optional] | +|**externalSeriesTimerId** | **String** | Gets or sets the external series timer identifier. | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**programInfo** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the program information. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDtoQueryResult.md new file mode 100644 index 0000000000000..fa82bffdad0a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TimerInfoDtoQueryResult.md @@ -0,0 +1,16 @@ + + +# TimerInfoDtoQueryResult + +Query result container. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<TimerInfoDto>**](TimerInfoDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TmdbApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TmdbApi.md new file mode 100644 index 0000000000000..6720a3ea1b85c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TmdbApi.md @@ -0,0 +1,74 @@ +# TmdbApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**tmdbClientConfiguration**](TmdbApi.md#tmdbClientConfiguration) | **GET** /Tmdb/ClientConfiguration | Gets the TMDb image configuration options. | + + + +# **tmdbClientConfiguration** +> ConfigImageTypes tmdbClientConfiguration() + +Gets the TMDb image configuration options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TmdbApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TmdbApi apiInstance = new TmdbApi(defaultClient); + try { + ConfigImageTypes result = apiInstance.tmdbClientConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TmdbApi#tmdbClientConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ConfigImageTypes**](ConfigImageTypes.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingAlgorithm.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingAlgorithm.md new file mode 100644 index 0000000000000..1adb36dde12cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingAlgorithm.md @@ -0,0 +1,25 @@ + + +# TonemappingAlgorithm + +## Enum + + +* `NONE` (value: `"none"`) + +* `CLIP` (value: `"clip"`) + +* `LINEAR` (value: `"linear"`) + +* `GAMMA` (value: `"gamma"`) + +* `REINHARD` (value: `"reinhard"`) + +* `HABLE` (value: `"hable"`) + +* `MOBIUS` (value: `"mobius"`) + +* `BT2390` (value: `"bt2390"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingMode.md new file mode 100644 index 0000000000000..36f83d805ab53 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingMode.md @@ -0,0 +1,19 @@ + + +# TonemappingMode + +## Enum + + +* `AUTO` (value: `"auto"`) + +* `MAX` (value: `"max"`) + +* `RGB` (value: `"rgb"`) + +* `LUM` (value: `"lum"`) + +* `ITP` (value: `"itp"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingRange.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingRange.md new file mode 100644 index 0000000000000..8d7cad15c1b37 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TonemappingRange.md @@ -0,0 +1,15 @@ + + +# TonemappingRange + +## Enum + + +* `AUTO` (value: `"auto"`) + +* `TV` (value: `"tv"`) + +* `PC` (value: `"pc"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfo.md new file mode 100644 index 0000000000000..315d098205778 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfo.md @@ -0,0 +1,23 @@ + + +# TrailerInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..5245fb206ff3d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailerInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# TrailerInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**TrailerInfo**](TrailerInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailersApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailersApi.md new file mode 100644 index 0000000000000..9c4d28cc66a5e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrailersApi.md @@ -0,0 +1,244 @@ +# TrailersApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTrailers**](TrailersApi.md#getTrailers) | **GET** /Trailers | Finds movies and trailers similar to a given trailer. | + + + +# **getTrailers** +> BaseItemDtoQueryResult getTrailers(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages) + +Finds movies and trailers similar to a given trailer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TrailersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TrailersApi apiInstance = new TrailersApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id supplied as query parameter; this is required when not using an API key. + String maxOfficialRating = "maxOfficialRating_example"; // String | Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + Boolean hasThemeSong = true; // Boolean | Optional filter by items with theme songs. + Boolean hasThemeVideo = true; // Boolean | Optional filter by items with theme videos. + Boolean hasSubtitles = true; // Boolean | Optional filter by items with subtitles. + Boolean hasSpecialFeature = true; // Boolean | Optional filter by items with special features. + Boolean hasTrailer = true; // Boolean | Optional filter by items with trailers. + UUID adjacentTo = UUID.randomUUID(); // UUID | Optional. Return items that are siblings of a supplied item. + Integer parentIndexNumber = 56; // Integer | Optional filter by parent index number. + Boolean hasParentalRating = true; // Boolean | Optional filter by items that have or do not have a parental rating. + Boolean isHd = true; // Boolean | Optional filter by items that are HD or not. + Boolean is4K = true; // Boolean | Optional filter by items that are 4K or not. + List locationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + List excludeLocationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + Boolean isMissing = true; // Boolean | Optional filter by items that are missing episodes or not. + Boolean isUnaired = true; // Boolean | Optional filter by items that are unaired episodes or not. + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Double minCriticRating = 3.4D; // Double | Optional filter by minimum critic rating. + OffsetDateTime minPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere date. Format = ISO. + OffsetDateTime minDateLastSaved = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date. Format = ISO. + OffsetDateTime minDateLastSavedForUser = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date for the current user. Format = ISO. + OffsetDateTime maxPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere date. Format = ISO. + Boolean hasOverview = true; // Boolean | Optional filter by items that have an overview or not. + Boolean hasImdbId = true; // Boolean | Optional filter by items that have an IMDb id or not. + Boolean hasTmdbId = true; // Boolean | Optional filter by items that have a TMDb id or not. + Boolean hasTvdbId = true; // Boolean | Optional filter by items that have a TVDb id or not. + Boolean isMovie = true; // Boolean | Optional filter for live tv movies. + Boolean isSeries = true; // Boolean | Optional filter for live tv series. + Boolean isNews = true; // Boolean | Optional filter for live tv news. + Boolean isKids = true; // Boolean | Optional filter for live tv kids. + Boolean isSports = true; // Boolean | Optional filter for live tv sports. + List excludeItemIds = Arrays.asList(); // List | Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean recursive = true; // Boolean | When searching within folders, this determines whether or not the search will be recursive. true/false. + String searchTerm = "searchTerm_example"; // String | Optional. Filter based on a search term. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending, Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List imageTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean isPlayed = true; // Boolean | Optional filter by items that are played, or not. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person id. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List artists = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + List excludeArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + List artistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified artist id. + List albumArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified album artist id. + List contributingArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + List albums = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + List albumIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + List ids = Arrays.asList(); // List | Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + List videoTypes = Arrays.asList(); // List | Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + String minOfficialRating = "minOfficialRating_example"; // String | Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + Boolean isLocked = true; // Boolean | Optional filter by items that are locked. + Boolean isPlaceHolder = true; // Boolean | Optional filter by items that are placeholders. + Boolean hasOfficialRating = true; // Boolean | Optional filter by items that have official ratings. + Boolean collapseBoxSetItems = true; // Boolean | Whether or not to hide items behind their boxsets. + Integer minWidth = 56; // Integer | Optional. Filter by the minimum width of the item. + Integer minHeight = 56; // Integer | Optional. Filter by the minimum height of the item. + Integer maxWidth = 56; // Integer | Optional. Filter by the maximum width of the item. + Integer maxHeight = 56; // Integer | Optional. Filter by the maximum height of the item. + Boolean is3D = true; // Boolean | Optional filter by items that are 3D, or not. + List seriesStatus = Arrays.asList(); // List | Optional filter by Series Status. Allows multiple, comma delimited. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getTrailers(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TrailersApi#getTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id supplied as query parameter; this is required when not using an API key. | [optional] | +| **maxOfficialRating** | **String**| Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **hasThemeSong** | **Boolean**| Optional filter by items with theme songs. | [optional] | +| **hasThemeVideo** | **Boolean**| Optional filter by items with theme videos. | [optional] | +| **hasSubtitles** | **Boolean**| Optional filter by items with subtitles. | [optional] | +| **hasSpecialFeature** | **Boolean**| Optional filter by items with special features. | [optional] | +| **hasTrailer** | **Boolean**| Optional filter by items with trailers. | [optional] | +| **adjacentTo** | **UUID**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **parentIndexNumber** | **Integer**| Optional filter by parent index number. | [optional] | +| **hasParentalRating** | **Boolean**| Optional filter by items that have or do not have a parental rating. | [optional] | +| **isHd** | **Boolean**| Optional filter by items that are HD or not. | [optional] | +| **is4K** | **Boolean**| Optional filter by items that are 4K or not. | [optional] | +| **locationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. | [optional] | +| **excludeLocationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. | [optional] | +| **isMissing** | **Boolean**| Optional filter by items that are missing episodes or not. | [optional] | +| **isUnaired** | **Boolean**| Optional filter by items that are unaired episodes or not. | [optional] | +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **minCriticRating** | **Double**| Optional filter by minimum critic rating. | [optional] | +| **minPremiereDate** | **OffsetDateTime**| Optional. The minimum premiere date. Format = ISO. | [optional] | +| **minDateLastSaved** | **OffsetDateTime**| Optional. The minimum last saved date. Format = ISO. | [optional] | +| **minDateLastSavedForUser** | **OffsetDateTime**| Optional. The minimum last saved date for the current user. Format = ISO. | [optional] | +| **maxPremiereDate** | **OffsetDateTime**| Optional. The maximum premiere date. Format = ISO. | [optional] | +| **hasOverview** | **Boolean**| Optional filter by items that have an overview or not. | [optional] | +| **hasImdbId** | **Boolean**| Optional filter by items that have an IMDb id or not. | [optional] | +| **hasTmdbId** | **Boolean**| Optional filter by items that have a TMDb id or not. | [optional] | +| **hasTvdbId** | **Boolean**| Optional filter by items that have a TVDb id or not. | [optional] | +| **isMovie** | **Boolean**| Optional filter for live tv movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for live tv series. | [optional] | +| **isNews** | **Boolean**| Optional filter for live tv news. | [optional] | +| **isKids** | **Boolean**| Optional filter for live tv kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for live tv sports. | [optional] | +| **excludeItemIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **recursive** | **Boolean**| When searching within folders, this determines whether or not the search will be recursive. true/false. | [optional] | +| **searchTerm** | **String**| Optional. Filter based on a search term. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending, Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **imageTypes** | [**List<ImageType>**](ImageType.md)| Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **isPlayed** | **Boolean**| Optional filter by items that are played, or not. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person id. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **artists** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. | [optional] | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. | [optional] | +| **artistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified artist id. | [optional] | +| **albumArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified album artist id. | [optional] | +| **contributingArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. | [optional] | +| **albums** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. | [optional] | +| **albumIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. | [optional] | +| **videoTypes** | [**List<VideoType>**](VideoType.md)| Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. | [optional] | +| **minOfficialRating** | **String**| Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **isLocked** | **Boolean**| Optional filter by items that are locked. | [optional] | +| **isPlaceHolder** | **Boolean**| Optional filter by items that are placeholders. | [optional] | +| **hasOfficialRating** | **Boolean**| Optional filter by items that have official ratings. | [optional] | +| **collapseBoxSetItems** | **Boolean**| Whether or not to hide items behind their boxsets. | [optional] | +| **minWidth** | **Integer**| Optional. Filter by the minimum width of the item. | [optional] | +| **minHeight** | **Integer**| Optional. Filter by the minimum height of the item. | [optional] | +| **maxWidth** | **Integer**| Optional. Filter by the maximum width of the item. | [optional] | +| **maxHeight** | **Integer**| Optional. Filter by the maximum height of the item. | [optional] | +| **is3D** | **Boolean**| Optional filter by items that are 3D, or not. | [optional] | +| **seriesStatus** | [**List<SeriesStatus>**](SeriesStatus.md)| Optional filter by Series Status. Allows multiple, comma delimited. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeReason.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeReason.md new file mode 100644 index 0000000000000..7fb95b9f9ec6f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeReason.md @@ -0,0 +1,61 @@ + + +# TranscodeReason + +## Enum + + +* `CONTAINER_NOT_SUPPORTED` (value: `"ContainerNotSupported"`) + +* `VIDEO_CODEC_NOT_SUPPORTED` (value: `"VideoCodecNotSupported"`) + +* `AUDIO_CODEC_NOT_SUPPORTED` (value: `"AudioCodecNotSupported"`) + +* `SUBTITLE_CODEC_NOT_SUPPORTED` (value: `"SubtitleCodecNotSupported"`) + +* `AUDIO_IS_EXTERNAL` (value: `"AudioIsExternal"`) + +* `SECONDARY_AUDIO_NOT_SUPPORTED` (value: `"SecondaryAudioNotSupported"`) + +* `VIDEO_PROFILE_NOT_SUPPORTED` (value: `"VideoProfileNotSupported"`) + +* `VIDEO_LEVEL_NOT_SUPPORTED` (value: `"VideoLevelNotSupported"`) + +* `VIDEO_RESOLUTION_NOT_SUPPORTED` (value: `"VideoResolutionNotSupported"`) + +* `VIDEO_BIT_DEPTH_NOT_SUPPORTED` (value: `"VideoBitDepthNotSupported"`) + +* `VIDEO_FRAMERATE_NOT_SUPPORTED` (value: `"VideoFramerateNotSupported"`) + +* `REF_FRAMES_NOT_SUPPORTED` (value: `"RefFramesNotSupported"`) + +* `ANAMORPHIC_VIDEO_NOT_SUPPORTED` (value: `"AnamorphicVideoNotSupported"`) + +* `INTERLACED_VIDEO_NOT_SUPPORTED` (value: `"InterlacedVideoNotSupported"`) + +* `AUDIO_CHANNELS_NOT_SUPPORTED` (value: `"AudioChannelsNotSupported"`) + +* `AUDIO_PROFILE_NOT_SUPPORTED` (value: `"AudioProfileNotSupported"`) + +* `AUDIO_SAMPLE_RATE_NOT_SUPPORTED` (value: `"AudioSampleRateNotSupported"`) + +* `AUDIO_BIT_DEPTH_NOT_SUPPORTED` (value: `"AudioBitDepthNotSupported"`) + +* `CONTAINER_BITRATE_EXCEEDS_LIMIT` (value: `"ContainerBitrateExceedsLimit"`) + +* `VIDEO_BITRATE_NOT_SUPPORTED` (value: `"VideoBitrateNotSupported"`) + +* `AUDIO_BITRATE_NOT_SUPPORTED` (value: `"AudioBitrateNotSupported"`) + +* `UNKNOWN_VIDEO_STREAM_INFO` (value: `"UnknownVideoStreamInfo"`) + +* `UNKNOWN_AUDIO_STREAM_INFO` (value: `"UnknownAudioStreamInfo"`) + +* `DIRECT_PLAY_ERROR` (value: `"DirectPlayError"`) + +* `VIDEO_RANGE_TYPE_NOT_SUPPORTED` (value: `"VideoRangeTypeNotSupported"`) + +* `VIDEO_CODEC_TAG_NOT_SUPPORTED` (value: `"VideoCodecTagNotSupported"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeSeekInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeSeekInfo.md new file mode 100644 index 0000000000000..c31a1dba3a911 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodeSeekInfo.md @@ -0,0 +1,13 @@ + + +# TranscodeSeekInfo + +## Enum + + +* `AUTO` (value: `"Auto"`) + +* `BYTES` (value: `"Bytes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingInfo.md new file mode 100644 index 0000000000000..b5e93b3e78106 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingInfo.md @@ -0,0 +1,33 @@ + + +# TranscodingInfo + +Class holding information on a runnning transcode. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**audioCodec** | **String** | Gets or sets the thread count used for encoding. | [optional] | +|**videoCodec** | **String** | Gets or sets the thread count used for encoding. | [optional] | +|**container** | **String** | Gets or sets the thread count used for encoding. | [optional] | +|**isVideoDirect** | **Boolean** | Gets or sets a value indicating whether the video is passed through. | [optional] | +|**isAudioDirect** | **Boolean** | Gets or sets a value indicating whether the audio is passed through. | [optional] | +|**bitrate** | **Integer** | Gets or sets the bitrate. | [optional] | +|**framerate** | **Float** | Gets or sets the framerate. | [optional] | +|**completionPercentage** | **Double** | Gets or sets the completion percentage. | [optional] | +|**width** | **Integer** | Gets or sets the video width. | [optional] | +|**height** | **Integer** | Gets or sets the video height. | [optional] | +|**audioChannels** | **Integer** | Gets or sets the audio channels. | [optional] | +|**hardwareAccelerationType** | **HardwareAccelerationType** | Gets or sets the hardware acceleration type. | [optional] | +|**transcodeReasons** | [**TranscodeReasonsEnum**](#TranscodeReasonsEnum) | Gets or sets the transcode reasons. | [optional] | + + + +## Enum: TranscodeReasonsEnum + +| Name | Value | +|---- | -----| + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingProfile.md new file mode 100644 index 0000000000000..26af6355922a2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TranscodingProfile.md @@ -0,0 +1,30 @@ + + +# TranscodingProfile + +A class for transcoding profile information. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**container** | **String** | Gets or sets the container. | [optional] | +|**type** | **DlnaProfileType** | Gets or sets the DLNA profile type. | [optional] | +|**videoCodec** | **String** | Gets or sets the video codec. | [optional] | +|**audioCodec** | **String** | Gets or sets the audio codec. | [optional] | +|**protocol** | **MediaStreamProtocol** | Media streaming protocol. Lowercase for backwards compatibility. | [optional] | +|**estimateContentLength** | **Boolean** | Gets or sets a value indicating whether the content length should be estimated. | [optional] | +|**enableMpegtsM2TsMode** | **Boolean** | Gets or sets a value indicating whether M2TS mode is enabled. | [optional] | +|**transcodeSeekInfo** | **TranscodeSeekInfo** | Gets or sets the transcoding seek info mode. | [optional] | +|**copyTimestamps** | **Boolean** | Gets or sets a value indicating whether timestamps should be copied. | [optional] | +|**context** | **EncodingContext** | Gets or sets the encoding context. | [optional] | +|**enableSubtitlesInManifest** | **Boolean** | Gets or sets a value indicating whether subtitles are allowed in the manifest. | [optional] | +|**maxAudioChannels** | **String** | Gets or sets the maximum audio channels. | [optional] | +|**minSegments** | **Integer** | Gets or sets the minimum amount of segments. | [optional] | +|**segmentLength** | **Integer** | Gets or sets the segment length. | [optional] | +|**breakOnNonKeyFrames** | **Boolean** | Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported. | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | Gets or sets the profile conditions. | [optional] | +|**enableAudioVbrEncoding** | **Boolean** | Gets or sets a value indicating whether variable bitrate encoding is supported. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TransportStreamTimestamp.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TransportStreamTimestamp.md new file mode 100644 index 0000000000000..4ae3995fcad41 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TransportStreamTimestamp.md @@ -0,0 +1,15 @@ + + +# TransportStreamTimestamp + +## Enum + + +* `NONE` (value: `"None"`) + +* `ZERO` (value: `"Zero"`) + +* `VALID` (value: `"Valid"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayApi.md new file mode 100644 index 0000000000000..2e6208826879b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayApi.md @@ -0,0 +1,160 @@ +# TrickplayApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTrickplayHlsPlaylist**](TrickplayApi.md#getTrickplayHlsPlaylist) | **GET** /Videos/{itemId}/Trickplay/{width}/tiles.m3u8 | Gets an image tiles playlist for trickplay. | +| [**getTrickplayTileImage**](TrickplayApi.md#getTrickplayTileImage) | **GET** /Videos/{itemId}/Trickplay/{width}/{index}.jpg | Gets a trickplay tile image. | + + + +# **getTrickplayHlsPlaylist** +> File getTrickplayHlsPlaylist(itemId, width, mediaSourceId) + +Gets an image tiles playlist for trickplay. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TrickplayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TrickplayApi apiInstance = new TrickplayApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer width = 56; // Integer | The width of a single tile. + UUID mediaSourceId = UUID.randomUUID(); // UUID | The media version id, if using an alternate version. + try { + File result = apiInstance.getTrickplayHlsPlaylist(itemId, width, mediaSourceId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TrickplayApi#getTrickplayHlsPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **width** | **Integer**| The width of a single tile. | | +| **mediaSourceId** | **UUID**| The media version id, if using an alternate version. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tiles playlist returned. | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTrickplayTileImage** +> File getTrickplayTileImage(itemId, width, index, mediaSourceId) + +Gets a trickplay tile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TrickplayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TrickplayApi apiInstance = new TrickplayApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer width = 56; // Integer | The width of a single tile. + Integer index = 56; // Integer | The index of the desired tile. + UUID mediaSourceId = UUID.randomUUID(); // UUID | The media version id, if using an alternate version. + try { + File result = apiInstance.getTrickplayTileImage(itemId, width, index, mediaSourceId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TrickplayApi#getTrickplayTileImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **width** | **Integer**| The width of a single tile. | | +| **index** | **Integer**| The index of the desired tile. | | +| **mediaSourceId** | **UUID**| The media version id, if using an alternate version. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tile image not found at specified index. | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayInfo.md new file mode 100644 index 0000000000000..e187c4c7b039c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayInfo.md @@ -0,0 +1,20 @@ + + +# TrickplayInfo + +An entity representing the metadata for a group of trickplay tiles. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**width** | **Integer** | Gets or sets width of an individual thumbnail. | [optional] | +|**height** | **Integer** | Gets or sets height of an individual thumbnail. | [optional] | +|**tileWidth** | **Integer** | Gets or sets amount of thumbnails per row. | [optional] | +|**tileHeight** | **Integer** | Gets or sets amount of thumbnails per column. | [optional] | +|**thumbnailCount** | **Integer** | Gets or sets total amount of non-black thumbnails. | [optional] | +|**interval** | **Integer** | Gets or sets interval in milliseconds between each trickplay thumbnail. | [optional] | +|**bandwidth** | **Integer** | Gets or sets peak bandwith usage in bits per second. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayOptions.md new file mode 100644 index 0000000000000..4394331fe15fe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayOptions.md @@ -0,0 +1,25 @@ + + +# TrickplayOptions + +Class TrickplayOptions. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enableHwAcceleration** | **Boolean** | Gets or sets a value indicating whether or not to use HW acceleration. | [optional] | +|**enableHwEncoding** | **Boolean** | Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding. | [optional] | +|**enableKeyFrameOnlyExtraction** | **Boolean** | Gets or sets a value indicating whether to only extract key frames. Significantly faster, but is not compatible with all decoders and/or video files. | [optional] | +|**scanBehavior** | **TrickplayScanBehavior** | Gets or sets the behavior used by trickplay provider on library scan/update. | [optional] | +|**processPriority** | **ProcessPriorityClass** | Gets or sets the process priority for the ffmpeg process. | [optional] | +|**interval** | **Integer** | Gets or sets the interval, in ms, between each new trickplay image. | [optional] | +|**widthResolutions** | **List<Integer>** | Gets or sets the target width resolutions, in px, to generates preview images for. | [optional] | +|**tileWidth** | **Integer** | Gets or sets number of tile images to allow in X dimension. | [optional] | +|**tileHeight** | **Integer** | Gets or sets number of tile images to allow in Y dimension. | [optional] | +|**qscale** | **Integer** | Gets or sets the ffmpeg output quality level. | [optional] | +|**jpegQuality** | **Integer** | Gets or sets the jpeg quality to use for image tiles. | [optional] | +|**processThreads** | **Integer** | Gets or sets the number of threads to be used by ffmpeg. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayScanBehavior.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayScanBehavior.md new file mode 100644 index 0000000000000..45a384f022727 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TrickplayScanBehavior.md @@ -0,0 +1,13 @@ + + +# TrickplayScanBehavior + +## Enum + + +* `BLOCKING` (value: `"Blocking"`) + +* `NON_BLOCKING` (value: `"NonBlocking"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerChannelMapping.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerChannelMapping.md new file mode 100644 index 0000000000000..9917d47d24731 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerChannelMapping.md @@ -0,0 +1,16 @@ + + +# TunerChannelMapping + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**providerChannelName** | **String** | | [optional] | +|**providerChannelId** | **String** | | [optional] | +|**id** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerHostInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerHostInfo.md new file mode 100644 index 0000000000000..253a6d75a1a00 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TunerHostInfo.md @@ -0,0 +1,27 @@ + + +# TunerHostInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**url** | **String** | | [optional] | +|**type** | **String** | | [optional] | +|**deviceId** | **String** | | [optional] | +|**friendlyName** | **String** | | [optional] | +|**importFavoritesOnly** | **Boolean** | | [optional] | +|**allowHWTranscoding** | **Boolean** | | [optional] | +|**allowFmp4TranscodingContainer** | **Boolean** | | [optional] | +|**allowStreamSharing** | **Boolean** | | [optional] | +|**fallbackMaxStreamingBitrate** | **Integer** | | [optional] | +|**enableStreamLooping** | **Boolean** | | [optional] | +|**source** | **String** | | [optional] | +|**tunerCount** | **Integer** | | [optional] | +|**userAgent** | **String** | | [optional] | +|**ignoreDts** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TvShowsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TvShowsApi.md new file mode 100644 index 0000000000000..2f3ca9eb491f2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TvShowsApi.md @@ -0,0 +1,380 @@ +# TvShowsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getEpisodes**](TvShowsApi.md#getEpisodes) | **GET** /Shows/{seriesId}/Episodes | Gets episodes for a tv season. | +| [**getNextUp**](TvShowsApi.md#getNextUp) | **GET** /Shows/NextUp | Gets a list of next up episodes. | +| [**getSeasons**](TvShowsApi.md#getSeasons) | **GET** /Shows/{seriesId}/Seasons | Gets seasons for a tv series. | +| [**getUpcomingEpisodes**](TvShowsApi.md#getUpcomingEpisodes) | **GET** /Shows/Upcoming | Gets a list of upcoming episodes. | + + + +# **getEpisodes** +> BaseItemDtoQueryResult getEpisodes(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy) + +Gets episodes for a tv season. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID seriesId = UUID.randomUUID(); // UUID | The series id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + Integer season = 56; // Integer | Optional filter by season number. + UUID seasonId = UUID.randomUUID(); // UUID | Optional. Filter by season id. + Boolean isMissing = true; // Boolean | Optional. Filter by items that are missing episodes or not. + UUID adjacentTo = UUID.randomUUID(); // UUID | Optional. Return items that are siblings of a supplied item. + UUID startItemId = UUID.randomUUID(); // UUID | Optional. Skip through the list until a given item is found. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + ItemSortBy sortBy = ItemSortBy.fromValue("Default"); // ItemSortBy | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + try { + BaseItemDtoQueryResult result = apiInstance.getEpisodes(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getEpisodes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesId** | **UUID**| The series id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | +| **season** | **Integer**| Optional filter by season number. | [optional] | +| **seasonId** | **UUID**| Optional. Filter by season id. | [optional] | +| **isMissing** | **Boolean**| Optional. Filter by items that are missing episodes or not. | [optional] | +| **adjacentTo** | **UUID**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **startItemId** | **UUID**| Optional. Skip through the list until a given item is found. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **sortBy** | **ItemSortBy**| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] [enum: Default, AiredEpisodeOrder, Album, AlbumArtist, Artist, DateCreated, OfficialRating, DatePlayed, PremiereDate, StartDate, SortName, Name, Random, Runtime, CommunityRating, ProductionYear, PlayCount, CriticRating, IsFolder, IsUnplayed, IsPlayed, SeriesSortName, VideoBitRate, AirTime, Studio, IsFavoriteOrLiked, DateLastContentAdded, SeriesDatePlayed, ParentIndexNumber, IndexNumber, SimilarityScore, SearchScore] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNextUp** +> BaseItemDtoQueryResult getNextUp(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching) + +Gets a list of next up episodes. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id of the user to get the next up episodes for. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + UUID seriesId = UUID.randomUUID(); // UUID | Optional. Filter by series id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + OffsetDateTime nextUpDateCutoff = OffsetDateTime.now(); // OffsetDateTime | Optional. Starting date of shows to show in Next Up section. + Boolean enableTotalRecordCount = true; // Boolean | Whether to enable the total records count. Defaults to true. + Boolean disableFirstEpisode = false; // Boolean | Whether to disable sending the first episode in a series as next up. + Boolean enableResumable = true; // Boolean | Whether to include resumable episodes in next up results. + Boolean enableRewatching = false; // Boolean | Whether to include watched episodes in next up results. + try { + BaseItemDtoQueryResult result = apiInstance.getNextUp(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getNextUp"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id of the user to get the next up episodes for. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **seriesId** | **UUID**| Optional. Filter by series id. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **nextUpDateCutoff** | **OffsetDateTime**| Optional. Starting date of shows to show in Next Up section. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Whether to enable the total records count. Defaults to true. | [optional] [default to true] | +| **disableFirstEpisode** | **Boolean**| Whether to disable sending the first episode in a series as next up. | [optional] [default to false] | +| **enableResumable** | **Boolean**| Whether to include resumable episodes in next up results. | [optional] [default to true] | +| **enableRewatching** | **Boolean**| Whether to include watched episodes in next up results. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeasons** +> BaseItemDtoQueryResult getSeasons(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData) + +Gets seasons for a tv series. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID seriesId = UUID.randomUUID(); // UUID | The series id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + Boolean isSpecialSeason = true; // Boolean | Optional. Filter by special season. + Boolean isMissing = true; // Boolean | Optional. Filter by items that are missing episodes or not. + UUID adjacentTo = UUID.randomUUID(); // UUID | Optional. Return items that are siblings of a supplied item. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + try { + BaseItemDtoQueryResult result = apiInstance.getSeasons(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getSeasons"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesId** | **UUID**| The series id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | +| **isSpecialSeason** | **Boolean**| Optional. Filter by special season. | [optional] | +| **isMissing** | **Boolean**| Optional. Filter by items that are missing episodes or not. | [optional] | +| **adjacentTo** | **UUID**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUpcomingEpisodes** +> BaseItemDtoQueryResult getUpcomingEpisodes(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData) + +Gets a list of upcoming episodes. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id of the user to get the upcoming episodes for. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + try { + BaseItemDtoQueryResult result = apiInstance.getUpcomingEpisodes(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getUpcomingEpisodes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id of the user to get the upcoming episodes for. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TypeOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TypeOptions.md new file mode 100644 index 0000000000000..b934c8b40cb41 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/TypeOptions.md @@ -0,0 +1,18 @@ + + +# TypeOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**metadataFetchers** | **List<String>** | | [optional] | +|**metadataFetcherOrder** | **List<String>** | | [optional] | +|**imageFetchers** | **List<String>** | | [optional] | +|**imageFetcherOrder** | **List<String>** | | [optional] | +|**imageOptions** | [**List<ImageOption>**](ImageOption.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UniversalAudioApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UniversalAudioApi.md new file mode 100644 index 0000000000000..e4cbe05006a3c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UniversalAudioApi.md @@ -0,0 +1,224 @@ +# UniversalAudioApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getUniversalAudioStream**](UniversalAudioApi.md#getUniversalAudioStream) | **GET** /Audio/{itemId}/universal | Gets an audio stream. | +| [**headUniversalAudioStream**](UniversalAudioApi.md#headUniversalAudioStream) | **HEAD** /Audio/{itemId}/universal | Gets an audio stream. | + + + +# **getUniversalAudioStream** +> File getUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UniversalAudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UniversalAudioApi apiInstance = new UniversalAudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List container = Arrays.asList(); // List | Optional. The audio container. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + UUID userId = UUID.randomUUID(); // UUID | Optional. The user id. + String audioCodec = "audioCodec_example"; // String | Optional. The audio codec to transcode to. + Integer maxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels. + Integer transcodingAudioChannels = 56; // Integer | Optional. The number of how many audio channels to transcode to. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + String transcodingContainer = "transcodingContainer_example"; // String | Optional. The container to transcode to. + MediaStreamProtocol transcodingProtocol = MediaStreamProtocol.fromValue("http"); // MediaStreamProtocol | Optional. The transcoding protocol. + Integer maxAudioSampleRate = 56; // Integer | Optional. The maximum audio sample rate. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Boolean enableRemoteMedia = true; // Boolean | Optional. Whether to enable remote media. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + Boolean breakOnNonKeyFrames = false; // Boolean | Optional. Whether to break on non key frames. + Boolean enableRedirection = true; // Boolean | Whether to enable redirection. Defaults to true. + try { + File result = apiInstance.getUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UniversalAudioApi#getUniversalAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | [**List<String>**](String.md)| Optional. The audio container. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **userId** | **UUID**| Optional. The user id. | [optional] | +| **audioCodec** | **String**| Optional. The audio codec to transcode to. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. The maximum number of audio channels. | [optional] | +| **transcodingAudioChannels** | **Integer**| Optional. The number of how many audio channels to transcode to. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **transcodingContainer** | **String**| Optional. The container to transcode to. | [optional] | +| **transcodingProtocol** | **MediaStreamProtocol**| Optional. The transcoding protocol. | [optional] [enum: http, hls] | +| **maxAudioSampleRate** | **Integer**| Optional. The maximum audio sample rate. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **enableRemoteMedia** | **Boolean**| Optional. Whether to enable remote media. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] [default to false] | +| **enableRedirection** | **Boolean**| Whether to enable redirection. Defaults to true. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **302** | Redirected to remote audio stream. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headUniversalAudioStream** +> File headUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UniversalAudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UniversalAudioApi apiInstance = new UniversalAudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List container = Arrays.asList(); // List | Optional. The audio container. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + UUID userId = UUID.randomUUID(); // UUID | Optional. The user id. + String audioCodec = "audioCodec_example"; // String | Optional. The audio codec to transcode to. + Integer maxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels. + Integer transcodingAudioChannels = 56; // Integer | Optional. The number of how many audio channels to transcode to. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + String transcodingContainer = "transcodingContainer_example"; // String | Optional. The container to transcode to. + MediaStreamProtocol transcodingProtocol = MediaStreamProtocol.fromValue("http"); // MediaStreamProtocol | Optional. The transcoding protocol. + Integer maxAudioSampleRate = 56; // Integer | Optional. The maximum audio sample rate. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Boolean enableRemoteMedia = true; // Boolean | Optional. Whether to enable remote media. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + Boolean breakOnNonKeyFrames = false; // Boolean | Optional. Whether to break on non key frames. + Boolean enableRedirection = true; // Boolean | Whether to enable redirection. Defaults to true. + try { + File result = apiInstance.headUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UniversalAudioApi#headUniversalAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | [**List<String>**](String.md)| Optional. The audio container. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **userId** | **UUID**| Optional. The user id. | [optional] | +| **audioCodec** | **String**| Optional. The audio codec to transcode to. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. The maximum number of audio channels. | [optional] | +| **transcodingAudioChannels** | **Integer**| Optional. The number of how many audio channels to transcode to. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **transcodingContainer** | **String**| Optional. The container to transcode to. | [optional] | +| **transcodingProtocol** | **MediaStreamProtocol**| Optional. The transcoding protocol. | [optional] [enum: http, hls] | +| **maxAudioSampleRate** | **Integer**| Optional. The maximum audio sample rate. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **enableRemoteMedia** | **Boolean**| Optional. Whether to enable remote media. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] [default to false] | +| **enableRedirection** | **Boolean**| Whether to enable redirection. Defaults to true. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **302** | Redirected to remote audio stream. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UnratedItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UnratedItem.md new file mode 100644 index 0000000000000..0c7d095f04cc2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UnratedItem.md @@ -0,0 +1,27 @@ + + +# UnratedItem + +## Enum + + +* `MOVIE` (value: `"Movie"`) + +* `TRAILER` (value: `"Trailer"`) + +* `SERIES` (value: `"Series"`) + +* `MUSIC` (value: `"Music"`) + +* `BOOK` (value: `"Book"`) + +* `LIVE_TV_CHANNEL` (value: `"LiveTvChannel"`) + +* `LIVE_TV_PROGRAM` (value: `"LiveTvProgram"`) + +* `CHANNEL_CONTENT` (value: `"ChannelContent"`) + +* `OTHER` (value: `"Other"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateLibraryOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateLibraryOptionsDto.md new file mode 100644 index 0000000000000..cf7a1df3e81e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateLibraryOptionsDto.md @@ -0,0 +1,15 @@ + + +# UpdateLibraryOptionsDto + +Update library options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Gets or sets the library item id. | [optional] | +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | Gets or sets library options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateMediaPathRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateMediaPathRequestDto.md new file mode 100644 index 0000000000000..d4fe9232c424e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateMediaPathRequestDto.md @@ -0,0 +1,15 @@ + + +# UpdateMediaPathRequestDto + +Update library options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the library name. | | +|**pathInfo** | [**MediaPathInfo**](MediaPathInfo.md) | Gets or sets library folder path information. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistDto.md new file mode 100644 index 0000000000000..29486e771e16b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistDto.md @@ -0,0 +1,17 @@ + + +# UpdatePlaylistDto + +Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the new playlist. | [optional] | +|**ids** | **List<UUID>** | Gets or sets item ids of the playlist. | [optional] | +|**users** | [**List<PlaylistUserPermissions>**](PlaylistUserPermissions.md) | Gets or sets the playlist users. | [optional] | +|**isPublic** | **Boolean** | Gets or sets a value indicating whether the playlist is public. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistUserDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistUserDto.md new file mode 100644 index 0000000000000..007db5552a054 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdatePlaylistUserDto.md @@ -0,0 +1,14 @@ + + +# UpdatePlaylistUserDto + +Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**canEdit** | **Boolean** | Gets or sets a value indicating whether the user can edit the playlist. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserItemDataDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserItemDataDto.md new file mode 100644 index 0000000000000..76650f54ec3ee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserItemDataDto.md @@ -0,0 +1,24 @@ + + +# UpdateUserItemDataDto + +This is used by the api to get information about a item user data. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**rating** | **Double** | Gets or sets the rating. | [optional] | +|**playedPercentage** | **Double** | Gets or sets the played percentage. | [optional] | +|**unplayedItemCount** | **Integer** | Gets or sets the unplayed item count. | [optional] | +|**playbackPositionTicks** | **Long** | Gets or sets the playback position ticks. | [optional] | +|**playCount** | **Integer** | Gets or sets the play count. | [optional] | +|**isFavorite** | **Boolean** | Gets or sets a value indicating whether this instance is favorite. | [optional] | +|**likes** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UpdateUserItemDataDto is likes. | [optional] | +|**lastPlayedDate** | **OffsetDateTime** | Gets or sets the last played date. | [optional] | +|**played** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserPassword.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserPassword.md new file mode 100644 index 0000000000000..d2f8f81db5d98 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UpdateUserPassword.md @@ -0,0 +1,17 @@ + + +# UpdateUserPassword + +The update user password request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**currentPassword** | **String** | Gets or sets the current sha1-hashed password. | [optional] | +|**currentPw** | **String** | Gets or sets the current plain text password. | [optional] | +|**newPw** | **String** | Gets or sets the new plain text password. | [optional] | +|**resetPassword** | **Boolean** | Gets or sets a value indicating whether to reset the password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UploadSubtitleDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UploadSubtitleDto.md new file mode 100644 index 0000000000000..cf5e8ac337e4e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UploadSubtitleDto.md @@ -0,0 +1,18 @@ + + +# UploadSubtitleDto + +Upload subtitles dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**language** | **String** | Gets or sets the subtitle language. | | +|**format** | **String** | Gets or sets the subtitle format. | | +|**isForced** | **Boolean** | Gets or sets a value indicating whether the subtitle is forced. | | +|**isHearingImpaired** | **Boolean** | Gets or sets a value indicating whether the subtitle is for hearing impaired. | | +|**data** | **String** | Gets or sets the subtitle data. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserApi.md new file mode 100644 index 0000000000000..0b9f9e733115f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserApi.md @@ -0,0 +1,947 @@ +# UserApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**authenticateUserByName**](UserApi.md#authenticateUserByName) | **POST** /Users/AuthenticateByName | Authenticates a user by name. | +| [**authenticateWithQuickConnect**](UserApi.md#authenticateWithQuickConnect) | **POST** /Users/AuthenticateWithQuickConnect | Authenticates a user with quick connect. | +| [**createUserByName**](UserApi.md#createUserByName) | **POST** /Users/New | Creates a user. | +| [**deleteUser**](UserApi.md#deleteUser) | **DELETE** /Users/{userId} | Deletes a user. | +| [**forgotPassword**](UserApi.md#forgotPassword) | **POST** /Users/ForgotPassword | Initiates the forgot password process for a local user. | +| [**forgotPasswordPin**](UserApi.md#forgotPasswordPin) | **POST** /Users/ForgotPassword/Pin | Redeems a forgot password pin. | +| [**getCurrentUser**](UserApi.md#getCurrentUser) | **GET** /Users/Me | Gets the user based on auth token. | +| [**getPublicUsers**](UserApi.md#getPublicUsers) | **GET** /Users/Public | Gets a list of publicly visible users for display on a login screen. | +| [**getUserById**](UserApi.md#getUserById) | **GET** /Users/{userId} | Gets a user by Id. | +| [**getUsers**](UserApi.md#getUsers) | **GET** /Users | Gets a list of users. | +| [**updateUser**](UserApi.md#updateUser) | **POST** /Users | Updates a user. | +| [**updateUserConfiguration**](UserApi.md#updateUserConfiguration) | **POST** /Users/Configuration | Updates a user configuration. | +| [**updateUserPassword**](UserApi.md#updateUserPassword) | **POST** /Users/Password | Updates a user's password. | +| [**updateUserPolicy**](UserApi.md#updateUserPolicy) | **POST** /Users/{userId}/Policy | Updates a user policy. | + + + +# **authenticateUserByName** +> AuthenticationResult authenticateUserByName(authenticateUserByName) + +Authenticates a user by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + AuthenticateUserByName authenticateUserByName = new AuthenticateUserByName(); // AuthenticateUserByName | The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. + try { + AuthenticationResult result = apiInstance.authenticateUserByName(authenticateUserByName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#authenticateUserByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **authenticateUserByName** | [**AuthenticateUserByName**](AuthenticateUserByName.md)| The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. | | + +### Return type + +[**AuthenticationResult**](AuthenticationResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User authenticated. | - | + + +# **authenticateWithQuickConnect** +> AuthenticationResult authenticateWithQuickConnect(quickConnectDto) + +Authenticates a user with quick connect. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + QuickConnectDto quickConnectDto = new QuickConnectDto(); // QuickConnectDto | The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. + try { + AuthenticationResult result = apiInstance.authenticateWithQuickConnect(quickConnectDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#authenticateWithQuickConnect"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **quickConnectDto** | [**QuickConnectDto**](QuickConnectDto.md)| The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. | | + +### Return type + +[**AuthenticationResult**](AuthenticationResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User authenticated. | - | +| **400** | Missing token. | - | + + +# **createUserByName** +> UserDto createUserByName(createUserByName) + +Creates a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + CreateUserByName createUserByName = new CreateUserByName(); // CreateUserByName | The create user by name request body. + try { + UserDto result = apiInstance.createUserByName(createUserByName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#createUserByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **createUserByName** | [**CreateUserByName**](CreateUserByName.md)| The create user by name request body. | | + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteUser** +> deleteUser(userId) + +Deletes a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.deleteUser(userId); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#deleteUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User deleted. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **forgotPassword** +> ForgotPasswordResult forgotPassword(forgotPasswordDto) + +Initiates the forgot password process for a local user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + ForgotPasswordDto forgotPasswordDto = new ForgotPasswordDto(); // ForgotPasswordDto | The forgot password request containing the entered username. + try { + ForgotPasswordResult result = apiInstance.forgotPassword(forgotPasswordDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#forgotPassword"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **forgotPasswordDto** | [**ForgotPasswordDto**](ForgotPasswordDto.md)| The forgot password request containing the entered username. | | + +### Return type + +[**ForgotPasswordResult**](ForgotPasswordResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Password reset process started. | - | + + +# **forgotPasswordPin** +> PinRedeemResult forgotPasswordPin(forgotPasswordPinDto) + +Redeems a forgot password pin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + ForgotPasswordPinDto forgotPasswordPinDto = new ForgotPasswordPinDto(); // ForgotPasswordPinDto | The forgot password pin request containing the entered pin. + try { + PinRedeemResult result = apiInstance.forgotPasswordPin(forgotPasswordPinDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#forgotPasswordPin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **forgotPasswordPinDto** | [**ForgotPasswordPinDto**](ForgotPasswordPinDto.md)| The forgot password pin request containing the entered pin. | | + +### Return type + +[**PinRedeemResult**](PinRedeemResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Pin reset process started. | - | + + +# **getCurrentUser** +> UserDto getCurrentUser() + +Gets the user based on auth token. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + try { + UserDto result = apiInstance.getCurrentUser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getCurrentUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User returned. | - | +| **400** | Token is not owned by a user. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPublicUsers** +> List<UserDto> getPublicUsers() + +Gets a list of publicly visible users for display on a login screen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + try { + List result = apiInstance.getPublicUsers(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getPublicUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<UserDto>**](UserDto.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Public users returned. | - | + + +# **getUserById** +> UserDto getUserById(userId) + +Gets a user by Id. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + UserDto result = apiInstance.getUserById(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getUserById"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User returned. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUsers** +> List<UserDto> getUsers(isHidden, isDisabled) + +Gets a list of users. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional filter by IsHidden=true or false. + Boolean isDisabled = true; // Boolean | Optional filter by IsDisabled=true or false. + try { + List result = apiInstance.getUsers(isHidden, isDisabled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional filter by IsHidden=true or false. | [optional] | +| **isDisabled** | **Boolean**| Optional filter by IsDisabled=true or false. | [optional] | + +### Return type + +[**List<UserDto>**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Users returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateUser** +> updateUser(userDto, userId) + +Updates a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UserDto userDto = new UserDto(); // UserDto | The updated user model. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.updateUser(userDto, userId); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userDto** | [**UserDto**](UserDto.md)| The updated user model. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User updated. | - | +| **400** | User information was not supplied. | - | +| **403** | User update forbidden. | - | +| **401** | Unauthorized | - | + + +# **updateUserConfiguration** +> updateUserConfiguration(userConfiguration, userId) + +Updates a user configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UserConfiguration userConfiguration = new UserConfiguration(); // UserConfiguration | The new user configuration. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.updateUserConfiguration(userConfiguration, userId); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userConfiguration** | [**UserConfiguration**](UserConfiguration.md)| The new user configuration. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User configuration updated. | - | +| **403** | User configuration update forbidden. | - | +| **401** | Unauthorized | - | + + +# **updateUserPassword** +> updateUserPassword(updateUserPassword, userId) + +Updates a user's password. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UpdateUserPassword updateUserPassword = new UpdateUserPassword(); // UpdateUserPassword | The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.updateUserPassword(updateUserPassword, userId); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserPassword"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **updateUserPassword** | [**UpdateUserPassword**](UpdateUserPassword.md)| The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Password successfully reset. | - | +| **403** | User is not allowed to update the password. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | + + +# **updateUserPolicy** +> updateUserPolicy(userId, userPolicy) + +Updates a user policy. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UserPolicy userPolicy = new UserPolicy(); // UserPolicy | The new user policy. + try { + apiInstance.updateUserPolicy(userId, userPolicy); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserPolicy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **userPolicy** | [**UserPolicy**](UserPolicy.md)| The new user policy. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User policy updated. | - | +| **400** | User policy was not supplied. | - | +| **403** | User policy update forbidden. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserConfiguration.md new file mode 100644 index 0000000000000..b9568f1ab14ab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserConfiguration.md @@ -0,0 +1,29 @@ + + +# UserConfiguration + +Class UserConfiguration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**audioLanguagePreference** | **String** | Gets or sets the audio language preference. | [optional] | +|**playDefaultAudioTrack** | **Boolean** | Gets or sets a value indicating whether [play default audio track]. | [optional] | +|**subtitleLanguagePreference** | **String** | Gets or sets the subtitle language preference. | [optional] | +|**displayMissingEpisodes** | **Boolean** | | [optional] | +|**groupedFolders** | **List<UUID>** | | [optional] | +|**subtitleMode** | **SubtitlePlaybackMode** | An enum representing a subtitle playback mode. | [optional] | +|**displayCollectionsView** | **Boolean** | | [optional] | +|**enableLocalPassword** | **Boolean** | | [optional] | +|**orderedViews** | **List<UUID>** | | [optional] | +|**latestItemsExcludes** | **List<UUID>** | | [optional] | +|**myMediaExcludes** | **List<UUID>** | | [optional] | +|**hidePlayedInLatest** | **Boolean** | | [optional] | +|**rememberAudioSelections** | **Boolean** | | [optional] | +|**rememberSubtitleSelections** | **Boolean** | | [optional] | +|**enableNextEpisodeAutoPlay** | **Boolean** | | [optional] | +|**castReceiverId** | **String** | Gets or sets the id of the selected cast receiver. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangeInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangeInfo.md new file mode 100644 index 0000000000000..29edf67e738a9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangeInfo.md @@ -0,0 +1,15 @@ + + +# UserDataChangeInfo + +Class UserDataChangeInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**userDataList** | [**List<UserItemDataDto>**](UserItemDataDto.md) | Gets or sets the user data list. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangedMessage.md new file mode 100644 index 0000000000000..57b9a44635913 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDataChangedMessage.md @@ -0,0 +1,16 @@ + + +# UserDataChangedMessage + +User data changed message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UserDataChangeInfo**](UserDataChangeInfo.md) | Class UserDataChangeInfo. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDeletedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDeletedMessage.md new file mode 100644 index 0000000000000..f173c29403f3b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDeletedMessage.md @@ -0,0 +1,16 @@ + + +# UserDeletedMessage + +User deleted message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **UUID** | Gets or sets the data. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDto.md new file mode 100644 index 0000000000000..d6ed9c1212158 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserDto.md @@ -0,0 +1,27 @@ + + +# UserDto + +Class UserDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. This is not used by the server and is for client-side usage only. | [optional] | +|**id** | **UUID** | Gets or sets the id. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the primary image tag. | [optional] | +|**hasPassword** | **Boolean** | Gets or sets a value indicating whether this instance has password. | [optional] | +|**hasConfiguredPassword** | **Boolean** | Gets or sets a value indicating whether this instance has configured password. | [optional] | +|**hasConfiguredEasyPassword** | **Boolean** | Gets or sets a value indicating whether this instance has configured easy password. | [optional] | +|**enableAutoLogin** | **Boolean** | Gets or sets whether async login is enabled or not. | [optional] | +|**lastLoginDate** | **OffsetDateTime** | Gets or sets the last login date. | [optional] | +|**lastActivityDate** | **OffsetDateTime** | Gets or sets the last activity date. | [optional] | +|**_configuration** | [**UserConfiguration**](UserConfiguration.md) | Gets or sets the configuration. | [optional] | +|**policy** | [**UserPolicy**](UserPolicy.md) | Gets or sets the policy. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserItemDataDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserItemDataDto.md new file mode 100644 index 0000000000000..3896286228825 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserItemDataDto.md @@ -0,0 +1,24 @@ + + +# UserItemDataDto + +Class UserItemDataDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**rating** | **Double** | Gets or sets the rating. | [optional] | +|**playedPercentage** | **Double** | Gets or sets the played percentage. | [optional] | +|**unplayedItemCount** | **Integer** | Gets or sets the unplayed item count. | [optional] | +|**playbackPositionTicks** | **Long** | Gets or sets the playback position ticks. | [optional] | +|**playCount** | **Integer** | Gets or sets the play count. | [optional] | +|**isFavorite** | **Boolean** | Gets or sets a value indicating whether this instance is favorite. | [optional] | +|**likes** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. | [optional] | +|**lastPlayedDate** | **OffsetDateTime** | Gets or sets the last played date. | [optional] | +|**played** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserLibraryApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserLibraryApi.md new file mode 100644 index 0000000000000..7a46683d593a9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserLibraryApi.md @@ -0,0 +1,746 @@ +# UserLibraryApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteUserItemRating**](UserLibraryApi.md#deleteUserItemRating) | **DELETE** /UserItems/{itemId}/Rating | Deletes a user's saved personal rating for an item. | +| [**getIntros**](UserLibraryApi.md#getIntros) | **GET** /Items/{itemId}/Intros | Gets intros to play before the main media item plays. | +| [**getItem**](UserLibraryApi.md#getItem) | **GET** /Items/{itemId} | Gets an item from a user's library. | +| [**getLatestMedia**](UserLibraryApi.md#getLatestMedia) | **GET** /Items/Latest | Gets latest media. | +| [**getLocalTrailers**](UserLibraryApi.md#getLocalTrailers) | **GET** /Items/{itemId}/LocalTrailers | Gets local trailers for an item. | +| [**getRootFolder**](UserLibraryApi.md#getRootFolder) | **GET** /Items/Root | Gets the root folder from a user's library. | +| [**getSpecialFeatures**](UserLibraryApi.md#getSpecialFeatures) | **GET** /Items/{itemId}/SpecialFeatures | Gets special features for an item. | +| [**markFavoriteItem**](UserLibraryApi.md#markFavoriteItem) | **POST** /UserFavoriteItems/{itemId} | Marks an item as a favorite. | +| [**unmarkFavoriteItem**](UserLibraryApi.md#unmarkFavoriteItem) | **DELETE** /UserFavoriteItems/{itemId} | Unmarks item as a favorite. | +| [**updateUserItemRating**](UserLibraryApi.md#updateUserItemRating) | **POST** /UserItems/{itemId}/Rating | Updates a user's rating for an item. | + + + +# **deleteUserItemRating** +> UserItemDataDto deleteUserItemRating(itemId, userId) + +Deletes a user's saved personal rating for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + UserItemDataDto result = apiInstance.deleteUserItemRating(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#deleteUserItemRating"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Personal rating removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getIntros** +> BaseItemDtoQueryResult getIntros(itemId, userId) + +Gets intros to play before the main media item plays. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + BaseItemDtoQueryResult result = apiInstance.getIntros(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getIntros"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Intros returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItem** +> BaseItemDto getItem(itemId, userId) + +Gets an item from a user's library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + BaseItemDto result = apiInstance.getItem(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLatestMedia** +> List<BaseItemDto> getLatestMedia(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems) + +Gets latest media. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isPlayed = true; // Boolean | Filter by items that are played, or not. + Boolean enableImages = true; // Boolean | Optional. include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. include user data. + Integer limit = 20; // Integer | Return item limit. + Boolean groupItems = true; // Boolean | Whether or not to group items into a parent container. + try { + List result = apiInstance.getLatestMedia(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getLatestMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isPlayed** | **Boolean**| Filter by items that are played, or not. | [optional] | +| **enableImages** | **Boolean**| Optional. include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. include user data. | [optional] | +| **limit** | **Integer**| Return item limit. | [optional] [default to 20] | +| **groupItems** | **Boolean**| Whether or not to group items into a parent container. | [optional] [default to true] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Latest media returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLocalTrailers** +> List<BaseItemDto> getLocalTrailers(itemId, userId) + +Gets local trailers for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + List result = apiInstance.getLocalTrailers(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getLocalTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRootFolder** +> BaseItemDto getRootFolder(userId) + +Gets the root folder from a user's library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + BaseItemDto result = apiInstance.getRootFolder(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getRootFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Root folder returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSpecialFeatures** +> List<BaseItemDto> getSpecialFeatures(itemId, userId) + +Gets special features for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + List result = apiInstance.getSpecialFeatures(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getSpecialFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Special features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **markFavoriteItem** +> UserItemDataDto markFavoriteItem(itemId, userId) + +Marks an item as a favorite. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + UserItemDataDto result = apiInstance.markFavoriteItem(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#markFavoriteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as favorite. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **unmarkFavoriteItem** +> UserItemDataDto unmarkFavoriteItem(itemId, userId) + +Unmarks item as a favorite. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + UserItemDataDto result = apiInstance.unmarkFavoriteItem(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#unmarkFavoriteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item unmarked as favorite. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateUserItemRating** +> UserItemDataDto updateUserItemRating(itemId, userId, likes) + +Updates a user's rating for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + UUID userId = UUID.randomUUID(); // UUID | User id. + Boolean likes = true; // Boolean | Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. + try { + UserItemDataDto result = apiInstance.updateUserItemRating(itemId, userId, likes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#updateUserItemRating"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **userId** | **UUID**| User id. | [optional] | +| **likes** | **Boolean**| Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item rating updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserPolicy.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserPolicy.md new file mode 100644 index 0000000000000..8b39a7c40cf65 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserPolicy.md @@ -0,0 +1,55 @@ + + +# UserPolicy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isAdministrator** | **Boolean** | Gets or sets a value indicating whether this instance is administrator. | [optional] | +|**isHidden** | **Boolean** | Gets or sets a value indicating whether this instance is hidden. | [optional] | +|**enableCollectionManagement** | **Boolean** | Gets or sets a value indicating whether this instance can manage collections. | [optional] | +|**enableSubtitleManagement** | **Boolean** | Gets or sets a value indicating whether this instance can manage subtitles. | [optional] | +|**enableLyricManagement** | **Boolean** | Gets or sets a value indicating whether this user can manage lyrics. | [optional] | +|**isDisabled** | **Boolean** | Gets or sets a value indicating whether this instance is disabled. | [optional] | +|**maxParentalRating** | **Integer** | Gets or sets the max parental rating. | [optional] | +|**blockedTags** | **List<String>** | | [optional] | +|**allowedTags** | **List<String>** | | [optional] | +|**enableUserPreferenceAccess** | **Boolean** | | [optional] | +|**accessSchedules** | [**List<AccessSchedule>**](AccessSchedule.md) | | [optional] | +|**blockUnratedItems** | **List<UnratedItem>** | | [optional] | +|**enableRemoteControlOfOtherUsers** | **Boolean** | | [optional] | +|**enableSharedDeviceControl** | **Boolean** | | [optional] | +|**enableRemoteAccess** | **Boolean** | | [optional] | +|**enableLiveTvManagement** | **Boolean** | | [optional] | +|**enableLiveTvAccess** | **Boolean** | | [optional] | +|**enableMediaPlayback** | **Boolean** | | [optional] | +|**enableAudioPlaybackTranscoding** | **Boolean** | | [optional] | +|**enableVideoPlaybackTranscoding** | **Boolean** | | [optional] | +|**enablePlaybackRemuxing** | **Boolean** | | [optional] | +|**forceRemoteSourceTranscoding** | **Boolean** | | [optional] | +|**enableContentDeletion** | **Boolean** | | [optional] | +|**enableContentDeletionFromFolders** | **List<String>** | | [optional] | +|**enableContentDownloading** | **Boolean** | | [optional] | +|**enableSyncTranscoding** | **Boolean** | Gets or sets a value indicating whether [enable synchronize]. | [optional] | +|**enableMediaConversion** | **Boolean** | | [optional] | +|**enabledDevices** | **List<String>** | | [optional] | +|**enableAllDevices** | **Boolean** | | [optional] | +|**enabledChannels** | **List<UUID>** | | [optional] | +|**enableAllChannels** | **Boolean** | | [optional] | +|**enabledFolders** | **List<UUID>** | | [optional] | +|**enableAllFolders** | **Boolean** | | [optional] | +|**invalidLoginAttemptCount** | **Integer** | | [optional] | +|**loginAttemptsBeforeLockout** | **Integer** | | [optional] | +|**maxActiveSessions** | **Integer** | | [optional] | +|**enablePublicSharing** | **Boolean** | | [optional] | +|**blockedMediaFolders** | **List<UUID>** | | [optional] | +|**blockedChannels** | **List<UUID>** | | [optional] | +|**remoteClientBitrateLimit** | **Integer** | | [optional] | +|**authenticationProviderId** | **String** | | | +|**passwordResetProviderId** | **String** | | | +|**syncPlayAccess** | **SyncPlayUserAccessType** | Enum SyncPlayUserAccessType. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserUpdatedMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserUpdatedMessage.md new file mode 100644 index 0000000000000..34c2c09496e0b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserUpdatedMessage.md @@ -0,0 +1,16 @@ + + +# UserUpdatedMessage + +User updated message. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UserDto**](UserDto.md) | Class UserDto. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserViewsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserViewsApi.md new file mode 100644 index 0000000000000..2573b00f16c55 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UserViewsApi.md @@ -0,0 +1,155 @@ +# UserViewsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getGroupingOptions**](UserViewsApi.md#getGroupingOptions) | **GET** /UserViews/GroupingOptions | Get user view grouping options. | +| [**getUserViews**](UserViewsApi.md#getUserViews) | **GET** /UserViews | Get user views. | + + + +# **getGroupingOptions** +> List<SpecialViewOptionDto> getGroupingOptions(userId) + +Get user view grouping options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserViewsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserViewsApi apiInstance = new UserViewsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + List result = apiInstance.getGroupingOptions(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserViewsApi#getGroupingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | + +### Return type + +[**List<SpecialViewOptionDto>**](SpecialViewOptionDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User view grouping options returned. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUserViews** +> BaseItemDtoQueryResult getUserViews(userId, includeExternalContent, presetViews, includeHidden) + +Get user views. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserViewsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserViewsApi apiInstance = new UserViewsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + Boolean includeExternalContent = true; // Boolean | Whether or not to include external views such as channels or live tv. + List presetViews = Arrays.asList(); // List | Preset views. + Boolean includeHidden = false; // Boolean | Whether or not to include hidden content. + try { + BaseItemDtoQueryResult result = apiInstance.getUserViews(userId, includeExternalContent, presetViews, includeHidden); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserViewsApi#getUserViews"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | [optional] | +| **includeExternalContent** | **Boolean**| Whether or not to include external views such as channels or live tv. | [optional] | +| **presetViews** | [**List<CollectionType>**](CollectionType.md)| Preset views. | [optional] | +| **includeHidden** | **Boolean**| Whether or not to include hidden content. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User views returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UtcTimeResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UtcTimeResponse.md new file mode 100644 index 0000000000000..f29e9a8ffdd74 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/UtcTimeResponse.md @@ -0,0 +1,15 @@ + + +# UtcTimeResponse + +Class UtcTimeResponse. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**requestReceptionTime** | **OffsetDateTime** | Gets the UTC time when request has been received. | [optional] | +|**responseTransmissionTime** | **OffsetDateTime** | Gets the UTC time when response has been sent. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ValidatePathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ValidatePathDto.md new file mode 100644 index 0000000000000..dd1234d84601d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/ValidatePathDto.md @@ -0,0 +1,16 @@ + + +# ValidatePathDto + +Validate path object. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**validateWritable** | **Boolean** | Gets or sets a value indicating whether validate if path is writable. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**isFile** | **Boolean** | Gets or sets is path file. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VersionInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VersionInfo.md new file mode 100644 index 0000000000000..7063b9d749f94 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VersionInfo.md @@ -0,0 +1,22 @@ + + +# VersionInfo + +Defines the MediaBrowser.Model.Updates.VersionInfo class. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**version** | **String** | Gets or sets the version. | [optional] | +|**versionNumber** | **String** | Gets the version as a System.Version. | [optional] [readonly] | +|**changelog** | **String** | Gets or sets the changelog for this version. | [optional] | +|**targetAbi** | **String** | Gets or sets the ABI that this version was built against. | [optional] | +|**sourceUrl** | **String** | Gets or sets the source URL. | [optional] | +|**checksum** | **String** | Gets or sets a checksum for the binary. | [optional] | +|**timestamp** | **String** | Gets or sets a timestamp of when the binary was built. | [optional] | +|**repositoryName** | **String** | Gets or sets the repository name. | [optional] | +|**repositoryUrl** | **String** | Gets or sets the repository url. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/Video3DFormat.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/Video3DFormat.md new file mode 100644 index 0000000000000..768a9cad3ff61 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/Video3DFormat.md @@ -0,0 +1,19 @@ + + +# Video3DFormat + +## Enum + + +* `HALF_SIDE_BY_SIDE` (value: `"HalfSideBySide"`) + +* `FULL_SIDE_BY_SIDE` (value: `"FullSideBySide"`) + +* `FULL_TOP_AND_BOTTOM` (value: `"FullTopAndBottom"`) + +* `HALF_TOP_AND_BOTTOM` (value: `"HalfTopAndBottom"`) + +* `MVC` (value: `"MVC"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoAttachmentsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoAttachmentsApi.md new file mode 100644 index 0000000000000..db36ace28fd0b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoAttachmentsApi.md @@ -0,0 +1,74 @@ +# VideoAttachmentsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAttachment**](VideoAttachmentsApi.md#getAttachment) | **GET** /Videos/{videoId}/{mediaSourceId}/Attachments/{index} | Get video attachment. | + + + +# **getAttachment** +> File getAttachment(videoId, mediaSourceId, index) + +Get video attachment. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideoAttachmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideoAttachmentsApi apiInstance = new VideoAttachmentsApi(defaultClient); + UUID videoId = UUID.randomUUID(); // UUID | Video ID. + String mediaSourceId = "mediaSourceId_example"; // String | Media Source ID. + Integer index = 56; // Integer | Attachment Index. + try { + File result = apiInstance.getAttachment(videoId, mediaSourceId, index); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideoAttachmentsApi#getAttachment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **videoId** | **UUID**| Video ID. | | +| **mediaSourceId** | **String**| Media Source ID. | | +| **index** | **Integer**| Attachment Index. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/octet-stream, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Attachment retrieved. | - | +| **404** | Video or attachment not found. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRange.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRange.md new file mode 100644 index 0000000000000..9eb81665d4e5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRange.md @@ -0,0 +1,15 @@ + + +# VideoRange + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `SDR` (value: `"SDR"`) + +* `HDR` (value: `"HDR"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRangeType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRangeType.md new file mode 100644 index 0000000000000..51b7eeee44e91 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoRangeType.md @@ -0,0 +1,27 @@ + + +# VideoRangeType + +## Enum + + +* `UNKNOWN` (value: `"Unknown"`) + +* `SDR` (value: `"SDR"`) + +* `HDR10` (value: `"HDR10"`) + +* `HLG` (value: `"HLG"`) + +* `DOVI` (value: `"DOVI"`) + +* `DOVI_WITH_HDR10` (value: `"DOVIWithHDR10"`) + +* `DOVI_WITH_HLG` (value: `"DOVIWithHLG"`) + +* `DOVI_WITH_SDR` (value: `"DOVIWithSDR"`) + +* `HDR10_PLUS` (value: `"HDR10Plus"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoType.md new file mode 100644 index 0000000000000..97d66c26edde7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideoType.md @@ -0,0 +1,17 @@ + + +# VideoType + +## Enum + + +* `VIDEO_FILE` (value: `"VideoFile"`) + +* `ISO` (value: `"Iso"`) + +* `DVD` (value: `"Dvd"`) + +* `BLU_RAY` (value: `"BluRay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideosApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideosApi.md new file mode 100644 index 0000000000000..af919f42eaf25 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VideosApi.md @@ -0,0 +1,872 @@ +# VideosApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteAlternateSources**](VideosApi.md#deleteAlternateSources) | **DELETE** /Videos/{itemId}/AlternateSources | Removes alternate video sources. | +| [**getAdditionalPart**](VideosApi.md#getAdditionalPart) | **GET** /Videos/{itemId}/AdditionalParts | Gets additional parts for a video. | +| [**getVideoStream**](VideosApi.md#getVideoStream) | **GET** /Videos/{itemId}/stream | Gets a video stream. | +| [**getVideoStreamByContainer**](VideosApi.md#getVideoStreamByContainer) | **GET** /Videos/{itemId}/stream.{container} | Gets a video stream. | +| [**headVideoStream**](VideosApi.md#headVideoStream) | **HEAD** /Videos/{itemId}/stream | Gets a video stream. | +| [**headVideoStreamByContainer**](VideosApi.md#headVideoStreamByContainer) | **HEAD** /Videos/{itemId}/stream.{container} | Gets a video stream. | +| [**mergeVersions**](VideosApi.md#mergeVersions) | **POST** /Videos/MergeVersions | Merges videos into a single record. | + + + +# **deleteAlternateSources** +> deleteAlternateSources(itemId) + +Removes alternate video sources. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + apiInstance.deleteAlternateSources(itemId); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#deleteAlternateSources"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Alternate sources deleted. | - | +| **404** | Video not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getAdditionalPart** +> BaseItemDtoQueryResult getAdditionalPart(itemId, userId) + +Gets additional parts for a video. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getAdditionalPart(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getAdditionalPart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Additional parts returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVideoStream** +> File getVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getVideoStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **getVideoStreamByContainer** +> File getVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.getVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getVideoStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **headVideoStream** +> File headVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.headVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#headVideoStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **headVideoStreamByContainer** +> File headVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAudioVbrEncoding = true; // Boolean | Optional. Whether to enable Audio Encoding. + try { + File result = apiInstance.headVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#headVideoStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | **SubtitleDeliveryMethod**| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | **EncodingContext**| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAudioVbrEncoding** | **Boolean**| Optional. Whether to enable Audio Encoding. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **mergeVersions** +> mergeVersions(ids) + +Merges videos into a single record. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + List ids = Arrays.asList(); // List | Item id list. This allows multiple, comma delimited. + try { + apiInstance.mergeVersions(ids); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#mergeVersions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ids** | [**List<UUID>**](UUID.md)| Item id list. This allows multiple, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Videos merged. | - | +| **400** | Supply at least 2 video ids. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VirtualFolderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VirtualFolderInfo.md new file mode 100644 index 0000000000000..e68ec518a6fc2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/VirtualFolderInfo.md @@ -0,0 +1,21 @@ + + +# VirtualFolderInfo + +Used to hold information about a user's list of configured virtual folders. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**locations** | **List<String>** | Gets or sets the locations. | [optional] | +|**collectionType** | **CollectionTypeOptions** | Gets or sets the type of the collection. | [optional] | +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | +|**primaryImageItemId** | **String** | Gets or sets the primary image item identifier. | [optional] | +|**refreshProgress** | **Double** | | [optional] | +|**refreshStatus** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WakeOnLanInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WakeOnLanInfo.md new file mode 100644 index 0000000000000..0afaa31bdfad4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WakeOnLanInfo.md @@ -0,0 +1,15 @@ + + +# WakeOnLanInfo + +Provides the MAC address and port for wake-on-LAN functionality. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**macAddress** | **String** | Gets the MAC address of the device. | [optional] | +|**port** | **Integer** | Gets or sets the wake-on-LAN port. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WebSocketMessage.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WebSocketMessage.md new file mode 100644 index 0000000000000..22697dd752d7c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/WebSocketMessage.md @@ -0,0 +1,16 @@ + + +# WebSocketMessage + +Represents the possible websocket types + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UserDto**](UserDto.md) | Class UserDto. | [optional] | +|**messageId** | **UUID** | Gets or sets the message id. | [optional] | +|**messageType** | **SessionMessageType** | The different kinds of messages that are used in the WebSocket api. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/XbmcMetadataOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/XbmcMetadataOptions.md new file mode 100644 index 0000000000000..b17b6fcb1b45e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/XbmcMetadataOptions.md @@ -0,0 +1,17 @@ + + +# XbmcMetadataOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **String** | | [optional] | +|**releaseDateFormat** | **String** | | [optional] | +|**saveImagePathsInNfo** | **Boolean** | | [optional] | +|**enablePathSubstitution** | **Boolean** | | [optional] | +|**enableExtraThumbsDuplication** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/YearsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/YearsApi.md new file mode 100644 index 0000000000000..d58f84d0ae537 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/docs/YearsApi.md @@ -0,0 +1,179 @@ +# YearsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getYear**](YearsApi.md#getYear) | **GET** /Years/{year} | Gets a year. | +| [**getYears**](YearsApi.md#getYears) | **GET** /Years | Get years. | + + + +# **getYear** +> BaseItemDto getYear(year, userId) + +Gets a year. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.YearsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + YearsApi apiInstance = new YearsApi(defaultClient); + Integer year = 56; // Integer | The year. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getYear(year, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling YearsApi#getYear"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **year** | **Integer**| The year. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Year returned. | - | +| **404** | Year not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getYears** +> BaseItemDtoQueryResult getYears(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages) + +Get years. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.YearsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + YearsApi apiInstance = new YearsApi(defaultClient); + Integer startIndex = 56; // Integer | Skips over a given number of items within the results. Use for paging. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User Id. + Boolean recursive = true; // Boolean | Search recursively. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getYears(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling YearsApi#getYears"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Skips over a given number of items within the results. Use for paging. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. | [optional] | +| **mediaTypes** | [**List<MediaType>**](MediaType.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<ItemSortBy>**](ItemSortBy.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User Id. | [optional] | +| **recursive** | **Boolean**| Search recursively. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Year query returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ActivityLogApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ActivityLogApi.java new file mode 100644 index 0000000000000..1ce0d18b260c9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ActivityLogApi.java @@ -0,0 +1,235 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ActivityLogEntryQueryResult; +import java.time.OffsetDateTime; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ActivityLogApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ActivityLogApi() { + this(Configuration.getDefaultApiClient()); + } + + public ActivityLogApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getLogEntries + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogEntriesCall(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/ActivityLog/Entries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (minDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDate", minDate)); + } + + if (hasUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasUserId", hasUserId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLogEntriesValidateBeforeCall(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + return getLogEntriesCall(startIndex, limit, minDate, hasUserId, _callback); + + } + + /** + * Gets activity log entries. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @return ActivityLogEntryQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ActivityLogEntryQueryResult getLogEntries(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId) throws ApiException { + ApiResponse localVarResp = getLogEntriesWithHttpInfo(startIndex, limit, minDate, hasUserId); + return localVarResp.getData(); + } + + /** + * Gets activity log entries. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @return ApiResponse<ActivityLogEntryQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLogEntriesWithHttpInfo(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId) throws ApiException { + okhttp3.Call localVarCall = getLogEntriesValidateBeforeCall(startIndex, limit, minDate, hasUserId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets activity log entries. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogEntriesAsync(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLogEntriesValidateBeforeCall(startIndex, limit, minDate, hasUserId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ApiKeyApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ApiKeyApi.java new file mode 100644 index 0000000000000..493f781006605 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ApiKeyApi.java @@ -0,0 +1,465 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AuthenticationInfoQueryResult; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ApiKeyApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ApiKeyApi() { + this(Configuration.getDefaultApiClient()); + } + + public ApiKeyApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createKey + * @param app Name of the app using the authentication key. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createKeyCall(String app, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (app != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("app", app)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createKeyValidateBeforeCall(String app, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'app' is set + if (app == null) { + throw new ApiException("Missing the required parameter 'app' when calling createKey(Async)"); + } + + return createKeyCall(app, _callback); + + } + + /** + * Create a new api key. + * + * @param app Name of the app using the authentication key. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createKey(String app) throws ApiException { + createKeyWithHttpInfo(app); + } + + /** + * Create a new api key. + * + * @param app Name of the app using the authentication key. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createKeyWithHttpInfo(String app) throws ApiException { + okhttp3.Call localVarCall = createKeyValidateBeforeCall(app, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Create a new api key. (asynchronously) + * + * @param app Name of the app using the authentication key. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createKeyAsync(String app, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createKeyValidateBeforeCall(app, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getKeys + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getKeysCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getKeysValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getKeysCall(_callback); + + } + + /** + * Get all keys. + * + * @return AuthenticationInfoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public AuthenticationInfoQueryResult getKeys() throws ApiException { + ApiResponse localVarResp = getKeysWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all keys. + * + * @return ApiResponse<AuthenticationInfoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getKeysWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getKeysValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all keys. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getKeysAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getKeysValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for revokeKey + * @param key The access token to delete. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call revokeKeyCall(String key, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call revokeKeyValidateBeforeCall(String key, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling revokeKey(Async)"); + } + + return revokeKeyCall(key, _callback); + + } + + /** + * Remove an api key. + * + * @param key The access token to delete. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void revokeKey(String key) throws ApiException { + revokeKeyWithHttpInfo(key); + } + + /** + * Remove an api key. + * + * @param key The access token to delete. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse revokeKeyWithHttpInfo(String key) throws ApiException { + okhttp3.Call localVarCall = revokeKeyValidateBeforeCall(key, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Remove an api key. (asynchronously) + * + * @param key The access token to delete. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call revokeKeyAsync(String key, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = revokeKeyValidateBeforeCall(key, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ArtistsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ArtistsApi.java new file mode 100644 index 0000000000000..a448dde453670 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ArtistsApi.java @@ -0,0 +1,995 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ArtistsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ArtistsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ArtistsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAlbumArtists + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAlbumArtistsCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/AlbumArtists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAlbumArtistsValidateBeforeCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getAlbumArtistsCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all album artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getAlbumArtists(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getAlbumArtistsWithHttpInfo(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all album artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getAlbumArtistsWithHttpInfo(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getAlbumArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all album artists from a given item, folder, or the entire library. (asynchronously) + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAlbumArtistsAsync(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAlbumArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getArtistByName + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistByNameCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistByNameValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getArtistByName(Async)"); + } + + return getArtistByNameCall(name, userId, _callback); + + } + + /** + * Gets an artist by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getArtistByName(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getArtistByNameWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Gets an artist by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getArtistByNameWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getArtistByNameValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an artist by name. (asynchronously) + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistByNameAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistByNameValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getArtists + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistsCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistsValidateBeforeCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getArtistsCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getArtists(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getArtistsWithHttpInfo(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getArtistsWithHttpInfo(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all artists from a given item, folder, or the entire library. (asynchronously) + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistsAsync(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/AudioApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/AudioApi.java new file mode 100644 index 0000000000000..e2beb10fd3ce9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/AudioApi.java @@ -0,0 +1,2158 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AudioApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AudioApi() { + this(Configuration.getDefaultApiClient()); + } + + public AudioApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAudioStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAudioStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAudioStream(Async)"); + } + + return getAudioStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File getAudioStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getAudioStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse getAudioStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAudioStreamByContainer + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAudioStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAudioStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getAudioStreamByContainer(Async)"); + } + + return getAudioStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File getAudioStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getAudioStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse getAudioStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headAudioStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headAudioStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headAudioStream(Async)"); + } + + return headAudioStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File headAudioStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = headAudioStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse headAudioStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = headAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headAudioStreamByContainer + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headAudioStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headAudioStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling headAudioStreamByContainer(Async)"); + } + + return headAudioStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File headAudioStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = headAudioStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse headAudioStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = headAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/BrandingApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/BrandingApi.java new file mode 100644 index 0000000000000..20fcb6ae9210c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/BrandingApi.java @@ -0,0 +1,442 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BrandingOptions; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class BrandingApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public BrandingApi() { + this(Configuration.getDefaultApiClient()); + } + + public BrandingApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getBrandingCss + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCssCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Css"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/css", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingCssValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingCssCall(_callback); + + } + + /** + * Gets branding css. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public String getBrandingCss() throws ApiException { + ApiResponse localVarResp = getBrandingCssWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding css. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public ApiResponse getBrandingCssWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingCssValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding css. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCssAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingCssValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBrandingCss2 + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCss2Call(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Css.css"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/css", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingCss2ValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingCss2Call(_callback); + + } + + /** + * Gets branding css. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public String getBrandingCss2() throws ApiException { + ApiResponse localVarResp = getBrandingCss2WithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding css. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public ApiResponse getBrandingCss2WithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingCss2ValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding css. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCss2Async(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingCss2ValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBrandingOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public okhttp3.Call getBrandingOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingOptionsCall(_callback); + + } + + /** + * Gets branding configuration. + * + * @return BrandingOptions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public BrandingOptions getBrandingOptions() throws ApiException { + ApiResponse localVarResp = getBrandingOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding configuration. + * + * @return ApiResponse<BrandingOptions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public ApiResponse getBrandingOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public okhttp3.Call getBrandingOptionsAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ChannelsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ChannelsApi.java new file mode 100644 index 0000000000000..082233dd393d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ChannelsApi.java @@ -0,0 +1,896 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ChannelFeatures; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ChannelsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ChannelsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ChannelsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAllChannelFeatures + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAllChannelFeaturesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/Features"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAllChannelFeaturesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getAllChannelFeaturesCall(_callback); + + } + + /** + * Get all channel features. + * + * @return List<ChannelFeatures> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAllChannelFeatures() throws ApiException { + ApiResponse> localVarResp = getAllChannelFeaturesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all channel features. + * + * @return ApiResponse<List<ChannelFeatures>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAllChannelFeaturesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getAllChannelFeaturesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all channel features. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAllChannelFeaturesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAllChannelFeaturesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelFeatures + * @param channelId Channel id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelFeaturesCall(UUID channelId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/{channelId}/Features" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelFeaturesValidateBeforeCall(UUID channelId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannelFeatures(Async)"); + } + + return getChannelFeaturesCall(channelId, _callback); + + } + + /** + * Get channel features. + * + * @param channelId Channel id. (required) + * @return ChannelFeatures + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ChannelFeatures getChannelFeatures(UUID channelId) throws ApiException { + ApiResponse localVarResp = getChannelFeaturesWithHttpInfo(channelId); + return localVarResp.getData(); + } + + /** + * Get channel features. + * + * @param channelId Channel id. (required) + * @return ApiResponse<ChannelFeatures> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelFeaturesWithHttpInfo(UUID channelId) throws ApiException { + okhttp3.Call localVarCall = getChannelFeaturesValidateBeforeCall(channelId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel features. (asynchronously) + * + * @param channelId Channel id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelFeaturesAsync(UUID channelId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelFeaturesValidateBeforeCall(channelId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelItems + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelItemsCall(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/{channelId}/Items" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (folderId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("folderId", folderId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelItemsValidateBeforeCall(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannelItems(Async)"); + } + + return getChannelItemsCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, _callback); + + } + + /** + * Get channel items. + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getChannelItems(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields) throws ApiException { + ApiResponse localVarResp = getChannelItemsWithHttpInfo(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields); + return localVarResp.getData(); + } + + /** + * Get channel items. + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelItemsWithHttpInfo(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields) throws ApiException { + okhttp3.Call localVarCall = getChannelItemsValidateBeforeCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel items. (asynchronously) + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelItemsAsync(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelItemsValidateBeforeCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannels + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelsCall(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (supportsLatestItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsLatestItems", supportsLatestItems)); + } + + if (supportsMediaDeletion != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsMediaDeletion", supportsMediaDeletion)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + return getChannelsCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, _callback); + + } + + /** + * Gets available channels. + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getChannels(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite) throws ApiException { + ApiResponse localVarResp = getChannelsWithHttpInfo(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite); + return localVarResp.getData(); + } + + /** + * Gets available channels. + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite) throws ApiException { + okhttp3.Call localVarCall = getChannelsValidateBeforeCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available channels. (asynchronously) + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelsAsync(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelsValidateBeforeCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLatestChannelItems + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestChannelItemsCall(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/Items/Latest"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (channelIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "channelIds", channelIds)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLatestChannelItemsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + return getLatestChannelItemsCall(userId, startIndex, limit, filters, fields, channelIds, _callback); + + } + + /** + * Gets latest channel items. + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLatestChannelItems(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds) throws ApiException { + ApiResponse localVarResp = getLatestChannelItemsWithHttpInfo(userId, startIndex, limit, filters, fields, channelIds); + return localVarResp.getData(); + } + + /** + * Gets latest channel items. + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLatestChannelItemsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds) throws ApiException { + okhttp3.Call localVarCall = getLatestChannelItemsValidateBeforeCall(userId, startIndex, limit, filters, fields, channelIds, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets latest channel items. (asynchronously) + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestChannelItemsAsync(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLatestChannelItemsValidateBeforeCall(userId, startIndex, limit, filters, fields, channelIds, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ClientLogApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ClientLogApi.java new file mode 100644 index 0000000000000..517d35e44cab1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ClientLogApi.java @@ -0,0 +1,213 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ClientLogDocumentResponseDto; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ClientLogApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ClientLogApi() { + this(Configuration.getDefaultApiClient()); + } + + public ClientLogApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for logFile + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public okhttp3.Call logFileCall(File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/ClientLog/Document"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "text/plain" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call logFileValidateBeforeCall(File body, final ApiCallback _callback) throws ApiException { + return logFileCall(body, _callback); + + } + + /** + * Upload a document. + * + * @param body (optional) + * @return ClientLogDocumentResponseDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public ClientLogDocumentResponseDto logFile(File body) throws ApiException { + ApiResponse localVarResp = logFileWithHttpInfo(body); + return localVarResp.getData(); + } + + /** + * Upload a document. + * + * @param body (optional) + * @return ApiResponse<ClientLogDocumentResponseDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public ApiResponse logFileWithHttpInfo(File body) throws ApiException { + okhttp3.Call localVarCall = logFileValidateBeforeCall(body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Upload a document. (asynchronously) + * + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public okhttp3.Call logFileAsync(File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = logFileValidateBeforeCall(body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/CollectionApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/CollectionApi.java new file mode 100644 index 0000000000000..c4a9ec8fd3755 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/CollectionApi.java @@ -0,0 +1,521 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.CollectionCreationResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CollectionApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public CollectionApi() { + this(Configuration.getDefaultApiClient()); + } + + public CollectionApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addToCollection + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToCollectionCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections/{collectionId}/Items" + .replace("{" + "collectionId" + "}", localVarApiClient.escapeString(collectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addToCollectionValidateBeforeCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'collectionId' is set + if (collectionId == null) { + throw new ApiException("Missing the required parameter 'collectionId' when calling addToCollection(Async)"); + } + + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling addToCollection(Async)"); + } + + return addToCollectionCall(collectionId, ids, _callback); + + } + + /** + * Adds items to a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addToCollection(UUID collectionId, List ids) throws ApiException { + addToCollectionWithHttpInfo(collectionId, ids); + } + + /** + * Adds items to a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addToCollectionWithHttpInfo(UUID collectionId, List ids) throws ApiException { + okhttp3.Call localVarCall = addToCollectionValidateBeforeCall(collectionId, ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds items to a collection. (asynchronously) + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToCollectionAsync(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addToCollectionValidateBeforeCall(collectionId, ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createCollection + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createCollectionCall(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createCollectionValidateBeforeCall(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + return createCollectionCall(name, ids, parentId, isLocked, _callback); + + } + + /** + * Creates a new collection. + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @return CollectionCreationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public CollectionCreationResult createCollection(String name, List ids, UUID parentId, Boolean isLocked) throws ApiException { + ApiResponse localVarResp = createCollectionWithHttpInfo(name, ids, parentId, isLocked); + return localVarResp.getData(); + } + + /** + * Creates a new collection. + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @return ApiResponse<CollectionCreationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createCollectionWithHttpInfo(String name, List ids, UUID parentId, Boolean isLocked) throws ApiException { + okhttp3.Call localVarCall = createCollectionValidateBeforeCall(name, ids, parentId, isLocked, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a new collection. (asynchronously) + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createCollectionAsync(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createCollectionValidateBeforeCall(name, ids, parentId, isLocked, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for removeFromCollection + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromCollectionCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections/{collectionId}/Items" + .replace("{" + "collectionId" + "}", localVarApiClient.escapeString(collectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeFromCollectionValidateBeforeCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'collectionId' is set + if (collectionId == null) { + throw new ApiException("Missing the required parameter 'collectionId' when calling removeFromCollection(Async)"); + } + + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling removeFromCollection(Async)"); + } + + return removeFromCollectionCall(collectionId, ids, _callback); + + } + + /** + * Removes items from a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeFromCollection(UUID collectionId, List ids) throws ApiException { + removeFromCollectionWithHttpInfo(collectionId, ids); + } + + /** + * Removes items from a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeFromCollectionWithHttpInfo(UUID collectionId, List ids) throws ApiException { + okhttp3.Call localVarCall = removeFromCollectionValidateBeforeCall(collectionId, ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes items from a collection. (asynchronously) + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromCollectionAsync(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeFromCollectionValidateBeforeCall(collectionId, ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ConfigurationApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ConfigurationApi.java new file mode 100644 index 0000000000000..0a9dfe092c2e0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ConfigurationApi.java @@ -0,0 +1,740 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.MetadataOptions; +import org.openapitools.client.model.ServerConfiguration; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ConfigurationApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ConfigurationApi() { + this(Configuration.getDefaultApiClient()); + } + + public ConfigurationApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getConfigurationCall(_callback); + + } + + /** + * Gets application configuration. + * + * @return ServerConfiguration + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ServerConfiguration getConfiguration() throws ApiException { + ApiResponse localVarResp = getConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets application configuration. + * + * @return ApiResponse<ServerConfiguration> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets application configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultMetadataOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultMetadataOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration/MetadataOptions/Default"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultMetadataOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultMetadataOptionsCall(_callback); + + } + + /** + * Gets a default MetadataOptions object. + * + * @return MetadataOptions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public MetadataOptions getDefaultMetadataOptions() throws ApiException { + ApiResponse localVarResp = getDefaultMetadataOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a default MetadataOptions object. + * + * @return ApiResponse<MetadataOptions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultMetadataOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultMetadataOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a default MetadataOptions object. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultMetadataOptionsAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultMetadataOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNamedConfiguration + * @param key Configuration key. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNamedConfigurationCall(String key, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNamedConfigurationValidateBeforeCall(String key, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling getNamedConfiguration(Async)"); + } + + return getNamedConfigurationCall(key, _callback); + + } + + /** + * Gets a named configuration. + * + * @param key Configuration key. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getNamedConfiguration(String key) throws ApiException { + ApiResponse localVarResp = getNamedConfigurationWithHttpInfo(key); + return localVarResp.getData(); + } + + /** + * Gets a named configuration. + * + * @param key Configuration key. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNamedConfigurationWithHttpInfo(String key) throws ApiException { + okhttp3.Call localVarCall = getNamedConfigurationValidateBeforeCall(key, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a named configuration. (asynchronously) + * + * @param key Configuration key. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNamedConfigurationAsync(String key, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNamedConfigurationValidateBeforeCall(key, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateConfiguration + * @param serverConfiguration Configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateConfigurationCall(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = serverConfiguration; + + // create path and map variables + String localVarPath = "/System/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateConfigurationValidateBeforeCall(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverConfiguration' is set + if (serverConfiguration == null) { + throw new ApiException("Missing the required parameter 'serverConfiguration' when calling updateConfiguration(Async)"); + } + + return updateConfigurationCall(serverConfiguration, _callback); + + } + + /** + * Updates application configuration. + * + * @param serverConfiguration Configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateConfiguration(ServerConfiguration serverConfiguration) throws ApiException { + updateConfigurationWithHttpInfo(serverConfiguration); + } + + /** + * Updates application configuration. + * + * @param serverConfiguration Configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateConfigurationWithHttpInfo(ServerConfiguration serverConfiguration) throws ApiException { + okhttp3.Call localVarCall = updateConfigurationValidateBeforeCall(serverConfiguration, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates application configuration. (asynchronously) + * + * @param serverConfiguration Configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateConfigurationAsync(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateConfigurationValidateBeforeCall(serverConfiguration, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateNamedConfiguration + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateNamedConfigurationCall(String key, Object body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/System/Configuration/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateNamedConfigurationValidateBeforeCall(String key, Object body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling updateNamedConfiguration(Async)"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling updateNamedConfiguration(Async)"); + } + + return updateNamedConfigurationCall(key, body, _callback); + + } + + /** + * Updates named configuration. + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateNamedConfiguration(String key, Object body) throws ApiException { + updateNamedConfigurationWithHttpInfo(key, body); + } + + /** + * Updates named configuration. + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateNamedConfigurationWithHttpInfo(String key, Object body) throws ApiException { + okhttp3.Call localVarCall = updateNamedConfigurationValidateBeforeCall(key, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates named configuration. (asynchronously) + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateNamedConfigurationAsync(String key, Object body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateNamedConfigurationValidateBeforeCall(key, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DashboardApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DashboardApi.java new file mode 100644 index 0000000000000..5afd35e0c6f4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DashboardApi.java @@ -0,0 +1,349 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ConfigurationPageInfo; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DashboardApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DashboardApi() { + this(Configuration.getDefaultApiClient()); + } + + public DashboardApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getConfigurationPages + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationPagesCall(Boolean enableInMainMenu, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/web/ConfigurationPages"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (enableInMainMenu != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableInMainMenu", enableInMainMenu)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConfigurationPagesValidateBeforeCall(Boolean enableInMainMenu, final ApiCallback _callback) throws ApiException { + return getConfigurationPagesCall(enableInMainMenu, _callback); + + } + + /** + * Gets the configuration pages. + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @return List<ConfigurationPageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getConfigurationPages(Boolean enableInMainMenu) throws ApiException { + ApiResponse> localVarResp = getConfigurationPagesWithHttpInfo(enableInMainMenu); + return localVarResp.getData(); + } + + /** + * Gets the configuration pages. + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @return ApiResponse<List<ConfigurationPageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getConfigurationPagesWithHttpInfo(Boolean enableInMainMenu) throws ApiException { + okhttp3.Call localVarCall = getConfigurationPagesValidateBeforeCall(enableInMainMenu, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the configuration pages. (asynchronously) + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationPagesAsync(Boolean enableInMainMenu, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getConfigurationPagesValidateBeforeCall(enableInMainMenu, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDashboardConfigurationPage + * @param name The name of the page. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public okhttp3.Call getDashboardConfigurationPageCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/web/ConfigurationPage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + final String[] localVarAccepts = { + "text/html", + "application/x-javascript", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDashboardConfigurationPageValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + return getDashboardConfigurationPageCall(name, _callback); + + } + + /** + * Gets a dashboard configuration page. + * + * @param name The name of the page. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public File getDashboardConfigurationPage(String name) throws ApiException { + ApiResponse localVarResp = getDashboardConfigurationPageWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a dashboard configuration page. + * + * @param name The name of the page. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public ApiResponse getDashboardConfigurationPageWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getDashboardConfigurationPageValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a dashboard configuration page. (asynchronously) + * + * @param name The name of the page. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public okhttp3.Call getDashboardConfigurationPageAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDashboardConfigurationPageValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DevicesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DevicesApi.java new file mode 100644 index 0000000000000..b42a54729a713 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DevicesApi.java @@ -0,0 +1,787 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DeviceInfoDto; +import org.openapitools.client.model.DeviceInfoDtoQueryResult; +import org.openapitools.client.model.DeviceOptionsDto; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DevicesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DevicesApi() { + this(Configuration.getDefaultApiClient()); + } + + public DevicesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteDevice + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteDeviceCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteDeviceValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteDevice(Async)"); + } + + return deleteDeviceCall(id, _callback); + + } + + /** + * Deletes a device. + * + * @param id Device Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteDevice(String id) throws ApiException { + deleteDeviceWithHttpInfo(id); + } + + /** + * Deletes a device. + * + * @param id Device Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteDeviceWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteDeviceValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteDeviceAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteDeviceValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getDeviceInfo + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceInfoCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDeviceInfoValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getDeviceInfo(Async)"); + } + + return getDeviceInfoCall(id, _callback); + + } + + /** + * Get info for a device. + * + * @param id Device Id. (required) + * @return DeviceInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceInfoDto getDeviceInfo(String id) throws ApiException { + ApiResponse localVarResp = getDeviceInfoWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Get info for a device. + * + * @param id Device Id. (required) + * @return ApiResponse<DeviceInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDeviceInfoWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = getDeviceInfoValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get info for a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceInfoAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDeviceInfoValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDeviceOptions + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceOptionsCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDeviceOptionsValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getDeviceOptions(Async)"); + } + + return getDeviceOptionsCall(id, _callback); + + } + + /** + * Get options for a device. + * + * @param id Device Id. (required) + * @return DeviceOptionsDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceOptionsDto getDeviceOptions(String id) throws ApiException { + ApiResponse localVarResp = getDeviceOptionsWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Get options for a device. + * + * @param id Device Id. (required) + * @return ApiResponse<DeviceOptionsDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDeviceOptionsWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = getDeviceOptionsValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get options for a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceOptionsAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDeviceOptionsValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDevices + * @param userId Gets or sets the user identifier. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDevicesCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDevicesValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getDevicesCall(userId, _callback); + + } + + /** + * Get Devices. + * + * @param userId Gets or sets the user identifier. (optional) + * @return DeviceInfoDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceInfoDtoQueryResult getDevices(UUID userId) throws ApiException { + ApiResponse localVarResp = getDevicesWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Get Devices. + * + * @param userId Gets or sets the user identifier. (optional) + * @return ApiResponse<DeviceInfoDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDevicesWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getDevicesValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Devices. (asynchronously) + * + * @param userId Gets or sets the user identifier. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDevicesAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDevicesValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateDeviceOptions + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDeviceOptionsCall(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = deviceOptionsDto; + + // create path and map variables + String localVarPath = "/Devices/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateDeviceOptionsValidateBeforeCall(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateDeviceOptions(Async)"); + } + + // verify the required parameter 'deviceOptionsDto' is set + if (deviceOptionsDto == null) { + throw new ApiException("Missing the required parameter 'deviceOptionsDto' when calling updateDeviceOptions(Async)"); + } + + return updateDeviceOptionsCall(id, deviceOptionsDto, _callback); + + } + + /** + * Update device options. + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateDeviceOptions(String id, DeviceOptionsDto deviceOptionsDto) throws ApiException { + updateDeviceOptionsWithHttpInfo(id, deviceOptionsDto); + } + + /** + * Update device options. + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateDeviceOptionsWithHttpInfo(String id, DeviceOptionsDto deviceOptionsDto) throws ApiException { + okhttp3.Call localVarCall = updateDeviceOptionsValidateBeforeCall(id, deviceOptionsDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update device options. (asynchronously) + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDeviceOptionsAsync(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateDeviceOptionsValidateBeforeCall(id, deviceOptionsDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java new file mode 100644 index 0000000000000..68dc3b5c96ce6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java @@ -0,0 +1,397 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DisplayPreferencesDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DisplayPreferencesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DisplayPreferencesApi() { + this(Configuration.getDefaultApiClient()); + } + + public DisplayPreferencesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getDisplayPreferences + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDisplayPreferencesCall(String displayPreferencesId, String client, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/DisplayPreferences/{displayPreferencesId}" + .replace("{" + "displayPreferencesId" + "}", localVarApiClient.escapeString(displayPreferencesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (client != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("client", client)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDisplayPreferencesValidateBeforeCall(String displayPreferencesId, String client, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'displayPreferencesId' is set + if (displayPreferencesId == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesId' when calling getDisplayPreferences(Async)"); + } + + // verify the required parameter 'client' is set + if (client == null) { + throw new ApiException("Missing the required parameter 'client' when calling getDisplayPreferences(Async)"); + } + + return getDisplayPreferencesCall(displayPreferencesId, client, userId, _callback); + + } + + /** + * Get Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param userId User id. (optional) + * @return DisplayPreferencesDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public DisplayPreferencesDto getDisplayPreferences(String displayPreferencesId, String client, UUID userId) throws ApiException { + ApiResponse localVarResp = getDisplayPreferencesWithHttpInfo(displayPreferencesId, client, userId); + return localVarResp.getData(); + } + + /** + * Get Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param userId User id. (optional) + * @return ApiResponse<DisplayPreferencesDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDisplayPreferencesWithHttpInfo(String displayPreferencesId, String client, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getDisplayPreferencesValidateBeforeCall(displayPreferencesId, client, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Display Preferences. (asynchronously) + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDisplayPreferencesAsync(String displayPreferencesId, String client, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDisplayPreferencesValidateBeforeCall(displayPreferencesId, client, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateDisplayPreferences + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param userId User Id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDisplayPreferencesCall(String displayPreferencesId, String client, DisplayPreferencesDto displayPreferencesDto, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = displayPreferencesDto; + + // create path and map variables + String localVarPath = "/DisplayPreferences/{displayPreferencesId}" + .replace("{" + "displayPreferencesId" + "}", localVarApiClient.escapeString(displayPreferencesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (client != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("client", client)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateDisplayPreferencesValidateBeforeCall(String displayPreferencesId, String client, DisplayPreferencesDto displayPreferencesDto, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'displayPreferencesId' is set + if (displayPreferencesId == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesId' when calling updateDisplayPreferences(Async)"); + } + + // verify the required parameter 'client' is set + if (client == null) { + throw new ApiException("Missing the required parameter 'client' when calling updateDisplayPreferences(Async)"); + } + + // verify the required parameter 'displayPreferencesDto' is set + if (displayPreferencesDto == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesDto' when calling updateDisplayPreferences(Async)"); + } + + return updateDisplayPreferencesCall(displayPreferencesId, client, displayPreferencesDto, userId, _callback); + + } + + /** + * Update Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param userId User Id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateDisplayPreferences(String displayPreferencesId, String client, DisplayPreferencesDto displayPreferencesDto, UUID userId) throws ApiException { + updateDisplayPreferencesWithHttpInfo(displayPreferencesId, client, displayPreferencesDto, userId); + } + + /** + * Update Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param userId User Id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateDisplayPreferencesWithHttpInfo(String displayPreferencesId, String client, DisplayPreferencesDto displayPreferencesDto, UUID userId) throws ApiException { + okhttp3.Call localVarCall = updateDisplayPreferencesValidateBeforeCall(displayPreferencesId, client, displayPreferencesDto, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update Display Preferences. (asynchronously) + * + * @param displayPreferencesId Display preferences id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param userId User Id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDisplayPreferencesAsync(String displayPreferencesId, String client, DisplayPreferencesDto displayPreferencesDto, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateDisplayPreferencesValidateBeforeCall(displayPreferencesId, client, displayPreferencesDto, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DynamicHlsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DynamicHlsApi.java new file mode 100644 index 0000000000000..c9a2ed67d0e58 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/DynamicHlsApi.java @@ -0,0 +1,5097 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DynamicHlsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DynamicHlsApi() { + this(Configuration.getDefaultApiClient()); + } + + public DynamicHlsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getHlsAudioSegment + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsAudioSegmentCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (runtimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("runtimeTicks", runtimeTicks)); + } + + if (actualSegmentLengthTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("actualSegmentLengthTicks", actualSegmentLengthTicks)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentValidateBeforeCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'runtimeTicks' is set + if (runtimeTicks == null) { + throw new ApiException("Missing the required parameter 'runtimeTicks' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'actualSegmentLengthTicks' is set + if (actualSegmentLengthTicks == null) { + throw new ApiException("Missing the required parameter 'actualSegmentLengthTicks' when calling getHlsAudioSegment(Async)"); + } + + return getHlsAudioSegmentCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsAudioSegment(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentWithHttpInfo(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsAudioSegmentWithHttpInfo(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsAudioSegmentAsync(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsVideoSegment + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsVideoSegmentCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (runtimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("runtimeTicks", runtimeTicks)); + } + + if (actualSegmentLengthTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("actualSegmentLengthTicks", actualSegmentLengthTicks)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsVideoSegmentValidateBeforeCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'runtimeTicks' is set + if (runtimeTicks == null) { + throw new ApiException("Missing the required parameter 'runtimeTicks' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'actualSegmentLengthTicks' is set + if (actualSegmentLengthTicks == null) { + throw new ApiException("Missing the required parameter 'actualSegmentLengthTicks' when calling getHlsVideoSegment(Async)"); + } + + return getHlsVideoSegmentCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsVideoSegment(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + ApiResponse localVarResp = getHlsVideoSegmentWithHttpInfo(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsVideoSegmentWithHttpInfo(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + okhttp3.Call localVarCall = getHlsVideoSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsVideoSegmentAsync(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsVideoSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveHlsStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveHlsStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/live.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (enableSubtitlesInManifest != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableSubtitlesInManifest", enableSubtitlesInManifest)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveHlsStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getLiveHlsStream(Async)"); + } + + return getLiveHlsStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + + } + + /** + * Gets a hls live stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getLiveHlsStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + ApiResponse localVarResp = getLiveHlsStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + return localVarResp.getData(); + } + + /** + * Gets a hls live stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveHlsStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + okhttp3.Call localVarCall = getLiveHlsStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls live stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveHlsStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveHlsStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMasterHlsAudioPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsAudioPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMasterHlsAudioPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMasterHlsAudioPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getMasterHlsAudioPlaylist(Async)"); + } + + return getMasterHlsAudioPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMasterHlsAudioPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getMasterHlsAudioPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMasterHlsAudioPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsAudioPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMasterHlsVideoPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsVideoPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + if (enableTrickplay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTrickplay", enableTrickplay)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMasterHlsVideoPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMasterHlsVideoPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getMasterHlsVideoPlaylist(Async)"); + } + + return getMasterHlsVideoPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMasterHlsVideoPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + ApiResponse localVarResp = getMasterHlsVideoPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + return localVarResp.getData(); + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMasterHlsVideoPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + okhttp3.Call localVarCall = getMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsVideoPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVariantHlsAudioPlaylist + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsAudioPlaylistCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/main.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVariantHlsAudioPlaylistValidateBeforeCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVariantHlsAudioPlaylist(Async)"); + } + + return getVariantHlsAudioPlaylistCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getVariantHlsAudioPlaylist(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getVariantHlsAudioPlaylistWithHttpInfo(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getVariantHlsAudioPlaylistWithHttpInfo(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getVariantHlsAudioPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsAudioPlaylistAsync(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVariantHlsAudioPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVariantHlsVideoPlaylist + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsVideoPlaylistCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/main.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVariantHlsVideoPlaylistValidateBeforeCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVariantHlsVideoPlaylist(Async)"); + } + + return getVariantHlsVideoPlaylistCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getVariantHlsVideoPlaylist(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + ApiResponse localVarResp = getVariantHlsVideoPlaylistWithHttpInfo(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getVariantHlsVideoPlaylistWithHttpInfo(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + okhttp3.Call localVarCall = getVariantHlsVideoPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsVideoPlaylistAsync(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVariantHlsVideoPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMasterHlsAudioPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsAudioPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMasterHlsAudioPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headMasterHlsAudioPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling headMasterHlsAudioPlaylist(Async)"); + } + + return headMasterHlsAudioPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headMasterHlsAudioPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = headMasterHlsAudioPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headMasterHlsAudioPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = headMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsAudioPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMasterHlsVideoPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsVideoPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + if (enableTrickplay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTrickplay", enableTrickplay)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMasterHlsVideoPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headMasterHlsVideoPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling headMasterHlsVideoPlaylist(Async)"); + } + + return headMasterHlsVideoPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headMasterHlsVideoPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + ApiResponse localVarResp = headMasterHlsVideoPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding); + return localVarResp.getData(); + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headMasterHlsVideoPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) throws ApiException { + okhttp3.Call localVarCall = headMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param enableTrickplay Enable trickplay image playlists being added to master playlist. (optional, default to true) + * @param enableAudioVbrEncoding Whether to enable Audio Encoding. (optional, default to true) + * @param alwaysBurnInSubtitleWhenTranscoding Whether to always burn in subtitles when transcoding. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsVideoPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, Boolean enableTrickplay, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, enableTrickplay, enableAudioVbrEncoding, alwaysBurnInSubtitleWhenTranscoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/EnvironmentApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/EnvironmentApi.java new file mode 100644 index 0000000000000..65be9e3c4c00c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/EnvironmentApi.java @@ -0,0 +1,903 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DefaultDirectoryBrowserInfoDto; +import org.openapitools.client.model.FileSystemEntryInfo; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.ValidatePathDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class EnvironmentApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public EnvironmentApi() { + this(Configuration.getDefaultApiClient()); + } + + public EnvironmentApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getDefaultDirectoryBrowser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultDirectoryBrowserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/DefaultDirectoryBrowser"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultDirectoryBrowserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultDirectoryBrowserCall(_callback); + + } + + /** + * Get Default directory browser. + * + * @return DefaultDirectoryBrowserInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public DefaultDirectoryBrowserInfoDto getDefaultDirectoryBrowser() throws ApiException { + ApiResponse localVarResp = getDefaultDirectoryBrowserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get Default directory browser. + * + * @return ApiResponse<DefaultDirectoryBrowserInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultDirectoryBrowserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultDirectoryBrowserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Default directory browser. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultDirectoryBrowserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultDirectoryBrowserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDirectoryContents + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDirectoryContentsCall(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/DirectoryContents"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + if (includeFiles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeFiles", includeFiles)); + } + + if (includeDirectories != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeDirectories", includeDirectories)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDirectoryContentsValidateBeforeCall(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'path' is set + if (path == null) { + throw new ApiException("Missing the required parameter 'path' when calling getDirectoryContents(Async)"); + } + + return getDirectoryContentsCall(path, includeFiles, includeDirectories, _callback); + + } + + /** + * Gets the contents of a given directory in the file system. + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getDirectoryContents(String path, Boolean includeFiles, Boolean includeDirectories) throws ApiException { + ApiResponse> localVarResp = getDirectoryContentsWithHttpInfo(path, includeFiles, includeDirectories); + return localVarResp.getData(); + } + + /** + * Gets the contents of a given directory in the file system. + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getDirectoryContentsWithHttpInfo(String path, Boolean includeFiles, Boolean includeDirectories) throws ApiException { + okhttp3.Call localVarCall = getDirectoryContentsValidateBeforeCall(path, includeFiles, includeDirectories, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the contents of a given directory in the file system. (asynchronously) + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDirectoryContentsAsync(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getDirectoryContentsValidateBeforeCall(path, includeFiles, includeDirectories, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDrives + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDrivesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/Drives"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDrivesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDrivesCall(_callback); + + } + + /** + * Gets available drives from the server's file system. + * + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getDrives() throws ApiException { + ApiResponse> localVarResp = getDrivesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available drives from the server's file system. + * + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getDrivesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDrivesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available drives from the server's file system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDrivesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getDrivesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNetworkShares + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getNetworkSharesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/NetworkShares"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getNetworkSharesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getNetworkSharesCall(_callback); + + } + + /** + * Gets network paths. + * + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public List getNetworkShares() throws ApiException { + ApiResponse> localVarResp = getNetworkSharesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets network paths. + * + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse> getNetworkSharesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getNetworkSharesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets network paths. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getNetworkSharesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getNetworkSharesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getParentPath + * @param path The path. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentPathCall(String path, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/ParentPath"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getParentPathValidateBeforeCall(String path, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'path' is set + if (path == null) { + throw new ApiException("Missing the required parameter 'path' when calling getParentPath(Async)"); + } + + return getParentPathCall(path, _callback); + + } + + /** + * Gets the parent path of a given path. + * + * @param path The path. (required) + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public String getParentPath(String path) throws ApiException { + ApiResponse localVarResp = getParentPathWithHttpInfo(path); + return localVarResp.getData(); + } + + /** + * Gets the parent path of a given path. + * + * @param path The path. (required) + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getParentPathWithHttpInfo(String path) throws ApiException { + okhttp3.Call localVarCall = getParentPathValidateBeforeCall(path, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the parent path of a given path. (asynchronously) + * + * @param path The path. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentPathAsync(String path, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getParentPathValidateBeforeCall(path, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for validatePath + * @param validatePathDto Validate request object. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call validatePathCall(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = validatePathDto; + + // create path and map variables + String localVarPath = "/Environment/ValidatePath"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call validatePathValidateBeforeCall(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'validatePathDto' is set + if (validatePathDto == null) { + throw new ApiException("Missing the required parameter 'validatePathDto' when calling validatePath(Async)"); + } + + return validatePathCall(validatePathDto, _callback); + + } + + /** + * Validates path. + * + * @param validatePathDto Validate request object. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void validatePath(ValidatePathDto validatePathDto) throws ApiException { + validatePathWithHttpInfo(validatePathDto); + } + + /** + * Validates path. + * + * @param validatePathDto Validate request object. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse validatePathWithHttpInfo(ValidatePathDto validatePathDto) throws ApiException { + okhttp3.Call localVarCall = validatePathValidateBeforeCall(validatePathDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Validates path. (asynchronously) + * + * @param validatePathDto Validate request object. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call validatePathAsync(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = validatePathValidateBeforeCall(validatePathDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/FilterApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/FilterApi.java new file mode 100644 index 0000000000000..5a46131af332f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/FilterApi.java @@ -0,0 +1,445 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.QueryFilters; +import org.openapitools.client.model.QueryFiltersLegacy; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FilterApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public FilterApi() { + this(Configuration.getDefaultApiClient()); + } + + public FilterApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getQueryFilters + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersCall(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Filters2"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQueryFiltersValidateBeforeCall(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + return getQueryFiltersCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, _callback); + + } + + /** + * Gets query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @return QueryFilters + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public QueryFilters getQueryFilters(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive) throws ApiException { + ApiResponse localVarResp = getQueryFiltersWithHttpInfo(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive); + return localVarResp.getData(); + } + + /** + * Gets query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @return ApiResponse<QueryFilters> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getQueryFiltersWithHttpInfo(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive) throws ApiException { + okhttp3.Call localVarCall = getQueryFiltersValidateBeforeCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets query filters. (asynchronously) + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersAsync(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQueryFiltersValidateBeforeCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getQueryFiltersLegacy + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersLegacyCall(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Filters"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQueryFiltersLegacyValidateBeforeCall(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + return getQueryFiltersLegacyCall(userId, parentId, includeItemTypes, mediaTypes, _callback); + + } + + /** + * Gets legacy query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @return QueryFiltersLegacy + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public QueryFiltersLegacy getQueryFiltersLegacy(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes) throws ApiException { + ApiResponse localVarResp = getQueryFiltersLegacyWithHttpInfo(userId, parentId, includeItemTypes, mediaTypes); + return localVarResp.getData(); + } + + /** + * Gets legacy query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @return ApiResponse<QueryFiltersLegacy> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getQueryFiltersLegacyWithHttpInfo(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes) throws ApiException { + okhttp3.Call localVarCall = getQueryFiltersLegacyValidateBeforeCall(userId, parentId, includeItemTypes, mediaTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets legacy query filters. (asynchronously) + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersLegacyAsync(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQueryFiltersLegacyValidateBeforeCall(userId, parentId, includeItemTypes, mediaTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/GenresApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/GenresApi.java new file mode 100644 index 0000000000000..850d9147ea3b8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/GenresApi.java @@ -0,0 +1,498 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GenresApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public GenresApi() { + this(Configuration.getDefaultApiClient()); + } + + public GenresApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getGenre + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenreCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{genreName}" + .replace("{" + "genreName" + "}", localVarApiClient.escapeString(genreName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreValidateBeforeCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'genreName' is set + if (genreName == null) { + throw new ApiException("Missing the required parameter 'genreName' when calling getGenre(Async)"); + } + + return getGenreCall(genreName, userId, _callback); + + } + + /** + * Gets a genre, by name. + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getGenre(String genreName, UUID userId) throws ApiException { + ApiResponse localVarResp = getGenreWithHttpInfo(genreName, userId); + return localVarResp.getData(); + } + + /** + * Gets a genre, by name. + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGenreWithHttpInfo(String genreName, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getGenreValidateBeforeCall(genreName, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a genre, by name. (asynchronously) + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenreAsync(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreValidateBeforeCall(genreName, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenres + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenresCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenresValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getGenresCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getGenres(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getGenresWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGenresWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all genres from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenresAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/HlsSegmentApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/HlsSegmentApi.java new file mode 100644 index 0000000000000..07eba2044cc44 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/HlsSegmentApi.java @@ -0,0 +1,805 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HlsSegmentApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public HlsSegmentApi() { + this(Configuration.getDefaultApiClient()); + } + + public HlsSegmentApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getHlsAudioSegmentLegacyAac + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyAacCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls/{segmentId}/stream.aac" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentLegacyAacValidateBeforeCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegmentLegacyAac(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegmentLegacyAac(Async)"); + } + + return getHlsAudioSegmentLegacyAacCall(itemId, segmentId, _callback); + + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public File getHlsAudioSegmentLegacyAac(String itemId, String segmentId) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentLegacyAacWithHttpInfo(itemId, segmentId); + return localVarResp.getData(); + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public ApiResponse getHlsAudioSegmentLegacyAacWithHttpInfo(String itemId, String segmentId) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyAacValidateBeforeCall(itemId, segmentId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the specified audio segment for an audio item. (asynchronously) + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyAacAsync(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyAacValidateBeforeCall(itemId, segmentId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsAudioSegmentLegacyMp3 + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyMp3Call(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls/{segmentId}/stream.mp3" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentLegacyMp3ValidateBeforeCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegmentLegacyMp3(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegmentLegacyMp3(Async)"); + } + + return getHlsAudioSegmentLegacyMp3Call(itemId, segmentId, _callback); + + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public File getHlsAudioSegmentLegacyMp3(String itemId, String segmentId) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentLegacyMp3WithHttpInfo(itemId, segmentId); + return localVarResp.getData(); + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public ApiResponse getHlsAudioSegmentLegacyMp3WithHttpInfo(String itemId, String segmentId) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyMp3ValidateBeforeCall(itemId, segmentId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the specified audio segment for an audio item. (asynchronously) + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyMp3Async(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyMp3ValidateBeforeCall(itemId, segmentId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsPlaylistLegacy + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsPlaylistLegacyCall(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls/{playlistId}/stream.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsPlaylistLegacyValidateBeforeCall(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsPlaylistLegacy(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsPlaylistLegacy(Async)"); + } + + return getHlsPlaylistLegacyCall(itemId, playlistId, _callback); + + } + + /** + * Gets a hls video playlist. + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsPlaylistLegacy(String itemId, String playlistId) throws ApiException { + ApiResponse localVarResp = getHlsPlaylistLegacyWithHttpInfo(itemId, playlistId); + return localVarResp.getData(); + } + + /** + * Gets a hls video playlist. + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsPlaylistLegacyWithHttpInfo(String itemId, String playlistId) throws ApiException { + okhttp3.Call localVarCall = getHlsPlaylistLegacyValidateBeforeCall(itemId, playlistId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls video playlist. (asynchronously) + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsPlaylistLegacyAsync(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsPlaylistLegacyValidateBeforeCall(itemId, playlistId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsVideoSegmentLegacy + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public okhttp3.Call getHlsVideoSegmentLegacyCall(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "segmentContainer" + "}", localVarApiClient.escapeString(segmentContainer.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsVideoSegmentLegacyValidateBeforeCall(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'segmentContainer' is set + if (segmentContainer == null) { + throw new ApiException("Missing the required parameter 'segmentContainer' when calling getHlsVideoSegmentLegacy(Async)"); + } + + return getHlsVideoSegmentLegacyCall(itemId, playlistId, segmentId, segmentContainer, _callback); + + } + + /** + * Gets a hls video segment. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public File getHlsVideoSegmentLegacy(String itemId, String playlistId, String segmentId, String segmentContainer) throws ApiException { + ApiResponse localVarResp = getHlsVideoSegmentLegacyWithHttpInfo(itemId, playlistId, segmentId, segmentContainer); + return localVarResp.getData(); + } + + /** + * Gets a hls video segment. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public ApiResponse getHlsVideoSegmentLegacyWithHttpInfo(String itemId, String playlistId, String segmentId, String segmentContainer) throws ApiException { + okhttp3.Call localVarCall = getHlsVideoSegmentLegacyValidateBeforeCall(itemId, playlistId, segmentId, segmentContainer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls video segment. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public okhttp3.Call getHlsVideoSegmentLegacyAsync(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsVideoSegmentLegacyValidateBeforeCall(itemId, playlistId, segmentId, segmentContainer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for stopEncodingProcess + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopEncodingProcessCall(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/ActiveEncodings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call stopEncodingProcessValidateBeforeCall(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deviceId' is set + if (deviceId == null) { + throw new ApiException("Missing the required parameter 'deviceId' when calling stopEncodingProcess(Async)"); + } + + // verify the required parameter 'playSessionId' is set + if (playSessionId == null) { + throw new ApiException("Missing the required parameter 'playSessionId' when calling stopEncodingProcess(Async)"); + } + + return stopEncodingProcessCall(deviceId, playSessionId, _callback); + + } + + /** + * Stops an active encoding. + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public void stopEncodingProcess(String deviceId, String playSessionId) throws ApiException { + stopEncodingProcessWithHttpInfo(deviceId, playSessionId); + } + + /** + * Stops an active encoding. + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse stopEncodingProcessWithHttpInfo(String deviceId, String playSessionId) throws ApiException { + okhttp3.Call localVarCall = stopEncodingProcessValidateBeforeCall(deviceId, playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Stops an active encoding. (asynchronously) + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopEncodingProcessAsync(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = stopEncodingProcessValidateBeforeCall(deviceId, playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ImageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ImageApi.java new file mode 100644 index 0000000000000..a5fb3bbe2df91 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ImageApi.java @@ -0,0 +1,8665 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ImageFormat; +import org.openapitools.client.model.ImageInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ImageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ImageApi() { + this(Configuration.getDefaultApiClient()); + } + + public ImageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteCustomSplashscreen + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteCustomSplashscreenCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteCustomSplashscreenValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return deleteCustomSplashscreenCall(_callback); + + } + + /** + * Delete a custom splashscreen. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public void deleteCustomSplashscreen() throws ApiException { + deleteCustomSplashscreenWithHttpInfo(); + } + + /** + * Delete a custom splashscreen. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public ApiResponse deleteCustomSplashscreenWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = deleteCustomSplashscreenValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete a custom splashscreen. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteCustomSplashscreenAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteCustomSplashscreenValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteItemImage(Async)"); + } + + return deleteItemImageCall(itemId, imageType, imageIndex, _callback); + + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteItemImage(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + deleteItemImageWithHttpInfo(itemId, imageType, imageIndex); + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = deleteItemImageValidateBeforeCall(itemId, imageType, imageIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete an item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageAsync(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemImageValidateBeforeCall(itemId, imageType, imageIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling deleteItemImageByIndex(Async)"); + } + + return deleteItemImageByIndexCall(itemId, imageType, imageIndex, _callback); + + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + deleteItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex); + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = deleteItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete an item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteUserImage + * @param userId User Id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserImage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserImageValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return deleteUserImageCall(userId, _callback); + + } + + /** + * Delete the user's image. + * + * @param userId User Id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public void deleteUserImage(UUID userId) throws ApiException { + deleteUserImageWithHttpInfo(userId); + } + + /** + * Delete the user's image. + * + * @param userId User Id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public ApiResponse deleteUserImageWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = deleteUserImageValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete the user's image. (asynchronously) + * + * @param userId User Id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserImageValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getArtistImage + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getArtistImageCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistImageValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getArtistImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getArtistImage(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getArtistImage(Async)"); + } + + return getArtistImageCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getArtistImage(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getArtistImageWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getArtistImageWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get artist image by name. (asynchronously) + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getArtistImageAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenreImage + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getGenreImage(Async)"); + } + + return getGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenreImageByIndex + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getGenreImageByIndex(Async)"); + } + + return getGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImage(Async)"); + } + + return getItemImageCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImage(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getItemImageWithHttpInfo(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageAsync(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImage2 + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImage2Call(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "maxWidth" + "}", localVarApiClient.escapeString(maxWidth.toString())) + .replace("{" + "maxHeight" + "}", localVarApiClient.escapeString(maxHeight.toString())) + .replace("{" + "tag" + "}", localVarApiClient.escapeString(tag.toString())) + .replace("{" + "format" + "}", localVarApiClient.escapeString(format.toString())) + .replace("{" + "percentPlayed" + "}", localVarApiClient.escapeString(percentPlayed.toString())) + .replace("{" + "unplayedCount" + "}", localVarApiClient.escapeString(unplayedCount.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImage2ValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'maxWidth' is set + if (maxWidth == null) { + throw new ApiException("Missing the required parameter 'maxWidth' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'maxHeight' is set + if (maxHeight == null) { + throw new ApiException("Missing the required parameter 'maxHeight' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'tag' is set + if (tag == null) { + throw new ApiException("Missing the required parameter 'tag' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'format' is set + if (format == null) { + throw new ApiException("Missing the required parameter 'format' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'percentPlayed' is set + if (percentPlayed == null) { + throw new ApiException("Missing the required parameter 'percentPlayed' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'unplayedCount' is set + if (unplayedCount == null) { + throw new ApiException("Missing the required parameter 'unplayedCount' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getItemImage2(Async)"); + } + + return getItemImage2Call(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImage2(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getItemImage2WithHttpInfo(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImage2WithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImage2Async(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getItemImageByIndex(Async)"); + } + + return getItemImageByIndexCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImageInfos + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemImageInfosCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageInfosValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImageInfos(Async)"); + } + + return getItemImageInfosCall(itemId, _callback); + + } + + /** + * Get item image infos. + * + * @param itemId Item id. (required) + * @return List<ImageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getItemImageInfos(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getItemImageInfosWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get item image infos. + * + * @param itemId Item id. (required) + * @return ApiResponse<List<ImageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getItemImageInfosWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getItemImageInfosValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get item image infos. (asynchronously) + * + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemImageInfosAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageInfosValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenreImage + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getMusicGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getMusicGenreImage(Async)"); + } + + return getMusicGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getMusicGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getMusicGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getMusicGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenreImageByIndex + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getMusicGenreImageByIndex(Async)"); + } + + return getMusicGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getMusicGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getMusicGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getMusicGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonImage + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPersonImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getPersonImage(Async)"); + } + + return getPersonImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getPersonImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getPersonImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getPersonImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonImageByIndex + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getPersonImageByIndex(Async)"); + } + + return getPersonImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getPersonImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getPersonImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getPersonImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSplashscreen + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public okhttp3.Call getSplashscreenCall(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + final String[] localVarAccepts = { + "image/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSplashscreenValidateBeforeCall(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + return getSplashscreenCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, _callback); + + } + + /** + * Generates or gets the splashscreen. + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public File getSplashscreen(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality) throws ApiException { + ApiResponse localVarResp = getSplashscreenWithHttpInfo(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality); + return localVarResp.getData(); + } + + /** + * Generates or gets the splashscreen. + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public ApiResponse getSplashscreenWithHttpInfo(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality) throws ApiException { + okhttp3.Call localVarCall = getSplashscreenValidateBeforeCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Generates or gets the splashscreen. (asynchronously) + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public okhttp3.Call getSplashscreenAsync(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSplashscreenValidateBeforeCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudioImage + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudioImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getStudioImage(Async)"); + } + + return getStudioImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getStudioImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getStudioImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getStudioImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudioImageByIndex + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getStudioImageByIndex(Async)"); + } + + return getStudioImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getStudioImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getStudioImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getStudioImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserImage + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageCall(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserImage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserImageValidateBeforeCall(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + return getUserImageCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public File getUserImage(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getUserImageWithHttpInfo(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public ApiResponse getUserImageWithHttpInfo(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getUserImageValidateBeforeCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageAsync(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserImageValidateBeforeCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headArtistImage + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headArtistImageCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headArtistImageValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headArtistImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headArtistImage(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headArtistImage(Async)"); + } + + return headArtistImageCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headArtistImage(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headArtistImageWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headArtistImageWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get artist image by name. (asynchronously) + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headArtistImageAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headGenreImage + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headGenreImage(Async)"); + } + + return headGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headGenreImageByIndex + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headGenreImageByIndex(Async)"); + } + + return headGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImage(Async)"); + } + + return headItemImageCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImage(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headItemImageWithHttpInfo(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageAsync(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImage2 + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImage2Call(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "maxWidth" + "}", localVarApiClient.escapeString(maxWidth.toString())) + .replace("{" + "maxHeight" + "}", localVarApiClient.escapeString(maxHeight.toString())) + .replace("{" + "tag" + "}", localVarApiClient.escapeString(tag.toString())) + .replace("{" + "format" + "}", localVarApiClient.escapeString(format.toString())) + .replace("{" + "percentPlayed" + "}", localVarApiClient.escapeString(percentPlayed.toString())) + .replace("{" + "unplayedCount" + "}", localVarApiClient.escapeString(unplayedCount.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImage2ValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'maxWidth' is set + if (maxWidth == null) { + throw new ApiException("Missing the required parameter 'maxWidth' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'maxHeight' is set + if (maxHeight == null) { + throw new ApiException("Missing the required parameter 'maxHeight' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'tag' is set + if (tag == null) { + throw new ApiException("Missing the required parameter 'tag' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'format' is set + if (format == null) { + throw new ApiException("Missing the required parameter 'format' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'percentPlayed' is set + if (percentPlayed == null) { + throw new ApiException("Missing the required parameter 'percentPlayed' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'unplayedCount' is set + if (unplayedCount == null) { + throw new ApiException("Missing the required parameter 'unplayedCount' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headItemImage2(Async)"); + } + + return headItemImage2Call(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImage2(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headItemImage2WithHttpInfo(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImage2WithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImage2Async(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headItemImageByIndex(Async)"); + } + + return headItemImageByIndexCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, format, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMusicGenreImage + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMusicGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headMusicGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headMusicGenreImage(Async)"); + } + + return headMusicGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headMusicGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headMusicGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headMusicGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMusicGenreImageByIndex + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMusicGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headMusicGenreImageByIndex(Async)"); + } + + return headMusicGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headMusicGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headMusicGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headMusicGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headPersonImage + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headPersonImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headPersonImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headPersonImage(Async)"); + } + + return headPersonImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headPersonImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headPersonImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headPersonImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headPersonImageByIndex + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headPersonImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headPersonImageByIndex(Async)"); + } + + return headPersonImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headPersonImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headPersonImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headPersonImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headStudioImage + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headStudioImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headStudioImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headStudioImage(Async)"); + } + + return headStudioImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headStudioImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headStudioImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headStudioImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headStudioImageByIndex + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headStudioImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headStudioImageByIndex(Async)"); + } + + return headStudioImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headStudioImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headStudioImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headStudioImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headUserImage + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageCall(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserImage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headUserImageValidateBeforeCall(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + return headUserImageCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public File headUserImage(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headUserImageWithHttpInfo(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public ApiResponse headUserImageWithHttpInfo(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headUserImageValidateBeforeCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
400 User id not provided. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageAsync(UUID userId, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headUserImageValidateBeforeCall(userId, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postUserImage + * @param userId User Id. (optional) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
400 Bad Request -
403 User does not have permission to delete the image. -
404 Item not found. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageCall(UUID userId, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/UserImage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUserImageValidateBeforeCall(UUID userId, File body, final ApiCallback _callback) throws ApiException { + return postUserImageCall(userId, body, _callback); + + } + + /** + * Sets the user image. + * + * @param userId User Id. (optional) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
400 Bad Request -
403 User does not have permission to delete the image. -
404 Item not found. -
401 Unauthorized -
+ */ + public void postUserImage(UUID userId, File body) throws ApiException { + postUserImageWithHttpInfo(userId, body); + } + + /** + * Sets the user image. + * + * @param userId User Id. (optional) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
400 Bad Request -
403 User does not have permission to delete the image. -
404 Item not found. -
401 Unauthorized -
+ */ + public ApiResponse postUserImageWithHttpInfo(UUID userId, File body) throws ApiException { + okhttp3.Call localVarCall = postUserImageValidateBeforeCall(userId, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the user image. (asynchronously) + * + * @param userId User Id. (optional) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
400 Bad Request -
403 User does not have permission to delete the image. -
404 Item not found. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageAsync(UUID userId, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUserImageValidateBeforeCall(userId, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageCall(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setItemImageValidateBeforeCall(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling setItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling setItemImage(Async)"); + } + + return setItemImageCall(itemId, imageType, body, _callback); + + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setItemImage(UUID itemId, ImageType imageType, File body) throws ApiException { + setItemImageWithHttpInfo(itemId, imageType, body); + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setItemImageWithHttpInfo(UUID itemId, ImageType imageType, File body) throws ApiException { + okhttp3.Call localVarCall = setItemImageValidateBeforeCall(itemId, imageType, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Set item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageAsync(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setItemImageValidateBeforeCall(itemId, imageType, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling setItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling setItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling setItemImageByIndex(Async)"); + } + + return setItemImageByIndexCall(itemId, imageType, imageIndex, body, _callback); + + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, File body) throws ApiException { + setItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, body); + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, File body) throws ApiException { + okhttp3.Call localVarCall = setItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Set item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
400 Bad Request -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateItemImageIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemImageIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newIndex", newIndex)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemImageIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'newIndex' is set + if (newIndex == null) { + throw new ApiException("Missing the required parameter 'newIndex' when calling updateItemImageIndex(Async)"); + } + + return updateItemImageIndexCall(itemId, imageType, imageIndex, newIndex, _callback); + + } + + /** + * Updates the index for an item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItemImageIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex) throws ApiException { + updateItemImageIndexWithHttpInfo(itemId, imageType, imageIndex, newIndex); + } + + /** + * Updates the index for an item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemImageIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex) throws ApiException { + okhttp3.Call localVarCall = updateItemImageIndexValidateBeforeCall(itemId, imageType, imageIndex, newIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates the index for an item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemImageIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemImageIndexValidateBeforeCall(itemId, imageType, imageIndex, newIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for uploadCustomSplashscreen + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call uploadCustomSplashscreenCall(File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uploadCustomSplashscreenValidateBeforeCall(File body, final ApiCallback _callback) throws ApiException { + return uploadCustomSplashscreenCall(body, _callback); + + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + * + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public void uploadCustomSplashscreen(File body) throws ApiException { + uploadCustomSplashscreenWithHttpInfo(body); + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + * + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public ApiResponse uploadCustomSplashscreenWithHttpInfo(File body) throws ApiException { + okhttp3.Call localVarCall = uploadCustomSplashscreenValidateBeforeCall(body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. (asynchronously) + * + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call uploadCustomSplashscreenAsync(File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uploadCustomSplashscreenValidateBeforeCall(body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/InstantMixApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/InstantMixApi.java new file mode 100644 index 0000000000000..fd00aa5459fb0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/InstantMixApi.java @@ -0,0 +1,1666 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class InstantMixApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public InstantMixApi() { + this(Configuration.getDefaultApiClient()); + } + + public InstantMixApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getInstantMixFromAlbum + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromAlbumCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Albums/{itemId}/InstantMix" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromAlbumValidateBeforeCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getInstantMixFromAlbum(Async)"); + } + + return getInstantMixFromAlbumCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given album. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromAlbum(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromAlbumWithHttpInfo(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given album. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromAlbumWithHttpInfo(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromAlbumValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given album. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromAlbumAsync(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromAlbumValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromArtists + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromArtistsCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{itemId}/InstantMix" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromArtistsValidateBeforeCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getInstantMixFromArtists(Async)"); + } + + return getInstantMixFromArtistsCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromArtists(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromArtistsWithHttpInfo(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromArtistsWithHttpInfo(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromArtistsValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given artist. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromArtistsAsync(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromArtistsValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromArtists2 + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getInstantMixFromArtists2Call(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/InstantMix"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromArtists2ValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromArtists2(Async)"); + } + + return getInstantMixFromArtists2Call(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getInstantMixFromArtists2(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromArtists2WithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getInstantMixFromArtists2WithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromArtists2ValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given artist. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getInstantMixFromArtists2Async(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromArtists2ValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromItem + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromItemCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/InstantMix" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromItemValidateBeforeCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getInstantMixFromItem(Async)"); + } + + return getInstantMixFromItemCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromItem(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromItemWithHttpInfo(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromItemWithHttpInfo(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromItemValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromItemAsync(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromItemValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromMusicGenreById + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByIdCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/InstantMix"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromMusicGenreByIdValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromMusicGenreById(Async)"); + } + + return getInstantMixFromMusicGenreByIdCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromMusicGenreById(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromMusicGenreByIdWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromMusicGenreByIdWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByIdValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given genre. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByIdAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByIdValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromMusicGenreByName + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByNameCall(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/InstantMix" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromMusicGenreByNameValidateBeforeCall(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getInstantMixFromMusicGenreByName(Async)"); + } + + return getInstantMixFromMusicGenreByNameCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromMusicGenreByName(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromMusicGenreByNameWithHttpInfo(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromMusicGenreByNameWithHttpInfo(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByNameValidateBeforeCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given genre. (asynchronously) + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByNameAsync(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByNameValidateBeforeCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromPlaylist + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromPlaylistCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{itemId}/InstantMix" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromPlaylistValidateBeforeCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getInstantMixFromPlaylist(Async)"); + } + + return getInstantMixFromPlaylistCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given playlist. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromPlaylist(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromPlaylistWithHttpInfo(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given playlist. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromPlaylistWithHttpInfo(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromPlaylistValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given playlist. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromPlaylistAsync(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromPlaylistValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromSong + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromSongCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Songs/{itemId}/InstantMix" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromSongValidateBeforeCall(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getInstantMixFromSong(Async)"); + } + + return getInstantMixFromSongCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given song. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromSong(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromSongWithHttpInfo(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given song. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromSongWithHttpInfo(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromSongValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given song. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromSongAsync(UUID itemId, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromSongValidateBeforeCall(itemId, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemLookupApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemLookupApi.java new file mode 100644 index 0000000000000..b15800f453050 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemLookupApi.java @@ -0,0 +1,1636 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AlbumInfoRemoteSearchQuery; +import org.openapitools.client.model.ArtistInfoRemoteSearchQuery; +import org.openapitools.client.model.BookInfoRemoteSearchQuery; +import org.openapitools.client.model.BoxSetInfoRemoteSearchQuery; +import org.openapitools.client.model.ExternalIdInfo; +import org.openapitools.client.model.MovieInfoRemoteSearchQuery; +import org.openapitools.client.model.MusicVideoInfoRemoteSearchQuery; +import org.openapitools.client.model.PersonLookupInfoRemoteSearchQuery; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteSearchResult; +import org.openapitools.client.model.SeriesInfoRemoteSearchQuery; +import org.openapitools.client.model.TrailerInfoRemoteSearchQuery; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemLookupApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemLookupApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemLookupApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for applySearchCriteria + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call applySearchCriteriaCall(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = remoteSearchResult; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Apply/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (replaceAllImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllImages", replaceAllImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call applySearchCriteriaValidateBeforeCall(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling applySearchCriteria(Async)"); + } + + // verify the required parameter 'remoteSearchResult' is set + if (remoteSearchResult == null) { + throw new ApiException("Missing the required parameter 'remoteSearchResult' when calling applySearchCriteria(Async)"); + } + + return applySearchCriteriaCall(itemId, remoteSearchResult, replaceAllImages, _callback); + + } + + /** + * Applies search criteria to an item and refreshes metadata. + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void applySearchCriteria(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages) throws ApiException { + applySearchCriteriaWithHttpInfo(itemId, remoteSearchResult, replaceAllImages); + } + + /** + * Applies search criteria to an item and refreshes metadata. + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse applySearchCriteriaWithHttpInfo(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages) throws ApiException { + okhttp3.Call localVarCall = applySearchCriteriaValidateBeforeCall(itemId, remoteSearchResult, replaceAllImages, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Applies search criteria to an item and refreshes metadata. (asynchronously) + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call applySearchCriteriaAsync(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = applySearchCriteriaValidateBeforeCall(itemId, remoteSearchResult, replaceAllImages, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getBookRemoteSearchResults + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBookRemoteSearchResultsCall(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bookInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Book"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBookRemoteSearchResultsValidateBeforeCall(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bookInfoRemoteSearchQuery' is set + if (bookInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'bookInfoRemoteSearchQuery' when calling getBookRemoteSearchResults(Async)"); + } + + return getBookRemoteSearchResultsCall(bookInfoRemoteSearchQuery, _callback); + + } + + /** + * Get book remote search. + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getBookRemoteSearchResults(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getBookRemoteSearchResultsWithHttpInfo(bookInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get book remote search. + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getBookRemoteSearchResultsWithHttpInfo(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getBookRemoteSearchResultsValidateBeforeCall(bookInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get book remote search. (asynchronously) + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBookRemoteSearchResultsAsync(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getBookRemoteSearchResultsValidateBeforeCall(bookInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBoxSetRemoteSearchResults + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBoxSetRemoteSearchResultsCall(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = boxSetInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/BoxSet"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBoxSetRemoteSearchResultsValidateBeforeCall(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'boxSetInfoRemoteSearchQuery' is set + if (boxSetInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'boxSetInfoRemoteSearchQuery' when calling getBoxSetRemoteSearchResults(Async)"); + } + + return getBoxSetRemoteSearchResultsCall(boxSetInfoRemoteSearchQuery, _callback); + + } + + /** + * Get box set remote search. + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getBoxSetRemoteSearchResults(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getBoxSetRemoteSearchResultsWithHttpInfo(boxSetInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get box set remote search. + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getBoxSetRemoteSearchResultsWithHttpInfo(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getBoxSetRemoteSearchResultsValidateBeforeCall(boxSetInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get box set remote search. (asynchronously) + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBoxSetRemoteSearchResultsAsync(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getBoxSetRemoteSearchResultsValidateBeforeCall(boxSetInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getExternalIdInfos + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getExternalIdInfosCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ExternalIdInfos" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getExternalIdInfosValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getExternalIdInfos(Async)"); + } + + return getExternalIdInfosCall(itemId, _callback); + + } + + /** + * Get the item's external id info. + * + * @param itemId Item id. (required) + * @return List<ExternalIdInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getExternalIdInfos(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getExternalIdInfosWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get the item's external id info. + * + * @param itemId Item id. (required) + * @return ApiResponse<List<ExternalIdInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getExternalIdInfosWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getExternalIdInfosValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get the item's external id info. (asynchronously) + * + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getExternalIdInfosAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getExternalIdInfosValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMovieRemoteSearchResults + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRemoteSearchResultsCall(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = movieInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Movie"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMovieRemoteSearchResultsValidateBeforeCall(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'movieInfoRemoteSearchQuery' is set + if (movieInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'movieInfoRemoteSearchQuery' when calling getMovieRemoteSearchResults(Async)"); + } + + return getMovieRemoteSearchResultsCall(movieInfoRemoteSearchQuery, _callback); + + } + + /** + * Get movie remote search. + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMovieRemoteSearchResults(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMovieRemoteSearchResultsWithHttpInfo(movieInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get movie remote search. + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMovieRemoteSearchResultsWithHttpInfo(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMovieRemoteSearchResultsValidateBeforeCall(movieInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get movie remote search. (asynchronously) + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRemoteSearchResultsAsync(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMovieRemoteSearchResultsValidateBeforeCall(movieInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicAlbumRemoteSearchResults + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicAlbumRemoteSearchResultsCall(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = albumInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicAlbum"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicAlbumRemoteSearchResultsValidateBeforeCall(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'albumInfoRemoteSearchQuery' is set + if (albumInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'albumInfoRemoteSearchQuery' when calling getMusicAlbumRemoteSearchResults(Async)"); + } + + return getMusicAlbumRemoteSearchResultsCall(albumInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music album remote search. + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicAlbumRemoteSearchResults(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicAlbumRemoteSearchResultsWithHttpInfo(albumInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music album remote search. + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicAlbumRemoteSearchResultsWithHttpInfo(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicAlbumRemoteSearchResultsValidateBeforeCall(albumInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music album remote search. (asynchronously) + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicAlbumRemoteSearchResultsAsync(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicAlbumRemoteSearchResultsValidateBeforeCall(albumInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicArtistRemoteSearchResults + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicArtistRemoteSearchResultsCall(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = artistInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicArtist"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicArtistRemoteSearchResultsValidateBeforeCall(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'artistInfoRemoteSearchQuery' is set + if (artistInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'artistInfoRemoteSearchQuery' when calling getMusicArtistRemoteSearchResults(Async)"); + } + + return getMusicArtistRemoteSearchResultsCall(artistInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music artist remote search. + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicArtistRemoteSearchResults(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicArtistRemoteSearchResultsWithHttpInfo(artistInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music artist remote search. + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicArtistRemoteSearchResultsWithHttpInfo(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicArtistRemoteSearchResultsValidateBeforeCall(artistInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music artist remote search. (asynchronously) + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicArtistRemoteSearchResultsAsync(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicArtistRemoteSearchResultsValidateBeforeCall(artistInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicVideoRemoteSearchResults + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicVideoRemoteSearchResultsCall(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = musicVideoInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicVideo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicVideoRemoteSearchResultsValidateBeforeCall(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'musicVideoInfoRemoteSearchQuery' is set + if (musicVideoInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'musicVideoInfoRemoteSearchQuery' when calling getMusicVideoRemoteSearchResults(Async)"); + } + + return getMusicVideoRemoteSearchResultsCall(musicVideoInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music video remote search. + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicVideoRemoteSearchResults(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicVideoRemoteSearchResultsWithHttpInfo(musicVideoInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music video remote search. + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicVideoRemoteSearchResultsWithHttpInfo(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicVideoRemoteSearchResultsValidateBeforeCall(musicVideoInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music video remote search. (asynchronously) + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicVideoRemoteSearchResultsAsync(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicVideoRemoteSearchResultsValidateBeforeCall(musicVideoInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonRemoteSearchResults + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonRemoteSearchResultsCall(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = personLookupInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Person"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonRemoteSearchResultsValidateBeforeCall(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'personLookupInfoRemoteSearchQuery' is set + if (personLookupInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'personLookupInfoRemoteSearchQuery' when calling getPersonRemoteSearchResults(Async)"); + } + + return getPersonRemoteSearchResultsCall(personLookupInfoRemoteSearchQuery, _callback); + + } + + /** + * Get person remote search. + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPersonRemoteSearchResults(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getPersonRemoteSearchResultsWithHttpInfo(personLookupInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get person remote search. + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPersonRemoteSearchResultsWithHttpInfo(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getPersonRemoteSearchResultsValidateBeforeCall(personLookupInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person remote search. (asynchronously) + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonRemoteSearchResultsAsync(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonRemoteSearchResultsValidateBeforeCall(personLookupInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesRemoteSearchResults + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesRemoteSearchResultsCall(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Series"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesRemoteSearchResultsValidateBeforeCall(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesInfoRemoteSearchQuery' is set + if (seriesInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'seriesInfoRemoteSearchQuery' when calling getSeriesRemoteSearchResults(Async)"); + } + + return getSeriesRemoteSearchResultsCall(seriesInfoRemoteSearchQuery, _callback); + + } + + /** + * Get series remote search. + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSeriesRemoteSearchResults(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getSeriesRemoteSearchResultsWithHttpInfo(seriesInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get series remote search. + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSeriesRemoteSearchResultsWithHttpInfo(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getSeriesRemoteSearchResultsValidateBeforeCall(seriesInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get series remote search. (asynchronously) + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesRemoteSearchResultsAsync(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesRemoteSearchResultsValidateBeforeCall(seriesInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTrailerRemoteSearchResults + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailerRemoteSearchResultsCall(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = trailerInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Trailer"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrailerRemoteSearchResultsValidateBeforeCall(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'trailerInfoRemoteSearchQuery' is set + if (trailerInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'trailerInfoRemoteSearchQuery' when calling getTrailerRemoteSearchResults(Async)"); + } + + return getTrailerRemoteSearchResultsCall(trailerInfoRemoteSearchQuery, _callback); + + } + + /** + * Get trailer remote search. + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTrailerRemoteSearchResults(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getTrailerRemoteSearchResultsWithHttpInfo(trailerInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get trailer remote search. + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTrailerRemoteSearchResultsWithHttpInfo(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getTrailerRemoteSearchResultsValidateBeforeCall(trailerInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get trailer remote search. (asynchronously) + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailerRemoteSearchResultsAsync(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrailerRemoteSearchResultsValidateBeforeCall(trailerInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemRefreshApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemRefreshApi.java new file mode 100644 index 0000000000000..67a7b24f6c6e0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemRefreshApi.java @@ -0,0 +1,254 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.MetadataRefreshMode; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemRefreshApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemRefreshApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemRefreshApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for refreshItem + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param regenerateTrickplay (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshItemCall(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, Boolean regenerateTrickplay, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Refresh" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (metadataRefreshMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("metadataRefreshMode", metadataRefreshMode)); + } + + if (imageRefreshMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageRefreshMode", imageRefreshMode)); + } + + if (replaceAllMetadata != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllMetadata", replaceAllMetadata)); + } + + if (replaceAllImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllImages", replaceAllImages)); + } + + if (regenerateTrickplay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("regenerateTrickplay", regenerateTrickplay)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call refreshItemValidateBeforeCall(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, Boolean regenerateTrickplay, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling refreshItem(Async)"); + } + + return refreshItemCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay, _callback); + + } + + /** + * Refreshes metadata for an item. + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param regenerateTrickplay (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void refreshItem(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, Boolean regenerateTrickplay) throws ApiException { + refreshItemWithHttpInfo(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay); + } + + /** + * Refreshes metadata for an item. + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param regenerateTrickplay (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse refreshItemWithHttpInfo(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, Boolean regenerateTrickplay) throws ApiException { + okhttp3.Call localVarCall = refreshItemValidateBeforeCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Refreshes metadata for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param regenerateTrickplay (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshItemAsync(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, Boolean regenerateTrickplay, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = refreshItemValidateBeforeCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, regenerateTrickplay, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemUpdateApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemUpdateApi.java new file mode 100644 index 0000000000000..486d46020a0d7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemUpdateApi.java @@ -0,0 +1,513 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.MetadataEditorInfo; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemUpdateApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemUpdateApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemUpdateApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMetadataEditorInfo + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMetadataEditorInfoCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/MetadataEditor" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMetadataEditorInfoValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMetadataEditorInfo(Async)"); + } + + return getMetadataEditorInfoCall(itemId, _callback); + + } + + /** + * Gets metadata editor info for an item. + * + * @param itemId The item id. (required) + * @return MetadataEditorInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public MetadataEditorInfo getMetadataEditorInfo(UUID itemId) throws ApiException { + ApiResponse localVarResp = getMetadataEditorInfoWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets metadata editor info for an item. + * + * @param itemId The item id. (required) + * @return ApiResponse<MetadataEditorInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMetadataEditorInfoWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getMetadataEditorInfoValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets metadata editor info for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMetadataEditorInfoAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMetadataEditorInfoValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateItem + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemCall(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = baseItemDto; + + // create path and map variables + String localVarPath = "/Items/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemValidateBeforeCall(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItem(Async)"); + } + + // verify the required parameter 'baseItemDto' is set + if (baseItemDto == null) { + throw new ApiException("Missing the required parameter 'baseItemDto' when calling updateItem(Async)"); + } + + return updateItemCall(itemId, baseItemDto, _callback); + + } + + /** + * Updates an item. + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItem(UUID itemId, BaseItemDto baseItemDto) throws ApiException { + updateItemWithHttpInfo(itemId, baseItemDto); + } + + /** + * Updates an item. + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemWithHttpInfo(UUID itemId, BaseItemDto baseItemDto) throws ApiException { + okhttp3.Call localVarCall = updateItemValidateBeforeCall(itemId, baseItemDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemAsync(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemValidateBeforeCall(itemId, baseItemDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateItemContentType + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemContentTypeCall(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ContentType" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (contentType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("contentType", contentType)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemContentTypeValidateBeforeCall(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItemContentType(Async)"); + } + + return updateItemContentTypeCall(itemId, contentType, _callback); + + } + + /** + * Updates an item's content type. + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItemContentType(UUID itemId, String contentType) throws ApiException { + updateItemContentTypeWithHttpInfo(itemId, contentType); + } + + /** + * Updates an item's content type. + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemContentTypeWithHttpInfo(UUID itemId, String contentType) throws ApiException { + okhttp3.Call localVarCall = updateItemContentTypeValidateBeforeCall(itemId, contentType, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates an item's content type. (asynchronously) + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemContentTypeAsync(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemContentTypeValidateBeforeCall(itemId, contentType, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemsApi.java new file mode 100644 index 0000000000000..313a71338a0cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ItemsApi.java @@ -0,0 +1,1462 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.LocationType; +import org.openapitools.client.model.MediaType; +import java.time.OffsetDateTime; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SeriesStatus; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; +import org.openapitools.client.model.UpdateUserItemDataDto; +import org.openapitools.client.model.UserItemDataDto; +import org.openapitools.client.model.VideoType; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getItemUserData + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return item user data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemUserDataCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserItems/{itemId}/UserData" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemUserDataValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemUserData(Async)"); + } + + return getItemUserDataCall(itemId, userId, _callback); + + } + + /** + * Get Item User Data. + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return item user data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto getItemUserData(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getItemUserDataWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Get Item User Data. + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return item user data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemUserDataWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getItemUserDataValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Item User Data. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return item user data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemUserDataAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemUserDataValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItems + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param indexNumber Optional filter by index number. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer indexNumber, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxOfficialRating", maxOfficialRating)); + } + + if (hasThemeSong != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeSong", hasThemeSong)); + } + + if (hasThemeVideo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeVideo", hasThemeVideo)); + } + + if (hasSubtitles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSubtitles", hasSubtitles)); + } + + if (hasSpecialFeature != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSpecialFeature", hasSpecialFeature)); + } + + if (hasTrailer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTrailer", hasTrailer)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (indexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("indexNumber", indexNumber)); + } + + if (parentIndexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentIndexNumber", parentIndexNumber)); + } + + if (hasParentalRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasParentalRating", hasParentalRating)); + } + + if (isHd != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHd", isHd)); + } + + if (is4K != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is4K", is4K)); + } + + if (locationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "locationTypes", locationTypes)); + } + + if (excludeLocationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeLocationTypes", excludeLocationTypes)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (isUnaired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isUnaired", isUnaired)); + } + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (minCriticRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCriticRating", minCriticRating)); + } + + if (minPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minPremiereDate", minPremiereDate)); + } + + if (minDateLastSaved != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSaved", minDateLastSaved)); + } + + if (minDateLastSavedForUser != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSavedForUser", minDateLastSavedForUser)); + } + + if (maxPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxPremiereDate", maxPremiereDate)); + } + + if (hasOverview != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOverview", hasOverview)); + } + + if (hasImdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasImdbId", hasImdbId)); + } + + if (hasTmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTmdbId", hasTmdbId)); + } + + if (hasTvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTvdbId", hasTvdbId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (excludeItemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemIds", excludeItemIds)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (imageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "imageTypes", imageTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (artists != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artists", artists)); + } + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (artistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artistIds", artistIds)); + } + + if (albumArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumArtistIds", albumArtistIds)); + } + + if (contributingArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "contributingArtistIds", contributingArtistIds)); + } + + if (albums != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albums", albums)); + } + + if (albumIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumIds", albumIds)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (videoTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "videoTypes", videoTypes)); + } + + if (minOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minOfficialRating", minOfficialRating)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + if (isPlaceHolder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlaceHolder", isPlaceHolder)); + } + + if (hasOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOfficialRating", hasOfficialRating)); + } + + if (collapseBoxSetItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collapseBoxSetItems", collapseBoxSetItems)); + } + + if (minWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minWidth", minWidth)); + } + + if (minHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minHeight", minHeight)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (is3D != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is3D", is3D)); + } + + if (seriesStatus != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "seriesStatus", seriesStatus)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemsValidateBeforeCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer indexNumber, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getItemsCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param indexNumber Optional filter by index number. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getItems(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer indexNumber, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getItemsWithHttpInfo(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + return localVarResp.getData(); + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param indexNumber Optional filter by index number. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemsWithHttpInfo(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer indexNumber, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getItemsValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets items based on a query. (asynchronously) + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param indexNumber Optional filter by index number. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsAsync(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer indexNumber, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemsValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, indexNumber, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getResumeItems + * @param userId The user id. (optional) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getResumeItemsCall(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserItems/Resume"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (excludeActiveSessions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("excludeActiveSessions", excludeActiveSessions)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getResumeItemsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + return getResumeItemsCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, _callback); + + } + + /** + * Gets items based on a query. + * + * @param userId The user id. (optional) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getResumeItems(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions) throws ApiException { + ApiResponse localVarResp = getResumeItemsWithHttpInfo(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions); + return localVarResp.getData(); + } + + /** + * Gets items based on a query. + * + * @param userId The user id. (optional) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getResumeItemsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions) throws ApiException { + okhttp3.Call localVarCall = getResumeItemsValidateBeforeCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets items based on a query. (asynchronously) + * + * @param userId The user id. (optional) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getResumeItemsAsync(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getResumeItemsValidateBeforeCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateItemUserData + * @param itemId The item id. (required) + * @param updateUserItemDataDto New user data object. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return updated user item data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemUserDataCall(UUID itemId, UpdateUserItemDataDto updateUserItemDataDto, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateUserItemDataDto; + + // create path and map variables + String localVarPath = "/UserItems/{itemId}/UserData" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemUserDataValidateBeforeCall(UUID itemId, UpdateUserItemDataDto updateUserItemDataDto, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItemUserData(Async)"); + } + + // verify the required parameter 'updateUserItemDataDto' is set + if (updateUserItemDataDto == null) { + throw new ApiException("Missing the required parameter 'updateUserItemDataDto' when calling updateItemUserData(Async)"); + } + + return updateItemUserDataCall(itemId, updateUserItemDataDto, userId, _callback); + + } + + /** + * Update Item User Data. + * + * @param itemId The item id. (required) + * @param updateUserItemDataDto New user data object. (required) + * @param userId The user id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return updated user item data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto updateItemUserData(UUID itemId, UpdateUserItemDataDto updateUserItemDataDto, UUID userId) throws ApiException { + ApiResponse localVarResp = updateItemUserDataWithHttpInfo(itemId, updateUserItemDataDto, userId); + return localVarResp.getData(); + } + + /** + * Update Item User Data. + * + * @param itemId The item id. (required) + * @param updateUserItemDataDto New user data object. (required) + * @param userId The user id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return updated user item data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemUserDataWithHttpInfo(UUID itemId, UpdateUserItemDataDto updateUserItemDataDto, UUID userId) throws ApiException { + okhttp3.Call localVarCall = updateItemUserDataValidateBeforeCall(itemId, updateUserItemDataDto, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update Item User Data. (asynchronously) + * + * @param itemId The item id. (required) + * @param updateUserItemDataDto New user data object. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 return updated user item data. -
404 Item is not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemUserDataAsync(UUID itemId, UpdateUserItemDataDto updateUserItemDataDto, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemUserDataValidateBeforeCall(itemId, updateUserItemDataDto, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryApi.java new file mode 100644 index 0000000000000..8a30040a193d4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryApi.java @@ -0,0 +1,3802 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AllThemeMediaResult; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.CollectionType; +import java.io.File; +import org.openapitools.client.model.ItemCounts; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.LibraryOptionsResultDto; +import org.openapitools.client.model.MediaUpdateInfoDto; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SortOrder; +import org.openapitools.client.model.ThemeMediaResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LibraryApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LibraryApi() { + this(Configuration.getDefaultApiClient()); + } + + public LibraryApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteItem + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
404 Item not found. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItem(Async)"); + } + + return deleteItemCall(itemId, _callback); + + } + + /** + * Deletes an item from the library and filesystem. + * + * @param itemId The item id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
404 Item not found. -
403 Forbidden -
+ */ + public void deleteItem(UUID itemId) throws ApiException { + deleteItemWithHttpInfo(itemId); + } + + /** + * Deletes an item from the library and filesystem. + * + * @param itemId The item id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
404 Item not found. -
403 Forbidden -
+ */ + public ApiResponse deleteItemWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteItemValidateBeforeCall(itemId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an item from the library and filesystem. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
404 Item not found. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemValidateBeforeCall(itemId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItems + * @param ids The item ids. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
404 Not Found -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemsCall(List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemsValidateBeforeCall(List ids, final ApiCallback _callback) throws ApiException { + return deleteItemsCall(ids, _callback); + + } + + /** + * Deletes items from the library and filesystem. + * + * @param ids The item ids. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
404 Not Found -
403 Forbidden -
+ */ + public void deleteItems(List ids) throws ApiException { + deleteItemsWithHttpInfo(ids); + } + + /** + * Deletes items from the library and filesystem. + * + * @param ids The item ids. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
404 Not Found -
403 Forbidden -
+ */ + public ApiResponse deleteItemsWithHttpInfo(List ids) throws ApiException { + okhttp3.Call localVarCall = deleteItemsValidateBeforeCall(ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes items from the library and filesystem. (asynchronously) + * + * @param ids The item ids. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
404 Not Found -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemsAsync(List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemsValidateBeforeCall(ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAncestors + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAncestorsCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Ancestors" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAncestorsValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAncestors(Async)"); + } + + return getAncestorsCall(itemId, userId, _callback); + + } + + /** + * Gets all parents of an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAncestors(UUID itemId, UUID userId) throws ApiException { + ApiResponse> localVarResp = getAncestorsWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets all parents of an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAncestorsWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getAncestorsValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all parents of an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAncestorsAsync(UUID itemId, UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAncestorsValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCriticReviews + * @param itemId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getCriticReviewsCall(String itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/CriticReviews" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getCriticReviewsValidateBeforeCall(String itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getCriticReviews(Async)"); + } + + return getCriticReviewsCall(itemId, _callback); + + } + + /** + * Gets critic review for an item. + * + * @param itemId (required) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getCriticReviews(String itemId) throws ApiException { + ApiResponse localVarResp = getCriticReviewsWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets critic review for an item. + * + * @param itemId (required) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getCriticReviewsWithHttpInfo(String itemId) throws ApiException { + okhttp3.Call localVarCall = getCriticReviewsValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets critic review for an item. (asynchronously) + * + * @param itemId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getCriticReviewsAsync(String itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getCriticReviewsValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDownload + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDownloadCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Download" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDownloadValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getDownload(Async)"); + } + + return getDownloadCall(itemId, _callback); + + } + + /** + * Downloads item media. + * + * @param itemId The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getDownload(UUID itemId) throws ApiException { + ApiResponse localVarResp = getDownloadWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Downloads item media. + * + * @param itemId The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDownloadWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getDownloadValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Downloads item media. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDownloadAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDownloadValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFile + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFileCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/File" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFileValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getFile(Async)"); + } + + return getFileCall(itemId, _callback); + + } + + /** + * Get the original file of an item. + * + * @param itemId The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getFile(UUID itemId) throws ApiException { + ApiResponse localVarResp = getFileWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get the original file of an item. + * + * @param itemId The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFileWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getFileValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get the original file of an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFileAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFileValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemCounts + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCountsCall(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Counts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemCountsValidateBeforeCall(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + return getItemCountsCall(userId, isFavorite, _callback); + + } + + /** + * Get item counts. + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @return ItemCounts + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ItemCounts getItemCounts(UUID userId, Boolean isFavorite) throws ApiException { + ApiResponse localVarResp = getItemCountsWithHttpInfo(userId, isFavorite); + return localVarResp.getData(); + } + + /** + * Get item counts. + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @return ApiResponse<ItemCounts> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemCountsWithHttpInfo(UUID userId, Boolean isFavorite) throws ApiException { + okhttp3.Call localVarCall = getItemCountsValidateBeforeCall(userId, isFavorite, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get item counts. (asynchronously) + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCountsAsync(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemCountsValidateBeforeCall(userId, isFavorite, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLibraryOptionsInfo + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLibraryOptionsInfoCall(CollectionType libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Libraries/AvailableOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (libraryContentType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("libraryContentType", libraryContentType)); + } + + if (isNewLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNewLibrary", isNewLibrary)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLibraryOptionsInfoValidateBeforeCall(CollectionType libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + return getLibraryOptionsInfoCall(libraryContentType, isNewLibrary, _callback); + + } + + /** + * Gets the library options info. + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @return LibraryOptionsResultDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public LibraryOptionsResultDto getLibraryOptionsInfo(CollectionType libraryContentType, Boolean isNewLibrary) throws ApiException { + ApiResponse localVarResp = getLibraryOptionsInfoWithHttpInfo(libraryContentType, isNewLibrary); + return localVarResp.getData(); + } + + /** + * Gets the library options info. + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @return ApiResponse<LibraryOptionsResultDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLibraryOptionsInfoWithHttpInfo(CollectionType libraryContentType, Boolean isNewLibrary) throws ApiException { + okhttp3.Call localVarCall = getLibraryOptionsInfoValidateBeforeCall(libraryContentType, isNewLibrary, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the library options info. (asynchronously) + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLibraryOptionsInfoAsync(CollectionType libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLibraryOptionsInfoValidateBeforeCall(libraryContentType, isNewLibrary, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaFolders + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaFoldersCall(Boolean isHidden, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/MediaFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaFoldersValidateBeforeCall(Boolean isHidden, final ApiCallback _callback) throws ApiException { + return getMediaFoldersCall(isHidden, _callback); + + } + + /** + * Gets all user media folders. + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getMediaFolders(Boolean isHidden) throws ApiException { + ApiResponse localVarResp = getMediaFoldersWithHttpInfo(isHidden); + return localVarResp.getData(); + } + + /** + * Gets all user media folders. + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMediaFoldersWithHttpInfo(Boolean isHidden) throws ApiException { + okhttp3.Call localVarCall = getMediaFoldersValidateBeforeCall(isHidden, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all user media folders. (asynchronously) + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaFoldersAsync(Boolean isHidden, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaFoldersValidateBeforeCall(isHidden, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPhysicalPaths + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPhysicalPathsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/PhysicalPaths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPhysicalPathsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPhysicalPathsCall(_callback); + + } + + /** + * Gets a list of physical paths from virtual folders. + * + * @return List<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPhysicalPaths() throws ApiException { + ApiResponse> localVarResp = getPhysicalPathsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of physical paths from virtual folders. + * + * @return ApiResponse<List<String>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPhysicalPathsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPhysicalPathsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of physical paths from virtual folders. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPhysicalPathsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPhysicalPathsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarAlbums + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarAlbumsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Albums/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarAlbumsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarAlbums(Async)"); + } + + return getSimilarAlbumsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarAlbums(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarAlbumsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarAlbumsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarAlbumsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarAlbumsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarAlbumsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarArtists + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarArtistsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarArtistsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarArtists(Async)"); + } + + return getSimilarArtistsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarArtists(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarArtistsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarArtistsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarArtistsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarArtistsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarArtistsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarItems + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarItemsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarItemsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarItems(Async)"); + } + + return getSimilarItemsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarItems(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarItemsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarItemsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarItemsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarItemsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarItemsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarMovies + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarMoviesCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Movies/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarMoviesValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarMovies(Async)"); + } + + return getSimilarMoviesCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarMovies(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarMoviesWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarMoviesWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarMoviesValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarMoviesAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarMoviesValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarShows + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarShowsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarShowsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarShows(Async)"); + } + + return getSimilarShowsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarShows(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarShowsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarShowsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarShowsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarShowsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarShowsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarTrailers + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarTrailersCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Trailers/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarTrailersValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarTrailers(Async)"); + } + + return getSimilarTrailersCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarTrailers(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarTrailersWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarTrailersWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarTrailersValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarTrailersAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarTrailersValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeMedia + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeMediaCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeMedia" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeMediaValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeMedia(Async)"); + } + + return getThemeMediaCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + + } + + /** + * Get theme songs and videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return AllThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public AllThemeMediaResult getThemeMedia(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + ApiResponse localVarResp = getThemeMediaWithHttpInfo(itemId, userId, inheritFromParent, sortBy, sortOrder); + return localVarResp.getData(); + } + + /** + * Get theme songs and videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return ApiResponse<AllThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeMediaWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + okhttp3.Call localVarCall = getThemeMediaValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme songs and videos for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeMediaAsync(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeMediaValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeSongs + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeSongsCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeSongs" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeSongsValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeSongs(Async)"); + } + + return getThemeSongsCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + + } + + /** + * Get theme songs for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return ThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ThemeMediaResult getThemeSongs(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + ApiResponse localVarResp = getThemeSongsWithHttpInfo(itemId, userId, inheritFromParent, sortBy, sortOrder); + return localVarResp.getData(); + } + + /** + * Get theme songs for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return ApiResponse<ThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeSongsWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + okhttp3.Call localVarCall = getThemeSongsValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme songs for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeSongsAsync(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeSongsValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeVideos + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeVideosCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeVideos" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeVideosValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeVideos(Async)"); + } + + return getThemeVideosCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + + } + + /** + * Get theme videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return ThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ThemeMediaResult getThemeVideos(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + ApiResponse localVarResp = getThemeVideosWithHttpInfo(itemId, userId, inheritFromParent, sortBy, sortOrder); + return localVarResp.getData(); + } + + /** + * Get theme videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @return ApiResponse<ThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeVideosWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder) throws ApiException { + okhttp3.Call localVarCall = getThemeVideosValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme videos for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param sortOrder Optional. Sort Order - Ascending, Descending. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeVideosAsync(UUID itemId, UUID userId, Boolean inheritFromParent, List sortBy, List sortOrder, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeVideosValidateBeforeCall(itemId, userId, inheritFromParent, sortBy, sortOrder, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postAddedMovies + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedMoviesCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Movies/Added"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tmdbId", tmdbId)); + } + + if (imdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imdbId", imdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postAddedMoviesValidateBeforeCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + return postAddedMoviesCall(tmdbId, imdbId, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postAddedMovies(String tmdbId, String imdbId) throws ApiException { + postAddedMoviesWithHttpInfo(tmdbId, imdbId); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postAddedMoviesWithHttpInfo(String tmdbId, String imdbId) throws ApiException { + okhttp3.Call localVarCall = postAddedMoviesValidateBeforeCall(tmdbId, imdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedMoviesAsync(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postAddedMoviesValidateBeforeCall(tmdbId, imdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postAddedSeries + * @param tvdbId The tvdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedSeriesCall(String tvdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Series/Added"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tvdbId", tvdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postAddedSeriesValidateBeforeCall(String tvdbId, final ApiCallback _callback) throws ApiException { + return postAddedSeriesCall(tvdbId, _callback); + + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postAddedSeries(String tvdbId) throws ApiException { + postAddedSeriesWithHttpInfo(tvdbId); + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postAddedSeriesWithHttpInfo(String tvdbId) throws ApiException { + okhttp3.Call localVarCall = postAddedSeriesValidateBeforeCall(tvdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new episodes of a series have been added by an external source. (asynchronously) + * + * @param tvdbId The tvdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedSeriesAsync(String tvdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postAddedSeriesValidateBeforeCall(tvdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedMedia + * @param mediaUpdateInfoDto The update paths. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMediaCall(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = mediaUpdateInfoDto; + + // create path and map variables + String localVarPath = "/Library/Media/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedMediaValidateBeforeCall(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'mediaUpdateInfoDto' is set + if (mediaUpdateInfoDto == null) { + throw new ApiException("Missing the required parameter 'mediaUpdateInfoDto' when calling postUpdatedMedia(Async)"); + } + + return postUpdatedMediaCall(mediaUpdateInfoDto, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param mediaUpdateInfoDto The update paths. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedMedia(MediaUpdateInfoDto mediaUpdateInfoDto) throws ApiException { + postUpdatedMediaWithHttpInfo(mediaUpdateInfoDto); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param mediaUpdateInfoDto The update paths. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedMediaWithHttpInfo(MediaUpdateInfoDto mediaUpdateInfoDto) throws ApiException { + okhttp3.Call localVarCall = postUpdatedMediaValidateBeforeCall(mediaUpdateInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param mediaUpdateInfoDto The update paths. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMediaAsync(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedMediaValidateBeforeCall(mediaUpdateInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedMovies + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMoviesCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Movies/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tmdbId", tmdbId)); + } + + if (imdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imdbId", imdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedMoviesValidateBeforeCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + return postUpdatedMoviesCall(tmdbId, imdbId, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedMovies(String tmdbId, String imdbId) throws ApiException { + postUpdatedMoviesWithHttpInfo(tmdbId, imdbId); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedMoviesWithHttpInfo(String tmdbId, String imdbId) throws ApiException { + okhttp3.Call localVarCall = postUpdatedMoviesValidateBeforeCall(tmdbId, imdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMoviesAsync(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedMoviesValidateBeforeCall(tmdbId, imdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedSeries + * @param tvdbId The tvdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedSeriesCall(String tvdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Series/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tvdbId", tvdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedSeriesValidateBeforeCall(String tvdbId, final ApiCallback _callback) throws ApiException { + return postUpdatedSeriesCall(tvdbId, _callback); + + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedSeries(String tvdbId) throws ApiException { + postUpdatedSeriesWithHttpInfo(tvdbId); + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedSeriesWithHttpInfo(String tvdbId) throws ApiException { + okhttp3.Call localVarCall = postUpdatedSeriesValidateBeforeCall(tvdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new episodes of a series have been added by an external source. (asynchronously) + * + * @param tvdbId The tvdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedSeriesAsync(String tvdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedSeriesValidateBeforeCall(tvdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for refreshLibrary + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshLibraryCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Refresh"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call refreshLibraryValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return refreshLibraryCall(_callback); + + } + + /** + * Starts a library scan. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public void refreshLibrary() throws ApiException { + refreshLibraryWithHttpInfo(); + } + + /** + * Starts a library scan. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse refreshLibraryWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = refreshLibraryValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Starts a library scan. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshLibraryAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = refreshLibraryValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryStructureApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryStructureApi.java new file mode 100644 index 0000000000000..e752320ebcd5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LibraryStructureApi.java @@ -0,0 +1,1208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AddVirtualFolderDto; +import org.openapitools.client.model.CollectionTypeOptions; +import org.openapitools.client.model.MediaPathDto; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.UpdateLibraryOptionsDto; +import org.openapitools.client.model.UpdateMediaPathRequestDto; +import org.openapitools.client.model.VirtualFolderInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LibraryStructureApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LibraryStructureApi() { + this(Configuration.getDefaultApiClient()); + } + + public LibraryStructureApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addMediaPath + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addMediaPathCall(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = mediaPathDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addMediaPathValidateBeforeCall(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'mediaPathDto' is set + if (mediaPathDto == null) { + throw new ApiException("Missing the required parameter 'mediaPathDto' when calling addMediaPath(Async)"); + } + + return addMediaPathCall(mediaPathDto, refreshLibrary, _callback); + + } + + /** + * Add a media path to a library. + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addMediaPath(MediaPathDto mediaPathDto, Boolean refreshLibrary) throws ApiException { + addMediaPathWithHttpInfo(mediaPathDto, refreshLibrary); + } + + /** + * Add a media path to a library. + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addMediaPathWithHttpInfo(MediaPathDto mediaPathDto, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = addMediaPathValidateBeforeCall(mediaPathDto, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Add a media path to a library. (asynchronously) + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addMediaPathAsync(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addMediaPathValidateBeforeCall(mediaPathDto, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for addVirtualFolder + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addVirtualFolderCall(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = addVirtualFolderDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (collectionType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collectionType", collectionType)); + } + + if (paths != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "paths", paths)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addVirtualFolderValidateBeforeCall(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + return addVirtualFolderCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, _callback); + + } + + /** + * Adds a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addVirtualFolder(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto) throws ApiException { + addVirtualFolderWithHttpInfo(name, collectionType, paths, refreshLibrary, addVirtualFolderDto); + } + + /** + * Adds a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addVirtualFolderWithHttpInfo(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto) throws ApiException { + okhttp3.Call localVarCall = addVirtualFolderValidateBeforeCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds a virtual folder. (asynchronously) + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addVirtualFolderAsync(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addVirtualFolderValidateBeforeCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getVirtualFolders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVirtualFoldersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVirtualFoldersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getVirtualFoldersCall(_callback); + + } + + /** + * Gets all virtual folders. + * + * @return List<VirtualFolderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getVirtualFolders() throws ApiException { + ApiResponse> localVarResp = getVirtualFoldersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all virtual folders. + * + * @return ApiResponse<List<VirtualFolderInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getVirtualFoldersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getVirtualFoldersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all virtual folders. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVirtualFoldersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getVirtualFoldersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for removeMediaPath + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeMediaPathCall(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeMediaPathValidateBeforeCall(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return removeMediaPathCall(name, path, refreshLibrary, _callback); + + } + + /** + * Remove a media path. + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeMediaPath(String name, String path, Boolean refreshLibrary) throws ApiException { + removeMediaPathWithHttpInfo(name, path, refreshLibrary); + } + + /** + * Remove a media path. + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeMediaPathWithHttpInfo(String name, String path, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = removeMediaPathValidateBeforeCall(name, path, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Remove a media path. (asynchronously) + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeMediaPathAsync(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeMediaPathValidateBeforeCall(name, path, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeVirtualFolder + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeVirtualFolderCall(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeVirtualFolderValidateBeforeCall(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return removeVirtualFolderCall(name, refreshLibrary, _callback); + + } + + /** + * Removes a virtual folder. + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeVirtualFolder(String name, Boolean refreshLibrary) throws ApiException { + removeVirtualFolderWithHttpInfo(name, refreshLibrary); + } + + /** + * Removes a virtual folder. + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeVirtualFolderWithHttpInfo(String name, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = removeVirtualFolderValidateBeforeCall(name, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes a virtual folder. (asynchronously) + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeVirtualFolderAsync(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeVirtualFolderValidateBeforeCall(name, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for renameVirtualFolder + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call renameVirtualFolderCall(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Name"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (newName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newName", newName)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call renameVirtualFolderValidateBeforeCall(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return renameVirtualFolderCall(name, newName, refreshLibrary, _callback); + + } + + /** + * Renames a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public void renameVirtualFolder(String name, String newName, Boolean refreshLibrary) throws ApiException { + renameVirtualFolderWithHttpInfo(name, newName, refreshLibrary); + } + + /** + * Renames a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse renameVirtualFolderWithHttpInfo(String name, String newName, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = renameVirtualFolderValidateBeforeCall(name, newName, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Renames a virtual folder. (asynchronously) + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call renameVirtualFolderAsync(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = renameVirtualFolderValidateBeforeCall(name, newName, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateLibraryOptions + * @param updateLibraryOptionsDto The library name and options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateLibraryOptionsCall(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateLibraryOptionsDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/LibraryOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateLibraryOptionsValidateBeforeCall(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + return updateLibraryOptionsCall(updateLibraryOptionsDto, _callback); + + } + + /** + * Update library options. + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateLibraryOptions(UpdateLibraryOptionsDto updateLibraryOptionsDto) throws ApiException { + updateLibraryOptionsWithHttpInfo(updateLibraryOptionsDto); + } + + /** + * Update library options. + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateLibraryOptionsWithHttpInfo(UpdateLibraryOptionsDto updateLibraryOptionsDto) throws ApiException { + okhttp3.Call localVarCall = updateLibraryOptionsValidateBeforeCall(updateLibraryOptionsDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update library options. (asynchronously) + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateLibraryOptionsAsync(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateLibraryOptionsValidateBeforeCall(updateLibraryOptionsDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateMediaPath + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateMediaPathCall(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateMediaPathRequestDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths/Update"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateMediaPathValidateBeforeCall(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'updateMediaPathRequestDto' is set + if (updateMediaPathRequestDto == null) { + throw new ApiException("Missing the required parameter 'updateMediaPathRequestDto' when calling updateMediaPath(Async)"); + } + + return updateMediaPathCall(updateMediaPathRequestDto, _callback); + + } + + /** + * Updates a media path. + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateMediaPath(UpdateMediaPathRequestDto updateMediaPathRequestDto) throws ApiException { + updateMediaPathWithHttpInfo(updateMediaPathRequestDto); + } + + /** + * Updates a media path. + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateMediaPathWithHttpInfo(UpdateMediaPathRequestDto updateMediaPathRequestDto) throws ApiException { + okhttp3.Call localVarCall = updateMediaPathValidateBeforeCall(updateMediaPathRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a media path. (asynchronously) + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateMediaPathAsync(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateMediaPathValidateBeforeCall(updateMediaPathRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LiveTvApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LiveTvApi.java new file mode 100644 index 0000000000000..b5ed28684e477 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LiveTvApi.java @@ -0,0 +1,6449 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ChannelMappingOptionsDto; +import org.openapitools.client.model.ChannelType; +import java.io.File; +import org.openapitools.client.model.GetProgramsDto; +import org.openapitools.client.model.GuideInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.ListingsProviderInfo; +import org.openapitools.client.model.LiveTvInfo; +import org.openapitools.client.model.NameIdPair; +import java.time.OffsetDateTime; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RecordingStatus; +import org.openapitools.client.model.SeriesTimerInfoDto; +import org.openapitools.client.model.SeriesTimerInfoDtoQueryResult; +import org.openapitools.client.model.SetChannelMappingDto; +import org.openapitools.client.model.SortOrder; +import org.openapitools.client.model.TimerInfoDto; +import org.openapitools.client.model.TimerInfoDtoQueryResult; +import org.openapitools.client.model.TunerChannelMapping; +import org.openapitools.client.model.TunerHostInfo; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LiveTvApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LiveTvApi() { + this(Configuration.getDefaultApiClient()); + } + + public LiveTvApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addListingProvider + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addListingProviderCall(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = listingsProviderInfo; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (pw != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("pw", pw)); + } + + if (validateListings != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("validateListings", validateListings)); + } + + if (validateLogin != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("validateLogin", validateLogin)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addListingProviderValidateBeforeCall(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + return addListingProviderCall(pw, validateListings, validateLogin, listingsProviderInfo, _callback); + + } + + /** + * Adds a listings provider. + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @return ListingsProviderInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ListingsProviderInfo addListingProvider(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo) throws ApiException { + ApiResponse localVarResp = addListingProviderWithHttpInfo(pw, validateListings, validateLogin, listingsProviderInfo); + return localVarResp.getData(); + } + + /** + * Adds a listings provider. + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @return ApiResponse<ListingsProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addListingProviderWithHttpInfo(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo) throws ApiException { + okhttp3.Call localVarCall = addListingProviderValidateBeforeCall(pw, validateListings, validateLogin, listingsProviderInfo, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Adds a listings provider. (asynchronously) + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addListingProviderAsync(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addListingProviderValidateBeforeCall(pw, validateListings, validateLogin, listingsProviderInfo, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for addTunerHost + * @param tunerHostInfo New tuner host. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addTunerHostCall(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = tunerHostInfo; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addTunerHostValidateBeforeCall(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + return addTunerHostCall(tunerHostInfo, _callback); + + } + + /** + * Adds a tuner host. + * + * @param tunerHostInfo New tuner host. (optional) + * @return TunerHostInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TunerHostInfo addTunerHost(TunerHostInfo tunerHostInfo) throws ApiException { + ApiResponse localVarResp = addTunerHostWithHttpInfo(tunerHostInfo); + return localVarResp.getData(); + } + + /** + * Adds a tuner host. + * + * @param tunerHostInfo New tuner host. (optional) + * @return ApiResponse<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addTunerHostWithHttpInfo(TunerHostInfo tunerHostInfo) throws ApiException { + okhttp3.Call localVarCall = addTunerHostValidateBeforeCall(tunerHostInfo, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Adds a tuner host. (asynchronously) + * + * @param tunerHostInfo New tuner host. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addTunerHostAsync(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addTunerHostValidateBeforeCall(tunerHostInfo, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for cancelSeriesTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelSeriesTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelSeriesTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling cancelSeriesTimer(Async)"); + } + + return cancelSeriesTimerCall(timerId, _callback); + + } + + /** + * Cancels a live tv series timer. + * + * @param timerId Timer id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelSeriesTimer(String timerId) throws ApiException { + cancelSeriesTimerWithHttpInfo(timerId); + } + + /** + * Cancels a live tv series timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelSeriesTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = cancelSeriesTimerValidateBeforeCall(timerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelSeriesTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelSeriesTimerValidateBeforeCall(timerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for cancelTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling cancelTimer(Async)"); + } + + return cancelTimerCall(timerId, _callback); + + } + + /** + * Cancels a live tv timer. + * + * @param timerId Timer id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelTimer(String timerId) throws ApiException { + cancelTimerWithHttpInfo(timerId); + } + + /** + * Cancels a live tv timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = cancelTimerValidateBeforeCall(timerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a live tv timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelTimerValidateBeforeCall(timerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createSeriesTimer + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createSeriesTimerCall(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesTimerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createSeriesTimerValidateBeforeCall(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + return createSeriesTimerCall(seriesTimerInfoDto, _callback); + + } + + /** + * Creates a live tv series timer. + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createSeriesTimer(SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + createSeriesTimerWithHttpInfo(seriesTimerInfoDto); + } + + /** + * Creates a live tv series timer. + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createSeriesTimerWithHttpInfo(SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + okhttp3.Call localVarCall = createSeriesTimerValidateBeforeCall(seriesTimerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Creates a live tv series timer. (asynchronously) + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createSeriesTimerAsync(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createSeriesTimerValidateBeforeCall(seriesTimerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createTimer + * @param timerInfoDto New timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createTimerCall(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = timerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/Timers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createTimerValidateBeforeCall(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + return createTimerCall(timerInfoDto, _callback); + + } + + /** + * Creates a live tv timer. + * + * @param timerInfoDto New timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createTimer(TimerInfoDto timerInfoDto) throws ApiException { + createTimerWithHttpInfo(timerInfoDto); + } + + /** + * Creates a live tv timer. + * + * @param timerInfoDto New timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createTimerWithHttpInfo(TimerInfoDto timerInfoDto) throws ApiException { + okhttp3.Call localVarCall = createTimerValidateBeforeCall(timerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Creates a live tv timer. (asynchronously) + * + * @param timerInfoDto New timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createTimerAsync(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createTimerValidateBeforeCall(timerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteListingProvider + * @param id Listing provider id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteListingProviderCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteListingProviderValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + return deleteListingProviderCall(id, _callback); + + } + + /** + * Delete listing provider. + * + * @param id Listing provider id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteListingProvider(String id) throws ApiException { + deleteListingProviderWithHttpInfo(id); + } + + /** + * Delete listing provider. + * + * @param id Listing provider id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteListingProviderWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteListingProviderValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete listing provider. (asynchronously) + * + * @param id Listing provider id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteListingProviderAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteListingProviderValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteRecording + * @param recordingId Recording id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteRecordingCall(UUID recordingId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/{recordingId}" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteRecordingValidateBeforeCall(UUID recordingId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling deleteRecording(Async)"); + } + + return deleteRecordingCall(recordingId, _callback); + + } + + /** + * Deletes a live tv recording. + * + * @param recordingId Recording id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteRecording(UUID recordingId) throws ApiException { + deleteRecordingWithHttpInfo(recordingId); + } + + /** + * Deletes a live tv recording. + * + * @param recordingId Recording id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteRecordingWithHttpInfo(UUID recordingId) throws ApiException { + okhttp3.Call localVarCall = deleteRecordingValidateBeforeCall(recordingId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a live tv recording. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteRecordingAsync(UUID recordingId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRecordingValidateBeforeCall(recordingId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteTunerHost + * @param id Tuner host id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteTunerHostCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteTunerHostValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + return deleteTunerHostCall(id, _callback); + + } + + /** + * Deletes a tuner host. + * + * @param id Tuner host id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteTunerHost(String id) throws ApiException { + deleteTunerHostWithHttpInfo(id); + } + + /** + * Deletes a tuner host. + * + * @param id Tuner host id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteTunerHostWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteTunerHostValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a tuner host. (asynchronously) + * + * @param id Tuner host id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteTunerHostAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteTunerHostValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for discoverTuners + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discoverTunersCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/Discover"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newDevicesOnly != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newDevicesOnly", newDevicesOnly)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call discoverTunersValidateBeforeCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + return discoverTunersCall(newDevicesOnly, _callback); + + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return List<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List discoverTuners(Boolean newDevicesOnly) throws ApiException { + ApiResponse> localVarResp = discoverTunersWithHttpInfo(newDevicesOnly); + return localVarResp.getData(); + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return ApiResponse<List<TunerHostInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> discoverTunersWithHttpInfo(Boolean newDevicesOnly) throws ApiException { + okhttp3.Call localVarCall = discoverTunersValidateBeforeCall(newDevicesOnly, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Discover tuners. (asynchronously) + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discoverTunersAsync(Boolean newDevicesOnly, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = discoverTunersValidateBeforeCall(newDevicesOnly, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for discvoverTuners + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discvoverTunersCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/Discvover"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newDevicesOnly != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newDevicesOnly", newDevicesOnly)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call discvoverTunersValidateBeforeCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + return discvoverTunersCall(newDevicesOnly, _callback); + + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return List<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List discvoverTuners(Boolean newDevicesOnly) throws ApiException { + ApiResponse> localVarResp = discvoverTunersWithHttpInfo(newDevicesOnly); + return localVarResp.getData(); + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return ApiResponse<List<TunerHostInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> discvoverTunersWithHttpInfo(Boolean newDevicesOnly) throws ApiException { + okhttp3.Call localVarCall = discvoverTunersValidateBeforeCall(newDevicesOnly, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Discover tuners. (asynchronously) + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discvoverTunersAsync(Boolean newDevicesOnly, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = discvoverTunersValidateBeforeCall(newDevicesOnly, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannel + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelCall(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Channels/{channelId}" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelValidateBeforeCall(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannel(Async)"); + } + + return getChannelCall(channelId, userId, _callback); + + } + + /** + * Gets a live tv channel. + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getChannel(UUID channelId, UUID userId) throws ApiException { + ApiResponse localVarResp = getChannelWithHttpInfo(channelId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv channel. + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelWithHttpInfo(UUID channelId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getChannelValidateBeforeCall(channelId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv channel. (asynchronously) + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelAsync(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelValidateBeforeCall(channelId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelMappingOptions + * @param providerId Provider id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelMappingOptionsCall(String providerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ChannelMappingOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (providerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("providerId", providerId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelMappingOptionsValidateBeforeCall(String providerId, final ApiCallback _callback) throws ApiException { + return getChannelMappingOptionsCall(providerId, _callback); + + } + + /** + * Get channel mapping options. + * + * @param providerId Provider id. (optional) + * @return ChannelMappingOptionsDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ChannelMappingOptionsDto getChannelMappingOptions(String providerId) throws ApiException { + ApiResponse localVarResp = getChannelMappingOptionsWithHttpInfo(providerId); + return localVarResp.getData(); + } + + /** + * Get channel mapping options. + * + * @param providerId Provider id. (optional) + * @return ApiResponse<ChannelMappingOptionsDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelMappingOptionsWithHttpInfo(String providerId) throws ApiException { + okhttp3.Call localVarCall = getChannelMappingOptionsValidateBeforeCall(providerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel mapping options. (asynchronously) + * + * @param providerId Provider id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelMappingOptionsAsync(String providerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelMappingOptionsValidateBeforeCall(providerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultListingProvider + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultListingProviderCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/Default"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultListingProviderValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultListingProviderCall(_callback); + + } + + /** + * Gets default listings provider info. + * + * @return ListingsProviderInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ListingsProviderInfo getDefaultListingProvider() throws ApiException { + ApiResponse localVarResp = getDefaultListingProviderWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets default listings provider info. + * + * @return ApiResponse<ListingsProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultListingProviderWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultListingProviderValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets default listings provider info. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultListingProviderAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultListingProviderValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultTimer + * @param programId Optional. To attach default values based on a program. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultTimerCall(String programId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/Defaults"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (programId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("programId", programId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultTimerValidateBeforeCall(String programId, final ApiCallback _callback) throws ApiException { + return getDefaultTimerCall(programId, _callback); + + } + + /** + * Gets the default values for a new timer. + * + * @param programId Optional. To attach default values based on a program. (optional) + * @return SeriesTimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDto getDefaultTimer(String programId) throws ApiException { + ApiResponse localVarResp = getDefaultTimerWithHttpInfo(programId); + return localVarResp.getData(); + } + + /** + * Gets the default values for a new timer. + * + * @param programId Optional. To attach default values based on a program. (optional) + * @return ApiResponse<SeriesTimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultTimerWithHttpInfo(String programId) throws ApiException { + okhttp3.Call localVarCall = getDefaultTimerValidateBeforeCall(programId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the default values for a new timer. (asynchronously) + * + * @param programId Optional. To attach default values based on a program. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultTimerAsync(String programId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultTimerValidateBeforeCall(programId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGuideInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGuideInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/GuideInfo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGuideInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getGuideInfoCall(_callback); + + } + + /** + * Get guid info. + * + * @return GuideInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public GuideInfo getGuideInfo() throws ApiException { + ApiResponse localVarResp = getGuideInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get guid info. + * + * @return ApiResponse<GuideInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGuideInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getGuideInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get guid info. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGuideInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGuideInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLineups + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLineupsCall(String id, String type, String location, String country, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/Lineups"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (location != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("location", location)); + } + + if (country != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("country", country)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLineupsValidateBeforeCall(String id, String type, String location, String country, final ApiCallback _callback) throws ApiException { + return getLineupsCall(id, type, location, country, _callback); + + } + + /** + * Gets available lineups. + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLineups(String id, String type, String location, String country) throws ApiException { + ApiResponse> localVarResp = getLineupsWithHttpInfo(id, type, location, country); + return localVarResp.getData(); + } + + /** + * Gets available lineups. + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLineupsWithHttpInfo(String id, String type, String location, String country) throws ApiException { + okhttp3.Call localVarCall = getLineupsValidateBeforeCall(id, type, location, country, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available lineups. (asynchronously) + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLineupsAsync(String id, String type, String location, String country, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLineupsValidateBeforeCall(id, type, location, country, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveRecordingFile + * @param recordingId Recording id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public okhttp3.Call getLiveRecordingFileCall(String recordingId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/LiveRecordings/{recordingId}/stream" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveRecordingFileValidateBeforeCall(String recordingId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling getLiveRecordingFile(Async)"); + } + + return getLiveRecordingFileCall(recordingId, _callback); + + } + + /** + * Gets a live tv recording stream. + * + * @param recordingId Recording id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public File getLiveRecordingFile(String recordingId) throws ApiException { + ApiResponse localVarResp = getLiveRecordingFileWithHttpInfo(recordingId); + return localVarResp.getData(); + } + + /** + * Gets a live tv recording stream. + * + * @param recordingId Recording id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public ApiResponse getLiveRecordingFileWithHttpInfo(String recordingId) throws ApiException { + okhttp3.Call localVarCall = getLiveRecordingFileValidateBeforeCall(recordingId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv recording stream. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public okhttp3.Call getLiveRecordingFileAsync(String recordingId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveRecordingFileValidateBeforeCall(recordingId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveStreamFile + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public okhttp3.Call getLiveStreamFileCall(String streamId, String container, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}" + .replace("{" + "streamId" + "}", localVarApiClient.escapeString(streamId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveStreamFileValidateBeforeCall(String streamId, String container, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'streamId' is set + if (streamId == null) { + throw new ApiException("Missing the required parameter 'streamId' when calling getLiveStreamFile(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getLiveStreamFile(Async)"); + } + + return getLiveStreamFileCall(streamId, container, _callback); + + } + + /** + * Gets a live tv channel stream. + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public File getLiveStreamFile(String streamId, String container) throws ApiException { + ApiResponse localVarResp = getLiveStreamFileWithHttpInfo(streamId, container); + return localVarResp.getData(); + } + + /** + * Gets a live tv channel stream. + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public ApiResponse getLiveStreamFileWithHttpInfo(String streamId, String container) throws ApiException { + okhttp3.Call localVarCall = getLiveStreamFileValidateBeforeCall(streamId, container, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv channel stream. (asynchronously) + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public okhttp3.Call getLiveStreamFileAsync(String streamId, String container, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveStreamFileValidateBeforeCall(streamId, container, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvChannels + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvChannelsCall(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Channels"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (isLiked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLiked", isLiked)); + } + + if (isDisliked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isDisliked", isDisliked)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder)); + } + + if (enableFavoriteSorting != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableFavoriteSorting", enableFavoriteSorting)); + } + + if (addCurrentProgram != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addCurrentProgram", addCurrentProgram)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvChannelsValidateBeforeCall(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + return getLiveTvChannelsCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, _callback); + + } + + /** + * Gets available live tv channels. + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLiveTvChannels(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram) throws ApiException { + ApiResponse localVarResp = getLiveTvChannelsWithHttpInfo(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram); + return localVarResp.getData(); + } + + /** + * Gets available live tv channels. + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvChannelsWithHttpInfo(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram) throws ApiException { + okhttp3.Call localVarCall = getLiveTvChannelsValidateBeforeCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv channels. (asynchronously) + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvChannelsAsync(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvChannelsValidateBeforeCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getLiveTvInfoCall(_callback); + + } + + /** + * Gets available live tv services. + * + * @return LiveTvInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public LiveTvInfo getLiveTvInfo() throws ApiException { + ApiResponse localVarResp = getLiveTvInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available live tv services. + * + * @return ApiResponse<LiveTvInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getLiveTvInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv services. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvPrograms + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvProgramsCall(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "channelIds", channelIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (minStartDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minStartDate", minStartDate)); + } + + if (hasAired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasAired", hasAired)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (maxStartDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStartDate", maxStartDate)); + } + + if (minEndDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minEndDate", minEndDate)); + } + + if (maxEndDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxEndDate", maxEndDate)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (librarySeriesId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("librarySeriesId", librarySeriesId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvProgramsValidateBeforeCall(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getLiveTvProgramsCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, _callback); + + } + + /** + * Gets available live tv epgs. + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLiveTvPrograms(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getLiveTvProgramsWithHttpInfo(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets available live tv epgs. + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvProgramsWithHttpInfo(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getLiveTvProgramsValidateBeforeCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv epgs. (asynchronously) + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvProgramsAsync(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvProgramsValidateBeforeCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getProgram + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramCall(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs/{programId}" + .replace("{" + "programId" + "}", localVarApiClient.escapeString(programId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProgramValidateBeforeCall(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'programId' is set + if (programId == null) { + throw new ApiException("Missing the required parameter 'programId' when calling getProgram(Async)"); + } + + return getProgramCall(programId, userId, _callback); + + } + + /** + * Gets a live tv program. + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getProgram(String programId, UUID userId) throws ApiException { + ApiResponse localVarResp = getProgramWithHttpInfo(programId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv program. + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getProgramWithHttpInfo(String programId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getProgramValidateBeforeCall(programId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv program. (asynchronously) + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramAsync(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getProgramValidateBeforeCall(programId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPrograms + * @param getProgramsDto Request body. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramsCall(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = getProgramsDto; + + // create path and map variables + String localVarPath = "/LiveTv/Programs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProgramsValidateBeforeCall(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + return getProgramsCall(getProgramsDto, _callback); + + } + + /** + * Gets available live tv epgs. + * + * @param getProgramsDto Request body. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getPrograms(GetProgramsDto getProgramsDto) throws ApiException { + ApiResponse localVarResp = getProgramsWithHttpInfo(getProgramsDto); + return localVarResp.getData(); + } + + /** + * Gets available live tv epgs. + * + * @param getProgramsDto Request body. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getProgramsWithHttpInfo(GetProgramsDto getProgramsDto) throws ApiException { + okhttp3.Call localVarCall = getProgramsValidateBeforeCall(getProgramsDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv epgs. (asynchronously) + * + * @param getProgramsDto Request body. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramsAsync(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getProgramsValidateBeforeCall(getProgramsDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecommendedPrograms + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecommendedProgramsCall(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs/Recommended"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (hasAired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasAired", hasAired)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecommendedProgramsValidateBeforeCall(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecommendedProgramsCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, _callback); + + } + + /** + * Gets recommended live tv epgs. + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecommendedPrograms(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecommendedProgramsWithHttpInfo(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets recommended live tv epgs. + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecommendedProgramsWithHttpInfo(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecommendedProgramsValidateBeforeCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets recommended live tv epgs. (asynchronously) + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecommendedProgramsAsync(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecommendedProgramsValidateBeforeCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecording + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingCall(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/{recordingId}" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingValidateBeforeCall(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling getRecording(Async)"); + } + + return getRecordingCall(recordingId, userId, _callback); + + } + + /** + * Gets a live tv recording. + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getRecording(UUID recordingId, UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingWithHttpInfo(recordingId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv recording. + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingWithHttpInfo(UUID recordingId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingValidateBeforeCall(recordingId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv recording. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingAsync(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingValidateBeforeCall(recordingId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingFolders + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingFoldersCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Folders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingFoldersValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getRecordingFoldersCall(userId, _callback); + + } + + /** + * Gets recording folders. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecordingFolders(UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingFoldersWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets recording folders. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingFoldersWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingFoldersValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets recording folders. (asynchronously) + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingFoldersAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingFoldersValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingGroup + * @param groupId Group id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupCall(UUID groupId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Groups/{groupId}" + .replace("{" + "groupId" + "}", localVarApiClient.escapeString(groupId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingGroupValidateBeforeCall(UUID groupId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'groupId' is set + if (groupId == null) { + throw new ApiException("Missing the required parameter 'groupId' when calling getRecordingGroup(Async)"); + } + + return getRecordingGroupCall(groupId, _callback); + + } + + /** + * Get recording group. + * + * @param groupId Group id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public void getRecordingGroup(UUID groupId) throws ApiException { + getRecordingGroupWithHttpInfo(groupId); + } + + /** + * Get recording group. + * + * @param groupId Group id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingGroupWithHttpInfo(UUID groupId) throws ApiException { + okhttp3.Call localVarCall = getRecordingGroupValidateBeforeCall(groupId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Get recording group. (asynchronously) + * + * @param groupId Group id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupAsync(UUID groupId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingGroupValidateBeforeCall(groupId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getRecordingGroups + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupsCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Groups"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingGroupsValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getRecordingGroupsCall(userId, _callback); + + } + + /** + * Gets live tv recording groups. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getRecordingGroups(UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingGroupsWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets live tv recording groups. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingGroupsWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingGroupsValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recording groups. (asynchronously) + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupsAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingGroupsValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordings + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingsCall(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (isInProgress != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isInProgress", isInProgress)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isLibraryItem != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLibraryItem", isLibraryItem)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingsValidateBeforeCall(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecordingsCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, _callback); + + } + + /** + * Gets live tv recordings. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecordings(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecordingsWithHttpInfo(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets live tv recordings. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingsWithHttpInfo(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecordingsValidateBeforeCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recordings. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingsAsync(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingsValidateBeforeCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingsSeries + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingsSeriesCall(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Series"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (groupId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("groupId", groupId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (isInProgress != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isInProgress", isInProgress)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingsSeriesValidateBeforeCall(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecordingsSeriesCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, _callback); + + } + + /** + * Gets live tv recording series. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getRecordingsSeries(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecordingsSeriesWithHttpInfo(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets live tv recording series. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingsSeriesWithHttpInfo(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecordingsSeriesValidateBeforeCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recording series. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingsSeriesAsync(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingsSeriesValidateBeforeCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSchedulesDirectCountries + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSchedulesDirectCountriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/SchedulesDirect/Countries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSchedulesDirectCountriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getSchedulesDirectCountriesCall(_callback); + + } + + /** + * Gets available countries. + * + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getSchedulesDirectCountries() throws ApiException { + ApiResponse localVarResp = getSchedulesDirectCountriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available countries. + * + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSchedulesDirectCountriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getSchedulesDirectCountriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available countries. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSchedulesDirectCountriesAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSchedulesDirectCountriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling getSeriesTimer(Async)"); + } + + return getSeriesTimerCall(timerId, _callback); + + } + + /** + * Gets a live tv series timer. + * + * @param timerId Timer id. (required) + * @return SeriesTimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDto getSeriesTimer(String timerId) throws ApiException { + ApiResponse localVarResp = getSeriesTimerWithHttpInfo(timerId); + return localVarResp.getData(); + } + + /** + * Gets a live tv series timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<SeriesTimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeriesTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = getSeriesTimerValidateBeforeCall(timerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesTimerValidateBeforeCall(timerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesTimers + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimersCall(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (sortBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesTimersValidateBeforeCall(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + return getSeriesTimersCall(sortBy, sortOrder, _callback); + + } + + /** + * Gets live tv series timers. + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @return SeriesTimerInfoDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDtoQueryResult getSeriesTimers(String sortBy, SortOrder sortOrder) throws ApiException { + ApiResponse localVarResp = getSeriesTimersWithHttpInfo(sortBy, sortOrder); + return localVarResp.getData(); + } + + /** + * Gets live tv series timers. + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @return ApiResponse<SeriesTimerInfoDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeriesTimersWithHttpInfo(String sortBy, SortOrder sortOrder) throws ApiException { + okhttp3.Call localVarCall = getSeriesTimersValidateBeforeCall(sortBy, sortOrder, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv series timers. (asynchronously) + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimersAsync(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesTimersValidateBeforeCall(sortBy, sortOrder, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling getTimer(Async)"); + } + + return getTimerCall(timerId, _callback); + + } + + /** + * Gets a timer. + * + * @param timerId Timer id. (required) + * @return TimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TimerInfoDto getTimer(String timerId) throws ApiException { + ApiResponse localVarResp = getTimerWithHttpInfo(timerId); + return localVarResp.getData(); + } + + /** + * Gets a timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<TimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = getTimerValidateBeforeCall(timerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTimerValidateBeforeCall(timerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTimers + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimersCall(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (isActive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isActive", isActive)); + } + + if (isScheduled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isScheduled", isScheduled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTimersValidateBeforeCall(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + return getTimersCall(channelId, seriesTimerId, isActive, isScheduled, _callback); + + } + + /** + * Gets the live tv timers. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @return TimerInfoDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public TimerInfoDtoQueryResult getTimers(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled) throws ApiException { + ApiResponse localVarResp = getTimersWithHttpInfo(channelId, seriesTimerId, isActive, isScheduled); + return localVarResp.getData(); + } + + /** + * Gets the live tv timers. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @return ApiResponse<TimerInfoDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTimersWithHttpInfo(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled) throws ApiException { + okhttp3.Call localVarCall = getTimersValidateBeforeCall(channelId, seriesTimerId, isActive, isScheduled, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the live tv timers. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimersAsync(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTimersValidateBeforeCall(channelId, seriesTimerId, isActive, isScheduled, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTunerHostTypes + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTunerHostTypesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts/Types"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTunerHostTypesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getTunerHostTypesCall(_callback); + + } + + /** + * Get tuner host types. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTunerHostTypes() throws ApiException { + ApiResponse> localVarResp = getTunerHostTypesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get tuner host types. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTunerHostTypesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getTunerHostTypesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get tuner host types. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTunerHostTypesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTunerHostTypesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for resetTuner + * @param tunerId Tuner id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call resetTunerCall(String tunerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/{tunerId}/Reset" + .replace("{" + "tunerId" + "}", localVarApiClient.escapeString(tunerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call resetTunerValidateBeforeCall(String tunerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'tunerId' is set + if (tunerId == null) { + throw new ApiException("Missing the required parameter 'tunerId' when calling resetTuner(Async)"); + } + + return resetTunerCall(tunerId, _callback); + + } + + /** + * Resets a tv tuner. + * + * @param tunerId Tuner id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public void resetTuner(String tunerId) throws ApiException { + resetTunerWithHttpInfo(tunerId); + } + + /** + * Resets a tv tuner. + * + * @param tunerId Tuner id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse resetTunerWithHttpInfo(String tunerId) throws ApiException { + okhttp3.Call localVarCall = resetTunerValidateBeforeCall(tunerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Resets a tv tuner. (asynchronously) + * + * @param tunerId Tuner id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call resetTunerAsync(String tunerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = resetTunerValidateBeforeCall(tunerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setChannelMapping + * @param setChannelMappingDto The set channel mapping dto. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setChannelMappingCall(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setChannelMappingDto; + + // create path and map variables + String localVarPath = "/LiveTv/ChannelMappings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setChannelMappingValidateBeforeCall(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setChannelMappingDto' is set + if (setChannelMappingDto == null) { + throw new ApiException("Missing the required parameter 'setChannelMappingDto' when calling setChannelMapping(Async)"); + } + + return setChannelMappingCall(setChannelMappingDto, _callback); + + } + + /** + * Set channel mappings. + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @return TunerChannelMapping + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TunerChannelMapping setChannelMapping(SetChannelMappingDto setChannelMappingDto) throws ApiException { + ApiResponse localVarResp = setChannelMappingWithHttpInfo(setChannelMappingDto); + return localVarResp.getData(); + } + + /** + * Set channel mappings. + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @return ApiResponse<TunerChannelMapping> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setChannelMappingWithHttpInfo(SetChannelMappingDto setChannelMappingDto) throws ApiException { + okhttp3.Call localVarCall = setChannelMappingValidateBeforeCall(setChannelMappingDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Set channel mappings. (asynchronously) + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setChannelMappingAsync(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setChannelMappingValidateBeforeCall(setChannelMappingDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateSeriesTimer + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateSeriesTimerCall(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesTimerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateSeriesTimerValidateBeforeCall(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling updateSeriesTimer(Async)"); + } + + return updateSeriesTimerCall(timerId, seriesTimerInfoDto, _callback); + + } + + /** + * Updates a live tv series timer. + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateSeriesTimer(String timerId, SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + updateSeriesTimerWithHttpInfo(timerId, seriesTimerInfoDto); + } + + /** + * Updates a live tv series timer. + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateSeriesTimerWithHttpInfo(String timerId, SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + okhttp3.Call localVarCall = updateSeriesTimerValidateBeforeCall(timerId, seriesTimerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateSeriesTimerAsync(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateSeriesTimerValidateBeforeCall(timerId, seriesTimerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateTimer + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTimerCall(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = timerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateTimerValidateBeforeCall(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling updateTimer(Async)"); + } + + return updateTimerCall(timerId, timerInfoDto, _callback); + + } + + /** + * Updates a live tv timer. + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateTimer(String timerId, TimerInfoDto timerInfoDto) throws ApiException { + updateTimerWithHttpInfo(timerId, timerInfoDto); + } + + /** + * Updates a live tv timer. + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateTimerWithHttpInfo(String timerId, TimerInfoDto timerInfoDto) throws ApiException { + okhttp3.Call localVarCall = updateTimerValidateBeforeCall(timerId, timerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a live tv timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTimerAsync(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateTimerValidateBeforeCall(timerId, timerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LocalizationApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LocalizationApi.java new file mode 100644 index 0000000000000..94a8d0ef4bc9a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LocalizationApi.java @@ -0,0 +1,586 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.CountryInfo; +import org.openapitools.client.model.CultureDto; +import org.openapitools.client.model.LocalizationOption; +import org.openapitools.client.model.ParentalRating; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LocalizationApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LocalizationApi() { + this(Configuration.getDefaultApiClient()); + } + + public LocalizationApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getCountries + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCountriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Countries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCountriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCountriesCall(_callback); + + } + + /** + * Gets known countries. + * + * @return List<CountryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getCountries() throws ApiException { + ApiResponse> localVarResp = getCountriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known countries. + * + * @return ApiResponse<List<CountryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getCountriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCountriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known countries. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCountriesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getCountriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCultures + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCulturesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Cultures"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCulturesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCulturesCall(_callback); + + } + + /** + * Gets known cultures. + * + * @return List<CultureDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getCultures() throws ApiException { + ApiResponse> localVarResp = getCulturesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known cultures. + * + * @return ApiResponse<List<CultureDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getCulturesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCulturesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known cultures. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCulturesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getCulturesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLocalizationOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalizationOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLocalizationOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getLocalizationOptionsCall(_callback); + + } + + /** + * Gets localization options. + * + * @return List<LocalizationOption> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLocalizationOptions() throws ApiException { + ApiResponse> localVarResp = getLocalizationOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets localization options. + * + * @return ApiResponse<List<LocalizationOption>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLocalizationOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getLocalizationOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets localization options. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalizationOptionsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLocalizationOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getParentalRatings + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentalRatingsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/ParentalRatings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getParentalRatingsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getParentalRatingsCall(_callback); + + } + + /** + * Gets known parental ratings. + * + * @return List<ParentalRating> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getParentalRatings() throws ApiException { + ApiResponse> localVarResp = getParentalRatingsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known parental ratings. + * + * @return ApiResponse<List<ParentalRating>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getParentalRatingsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getParentalRatingsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known parental ratings. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentalRatingsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getParentalRatingsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LyricsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LyricsApi.java new file mode 100644 index 0000000000000..619fd7a471050 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/LyricsApi.java @@ -0,0 +1,953 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.LyricDto; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteLyricInfoDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LyricsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LyricsApi() { + this(Configuration.getDefaultApiClient()); + } + + public LyricsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteLyrics + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Lyric deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteLyricsCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/Lyrics" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteLyricsValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteLyrics(Async)"); + } + + return deleteLyricsCall(itemId, _callback); + + } + + /** + * Deletes an external lyric file. + * + * @param itemId The item id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Lyric deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteLyrics(UUID itemId) throws ApiException { + deleteLyricsWithHttpInfo(itemId); + } + + /** + * Deletes an external lyric file. + * + * @param itemId The item id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Lyric deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteLyricsWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteLyricsValidateBeforeCall(itemId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an external lyric file. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Lyric deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteLyricsAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteLyricsValidateBeforeCall(itemId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for downloadRemoteLyrics + * @param itemId The item id. (required) + * @param lyricId The lyric id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyric downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteLyricsCall(UUID itemId, String lyricId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/RemoteSearch/Lyrics/{lyricId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "lyricId" + "}", localVarApiClient.escapeString(lyricId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call downloadRemoteLyricsValidateBeforeCall(UUID itemId, String lyricId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling downloadRemoteLyrics(Async)"); + } + + // verify the required parameter 'lyricId' is set + if (lyricId == null) { + throw new ApiException("Missing the required parameter 'lyricId' when calling downloadRemoteLyrics(Async)"); + } + + return downloadRemoteLyricsCall(itemId, lyricId, _callback); + + } + + /** + * Downloads a remote lyric. + * + * @param itemId The item id. (required) + * @param lyricId The lyric id. (required) + * @return LyricDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyric downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public LyricDto downloadRemoteLyrics(UUID itemId, String lyricId) throws ApiException { + ApiResponse localVarResp = downloadRemoteLyricsWithHttpInfo(itemId, lyricId); + return localVarResp.getData(); + } + + /** + * Downloads a remote lyric. + * + * @param itemId The item id. (required) + * @param lyricId The lyric id. (required) + * @return ApiResponse<LyricDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyric downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse downloadRemoteLyricsWithHttpInfo(UUID itemId, String lyricId) throws ApiException { + okhttp3.Call localVarCall = downloadRemoteLyricsValidateBeforeCall(itemId, lyricId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Downloads a remote lyric. (asynchronously) + * + * @param itemId The item id. (required) + * @param lyricId The lyric id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyric downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteLyricsAsync(UUID itemId, String lyricId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = downloadRemoteLyricsValidateBeforeCall(itemId, lyricId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLyrics + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics returned. -
404 Something went wrong. No Lyrics will be returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLyricsCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/Lyrics" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLyricsValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getLyrics(Async)"); + } + + return getLyricsCall(itemId, _callback); + + } + + /** + * Gets an item's lyrics. + * + * @param itemId Item id. (required) + * @return LyricDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics returned. -
404 Something went wrong. No Lyrics will be returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public LyricDto getLyrics(UUID itemId) throws ApiException { + ApiResponse localVarResp = getLyricsWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets an item's lyrics. + * + * @param itemId Item id. (required) + * @return ApiResponse<LyricDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics returned. -
404 Something went wrong. No Lyrics will be returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLyricsWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getLyricsValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an item's lyrics. (asynchronously) + * + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics returned. -
404 Something went wrong. No Lyrics will be returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLyricsAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLyricsValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRemoteLyrics + * @param lyricId The remote provider item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
404 Lyric not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteLyricsCall(String lyricId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Providers/Lyrics/{lyricId}" + .replace("{" + "lyricId" + "}", localVarApiClient.escapeString(lyricId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteLyricsValidateBeforeCall(String lyricId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'lyricId' is set + if (lyricId == null) { + throw new ApiException("Missing the required parameter 'lyricId' when calling getRemoteLyrics(Async)"); + } + + return getRemoteLyricsCall(lyricId, _callback); + + } + + /** + * Gets the remote lyrics. + * + * @param lyricId The remote provider item id. (required) + * @return LyricDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
404 Lyric not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public LyricDto getRemoteLyrics(String lyricId) throws ApiException { + ApiResponse localVarResp = getRemoteLyricsWithHttpInfo(lyricId); + return localVarResp.getData(); + } + + /** + * Gets the remote lyrics. + * + * @param lyricId The remote provider item id. (required) + * @return ApiResponse<LyricDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
404 Lyric not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRemoteLyricsWithHttpInfo(String lyricId) throws ApiException { + okhttp3.Call localVarCall = getRemoteLyricsValidateBeforeCall(lyricId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the remote lyrics. (asynchronously) + * + * @param lyricId The remote provider item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
404 Lyric not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteLyricsAsync(String lyricId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteLyricsValidateBeforeCall(lyricId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for searchRemoteLyrics + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteLyricsCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/RemoteSearch/Lyrics" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call searchRemoteLyricsValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling searchRemoteLyrics(Async)"); + } + + return searchRemoteLyricsCall(itemId, _callback); + + } + + /** + * Search remote lyrics. + * + * @param itemId The item id. (required) + * @return List<RemoteLyricInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List searchRemoteLyrics(UUID itemId) throws ApiException { + ApiResponse> localVarResp = searchRemoteLyricsWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Search remote lyrics. + * + * @param itemId The item id. (required) + * @return ApiResponse<List<RemoteLyricInfoDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> searchRemoteLyricsWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = searchRemoteLyricsValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search remote lyrics. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteLyricsAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRemoteLyricsValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for uploadLyrics + * @param itemId The item the lyric belongs to. (required) + * @param fileName Name of the file being uploaded. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics uploaded. -
400 Error processing upload. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadLyricsCall(UUID itemId, String fileName, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/Lyrics" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (fileName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fileName", fileName)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "text/plain" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uploadLyricsValidateBeforeCall(UUID itemId, String fileName, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling uploadLyrics(Async)"); + } + + // verify the required parameter 'fileName' is set + if (fileName == null) { + throw new ApiException("Missing the required parameter 'fileName' when calling uploadLyrics(Async)"); + } + + return uploadLyricsCall(itemId, fileName, body, _callback); + + } + + /** + * Upload an external lyric file. + * + * @param itemId The item the lyric belongs to. (required) + * @param fileName Name of the file being uploaded. (required) + * @param body (optional) + * @return LyricDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics uploaded. -
400 Error processing upload. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public LyricDto uploadLyrics(UUID itemId, String fileName, File body) throws ApiException { + ApiResponse localVarResp = uploadLyricsWithHttpInfo(itemId, fileName, body); + return localVarResp.getData(); + } + + /** + * Upload an external lyric file. + * + * @param itemId The item the lyric belongs to. (required) + * @param fileName Name of the file being uploaded. (required) + * @param body (optional) + * @return ApiResponse<LyricDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics uploaded. -
400 Error processing upload. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse uploadLyricsWithHttpInfo(UUID itemId, String fileName, File body) throws ApiException { + okhttp3.Call localVarCall = uploadLyricsValidateBeforeCall(itemId, fileName, body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Upload an external lyric file. (asynchronously) + * + * @param itemId The item the lyric belongs to. (required) + * @param fileName Name of the file being uploaded. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Lyrics uploaded. -
400 Error processing upload. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadLyricsAsync(UUID itemId, String fileName, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uploadLyricsValidateBeforeCall(itemId, fileName, body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaInfoApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaInfoApi.java new file mode 100644 index 0000000000000..f13602cd66197 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaInfoApi.java @@ -0,0 +1,986 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.LiveStreamResponse; +import org.openapitools.client.model.OpenLiveStreamDto; +import org.openapitools.client.model.PlaybackInfoDto; +import org.openapitools.client.model.PlaybackInfoResponse; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MediaInfoApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MediaInfoApi() { + this(Configuration.getDefaultApiClient()); + } + + public MediaInfoApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for closeLiveStream + * @param liveStreamId The livestream id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call closeLiveStreamCall(String liveStreamId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveStreams/Close"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call closeLiveStreamValidateBeforeCall(String liveStreamId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'liveStreamId' is set + if (liveStreamId == null) { + throw new ApiException("Missing the required parameter 'liveStreamId' when calling closeLiveStream(Async)"); + } + + return closeLiveStreamCall(liveStreamId, _callback); + + } + + /** + * Closes a media source. + * + * @param liveStreamId The livestream id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void closeLiveStream(String liveStreamId) throws ApiException { + closeLiveStreamWithHttpInfo(liveStreamId); + } + + /** + * Closes a media source. + * + * @param liveStreamId The livestream id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse closeLiveStreamWithHttpInfo(String liveStreamId) throws ApiException { + okhttp3.Call localVarCall = closeLiveStreamValidateBeforeCall(liveStreamId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Closes a media source. (asynchronously) + * + * @param liveStreamId The livestream id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call closeLiveStreamAsync(String liveStreamId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = closeLiveStreamValidateBeforeCall(liveStreamId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getBitrateTestBytes + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBitrateTestBytesCall(Integer size, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playback/BitrateTest"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (size != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("size", size)); + } + + final String[] localVarAccepts = { + "application/octet-stream" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBitrateTestBytesValidateBeforeCall(Integer size, final ApiCallback _callback) throws ApiException { + return getBitrateTestBytesCall(size, _callback); + + } + + /** + * Tests the network with a request with the size of the bitrate. + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getBitrateTestBytes(Integer size) throws ApiException { + ApiResponse localVarResp = getBitrateTestBytesWithHttpInfo(size); + return localVarResp.getData(); + } + + /** + * Tests the network with a request with the size of the bitrate. + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getBitrateTestBytesWithHttpInfo(Integer size) throws ApiException { + okhttp3.Call localVarCall = getBitrateTestBytesValidateBeforeCall(size, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Tests the network with a request with the size of the bitrate. (asynchronously) + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBitrateTestBytesAsync(Integer size, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBitrateTestBytesValidateBeforeCall(size, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaybackInfo + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaybackInfoCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/PlaybackInfo" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaybackInfoValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getPlaybackInfo(Async)"); + } + + return getPlaybackInfoCall(itemId, userId, _callback); + + } + + /** + * Gets live playback media info for an item. + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @return PlaybackInfoResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaybackInfoResponse getPlaybackInfo(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getPlaybackInfoWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets live playback media info for an item. + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @return ApiResponse<PlaybackInfoResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPlaybackInfoWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getPlaybackInfoValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live playback media info for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaybackInfoAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaybackInfoValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPostedPlaybackInfo + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPostedPlaybackInfoCall(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackInfoDto; + + // create path and map variables + String localVarPath = "/Items/{itemId}/PlaybackInfo" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (autoOpenLiveStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("autoOpenLiveStream", autoOpenLiveStream)); + } + + if (enableDirectPlay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectPlay", enableDirectPlay)); + } + + if (enableDirectStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectStream", enableDirectStream)); + } + + if (enableTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTranscoding", enableTranscoding)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPostedPlaybackInfoValidateBeforeCall(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getPostedPlaybackInfo(Async)"); + } + + return getPostedPlaybackInfoCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, _callback); + + } + + /** + * Gets live playback media info for an item. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @return PlaybackInfoResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaybackInfoResponse getPostedPlaybackInfo(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) throws ApiException { + ApiResponse localVarResp = getPostedPlaybackInfoWithHttpInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto); + return localVarResp.getData(); + } + + /** + * Gets live playback media info for an item. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @return ApiResponse<PlaybackInfoResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPostedPlaybackInfoWithHttpInfo(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) throws ApiException { + okhttp3.Call localVarCall = getPostedPlaybackInfoValidateBeforeCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live playback media info for an item. (asynchronously) + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPostedPlaybackInfoAsync(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPostedPlaybackInfoValidateBeforeCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for openLiveStream + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param alwaysBurnInSubtitleWhenTranscoding Always burn-in subtitle when transcoding. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call openLiveStreamCall(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean alwaysBurnInSubtitleWhenTranscoding, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = openLiveStreamDto; + + // create path and map variables + String localVarPath = "/LiveStreams/Open"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (openToken != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("openToken", openToken)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (enableDirectPlay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectPlay", enableDirectPlay)); + } + + if (enableDirectStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectStream", enableDirectStream)); + } + + if (alwaysBurnInSubtitleWhenTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alwaysBurnInSubtitleWhenTranscoding", alwaysBurnInSubtitleWhenTranscoding)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call openLiveStreamValidateBeforeCall(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean alwaysBurnInSubtitleWhenTranscoding, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + return openLiveStreamCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto, _callback); + + } + + /** + * Opens a media source. + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param alwaysBurnInSubtitleWhenTranscoding Always burn-in subtitle when transcoding. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @return LiveStreamResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public LiveStreamResponse openLiveStream(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean alwaysBurnInSubtitleWhenTranscoding, OpenLiveStreamDto openLiveStreamDto) throws ApiException { + ApiResponse localVarResp = openLiveStreamWithHttpInfo(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto); + return localVarResp.getData(); + } + + /** + * Opens a media source. + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param alwaysBurnInSubtitleWhenTranscoding Always burn-in subtitle when transcoding. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @return ApiResponse<LiveStreamResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse openLiveStreamWithHttpInfo(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean alwaysBurnInSubtitleWhenTranscoding, OpenLiveStreamDto openLiveStreamDto) throws ApiException { + okhttp3.Call localVarCall = openLiveStreamValidateBeforeCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Opens a media source. (asynchronously) + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param alwaysBurnInSubtitleWhenTranscoding Always burn-in subtitle when transcoding. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call openLiveStreamAsync(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean alwaysBurnInSubtitleWhenTranscoding, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = openLiveStreamValidateBeforeCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaSegmentsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaSegmentsApi.java new file mode 100644 index 0000000000000..2d311c65a023f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MediaSegmentsApi.java @@ -0,0 +1,227 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.MediaSegmentDtoQueryResult; +import org.openapitools.client.model.MediaSegmentType; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MediaSegmentsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MediaSegmentsApi() { + this(Configuration.getDefaultApiClient()); + } + + public MediaSegmentsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getItemSegments + * @param itemId The ItemId. (required) + * @param includeSegmentTypes Optional filter of requested segment types. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemSegmentsCall(UUID itemId, List includeSegmentTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MediaSegments/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (includeSegmentTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeSegmentTypes", includeSegmentTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemSegmentsValidateBeforeCall(UUID itemId, List includeSegmentTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemSegments(Async)"); + } + + return getItemSegmentsCall(itemId, includeSegmentTypes, _callback); + + } + + /** + * Gets all media segments based on an itemId. + * + * @param itemId The ItemId. (required) + * @param includeSegmentTypes Optional filter of requested segment types. (optional) + * @return MediaSegmentDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public MediaSegmentDtoQueryResult getItemSegments(UUID itemId, List includeSegmentTypes) throws ApiException { + ApiResponse localVarResp = getItemSegmentsWithHttpInfo(itemId, includeSegmentTypes); + return localVarResp.getData(); + } + + /** + * Gets all media segments based on an itemId. + * + * @param itemId The ItemId. (required) + * @param includeSegmentTypes Optional filter of requested segment types. (optional) + * @return ApiResponse<MediaSegmentDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemSegmentsWithHttpInfo(UUID itemId, List includeSegmentTypes) throws ApiException { + okhttp3.Call localVarCall = getItemSegmentsValidateBeforeCall(itemId, includeSegmentTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all media segments based on an itemId. (asynchronously) + * + * @param itemId The ItemId. (required) + * @param includeSegmentTypes Optional filter of requested segment types. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemSegmentsAsync(UUID itemId, List includeSegmentTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemSegmentsValidateBeforeCall(itemId, includeSegmentTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MoviesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MoviesApi.java new file mode 100644 index 0000000000000..a3bb62d6c550a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MoviesApi.java @@ -0,0 +1,244 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.RecommendationDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MoviesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MoviesApi() { + this(Configuration.getDefaultApiClient()); + } + + public MoviesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMovieRecommendations + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRecommendationsCall(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Movies/Recommendations"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (categoryLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("categoryLimit", categoryLimit)); + } + + if (itemLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemLimit", itemLimit)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMovieRecommendationsValidateBeforeCall(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback _callback) throws ApiException { + return getMovieRecommendationsCall(userId, parentId, fields, categoryLimit, itemLimit, _callback); + + } + + /** + * Gets movie recommendations. + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @return List<RecommendationDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMovieRecommendations(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit) throws ApiException { + ApiResponse> localVarResp = getMovieRecommendationsWithHttpInfo(userId, parentId, fields, categoryLimit, itemLimit); + return localVarResp.getData(); + } + + /** + * Gets movie recommendations. + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @return ApiResponse<List<RecommendationDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMovieRecommendationsWithHttpInfo(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit) throws ApiException { + okhttp3.Call localVarCall = getMovieRecommendationsValidateBeforeCall(userId, parentId, fields, categoryLimit, itemLimit, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets movie recommendations. (asynchronously) + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRecommendationsAsync(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMovieRecommendationsValidateBeforeCall(userId, parentId, fields, categoryLimit, itemLimit, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MusicGenresApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MusicGenresApi.java new file mode 100644 index 0000000000000..517d9a5e0d7b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/MusicGenresApi.java @@ -0,0 +1,507 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MusicGenresApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MusicGenresApi() { + this(Configuration.getDefaultApiClient()); + } + + public MusicGenresApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMusicGenre + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicGenreCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{genreName}" + .replace("{" + "genreName" + "}", localVarApiClient.escapeString(genreName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreValidateBeforeCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'genreName' is set + if (genreName == null) { + throw new ApiException("Missing the required parameter 'genreName' when calling getMusicGenre(Async)"); + } + + return getMusicGenreCall(genreName, userId, _callback); + + } + + /** + * Gets a music genre, by name. + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getMusicGenre(String genreName, UUID userId) throws ApiException { + ApiResponse localVarResp = getMusicGenreWithHttpInfo(genreName, userId); + return localVarResp.getData(); + } + + /** + * Gets a music genre, by name. + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMusicGenreWithHttpInfo(String genreName, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreValidateBeforeCall(genreName, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a music genre, by name. (asynchronously) + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicGenreAsync(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreValidateBeforeCall(genreName, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenres + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getMusicGenresCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenresValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getMusicGenresCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all music genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getMusicGenres(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getMusicGenresWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all music genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getMusicGenresWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getMusicGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all music genres from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getMusicGenresAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PackageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PackageApi.java new file mode 100644 index 0000000000000..f96f1865d86fe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PackageApi.java @@ -0,0 +1,900 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.PackageInfo; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RepositoryInfo; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PackageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PackageApi() { + this(Configuration.getDefaultApiClient()); + } + + public PackageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for cancelPackageInstallation + * @param packageId Installation Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelPackageInstallationCall(UUID packageId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/Installing/{packageId}" + .replace("{" + "packageId" + "}", localVarApiClient.escapeString(packageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelPackageInstallationValidateBeforeCall(UUID packageId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'packageId' is set + if (packageId == null) { + throw new ApiException("Missing the required parameter 'packageId' when calling cancelPackageInstallation(Async)"); + } + + return cancelPackageInstallationCall(packageId, _callback); + + } + + /** + * Cancels a package installation. + * + * @param packageId Installation Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelPackageInstallation(UUID packageId) throws ApiException { + cancelPackageInstallationWithHttpInfo(packageId); + } + + /** + * Cancels a package installation. + * + * @param packageId Installation Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelPackageInstallationWithHttpInfo(UUID packageId) throws ApiException { + okhttp3.Call localVarCall = cancelPackageInstallationValidateBeforeCall(packageId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a package installation. (asynchronously) + * + * @param packageId Installation Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelPackageInstallationAsync(UUID packageId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelPackageInstallationValidateBeforeCall(packageId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPackageInfo + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackageInfoCall(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (assemblyGuid != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("assemblyGuid", assemblyGuid)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPackageInfoValidateBeforeCall(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPackageInfo(Async)"); + } + + return getPackageInfoCall(name, assemblyGuid, _callback); + + } + + /** + * Gets a package by name or assembly GUID. + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @return PackageInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public PackageInfo getPackageInfo(String name, UUID assemblyGuid) throws ApiException { + ApiResponse localVarResp = getPackageInfoWithHttpInfo(name, assemblyGuid); + return localVarResp.getData(); + } + + /** + * Gets a package by name or assembly GUID. + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @return ApiResponse<PackageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPackageInfoWithHttpInfo(String name, UUID assemblyGuid) throws ApiException { + okhttp3.Call localVarCall = getPackageInfoValidateBeforeCall(name, assemblyGuid, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a package by name or assembly GUID. (asynchronously) + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackageInfoAsync(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPackageInfoValidateBeforeCall(name, assemblyGuid, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPackages + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackagesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPackagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPackagesCall(_callback); + + } + + /** + * Gets available packages. + * + * @return List<PackageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPackages() throws ApiException { + ApiResponse> localVarResp = getPackagesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available packages. + * + * @return ApiResponse<List<PackageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPackagesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPackagesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available packages. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackagesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPackagesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRepositories + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRepositoriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Repositories"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRepositoriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getRepositoriesCall(_callback); + + } + + /** + * Gets all package repositories. + * + * @return List<RepositoryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getRepositories() throws ApiException { + ApiResponse> localVarResp = getRepositoriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all package repositories. + * + * @return ApiResponse<List<RepositoryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getRepositoriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getRepositoriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all package repositories. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRepositoriesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getRepositoriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for installPackage + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call installPackageCall(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/Installed/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (assemblyGuid != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("assemblyGuid", assemblyGuid)); + } + + if (version != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("version", version)); + } + + if (repositoryUrl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("repositoryUrl", repositoryUrl)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call installPackageValidateBeforeCall(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling installPackage(Async)"); + } + + return installPackageCall(name, assemblyGuid, version, repositoryUrl, _callback); + + } + + /** + * Installs a package. + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void installPackage(String name, UUID assemblyGuid, String version, String repositoryUrl) throws ApiException { + installPackageWithHttpInfo(name, assemblyGuid, version, repositoryUrl); + } + + /** + * Installs a package. + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse installPackageWithHttpInfo(String name, UUID assemblyGuid, String version, String repositoryUrl) throws ApiException { + okhttp3.Call localVarCall = installPackageValidateBeforeCall(name, assemblyGuid, version, repositoryUrl, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Installs a package. (asynchronously) + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call installPackageAsync(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = installPackageValidateBeforeCall(name, assemblyGuid, version, repositoryUrl, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setRepositories + * @param repositoryInfo The list of package repositories. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRepositoriesCall(List repositoryInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = repositoryInfo; + + // create path and map variables + String localVarPath = "/Repositories"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setRepositoriesValidateBeforeCall(List repositoryInfo, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'repositoryInfo' is set + if (repositoryInfo == null) { + throw new ApiException("Missing the required parameter 'repositoryInfo' when calling setRepositories(Async)"); + } + + return setRepositoriesCall(repositoryInfo, _callback); + + } + + /** + * Sets the enabled and existing package repositories. + * + * @param repositoryInfo The list of package repositories. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setRepositories(List repositoryInfo) throws ApiException { + setRepositoriesWithHttpInfo(repositoryInfo); + } + + /** + * Sets the enabled and existing package repositories. + * + * @param repositoryInfo The list of package repositories. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setRepositoriesWithHttpInfo(List repositoryInfo) throws ApiException { + okhttp3.Call localVarCall = setRepositoriesValidateBeforeCall(repositoryInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the enabled and existing package repositories. (asynchronously) + * + * @param repositoryInfo The list of package repositories. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRepositoriesAsync(List repositoryInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setRepositoriesValidateBeforeCall(repositoryInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PersonsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PersonsApi.java new file mode 100644 index 0000000000000..99d7cb0804c1b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PersonsApi.java @@ -0,0 +1,461 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PersonsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PersonsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PersonsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getPerson + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPerson(Async)"); + } + + return getPersonCall(name, userId, _callback); + + } + + /** + * Get person by name. + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getPerson(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getPersonWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Get person by name. + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPersonWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getPersonValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person by name. (asynchronously) + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersons + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonsCall(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (excludePersonTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludePersonTypes", excludePersonTypes)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (appearsInItemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("appearsInItemId", appearsInItemId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonsValidateBeforeCall(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getPersonsCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, _callback); + + } + + /** + * Gets all persons. + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getPersons(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getPersonsWithHttpInfo(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages); + return localVarResp.getData(); + } + + /** + * Gets all persons. + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPersonsWithHttpInfo(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getPersonsValidateBeforeCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all persons. (asynchronously) + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonsAsync(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonsValidateBeforeCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaylistsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaylistsApi.java new file mode 100644 index 0000000000000..34f4f3d00ec05 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaylistsApi.java @@ -0,0 +1,1800 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.CreatePlaylistDto; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.PlaylistCreationResult; +import org.openapitools.client.model.PlaylistDto; +import org.openapitools.client.model.PlaylistUserPermissions; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; +import org.openapitools.client.model.UpdatePlaylistDto; +import org.openapitools.client.model.UpdatePlaylistUserDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PlaylistsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PlaylistsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PlaylistsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addItemToPlaylist + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call addItemToPlaylistCall(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addItemToPlaylistValidateBeforeCall(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling addItemToPlaylist(Async)"); + } + + return addItemToPlaylistCall(playlistId, ids, userId, _callback); + + } + + /** + * Adds items to a playlist. + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public void addItemToPlaylist(UUID playlistId, List ids, UUID userId) throws ApiException { + addItemToPlaylistWithHttpInfo(playlistId, ids, userId); + } + + /** + * Adds items to a playlist. + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse addItemToPlaylistWithHttpInfo(UUID playlistId, List ids, UUID userId) throws ApiException { + okhttp3.Call localVarCall = addItemToPlaylistValidateBeforeCall(playlistId, ids, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds items to a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call addItemToPlaylistAsync(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addItemToPlaylistValidateBeforeCall(playlistId, ids, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createPlaylist + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playlist created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createPlaylistCall(String name, List ids, UUID userId, MediaType mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = createPlaylistDto; + + // create path and map variables + String localVarPath = "/Playlists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (mediaType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaType", mediaType)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createPlaylistValidateBeforeCall(String name, List ids, UUID userId, MediaType mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + return createPlaylistCall(name, ids, userId, mediaType, createPlaylistDto, _callback); + + } + + /** + * Creates a new playlist. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @return PlaylistCreationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playlist created. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaylistCreationResult createPlaylist(String name, List ids, UUID userId, MediaType mediaType, CreatePlaylistDto createPlaylistDto) throws ApiException { + ApiResponse localVarResp = createPlaylistWithHttpInfo(name, ids, userId, mediaType, createPlaylistDto); + return localVarResp.getData(); + } + + /** + * Creates a new playlist. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @return ApiResponse<PlaylistCreationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playlist created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createPlaylistWithHttpInfo(String name, List ids, UUID userId, MediaType mediaType, CreatePlaylistDto createPlaylistDto) throws ApiException { + okhttp3.Call localVarCall = createPlaylistValidateBeforeCall(name, ids, userId, mediaType, createPlaylistDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a new playlist. (asynchronously) + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playlist created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createPlaylistAsync(String name, List ids, UUID userId, MediaType mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createPlaylistValidateBeforeCall(name, ids, userId, mediaType, createPlaylistDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaylist + * @param playlistId The playlist id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 The playlist. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaylistCall(UUID playlistId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaylistValidateBeforeCall(UUID playlistId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getPlaylist(Async)"); + } + + return getPlaylistCall(playlistId, _callback); + + } + + /** + * Get a playlist. + * + * @param playlistId The playlist id. (required) + * @return PlaylistDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 The playlist. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaylistDto getPlaylist(UUID playlistId) throws ApiException { + ApiResponse localVarResp = getPlaylistWithHttpInfo(playlistId); + return localVarResp.getData(); + } + + /** + * Get a playlist. + * + * @param playlistId The playlist id. (required) + * @return ApiResponse<PlaylistDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 The playlist. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPlaylistWithHttpInfo(UUID playlistId) throws ApiException { + okhttp3.Call localVarCall = getPlaylistValidateBeforeCall(playlistId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 The playlist. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaylistAsync(UUID playlistId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaylistValidateBeforeCall(playlistId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaylistItems + * @param playlistId The playlist id. (required) + * @param userId User id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
403 Forbidden -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistItemsCall(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaylistItemsValidateBeforeCall(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getPlaylistItems(Async)"); + } + + return getPlaylistItemsCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Gets the original items of a playlist. + * + * @param playlistId The playlist id. (required) + * @param userId User id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
403 Forbidden -
404 Playlist not found. -
401 Unauthorized -
+ */ + public BaseItemDtoQueryResult getPlaylistItems(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getPlaylistItemsWithHttpInfo(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Gets the original items of a playlist. + * + * @param playlistId The playlist id. (required) + * @param userId User id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
403 Forbidden -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse getPlaylistItemsWithHttpInfo(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getPlaylistItemsValidateBeforeCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the original items of a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param userId User id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
403 Forbidden -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistItemsAsync(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaylistItemsValidateBeforeCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaylistUser + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User permission found. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistUserCall(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Users/{userId}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaylistUserValidateBeforeCall(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getPlaylistUser(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getPlaylistUser(Async)"); + } + + return getPlaylistUserCall(playlistId, userId, _callback); + + } + + /** + * Get a playlist user. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @return PlaylistUserPermissions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User permission found. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public PlaylistUserPermissions getPlaylistUser(UUID playlistId, UUID userId) throws ApiException { + ApiResponse localVarResp = getPlaylistUserWithHttpInfo(playlistId, userId); + return localVarResp.getData(); + } + + /** + * Get a playlist user. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @return ApiResponse<PlaylistUserPermissions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User permission found. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse getPlaylistUserWithHttpInfo(UUID playlistId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getPlaylistUserValidateBeforeCall(playlistId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get a playlist user. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User permission found. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistUserAsync(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaylistUserValidateBeforeCall(playlistId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaylistUsers + * @param playlistId The playlist id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Found shares. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistUsersCall(UUID playlistId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Users" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaylistUsersValidateBeforeCall(UUID playlistId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getPlaylistUsers(Async)"); + } + + return getPlaylistUsersCall(playlistId, _callback); + + } + + /** + * Get a playlist's users. + * + * @param playlistId The playlist id. (required) + * @return List<PlaylistUserPermissions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Found shares. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public List getPlaylistUsers(UUID playlistId) throws ApiException { + ApiResponse> localVarResp = getPlaylistUsersWithHttpInfo(playlistId); + return localVarResp.getData(); + } + + /** + * Get a playlist's users. + * + * @param playlistId The playlist id. (required) + * @return ApiResponse<List<PlaylistUserPermissions>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Found shares. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse> getPlaylistUsersWithHttpInfo(UUID playlistId) throws ApiException { + okhttp3.Call localVarCall = getPlaylistUsersValidateBeforeCall(playlistId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get a playlist's users. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Found shares. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call getPlaylistUsersAsync(UUID playlistId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaylistUsersValidateBeforeCall(playlistId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for moveItem + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call moveItemCall(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "newIndex" + "}", localVarApiClient.escapeString(newIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call moveItemValidateBeforeCall(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling moveItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling moveItem(Async)"); + } + + // verify the required parameter 'newIndex' is set + if (newIndex == null) { + throw new ApiException("Missing the required parameter 'newIndex' when calling moveItem(Async)"); + } + + return moveItemCall(playlistId, itemId, newIndex, _callback); + + } + + /** + * Moves a playlist item. + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public void moveItem(String playlistId, String itemId, Integer newIndex) throws ApiException { + moveItemWithHttpInfo(playlistId, itemId, newIndex); + } + + /** + * Moves a playlist item. + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse moveItemWithHttpInfo(String playlistId, String itemId, Integer newIndex) throws ApiException { + okhttp3.Call localVarCall = moveItemValidateBeforeCall(playlistId, itemId, newIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Moves a playlist item. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call moveItemAsync(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = moveItemValidateBeforeCall(playlistId, itemId, newIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeItemFromPlaylist + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call removeItemFromPlaylistCall(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (entryIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "entryIds", entryIds)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeItemFromPlaylistValidateBeforeCall(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling removeItemFromPlaylist(Async)"); + } + + return removeItemFromPlaylistCall(playlistId, entryIds, _callback); + + } + + /** + * Removes items from a playlist. + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public void removeItemFromPlaylist(String playlistId, List entryIds) throws ApiException { + removeItemFromPlaylistWithHttpInfo(playlistId, entryIds); + } + + /** + * Removes items from a playlist. + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse removeItemFromPlaylistWithHttpInfo(String playlistId, List entryIds) throws ApiException { + okhttp3.Call localVarCall = removeItemFromPlaylistValidateBeforeCall(playlistId, entryIds, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes items from a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call removeItemFromPlaylistAsync(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeItemFromPlaylistValidateBeforeCall(playlistId, entryIds, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeUserFromPlaylist + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User permissions removed from playlist. -
403 Forbidden -
404 No playlist or user permissions found. -
401 Unauthorized access. -
+ */ + public okhttp3.Call removeUserFromPlaylistCall(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Users/{userId}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeUserFromPlaylistValidateBeforeCall(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling removeUserFromPlaylist(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling removeUserFromPlaylist(Async)"); + } + + return removeUserFromPlaylistCall(playlistId, userId, _callback); + + } + + /** + * Remove a user from a playlist's users. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User permissions removed from playlist. -
403 Forbidden -
404 No playlist or user permissions found. -
401 Unauthorized access. -
+ */ + public void removeUserFromPlaylist(UUID playlistId, UUID userId) throws ApiException { + removeUserFromPlaylistWithHttpInfo(playlistId, userId); + } + + /** + * Remove a user from a playlist's users. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User permissions removed from playlist. -
403 Forbidden -
404 No playlist or user permissions found. -
401 Unauthorized access. -
+ */ + public ApiResponse removeUserFromPlaylistWithHttpInfo(UUID playlistId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = removeUserFromPlaylistValidateBeforeCall(playlistId, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Remove a user from a playlist's users. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User permissions removed from playlist. -
403 Forbidden -
404 No playlist or user permissions found. -
401 Unauthorized access. -
+ */ + public okhttp3.Call removeUserFromPlaylistAsync(UUID playlistId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeUserFromPlaylistValidateBeforeCall(playlistId, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updatePlaylist + * @param playlistId The playlist id. (required) + * @param updatePlaylistDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Playlist updated. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updatePlaylistCall(UUID playlistId, UpdatePlaylistDto updatePlaylistDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updatePlaylistDto; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updatePlaylistValidateBeforeCall(UUID playlistId, UpdatePlaylistDto updatePlaylistDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling updatePlaylist(Async)"); + } + + // verify the required parameter 'updatePlaylistDto' is set + if (updatePlaylistDto == null) { + throw new ApiException("Missing the required parameter 'updatePlaylistDto' when calling updatePlaylist(Async)"); + } + + return updatePlaylistCall(playlistId, updatePlaylistDto, _callback); + + } + + /** + * Updates a playlist. + * + * @param playlistId The playlist id. (required) + * @param updatePlaylistDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Playlist updated. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public void updatePlaylist(UUID playlistId, UpdatePlaylistDto updatePlaylistDto) throws ApiException { + updatePlaylistWithHttpInfo(playlistId, updatePlaylistDto); + } + + /** + * Updates a playlist. + * + * @param playlistId The playlist id. (required) + * @param updatePlaylistDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Playlist updated. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse updatePlaylistWithHttpInfo(UUID playlistId, UpdatePlaylistDto updatePlaylistDto) throws ApiException { + okhttp3.Call localVarCall = updatePlaylistValidateBeforeCall(playlistId, updatePlaylistDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param updatePlaylistDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Playlist updated. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updatePlaylistAsync(UUID playlistId, UpdatePlaylistDto updatePlaylistDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updatePlaylistValidateBeforeCall(playlistId, updatePlaylistDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updatePlaylistUser + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param updatePlaylistUserDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User's permissions modified. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updatePlaylistUserCall(UUID playlistId, UUID userId, UpdatePlaylistUserDto updatePlaylistUserDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updatePlaylistUserDto; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Users/{userId}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updatePlaylistUserValidateBeforeCall(UUID playlistId, UUID userId, UpdatePlaylistUserDto updatePlaylistUserDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling updatePlaylistUser(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updatePlaylistUser(Async)"); + } + + // verify the required parameter 'updatePlaylistUserDto' is set + if (updatePlaylistUserDto == null) { + throw new ApiException("Missing the required parameter 'updatePlaylistUserDto' when calling updatePlaylistUser(Async)"); + } + + return updatePlaylistUserCall(playlistId, userId, updatePlaylistUserDto, _callback); + + } + + /** + * Modify a user of a playlist's users. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param updatePlaylistUserDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User's permissions modified. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public void updatePlaylistUser(UUID playlistId, UUID userId, UpdatePlaylistUserDto updatePlaylistUserDto) throws ApiException { + updatePlaylistUserWithHttpInfo(playlistId, userId, updatePlaylistUserDto); + } + + /** + * Modify a user of a playlist's users. + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param updatePlaylistUserDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User's permissions modified. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public ApiResponse updatePlaylistUserWithHttpInfo(UUID playlistId, UUID userId, UpdatePlaylistUserDto updatePlaylistUserDto) throws ApiException { + okhttp3.Call localVarCall = updatePlaylistUserValidateBeforeCall(playlistId, userId, updatePlaylistUserDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Modify a user of a playlist's users. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param userId The user id. (required) + * @param updatePlaylistUserDto The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User's permissions modified. -
403 Access forbidden. -
404 Playlist not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updatePlaylistUserAsync(UUID playlistId, UUID userId, UpdatePlaylistUserDto updatePlaylistUserDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updatePlaylistUserValidateBeforeCall(playlistId, userId, updatePlaylistUserDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaystateApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaystateApi.java new file mode 100644 index 0000000000000..0c5163206db6b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PlaystateApi.java @@ -0,0 +1,1477 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.time.OffsetDateTime; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.PlaybackProgressInfo; +import org.openapitools.client.model.PlaybackStartInfo; +import org.openapitools.client.model.PlaybackStopInfo; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RepeatMode; +import java.util.UUID; +import org.openapitools.client.model.UserItemDataDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PlaystateApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PlaystateApi() { + this(Configuration.getDefaultApiClient()); + } + + public PlaystateApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for markPlayedItem + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param datePlayed Optional. The date the item was played. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markPlayedItemCall(UUID itemId, UUID userId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserPlayedItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (datePlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("datePlayed", datePlayed)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markPlayedItemValidateBeforeCall(UUID itemId, UUID userId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markPlayedItem(Async)"); + } + + return markPlayedItemCall(itemId, userId, datePlayed, _callback); + + } + + /** + * Marks an item as played for user. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param datePlayed Optional. The date the item was played. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markPlayedItem(UUID itemId, UUID userId, OffsetDateTime datePlayed) throws ApiException { + ApiResponse localVarResp = markPlayedItemWithHttpInfo(itemId, userId, datePlayed); + return localVarResp.getData(); + } + + /** + * Marks an item as played for user. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param datePlayed Optional. The date the item was played. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markPlayedItemWithHttpInfo(UUID itemId, UUID userId, OffsetDateTime datePlayed) throws ApiException { + okhttp3.Call localVarCall = markPlayedItemValidateBeforeCall(itemId, userId, datePlayed, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as played for user. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param datePlayed Optional. The date the item was played. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markPlayedItemAsync(UUID itemId, UUID userId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markPlayedItemValidateBeforeCall(itemId, userId, datePlayed, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for markUnplayedItem + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markUnplayedItemCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserPlayedItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markUnplayedItemValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markUnplayedItem(Async)"); + } + + return markUnplayedItemCall(itemId, userId, _callback); + + } + + /** + * Marks an item as unplayed for user. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markUnplayedItem(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = markUnplayedItemWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Marks an item as unplayed for user. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markUnplayedItemWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = markUnplayedItemValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as unplayed for user. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markUnplayedItemAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markUnplayedItemValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackProgress + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackProgressCall(UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/PlayingItems/{itemId}/Progress" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (positionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("positionTicks", positionTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (volumeLevel != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("volumeLevel", volumeLevel)); + } + + if (playMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playMethod", playMethod)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (repeatMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("repeatMode", repeatMode)); + } + + if (isPaused != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPaused", isPaused)); + } + + if (isMuted != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMuted", isMuted)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackProgressValidateBeforeCall(UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackProgress(Async)"); + } + + return onPlaybackProgressCall(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, _callback); + + } + + /** + * Reports a session's playback progress. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackProgress(UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted) throws ApiException { + onPlaybackProgressWithHttpInfo(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted); + } + + /** + * Reports a session's playback progress. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackProgressWithHttpInfo(UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted) throws ApiException { + okhttp3.Call localVarCall = onPlaybackProgressValidateBeforeCall(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports a session's playback progress. (asynchronously) + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackProgressAsync(UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackProgressValidateBeforeCall(itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackStart + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStartCall(UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/PlayingItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (playMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playMethod", playMethod)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (canSeek != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("canSeek", canSeek)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackStartValidateBeforeCall(UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackStart(Async)"); + } + + return onPlaybackStartCall(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, _callback); + + } + + /** + * Reports that a session has begun playing an item. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackStart(UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek) throws ApiException { + onPlaybackStartWithHttpInfo(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek); + } + + /** + * Reports that a session has begun playing an item. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackStartWithHttpInfo(UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek) throws ApiException { + okhttp3.Call localVarCall = onPlaybackStartValidateBeforeCall(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session has begun playing an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStartAsync(UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackStartValidateBeforeCall(itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackStopped + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStoppedCall(UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/PlayingItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (nextMediaType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nextMediaType", nextMediaType)); + } + + if (positionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("positionTicks", positionTicks)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackStoppedValidateBeforeCall(UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackStopped(Async)"); + } + + return onPlaybackStoppedCall(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, _callback); + + } + + /** + * Reports that a session has stopped playing an item. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackStopped(UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId) throws ApiException { + onPlaybackStoppedWithHttpInfo(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId); + } + + /** + * Reports that a session has stopped playing an item. + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackStoppedWithHttpInfo(UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId) throws ApiException { + okhttp3.Call localVarCall = onPlaybackStoppedValidateBeforeCall(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session has stopped playing an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStoppedAsync(UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackStoppedValidateBeforeCall(itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for pingPlaybackSession + * @param playSessionId Playback session id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call pingPlaybackSessionCall(String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call pingPlaybackSessionValidateBeforeCall(String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playSessionId' is set + if (playSessionId == null) { + throw new ApiException("Missing the required parameter 'playSessionId' when calling pingPlaybackSession(Async)"); + } + + return pingPlaybackSessionCall(playSessionId, _callback); + + } + + /** + * Pings a playback session. + * + * @param playSessionId Playback session id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public void pingPlaybackSession(String playSessionId) throws ApiException { + pingPlaybackSessionWithHttpInfo(playSessionId); + } + + /** + * Pings a playback session. + * + * @param playSessionId Playback session id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse pingPlaybackSessionWithHttpInfo(String playSessionId) throws ApiException { + okhttp3.Call localVarCall = pingPlaybackSessionValidateBeforeCall(playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Pings a playback session. (asynchronously) + * + * @param playSessionId Playback session id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call pingPlaybackSessionAsync(String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = pingPlaybackSessionValidateBeforeCall(playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackProgress + * @param playbackProgressInfo The playback progress info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackProgressCall(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackProgressInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Progress"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackProgressValidateBeforeCall(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackProgressCall(playbackProgressInfo, _callback); + + } + + /** + * Reports playback progress within a session. + * + * @param playbackProgressInfo The playback progress info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo) throws ApiException { + reportPlaybackProgressWithHttpInfo(playbackProgressInfo); + } + + /** + * Reports playback progress within a session. + * + * @param playbackProgressInfo The playback progress info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackProgressWithHttpInfo(PlaybackProgressInfo playbackProgressInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackProgressValidateBeforeCall(playbackProgressInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback progress within a session. (asynchronously) + * + * @param playbackProgressInfo The playback progress info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackProgressAsync(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackProgressValidateBeforeCall(playbackProgressInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackStart + * @param playbackStartInfo The playback start info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStartCall(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackStartInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackStartValidateBeforeCall(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackStartCall(playbackStartInfo, _callback); + + } + + /** + * Reports playback has started within a session. + * + * @param playbackStartInfo The playback start info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackStart(PlaybackStartInfo playbackStartInfo) throws ApiException { + reportPlaybackStartWithHttpInfo(playbackStartInfo); + } + + /** + * Reports playback has started within a session. + * + * @param playbackStartInfo The playback start info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackStartWithHttpInfo(PlaybackStartInfo playbackStartInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackStartValidateBeforeCall(playbackStartInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback has started within a session. (asynchronously) + * + * @param playbackStartInfo The playback start info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStartAsync(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackStartValidateBeforeCall(playbackStartInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackStopped + * @param playbackStopInfo The playback stop info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStoppedCall(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackStopInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Stopped"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackStoppedValidateBeforeCall(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackStoppedCall(playbackStopInfo, _callback); + + } + + /** + * Reports playback has stopped within a session. + * + * @param playbackStopInfo The playback stop info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackStopped(PlaybackStopInfo playbackStopInfo) throws ApiException { + reportPlaybackStoppedWithHttpInfo(playbackStopInfo); + } + + /** + * Reports playback has stopped within a session. + * + * @param playbackStopInfo The playback stop info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackStoppedWithHttpInfo(PlaybackStopInfo playbackStopInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackStoppedValidateBeforeCall(playbackStopInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback has stopped within a session. (asynchronously) + * + * @param playbackStopInfo The playback stop info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStoppedAsync(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackStoppedValidateBeforeCall(playbackStopInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PluginsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PluginsApi.java new file mode 100644 index 0000000000000..a104af338b3e7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/PluginsApi.java @@ -0,0 +1,1359 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.PluginInfo; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PluginsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PluginsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PluginsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for disablePlugin + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call disablePluginCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Disable" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call disablePluginValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling disablePlugin(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling disablePlugin(Async)"); + } + + return disablePluginCall(pluginId, version, _callback); + + } + + /** + * Disable a plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void disablePlugin(UUID pluginId, String version) throws ApiException { + disablePluginWithHttpInfo(pluginId, version); + } + + /** + * Disable a plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse disablePluginWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = disablePluginValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Disable a plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call disablePluginAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = disablePluginValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for enablePlugin + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call enablePluginCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Enable" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call enablePluginValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling enablePlugin(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling enablePlugin(Async)"); + } + + return enablePluginCall(pluginId, version, _callback); + + } + + /** + * Enables a disabled plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void enablePlugin(UUID pluginId, String version) throws ApiException { + enablePluginWithHttpInfo(pluginId, version); + } + + /** + * Enables a disabled plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse enablePluginWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = enablePluginValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Enables a disabled plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call enablePluginAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = enablePluginValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPluginConfiguration + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginConfigurationCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Configuration" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginConfigurationValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginConfiguration(Async)"); + } + + return getPluginConfigurationCall(pluginId, _callback); + + } + + /** + * Gets plugin configuration. + * + * @param pluginId Plugin id. (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public Object getPluginConfiguration(UUID pluginId) throws ApiException { + ApiResponse localVarResp = getPluginConfigurationWithHttpInfo(pluginId); + return localVarResp.getData(); + } + + /** + * Gets plugin configuration. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginConfigurationWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = getPluginConfigurationValidateBeforeCall(pluginId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets plugin configuration. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginConfigurationAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginConfigurationValidateBeforeCall(pluginId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPluginImage + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginImageCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Image" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginImageValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginImage(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling getPluginImage(Async)"); + } + + return getPluginImageCall(pluginId, version, _callback); + + } + + /** + * Gets a plugin's image. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public File getPluginImage(UUID pluginId, String version) throws ApiException { + ApiResponse localVarResp = getPluginImageWithHttpInfo(pluginId, version); + return localVarResp.getData(); + } + + /** + * Gets a plugin's image. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginImageWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = getPluginImageValidateBeforeCall(pluginId, version, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a plugin's image. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginImageAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginImageValidateBeforeCall(pluginId, version, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPluginManifest + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginManifestCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Manifest" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginManifestValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginManifest(Async)"); + } + + return getPluginManifestCall(pluginId, _callback); + + } + + /** + * Gets a plugin's manifest. + * + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void getPluginManifest(UUID pluginId) throws ApiException { + getPluginManifestWithHttpInfo(pluginId); + } + + /** + * Gets a plugin's manifest. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginManifestWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = getPluginManifestValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Gets a plugin's manifest. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginManifestAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginManifestValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPlugins + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPluginsCall(_callback); + + } + + /** + * Gets a list of currently installed plugins. + * + * @return List<PluginInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPlugins() throws ApiException { + ApiResponse> localVarResp = getPluginsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of currently installed plugins. + * + * @return ApiResponse<List<PluginInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPluginsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPluginsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of currently installed plugins. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for uninstallPlugin + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call uninstallPluginCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call uninstallPluginValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling uninstallPlugin(Async)"); + } + + return uninstallPluginCall(pluginId, _callback); + + } + + /** + * Uninstalls a plugin. + * + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public void uninstallPlugin(UUID pluginId) throws ApiException { + uninstallPluginWithHttpInfo(pluginId); + } + + /** + * Uninstalls a plugin. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse uninstallPluginWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = uninstallPluginValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uninstalls a plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call uninstallPluginAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uninstallPluginValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for uninstallPluginByVersion + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uninstallPluginByVersionCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uninstallPluginByVersionValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling uninstallPluginByVersion(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling uninstallPluginByVersion(Async)"); + } + + return uninstallPluginByVersionCall(pluginId, version, _callback); + + } + + /** + * Uninstalls a plugin by version. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void uninstallPluginByVersion(UUID pluginId, String version) throws ApiException { + uninstallPluginByVersionWithHttpInfo(pluginId, version); + } + + /** + * Uninstalls a plugin by version. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse uninstallPluginByVersionWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = uninstallPluginByVersionValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uninstalls a plugin by version. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uninstallPluginByVersionAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uninstallPluginByVersionValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updatePluginConfiguration + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updatePluginConfigurationCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Configuration" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updatePluginConfigurationValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling updatePluginConfiguration(Async)"); + } + + return updatePluginConfigurationCall(pluginId, _callback); + + } + + /** + * Updates plugin configuration. + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updatePluginConfiguration(UUID pluginId) throws ApiException { + updatePluginConfigurationWithHttpInfo(pluginId); + } + + /** + * Updates plugin configuration. + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updatePluginConfigurationWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = updatePluginConfigurationValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates plugin configuration. (asynchronously) + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updatePluginConfigurationAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updatePluginConfigurationValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/QuickConnectApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/QuickConnectApi.java new file mode 100644 index 0000000000000..2c411ea0b2995 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/QuickConnectApi.java @@ -0,0 +1,603 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.QuickConnectResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class QuickConnectApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public QuickConnectApi() { + this(Configuration.getDefaultApiClient()); + } + + public QuickConnectApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for authorizeQuickConnect + * @param code Quick connect code to authorize. (required) + * @param userId The user the authorize. Access to the requested user is required. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public okhttp3.Call authorizeQuickConnectCall(String code, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Authorize"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (code != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("code", code)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authorizeQuickConnectValidateBeforeCall(String code, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'code' is set + if (code == null) { + throw new ApiException("Missing the required parameter 'code' when calling authorizeQuickConnect(Async)"); + } + + return authorizeQuickConnectCall(code, userId, _callback); + + } + + /** + * Authorizes a pending quick connect request. + * + * @param code Quick connect code to authorize. (required) + * @param userId The user the authorize. Access to the requested user is required. (optional) + * @return Boolean + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public Boolean authorizeQuickConnect(String code, UUID userId) throws ApiException { + ApiResponse localVarResp = authorizeQuickConnectWithHttpInfo(code, userId); + return localVarResp.getData(); + } + + /** + * Authorizes a pending quick connect request. + * + * @param code Quick connect code to authorize. (required) + * @param userId The user the authorize. Access to the requested user is required. (optional) + * @return ApiResponse<Boolean> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public ApiResponse authorizeQuickConnectWithHttpInfo(String code, UUID userId) throws ApiException { + okhttp3.Call localVarCall = authorizeQuickConnectValidateBeforeCall(code, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authorizes a pending quick connect request. (asynchronously) + * + * @param code Quick connect code to authorize. (required) + * @param userId The user the authorize. Access to the requested user is required. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public okhttp3.Call authorizeQuickConnectAsync(String code, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authorizeQuickConnectValidateBeforeCall(code, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getQuickConnectEnabled + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public okhttp3.Call getQuickConnectEnabledCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Enabled"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQuickConnectEnabledValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getQuickConnectEnabledCall(_callback); + + } + + /** + * Gets the current quick connect state. + * + * @return Boolean + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public Boolean getQuickConnectEnabled() throws ApiException { + ApiResponse localVarResp = getQuickConnectEnabledWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the current quick connect state. + * + * @return ApiResponse<Boolean> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public ApiResponse getQuickConnectEnabledWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getQuickConnectEnabledValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the current quick connect state. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public okhttp3.Call getQuickConnectEnabledAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQuickConnectEnabledValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getQuickConnectState + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public okhttp3.Call getQuickConnectStateCall(String secret, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Connect"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (secret != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("secret", secret)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQuickConnectStateValidateBeforeCall(String secret, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'secret' is set + if (secret == null) { + throw new ApiException("Missing the required parameter 'secret' when calling getQuickConnectState(Async)"); + } + + return getQuickConnectStateCall(secret, _callback); + + } + + /** + * Attempts to retrieve authentication information. + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @return QuickConnectResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public QuickConnectResult getQuickConnectState(String secret) throws ApiException { + ApiResponse localVarResp = getQuickConnectStateWithHttpInfo(secret); + return localVarResp.getData(); + } + + /** + * Attempts to retrieve authentication information. + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @return ApiResponse<QuickConnectResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public ApiResponse getQuickConnectStateWithHttpInfo(String secret) throws ApiException { + okhttp3.Call localVarCall = getQuickConnectStateValidateBeforeCall(secret, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Attempts to retrieve authentication information. (asynchronously) + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public okhttp3.Call getQuickConnectStateAsync(String secret, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQuickConnectStateValidateBeforeCall(secret, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for initiateQuickConnect + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public okhttp3.Call initiateQuickConnectCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Initiate"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call initiateQuickConnectValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return initiateQuickConnectCall(_callback); + + } + + /** + * Initiate a new quick connect request. + * + * @return QuickConnectResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public QuickConnectResult initiateQuickConnect() throws ApiException { + ApiResponse localVarResp = initiateQuickConnectWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Initiate a new quick connect request. + * + * @return ApiResponse<QuickConnectResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public ApiResponse initiateQuickConnectWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = initiateQuickConnectValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Initiate a new quick connect request. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public okhttp3.Call initiateQuickConnectAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = initiateQuickConnectValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/RemoteImageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/RemoteImageApi.java new file mode 100644 index 0000000000000..9c11c4260ed63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/RemoteImageApi.java @@ -0,0 +1,559 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ImageProviderInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteImageResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class RemoteImageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RemoteImageApi() { + this(Configuration.getDefaultApiClient()); + } + + public RemoteImageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for downloadRemoteImage + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteImageCall(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages/Download" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (imageUrl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageUrl", imageUrl)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call downloadRemoteImageValidateBeforeCall(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling downloadRemoteImage(Async)"); + } + + // verify the required parameter 'type' is set + if (type == null) { + throw new ApiException("Missing the required parameter 'type' when calling downloadRemoteImage(Async)"); + } + + return downloadRemoteImageCall(itemId, type, imageUrl, _callback); + + } + + /** + * Downloads a remote image for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void downloadRemoteImage(UUID itemId, ImageType type, String imageUrl) throws ApiException { + downloadRemoteImageWithHttpInfo(itemId, type, imageUrl); + } + + /** + * Downloads a remote image for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse downloadRemoteImageWithHttpInfo(UUID itemId, ImageType type, String imageUrl) throws ApiException { + okhttp3.Call localVarCall = downloadRemoteImageValidateBeforeCall(itemId, type, imageUrl, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Downloads a remote image for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteImageAsync(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = downloadRemoteImageValidateBeforeCall(itemId, type, imageUrl, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getRemoteImageProviders + * @param itemId Item Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImageProvidersCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages/Providers" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteImageProvidersValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getRemoteImageProviders(Async)"); + } + + return getRemoteImageProvidersCall(itemId, _callback); + + } + + /** + * Gets available remote image providers for an item. + * + * @param itemId Item Id. (required) + * @return List<ImageProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getRemoteImageProviders(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getRemoteImageProvidersWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets available remote image providers for an item. + * + * @param itemId Item Id. (required) + * @return ApiResponse<List<ImageProviderInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getRemoteImageProvidersWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getRemoteImageProvidersValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available remote image providers for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImageProvidersAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteImageProvidersValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRemoteImages + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImagesCall(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (providerName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("providerName", providerName)); + } + + if (includeAllLanguages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeAllLanguages", includeAllLanguages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteImagesValidateBeforeCall(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getRemoteImages(Async)"); + } + + return getRemoteImagesCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, _callback); + + } + + /** + * Gets available remote images for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @return RemoteImageResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public RemoteImageResult getRemoteImages(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages) throws ApiException { + ApiResponse localVarResp = getRemoteImagesWithHttpInfo(itemId, type, startIndex, limit, providerName, includeAllLanguages); + return localVarResp.getData(); + } + + /** + * Gets available remote images for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @return ApiResponse<RemoteImageResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRemoteImagesWithHttpInfo(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages) throws ApiException { + okhttp3.Call localVarCall = getRemoteImagesValidateBeforeCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available remote images for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImagesAsync(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteImagesValidateBeforeCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java new file mode 100644 index 0000000000000..d3bcbae087d1b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java @@ -0,0 +1,784 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.TaskInfo; +import org.openapitools.client.model.TaskTriggerInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ScheduledTasksApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ScheduledTasksApi() { + this(Configuration.getDefaultApiClient()); + } + + public ScheduledTasksApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling getTask(Async)"); + } + + return getTaskCall(taskId, _callback); + + } + + /** + * Get task by id. + * + * @param taskId Task Id. (required) + * @return TaskInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public TaskInfo getTask(String taskId) throws ApiException { + ApiResponse localVarResp = getTaskWithHttpInfo(taskId); + return localVarResp.getData(); + } + + /** + * Get task by id. + * + * @param taskId Task Id. (required) + * @return ApiResponse<TaskInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = getTaskValidateBeforeCall(taskId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get task by id. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTaskValidateBeforeCall(taskId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTasks + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTasksCall(Boolean isHidden, Boolean isEnabled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + if (isEnabled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isEnabled", isEnabled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTasksValidateBeforeCall(Boolean isHidden, Boolean isEnabled, final ApiCallback _callback) throws ApiException { + return getTasksCall(isHidden, isEnabled, _callback); + + } + + /** + * Get tasks. + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @return List<TaskInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTasks(Boolean isHidden, Boolean isEnabled) throws ApiException { + ApiResponse> localVarResp = getTasksWithHttpInfo(isHidden, isEnabled); + return localVarResp.getData(); + } + + /** + * Get tasks. + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @return ApiResponse<List<TaskInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTasksWithHttpInfo(Boolean isHidden, Boolean isEnabled) throws ApiException { + okhttp3.Call localVarCall = getTasksValidateBeforeCall(isHidden, isEnabled, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get tasks. (asynchronously) + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTasksAsync(Boolean isHidden, Boolean isEnabled, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTasksValidateBeforeCall(isHidden, isEnabled, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for startTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call startTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/Running/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call startTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling startTask(Async)"); + } + + return startTaskCall(taskId, _callback); + + } + + /** + * Start specified task. + * + * @param taskId Task Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void startTask(String taskId) throws ApiException { + startTaskWithHttpInfo(taskId); + } + + /** + * Start specified task. + * + * @param taskId Task Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse startTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = startTaskValidateBeforeCall(taskId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Start specified task. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call startTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = startTaskValidateBeforeCall(taskId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for stopTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/Running/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call stopTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling stopTask(Async)"); + } + + return stopTaskCall(taskId, _callback); + + } + + /** + * Stop specified task. + * + * @param taskId Task Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void stopTask(String taskId) throws ApiException { + stopTaskWithHttpInfo(taskId); + } + + /** + * Stop specified task. + * + * @param taskId Task Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse stopTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = stopTaskValidateBeforeCall(taskId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Stop specified task. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = stopTaskValidateBeforeCall(taskId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateTask + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTaskCall(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = taskTriggerInfo; + + // create path and map variables + String localVarPath = "/ScheduledTasks/{taskId}/Triggers" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateTaskValidateBeforeCall(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling updateTask(Async)"); + } + + // verify the required parameter 'taskTriggerInfo' is set + if (taskTriggerInfo == null) { + throw new ApiException("Missing the required parameter 'taskTriggerInfo' when calling updateTask(Async)"); + } + + return updateTaskCall(taskId, taskTriggerInfo, _callback); + + } + + /** + * Update specified task triggers. + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateTask(String taskId, List taskTriggerInfo) throws ApiException { + updateTaskWithHttpInfo(taskId, taskTriggerInfo); + } + + /** + * Update specified task triggers. + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateTaskWithHttpInfo(String taskId, List taskTriggerInfo) throws ApiException { + okhttp3.Call localVarCall = updateTaskValidateBeforeCall(taskId, taskTriggerInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update specified task triggers. (asynchronously) + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTaskAsync(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateTaskValidateBeforeCall(taskId, taskTriggerInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SearchApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SearchApi.java new file mode 100644 index 0000000000000..13a352633dded --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SearchApi.java @@ -0,0 +1,354 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.SearchHintResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SearchApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SearchApi() { + this(Configuration.getDefaultApiClient()); + } + + public SearchApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getSearchHints + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimited. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimited. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimited. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSearchHintsCall(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Search/Hints"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (includePeople != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includePeople", includePeople)); + } + + if (includeMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeMedia", includeMedia)); + } + + if (includeGenres != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeGenres", includeGenres)); + } + + if (includeStudios != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeStudios", includeStudios)); + } + + if (includeArtists != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeArtists", includeArtists)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSearchHintsValidateBeforeCall(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'searchTerm' is set + if (searchTerm == null) { + throw new ApiException("Missing the required parameter 'searchTerm' when calling getSearchHints(Async)"); + } + + return getSearchHintsCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, _callback); + + } + + /** + * Gets the search hint result. + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimited. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimited. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimited. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @return SearchHintResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SearchHintResult getSearchHints(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists) throws ApiException { + ApiResponse localVarResp = getSearchHintsWithHttpInfo(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists); + return localVarResp.getData(); + } + + /** + * Gets the search hint result. + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimited. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimited. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimited. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @return ApiResponse<SearchHintResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSearchHintsWithHttpInfo(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists) throws ApiException { + okhttp3.Call localVarCall = getSearchHintsValidateBeforeCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the search hint result. (asynchronously) + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimited. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimited. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimited. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSearchHintsAsync(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSearchHintsValidateBeforeCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SessionApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SessionApi.java new file mode 100644 index 0000000000000..590ff89e4ea58 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SessionApi.java @@ -0,0 +1,2416 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ClientCapabilitiesDto; +import org.openapitools.client.model.GeneralCommand; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.MessageCommand; +import org.openapitools.client.model.NameIdPair; +import org.openapitools.client.model.PlayCommand; +import org.openapitools.client.model.PlaystateCommand; +import org.openapitools.client.model.SessionInfoDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SessionApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SessionApi() { + this(Configuration.getDefaultApiClient()); + } + + public SessionApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addUserToSession + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addUserToSessionCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/User/{userId}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addUserToSessionValidateBeforeCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling addUserToSession(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling addUserToSession(Async)"); + } + + return addUserToSessionCall(sessionId, userId, _callback); + + } + + /** + * Adds an additional user to a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addUserToSession(String sessionId, UUID userId) throws ApiException { + addUserToSessionWithHttpInfo(sessionId, userId); + } + + /** + * Adds an additional user to a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addUserToSessionWithHttpInfo(String sessionId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = addUserToSessionValidateBeforeCall(sessionId, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds an additional user to a session. (asynchronously) + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addUserToSessionAsync(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addUserToSessionValidateBeforeCall(sessionId, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for displayContent + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call displayContentCall(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Viewing" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemType", itemType)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (itemName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemName", itemName)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call displayContentValidateBeforeCall(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemType' is set + if (itemType == null) { + throw new ApiException("Missing the required parameter 'itemType' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemName' is set + if (itemName == null) { + throw new ApiException("Missing the required parameter 'itemName' when calling displayContent(Async)"); + } + + return displayContentCall(sessionId, itemType, itemId, itemName, _callback); + + } + + /** + * Instructs a session to browse to an item or view. + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void displayContent(String sessionId, BaseItemKind itemType, String itemId, String itemName) throws ApiException { + displayContentWithHttpInfo(sessionId, itemType, itemId, itemName); + } + + /** + * Instructs a session to browse to an item or view. + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse displayContentWithHttpInfo(String sessionId, BaseItemKind itemType, String itemId, String itemName) throws ApiException { + okhttp3.Call localVarCall = displayContentValidateBeforeCall(sessionId, itemType, itemId, itemName, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Instructs a session to browse to an item or view. (asynchronously) + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call displayContentAsync(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = displayContentValidateBeforeCall(sessionId, itemType, itemId, itemName, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAuthProviders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAuthProvidersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Providers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAuthProvidersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getAuthProvidersCall(_callback); + + } + + /** + * Get all auth providers. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAuthProviders() throws ApiException { + ApiResponse> localVarResp = getAuthProvidersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all auth providers. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAuthProvidersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getAuthProvidersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all auth providers. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAuthProvidersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAuthProvidersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPasswordResetProviders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPasswordResetProvidersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/PasswordResetProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPasswordResetProvidersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPasswordResetProvidersCall(_callback); + + } + + /** + * Get all password reset providers. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPasswordResetProviders() throws ApiException { + ApiResponse> localVarResp = getPasswordResetProvidersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all password reset providers. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPasswordResetProvidersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPasswordResetProvidersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all password reset providers. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPasswordResetProvidersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPasswordResetProvidersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSessions + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSessionsCall(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (controllableByUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("controllableByUserId", controllableByUserId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (activeWithinSeconds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("activeWithinSeconds", activeWithinSeconds)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSessionsValidateBeforeCall(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback _callback) throws ApiException { + return getSessionsCall(controllableByUserId, deviceId, activeWithinSeconds, _callback); + + } + + /** + * Gets a list of sessions. + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @return List<SessionInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSessions(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds) throws ApiException { + ApiResponse> localVarResp = getSessionsWithHttpInfo(controllableByUserId, deviceId, activeWithinSeconds); + return localVarResp.getData(); + } + + /** + * Gets a list of sessions. + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @return ApiResponse<List<SessionInfoDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSessionsWithHttpInfo(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds) throws ApiException { + okhttp3.Call localVarCall = getSessionsValidateBeforeCall(controllableByUserId, deviceId, activeWithinSeconds, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of sessions. (asynchronously) + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSessionsAsync(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSessionsValidateBeforeCall(controllableByUserId, deviceId, activeWithinSeconds, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for play + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call playCall(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Playing" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (playCommand != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playCommand", playCommand)); + } + + if (itemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "itemIds", itemIds)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call playValidateBeforeCall(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling play(Async)"); + } + + // verify the required parameter 'playCommand' is set + if (playCommand == null) { + throw new ApiException("Missing the required parameter 'playCommand' when calling play(Async)"); + } + + // verify the required parameter 'itemIds' is set + if (itemIds == null) { + throw new ApiException("Missing the required parameter 'itemIds' when calling play(Async)"); + } + + return playCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, _callback); + + } + + /** + * Instructs a session to play an item. + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void play(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex) throws ApiException { + playWithHttpInfo(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex); + } + + /** + * Instructs a session to play an item. + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse playWithHttpInfo(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex) throws ApiException { + okhttp3.Call localVarCall = playValidateBeforeCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Instructs a session to play an item. (asynchronously) + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call playAsync(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = playValidateBeforeCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postCapabilities + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postCapabilitiesCall(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Capabilities"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (playableMediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "playableMediaTypes", playableMediaTypes)); + } + + if (supportedCommands != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "supportedCommands", supportedCommands)); + } + + if (supportsMediaControl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsMediaControl", supportsMediaControl)); + } + + if (supportsPersistentIdentifier != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsPersistentIdentifier", supportsPersistentIdentifier)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postCapabilitiesValidateBeforeCall(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + return postCapabilitiesCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier, _callback); + + } + + /** + * Updates capabilities for a device. + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postCapabilities(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsPersistentIdentifier) throws ApiException { + postCapabilitiesWithHttpInfo(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier); + } + + /** + * Updates capabilities for a device. + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postCapabilitiesWithHttpInfo(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsPersistentIdentifier) throws ApiException { + okhttp3.Call localVarCall = postCapabilitiesValidateBeforeCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates capabilities for a device. (asynchronously) + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postCapabilitiesAsync(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postCapabilitiesValidateBeforeCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postFullCapabilities + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postFullCapabilitiesCall(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = clientCapabilitiesDto; + + // create path and map variables + String localVarPath = "/Sessions/Capabilities/Full"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postFullCapabilitiesValidateBeforeCall(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'clientCapabilitiesDto' is set + if (clientCapabilitiesDto == null) { + throw new ApiException("Missing the required parameter 'clientCapabilitiesDto' when calling postFullCapabilities(Async)"); + } + + return postFullCapabilitiesCall(clientCapabilitiesDto, id, _callback); + + } + + /** + * Updates capabilities for a device. + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postFullCapabilities(ClientCapabilitiesDto clientCapabilitiesDto, String id) throws ApiException { + postFullCapabilitiesWithHttpInfo(clientCapabilitiesDto, id); + } + + /** + * Updates capabilities for a device. + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postFullCapabilitiesWithHttpInfo(ClientCapabilitiesDto clientCapabilitiesDto, String id) throws ApiException { + okhttp3.Call localVarCall = postFullCapabilitiesValidateBeforeCall(clientCapabilitiesDto, id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates capabilities for a device. (asynchronously) + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postFullCapabilitiesAsync(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postFullCapabilitiesValidateBeforeCall(clientCapabilitiesDto, id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeUserFromSession + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeUserFromSessionCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/User/{userId}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeUserFromSessionValidateBeforeCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling removeUserFromSession(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling removeUserFromSession(Async)"); + } + + return removeUserFromSessionCall(sessionId, userId, _callback); + + } + + /** + * Removes an additional user from a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeUserFromSession(String sessionId, UUID userId) throws ApiException { + removeUserFromSessionWithHttpInfo(sessionId, userId); + } + + /** + * Removes an additional user from a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeUserFromSessionWithHttpInfo(String sessionId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = removeUserFromSessionValidateBeforeCall(sessionId, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes an additional user from a session. (asynchronously) + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeUserFromSessionAsync(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeUserFromSessionValidateBeforeCall(sessionId, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportSessionEnded + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportSessionEndedCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Logout"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportSessionEndedValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return reportSessionEndedCall(_callback); + + } + + /** + * Reports that a session has ended. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportSessionEnded() throws ApiException { + reportSessionEndedWithHttpInfo(); + } + + /** + * Reports that a session has ended. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportSessionEndedWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = reportSessionEndedValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session has ended. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportSessionEndedAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportSessionEndedValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportViewing + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportViewingCall(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Viewing"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (sessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sessionId", sessionId)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportViewingValidateBeforeCall(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling reportViewing(Async)"); + } + + return reportViewingCall(itemId, sessionId, _callback); + + } + + /** + * Reports that a session is viewing an item. + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportViewing(String itemId, String sessionId) throws ApiException { + reportViewingWithHttpInfo(itemId, sessionId); + } + + /** + * Reports that a session is viewing an item. + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportViewingWithHttpInfo(String itemId, String sessionId) throws ApiException { + okhttp3.Call localVarCall = reportViewingValidateBeforeCall(itemId, sessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session is viewing an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportViewingAsync(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportViewingValidateBeforeCall(itemId, sessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendFullGeneralCommand + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendFullGeneralCommandCall(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = generalCommand; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Command" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendFullGeneralCommandValidateBeforeCall(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendFullGeneralCommand(Async)"); + } + + // verify the required parameter 'generalCommand' is set + if (generalCommand == null) { + throw new ApiException("Missing the required parameter 'generalCommand' when calling sendFullGeneralCommand(Async)"); + } + + return sendFullGeneralCommandCall(sessionId, generalCommand, _callback); + + } + + /** + * Issues a full general command to a client. + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendFullGeneralCommand(String sessionId, GeneralCommand generalCommand) throws ApiException { + sendFullGeneralCommandWithHttpInfo(sessionId, generalCommand); + } + + /** + * Issues a full general command to a client. + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendFullGeneralCommandWithHttpInfo(String sessionId, GeneralCommand generalCommand) throws ApiException { + okhttp3.Call localVarCall = sendFullGeneralCommandValidateBeforeCall(sessionId, generalCommand, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a full general command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendFullGeneralCommandAsync(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendFullGeneralCommandValidateBeforeCall(sessionId, generalCommand, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendGeneralCommand + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendGeneralCommandCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Command/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendGeneralCommandValidateBeforeCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendGeneralCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendGeneralCommand(Async)"); + } + + return sendGeneralCommandCall(sessionId, command, _callback); + + } + + /** + * Issues a general command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendGeneralCommand(String sessionId, GeneralCommandType command) throws ApiException { + sendGeneralCommandWithHttpInfo(sessionId, command); + } + + /** + * Issues a general command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendGeneralCommandWithHttpInfo(String sessionId, GeneralCommandType command) throws ApiException { + okhttp3.Call localVarCall = sendGeneralCommandValidateBeforeCall(sessionId, command, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a general command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendGeneralCommandAsync(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendGeneralCommandValidateBeforeCall(sessionId, command, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendMessageCommand + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendMessageCommandCall(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = messageCommand; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Message" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendMessageCommandValidateBeforeCall(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendMessageCommand(Async)"); + } + + // verify the required parameter 'messageCommand' is set + if (messageCommand == null) { + throw new ApiException("Missing the required parameter 'messageCommand' when calling sendMessageCommand(Async)"); + } + + return sendMessageCommandCall(sessionId, messageCommand, _callback); + + } + + /** + * Issues a command to a client to display a message to the user. + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendMessageCommand(String sessionId, MessageCommand messageCommand) throws ApiException { + sendMessageCommandWithHttpInfo(sessionId, messageCommand); + } + + /** + * Issues a command to a client to display a message to the user. + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendMessageCommandWithHttpInfo(String sessionId, MessageCommand messageCommand) throws ApiException { + okhttp3.Call localVarCall = sendMessageCommandValidateBeforeCall(sessionId, messageCommand, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a command to a client to display a message to the user. (asynchronously) + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendMessageCommandAsync(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendMessageCommandValidateBeforeCall(sessionId, messageCommand, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendPlaystateCommand + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendPlaystateCommandCall(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Playing/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (seekPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seekPositionTicks", seekPositionTicks)); + } + + if (controllingUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("controllingUserId", controllingUserId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendPlaystateCommandValidateBeforeCall(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendPlaystateCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendPlaystateCommand(Async)"); + } + + return sendPlaystateCommandCall(sessionId, command, seekPositionTicks, controllingUserId, _callback); + + } + + /** + * Issues a playstate command to a client. + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendPlaystateCommand(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId) throws ApiException { + sendPlaystateCommandWithHttpInfo(sessionId, command, seekPositionTicks, controllingUserId); + } + + /** + * Issues a playstate command to a client. + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendPlaystateCommandWithHttpInfo(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId) throws ApiException { + okhttp3.Call localVarCall = sendPlaystateCommandValidateBeforeCall(sessionId, command, seekPositionTicks, controllingUserId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a playstate command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendPlaystateCommandAsync(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendPlaystateCommandValidateBeforeCall(sessionId, command, seekPositionTicks, controllingUserId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendSystemCommand + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendSystemCommandCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/System/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendSystemCommandValidateBeforeCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendSystemCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendSystemCommand(Async)"); + } + + return sendSystemCommandCall(sessionId, command, _callback); + + } + + /** + * Issues a system command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendSystemCommand(String sessionId, GeneralCommandType command) throws ApiException { + sendSystemCommandWithHttpInfo(sessionId, command); + } + + /** + * Issues a system command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendSystemCommandWithHttpInfo(String sessionId, GeneralCommandType command) throws ApiException { + okhttp3.Call localVarCall = sendSystemCommandValidateBeforeCall(sessionId, command, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a system command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendSystemCommandAsync(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendSystemCommandValidateBeforeCall(sessionId, command, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StartupApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StartupApi.java new file mode 100644 index 0000000000000..c7142f2d77b30 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StartupApi.java @@ -0,0 +1,969 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.StartupConfigurationDto; +import org.openapitools.client.model.StartupRemoteAccessDto; +import org.openapitools.client.model.StartupUserDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StartupApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StartupApi() { + this(Configuration.getDefaultApiClient()); + } + + public StartupApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for completeWizard + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call completeWizardCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/Complete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call completeWizardValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return completeWizardCall(_callback); + + } + + /** + * Completes the startup wizard. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void completeWizard() throws ApiException { + completeWizardWithHttpInfo(); + } + + /** + * Completes the startup wizard. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse completeWizardWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = completeWizardValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Completes the startup wizard. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call completeWizardAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = completeWizardValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getFirstUser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/User"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFirstUserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFirstUserCall(_callback); + + } + + /** + * Gets the first user. + * + * @return StartupUserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupUserDto getFirstUser() throws ApiException { + ApiResponse localVarResp = getFirstUserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the first user. + * + * @return ApiResponse<StartupUserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFirstUserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFirstUserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the first user. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFirstUserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFirstUser2 + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUser2Call(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/FirstUser"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFirstUser2ValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFirstUser2Call(_callback); + + } + + /** + * Gets the first user. + * + * @return StartupUserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupUserDto getFirstUser2() throws ApiException { + ApiResponse localVarResp = getFirstUser2WithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the first user. + * + * @return ApiResponse<StartupUserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFirstUser2WithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFirstUser2ValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the first user. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUser2Async(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFirstUser2ValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStartupConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStartupConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStartupConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getStartupConfigurationCall(_callback); + + } + + /** + * Gets the initial startup wizard configuration. + * + * @return StartupConfigurationDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupConfigurationDto getStartupConfiguration() throws ApiException { + ApiResponse localVarResp = getStartupConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the initial startup wizard configuration. + * + * @return ApiResponse<StartupConfigurationDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStartupConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getStartupConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the initial startup wizard configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStartupConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStartupConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for setRemoteAccess + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRemoteAccessCall(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupRemoteAccessDto; + + // create path and map variables + String localVarPath = "/Startup/RemoteAccess"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setRemoteAccessValidateBeforeCall(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'startupRemoteAccessDto' is set + if (startupRemoteAccessDto == null) { + throw new ApiException("Missing the required parameter 'startupRemoteAccessDto' when calling setRemoteAccess(Async)"); + } + + return setRemoteAccessCall(startupRemoteAccessDto, _callback); + + } + + /** + * Sets remote access and UPnP. + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setRemoteAccess(StartupRemoteAccessDto startupRemoteAccessDto) throws ApiException { + setRemoteAccessWithHttpInfo(startupRemoteAccessDto); + } + + /** + * Sets remote access and UPnP. + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setRemoteAccessWithHttpInfo(StartupRemoteAccessDto startupRemoteAccessDto) throws ApiException { + okhttp3.Call localVarCall = setRemoteAccessValidateBeforeCall(startupRemoteAccessDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets remote access and UPnP. (asynchronously) + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRemoteAccessAsync(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setRemoteAccessValidateBeforeCall(startupRemoteAccessDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateInitialConfiguration + * @param startupConfigurationDto The updated startup configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateInitialConfigurationCall(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupConfigurationDto; + + // create path and map variables + String localVarPath = "/Startup/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateInitialConfigurationValidateBeforeCall(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'startupConfigurationDto' is set + if (startupConfigurationDto == null) { + throw new ApiException("Missing the required parameter 'startupConfigurationDto' when calling updateInitialConfiguration(Async)"); + } + + return updateInitialConfigurationCall(startupConfigurationDto, _callback); + + } + + /** + * Sets the initial startup wizard configuration. + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateInitialConfiguration(StartupConfigurationDto startupConfigurationDto) throws ApiException { + updateInitialConfigurationWithHttpInfo(startupConfigurationDto); + } + + /** + * Sets the initial startup wizard configuration. + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateInitialConfigurationWithHttpInfo(StartupConfigurationDto startupConfigurationDto) throws ApiException { + okhttp3.Call localVarCall = updateInitialConfigurationValidateBeforeCall(startupConfigurationDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the initial startup wizard configuration. (asynchronously) + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateInitialConfigurationAsync(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateInitialConfigurationValidateBeforeCall(startupConfigurationDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateStartupUser + * @param startupUserDto The DTO containing username and password. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateStartupUserCall(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupUserDto; + + // create path and map variables + String localVarPath = "/Startup/User"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateStartupUserValidateBeforeCall(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + return updateStartupUserCall(startupUserDto, _callback); + + } + + /** + * Sets the user name and password. + * + * @param startupUserDto The DTO containing username and password. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateStartupUser(StartupUserDto startupUserDto) throws ApiException { + updateStartupUserWithHttpInfo(startupUserDto); + } + + /** + * Sets the user name and password. + * + * @param startupUserDto The DTO containing username and password. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateStartupUserWithHttpInfo(StartupUserDto startupUserDto) throws ApiException { + okhttp3.Call localVarCall = updateStartupUserValidateBeforeCall(startupUserDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the user name and password. (asynchronously) + * + * @param startupUserDto The DTO containing username and password. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateStartupUserAsync(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateStartupUserValidateBeforeCall(startupUserDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StudiosApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StudiosApi.java new file mode 100644 index 0000000000000..cd3e43c7879a8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/StudiosApi.java @@ -0,0 +1,488 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StudiosApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StudiosApi() { + this(Configuration.getDefaultApiClient()); + } + + public StudiosApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getStudio + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudioCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudio(Async)"); + } + + return getStudioCall(name, userId, _callback); + + } + + /** + * Gets a studio by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getStudio(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getStudioWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Gets a studio by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStudioWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getStudioValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a studio by name. (asynchronously) + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudioAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudios + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudiosCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudiosValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getStudiosCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all studios from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getStudios(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getStudiosWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all studios from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStudiosWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getStudiosValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all studios from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudiosAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudiosValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SubtitleApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SubtitleApi.java new file mode 100644 index 0000000000000..da355998d521b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SubtitleApi.java @@ -0,0 +1,1706 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.FontFile; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteSubtitleInfo; +import java.util.UUID; +import org.openapitools.client.model.UploadSubtitleDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SubtitleApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SubtitleApi() { + this(Configuration.getDefaultApiClient()); + } + + public SubtitleApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteSubtitle + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteSubtitleCall(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Subtitles/{index}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteSubtitleValidateBeforeCall(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteSubtitle(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling deleteSubtitle(Async)"); + } + + return deleteSubtitleCall(itemId, index, _callback); + + } + + /** + * Deletes an external subtitle file. + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteSubtitle(UUID itemId, Integer index) throws ApiException { + deleteSubtitleWithHttpInfo(itemId, index); + } + + /** + * Deletes an external subtitle file. + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteSubtitleWithHttpInfo(UUID itemId, Integer index) throws ApiException { + okhttp3.Call localVarCall = deleteSubtitleValidateBeforeCall(itemId, index, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an external subtitle file. (asynchronously) + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteSubtitleAsync(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteSubtitleValidateBeforeCall(itemId, index, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for downloadRemoteSubtitles + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteSubtitlesCall(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "subtitleId" + "}", localVarApiClient.escapeString(subtitleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call downloadRemoteSubtitlesValidateBeforeCall(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling downloadRemoteSubtitles(Async)"); + } + + // verify the required parameter 'subtitleId' is set + if (subtitleId == null) { + throw new ApiException("Missing the required parameter 'subtitleId' when calling downloadRemoteSubtitles(Async)"); + } + + return downloadRemoteSubtitlesCall(itemId, subtitleId, _callback); + + } + + /** + * Downloads a remote subtitle. + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void downloadRemoteSubtitles(UUID itemId, String subtitleId) throws ApiException { + downloadRemoteSubtitlesWithHttpInfo(itemId, subtitleId); + } + + /** + * Downloads a remote subtitle. + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse downloadRemoteSubtitlesWithHttpInfo(UUID itemId, String subtitleId) throws ApiException { + okhttp3.Call localVarCall = downloadRemoteSubtitlesValidateBeforeCall(itemId, subtitleId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Downloads a remote subtitle. (asynchronously) + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteSubtitlesAsync(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = downloadRemoteSubtitlesValidateBeforeCall(itemId, subtitleId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getFallbackFont + * @param name The name of the fallback font file to get. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/FallbackFont/Fonts/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "font/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFallbackFontValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getFallbackFont(Async)"); + } + + return getFallbackFontCall(name, _callback); + + } + + /** + * Gets a fallback font file. + * + * @param name The name of the fallback font file to get. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getFallbackFont(String name) throws ApiException { + ApiResponse localVarResp = getFallbackFontWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a fallback font file. + * + * @param name The name of the fallback font file to get. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFallbackFontWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getFallbackFontValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a fallback font file. (asynchronously) + * + * @param name The name of the fallback font file to get. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFallbackFontValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFallbackFontList + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontListCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/FallbackFont/Fonts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFallbackFontListValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFallbackFontListCall(_callback); + + } + + /** + * Gets a list of available fallback font files. + * + * @return List<FontFile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getFallbackFontList() throws ApiException { + ApiResponse> localVarResp = getFallbackFontListWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of available fallback font files. + * + * @return ApiResponse<List<FontFile>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getFallbackFontListWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFallbackFontListValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of available fallback font files. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontListAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getFallbackFontListValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRemoteSubtitles + * @param subtitleId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteSubtitlesCall(String subtitleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Providers/Subtitles/Subtitles/{subtitleId}" + .replace("{" + "subtitleId" + "}", localVarApiClient.escapeString(subtitleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteSubtitlesValidateBeforeCall(String subtitleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'subtitleId' is set + if (subtitleId == null) { + throw new ApiException("Missing the required parameter 'subtitleId' when calling getRemoteSubtitles(Async)"); + } + + return getRemoteSubtitlesCall(subtitleId, _callback); + + } + + /** + * Gets the remote subtitles. + * + * @param subtitleId The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getRemoteSubtitles(String subtitleId) throws ApiException { + ApiResponse localVarResp = getRemoteSubtitlesWithHttpInfo(subtitleId); + return localVarResp.getData(); + } + + /** + * Gets the remote subtitles. + * + * @param subtitleId The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRemoteSubtitlesWithHttpInfo(String subtitleId) throws ApiException { + okhttp3.Call localVarCall = getRemoteSubtitlesValidateBeforeCall(subtitleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the remote subtitles. (asynchronously) + * + * @param subtitleId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteSubtitlesAsync(String subtitleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteSubtitlesValidateBeforeCall(subtitleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitle + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}" + .replace("{" + "routeItemId" + "}", localVarApiClient.escapeString(routeItemId.toString())) + .replace("{" + "routeMediaSourceId" + "}", localVarApiClient.escapeString(routeMediaSourceId.toString())) + .replace("{" + "routeIndex" + "}", localVarApiClient.escapeString(routeIndex.toString())) + .replace("{" + "routeFormat" + "}", localVarApiClient.escapeString(routeFormat.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (endPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endPositionTicks", endPositionTicks)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (addVttTimeMap != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addVttTimeMap", addVttTimeMap)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitleValidateBeforeCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeItemId' is set + if (routeItemId == null) { + throw new ApiException("Missing the required parameter 'routeItemId' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeMediaSourceId' is set + if (routeMediaSourceId == null) { + throw new ApiException("Missing the required parameter 'routeMediaSourceId' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeIndex' is set + if (routeIndex == null) { + throw new ApiException("Missing the required parameter 'routeIndex' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeFormat' is set + if (routeFormat == null) { + throw new ApiException("Missing the required parameter 'routeFormat' when calling getSubtitle(Async)"); + } + + return getSubtitleCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, _callback); + + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public File getSubtitle(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks) throws ApiException { + ApiResponse localVarResp = getSubtitleWithHttpInfo(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks); + return localVarResp.getData(); + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public ApiResponse getSubtitleWithHttpInfo(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks) throws ApiException { + okhttp3.Call localVarCall = getSubtitleValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets subtitles in a specified format. (asynchronously) + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleAsync(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitleValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitlePlaylist + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSubtitlePlaylistCall(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())) + .replace("{" + "mediaSourceId" + "}", localVarApiClient.escapeString(mediaSourceId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitlePlaylistValidateBeforeCall(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'segmentLength' is set + if (segmentLength == null) { + throw new ApiException("Missing the required parameter 'segmentLength' when calling getSubtitlePlaylist(Async)"); + } + + return getSubtitlePlaylistCall(itemId, index, mediaSourceId, segmentLength, _callback); + + } + + /** + * Gets an HLS subtitle playlist. + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getSubtitlePlaylist(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength) throws ApiException { + ApiResponse localVarResp = getSubtitlePlaylistWithHttpInfo(itemId, index, mediaSourceId, segmentLength); + return localVarResp.getData(); + } + + /** + * Gets an HLS subtitle playlist. + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSubtitlePlaylistWithHttpInfo(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength) throws ApiException { + okhttp3.Call localVarCall = getSubtitlePlaylistValidateBeforeCall(itemId, index, mediaSourceId, segmentLength, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an HLS subtitle playlist. (asynchronously) + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSubtitlePlaylistAsync(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitlePlaylistValidateBeforeCall(itemId, index, mediaSourceId, segmentLength, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitleWithTicks + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleWithTicksCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}" + .replace("{" + "routeItemId" + "}", localVarApiClient.escapeString(routeItemId.toString())) + .replace("{" + "routeMediaSourceId" + "}", localVarApiClient.escapeString(routeMediaSourceId.toString())) + .replace("{" + "routeIndex" + "}", localVarApiClient.escapeString(routeIndex.toString())) + .replace("{" + "routeStartPositionTicks" + "}", localVarApiClient.escapeString(routeStartPositionTicks.toString())) + .replace("{" + "routeFormat" + "}", localVarApiClient.escapeString(routeFormat.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (endPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endPositionTicks", endPositionTicks)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (addVttTimeMap != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addVttTimeMap", addVttTimeMap)); + } + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitleWithTicksValidateBeforeCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeItemId' is set + if (routeItemId == null) { + throw new ApiException("Missing the required parameter 'routeItemId' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeMediaSourceId' is set + if (routeMediaSourceId == null) { + throw new ApiException("Missing the required parameter 'routeMediaSourceId' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeIndex' is set + if (routeIndex == null) { + throw new ApiException("Missing the required parameter 'routeIndex' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeStartPositionTicks' is set + if (routeStartPositionTicks == null) { + throw new ApiException("Missing the required parameter 'routeStartPositionTicks' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeFormat' is set + if (routeFormat == null) { + throw new ApiException("Missing the required parameter 'routeFormat' when calling getSubtitleWithTicks(Async)"); + } + + return getSubtitleWithTicksCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, _callback); + + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public File getSubtitleWithTicks(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap) throws ApiException { + ApiResponse localVarResp = getSubtitleWithTicksWithHttpInfo(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap); + return localVarResp.getData(); + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public ApiResponse getSubtitleWithTicksWithHttpInfo(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap) throws ApiException { + okhttp3.Call localVarCall = getSubtitleWithTicksValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets subtitles in a specified format. (asynchronously) + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleWithTicksAsync(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitleWithTicksValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for searchRemoteSubtitles + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteSubtitlesCall(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteSearch/Subtitles/{language}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "language" + "}", localVarApiClient.escapeString(language.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isPerfectMatch != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPerfectMatch", isPerfectMatch)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call searchRemoteSubtitlesValidateBeforeCall(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling searchRemoteSubtitles(Async)"); + } + + // verify the required parameter 'language' is set + if (language == null) { + throw new ApiException("Missing the required parameter 'language' when calling searchRemoteSubtitles(Async)"); + } + + return searchRemoteSubtitlesCall(itemId, language, isPerfectMatch, _callback); + + } + + /** + * Search remote subtitles. + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @return List<RemoteSubtitleInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List searchRemoteSubtitles(UUID itemId, String language, Boolean isPerfectMatch) throws ApiException { + ApiResponse> localVarResp = searchRemoteSubtitlesWithHttpInfo(itemId, language, isPerfectMatch); + return localVarResp.getData(); + } + + /** + * Search remote subtitles. + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @return ApiResponse<List<RemoteSubtitleInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> searchRemoteSubtitlesWithHttpInfo(UUID itemId, String language, Boolean isPerfectMatch) throws ApiException { + okhttp3.Call localVarCall = searchRemoteSubtitlesValidateBeforeCall(itemId, language, isPerfectMatch, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search remote subtitles. (asynchronously) + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteSubtitlesAsync(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRemoteSubtitlesValidateBeforeCall(itemId, language, isPerfectMatch, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for uploadSubtitle + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadSubtitleCall(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = uploadSubtitleDto; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Subtitles" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uploadSubtitleValidateBeforeCall(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling uploadSubtitle(Async)"); + } + + // verify the required parameter 'uploadSubtitleDto' is set + if (uploadSubtitleDto == null) { + throw new ApiException("Missing the required parameter 'uploadSubtitleDto' when calling uploadSubtitle(Async)"); + } + + return uploadSubtitleCall(itemId, uploadSubtitleDto, _callback); + + } + + /** + * Upload an external subtitle file. + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void uploadSubtitle(UUID itemId, UploadSubtitleDto uploadSubtitleDto) throws ApiException { + uploadSubtitleWithHttpInfo(itemId, uploadSubtitleDto); + } + + /** + * Upload an external subtitle file. + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse uploadSubtitleWithHttpInfo(UUID itemId, UploadSubtitleDto uploadSubtitleDto) throws ApiException { + okhttp3.Call localVarCall = uploadSubtitleValidateBeforeCall(itemId, uploadSubtitleDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Upload an external subtitle file. (asynchronously) + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadSubtitleAsync(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uploadSubtitleValidateBeforeCall(itemId, uploadSubtitleDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SuggestionsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SuggestionsApi.java new file mode 100644 index 0000000000000..c7c331fd1104d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SuggestionsApi.java @@ -0,0 +1,253 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.MediaType; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SuggestionsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SuggestionsApi() { + this(Configuration.getDefaultApiClient()); + } + + public SuggestionsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getSuggestions + * @param userId The user id. (optional) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSuggestionsCall(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Suggestions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (mediaType != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaType", mediaType)); + } + + if (type != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "type", type)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSuggestionsValidateBeforeCall(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getSuggestionsCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, _callback); + + } + + /** + * Gets suggestions. + * + * @param userId The user id. (optional) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSuggestions(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getSuggestionsWithHttpInfo(userId, mediaType, type, startIndex, limit, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets suggestions. + * + * @param userId The user id. (optional) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSuggestionsWithHttpInfo(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getSuggestionsValidateBeforeCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets suggestions. (asynchronously) + * + * @param userId The user id. (optional) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSuggestionsAsync(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSuggestionsValidateBeforeCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SyncPlayApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SyncPlayApi.java new file mode 100644 index 0000000000000..9c0d950169db0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SyncPlayApi.java @@ -0,0 +1,2810 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BufferRequestDto; +import org.openapitools.client.model.GroupInfoDto; +import org.openapitools.client.model.IgnoreWaitRequestDto; +import org.openapitools.client.model.JoinGroupRequestDto; +import org.openapitools.client.model.MovePlaylistItemRequestDto; +import org.openapitools.client.model.NewGroupRequestDto; +import org.openapitools.client.model.NextItemRequestDto; +import org.openapitools.client.model.PingRequestDto; +import org.openapitools.client.model.PlayRequestDto; +import org.openapitools.client.model.PreviousItemRequestDto; +import org.openapitools.client.model.QueueRequestDto; +import org.openapitools.client.model.ReadyRequestDto; +import org.openapitools.client.model.RemoveFromPlaylistRequestDto; +import org.openapitools.client.model.SeekRequestDto; +import org.openapitools.client.model.SetPlaylistItemRequestDto; +import org.openapitools.client.model.SetRepeatModeRequestDto; +import org.openapitools.client.model.SetShuffleModeRequestDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SyncPlayApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SyncPlayApi() { + this(Configuration.getDefaultApiClient()); + } + + public SyncPlayApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for syncPlayBuffering + * @param bufferRequestDto The player status. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayBufferingCall(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bufferRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Buffering"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayBufferingValidateBeforeCall(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bufferRequestDto' is set + if (bufferRequestDto == null) { + throw new ApiException("Missing the required parameter 'bufferRequestDto' when calling syncPlayBuffering(Async)"); + } + + return syncPlayBufferingCall(bufferRequestDto, _callback); + + } + + /** + * Notify SyncPlay group that member is buffering. + * + * @param bufferRequestDto The player status. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayBuffering(BufferRequestDto bufferRequestDto) throws ApiException { + syncPlayBufferingWithHttpInfo(bufferRequestDto); + } + + /** + * Notify SyncPlay group that member is buffering. + * + * @param bufferRequestDto The player status. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayBufferingWithHttpInfo(BufferRequestDto bufferRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayBufferingValidateBeforeCall(bufferRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Notify SyncPlay group that member is buffering. (asynchronously) + * + * @param bufferRequestDto The player status. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayBufferingAsync(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayBufferingValidateBeforeCall(bufferRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayCreateGroup + * @param newGroupRequestDto The settings of the new group. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayCreateGroupCall(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newGroupRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/New"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayCreateGroupValidateBeforeCall(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newGroupRequestDto' is set + if (newGroupRequestDto == null) { + throw new ApiException("Missing the required parameter 'newGroupRequestDto' when calling syncPlayCreateGroup(Async)"); + } + + return syncPlayCreateGroupCall(newGroupRequestDto, _callback); + + } + + /** + * Create a new SyncPlay group. + * + * @param newGroupRequestDto The settings of the new group. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayCreateGroup(NewGroupRequestDto newGroupRequestDto) throws ApiException { + syncPlayCreateGroupWithHttpInfo(newGroupRequestDto); + } + + /** + * Create a new SyncPlay group. + * + * @param newGroupRequestDto The settings of the new group. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayCreateGroupWithHttpInfo(NewGroupRequestDto newGroupRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayCreateGroupValidateBeforeCall(newGroupRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Create a new SyncPlay group. (asynchronously) + * + * @param newGroupRequestDto The settings of the new group. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayCreateGroupAsync(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayCreateGroupValidateBeforeCall(newGroupRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayGetGroups + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayGetGroupsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/List"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayGetGroupsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayGetGroupsCall(_callback); + + } + + /** + * Gets all SyncPlay groups. + * + * @return List<GroupInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List syncPlayGetGroups() throws ApiException { + ApiResponse> localVarResp = syncPlayGetGroupsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all SyncPlay groups. + * + * @return ApiResponse<List<GroupInfoDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> syncPlayGetGroupsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayGetGroupsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all SyncPlay groups. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayGetGroupsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayGetGroupsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for syncPlayJoinGroup + * @param joinGroupRequestDto The group to join. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayJoinGroupCall(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = joinGroupRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Join"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayJoinGroupValidateBeforeCall(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'joinGroupRequestDto' is set + if (joinGroupRequestDto == null) { + throw new ApiException("Missing the required parameter 'joinGroupRequestDto' when calling syncPlayJoinGroup(Async)"); + } + + return syncPlayJoinGroupCall(joinGroupRequestDto, _callback); + + } + + /** + * Join an existing SyncPlay group. + * + * @param joinGroupRequestDto The group to join. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayJoinGroup(JoinGroupRequestDto joinGroupRequestDto) throws ApiException { + syncPlayJoinGroupWithHttpInfo(joinGroupRequestDto); + } + + /** + * Join an existing SyncPlay group. + * + * @param joinGroupRequestDto The group to join. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayJoinGroupWithHttpInfo(JoinGroupRequestDto joinGroupRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayJoinGroupValidateBeforeCall(joinGroupRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Join an existing SyncPlay group. (asynchronously) + * + * @param joinGroupRequestDto The group to join. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayJoinGroupAsync(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayJoinGroupValidateBeforeCall(joinGroupRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayLeaveGroup + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayLeaveGroupCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Leave"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayLeaveGroupValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayLeaveGroupCall(_callback); + + } + + /** + * Leave the joined SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayLeaveGroup() throws ApiException { + syncPlayLeaveGroupWithHttpInfo(); + } + + /** + * Leave the joined SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayLeaveGroupWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayLeaveGroupValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Leave the joined SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayLeaveGroupAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayLeaveGroupValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayMovePlaylistItem + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayMovePlaylistItemCall(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = movePlaylistItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/MovePlaylistItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayMovePlaylistItemValidateBeforeCall(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'movePlaylistItemRequestDto' is set + if (movePlaylistItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'movePlaylistItemRequestDto' when calling syncPlayMovePlaylistItem(Async)"); + } + + return syncPlayMovePlaylistItemCall(movePlaylistItemRequestDto, _callback); + + } + + /** + * Request to move an item in the playlist in SyncPlay group. + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayMovePlaylistItem(MovePlaylistItemRequestDto movePlaylistItemRequestDto) throws ApiException { + syncPlayMovePlaylistItemWithHttpInfo(movePlaylistItemRequestDto); + } + + /** + * Request to move an item in the playlist in SyncPlay group. + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayMovePlaylistItemWithHttpInfo(MovePlaylistItemRequestDto movePlaylistItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayMovePlaylistItemValidateBeforeCall(movePlaylistItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to move an item in the playlist in SyncPlay group. (asynchronously) + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayMovePlaylistItemAsync(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayMovePlaylistItemValidateBeforeCall(movePlaylistItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayNextItem + * @param nextItemRequestDto The current item information. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayNextItemCall(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = nextItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/NextItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayNextItemValidateBeforeCall(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'nextItemRequestDto' is set + if (nextItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'nextItemRequestDto' when calling syncPlayNextItem(Async)"); + } + + return syncPlayNextItemCall(nextItemRequestDto, _callback); + + } + + /** + * Request next item in SyncPlay group. + * + * @param nextItemRequestDto The current item information. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayNextItem(NextItemRequestDto nextItemRequestDto) throws ApiException { + syncPlayNextItemWithHttpInfo(nextItemRequestDto); + } + + /** + * Request next item in SyncPlay group. + * + * @param nextItemRequestDto The current item information. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayNextItemWithHttpInfo(NextItemRequestDto nextItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayNextItemValidateBeforeCall(nextItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request next item in SyncPlay group. (asynchronously) + * + * @param nextItemRequestDto The current item information. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayNextItemAsync(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayNextItemValidateBeforeCall(nextItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPause + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPauseCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Pause"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPauseValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayPauseCall(_callback); + + } + + /** + * Request pause in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPause() throws ApiException { + syncPlayPauseWithHttpInfo(); + } + + /** + * Request pause in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPauseWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayPauseValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request pause in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPauseAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPauseValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPing + * @param pingRequestDto The new ping. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPingCall(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = pingRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPingValidateBeforeCall(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pingRequestDto' is set + if (pingRequestDto == null) { + throw new ApiException("Missing the required parameter 'pingRequestDto' when calling syncPlayPing(Async)"); + } + + return syncPlayPingCall(pingRequestDto, _callback); + + } + + /** + * Update session ping. + * + * @param pingRequestDto The new ping. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPing(PingRequestDto pingRequestDto) throws ApiException { + syncPlayPingWithHttpInfo(pingRequestDto); + } + + /** + * Update session ping. + * + * @param pingRequestDto The new ping. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPingWithHttpInfo(PingRequestDto pingRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayPingValidateBeforeCall(pingRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update session ping. (asynchronously) + * + * @param pingRequestDto The new ping. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPingAsync(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPingValidateBeforeCall(pingRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPreviousItem + * @param previousItemRequestDto The current item information. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPreviousItemCall(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = previousItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/PreviousItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPreviousItemValidateBeforeCall(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'previousItemRequestDto' is set + if (previousItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'previousItemRequestDto' when calling syncPlayPreviousItem(Async)"); + } + + return syncPlayPreviousItemCall(previousItemRequestDto, _callback); + + } + + /** + * Request previous item in SyncPlay group. + * + * @param previousItemRequestDto The current item information. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPreviousItem(PreviousItemRequestDto previousItemRequestDto) throws ApiException { + syncPlayPreviousItemWithHttpInfo(previousItemRequestDto); + } + + /** + * Request previous item in SyncPlay group. + * + * @param previousItemRequestDto The current item information. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPreviousItemWithHttpInfo(PreviousItemRequestDto previousItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayPreviousItemValidateBeforeCall(previousItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request previous item in SyncPlay group. (asynchronously) + * + * @param previousItemRequestDto The current item information. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPreviousItemAsync(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPreviousItemValidateBeforeCall(previousItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayQueue + * @param queueRequestDto The items to add. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayQueueCall(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = queueRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Queue"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayQueueValidateBeforeCall(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'queueRequestDto' is set + if (queueRequestDto == null) { + throw new ApiException("Missing the required parameter 'queueRequestDto' when calling syncPlayQueue(Async)"); + } + + return syncPlayQueueCall(queueRequestDto, _callback); + + } + + /** + * Request to queue items to the playlist of a SyncPlay group. + * + * @param queueRequestDto The items to add. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayQueue(QueueRequestDto queueRequestDto) throws ApiException { + syncPlayQueueWithHttpInfo(queueRequestDto); + } + + /** + * Request to queue items to the playlist of a SyncPlay group. + * + * @param queueRequestDto The items to add. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayQueueWithHttpInfo(QueueRequestDto queueRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayQueueValidateBeforeCall(queueRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to queue items to the playlist of a SyncPlay group. (asynchronously) + * + * @param queueRequestDto The items to add. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayQueueAsync(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayQueueValidateBeforeCall(queueRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayReady + * @param readyRequestDto The player status. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayReadyCall(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = readyRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Ready"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayReadyValidateBeforeCall(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'readyRequestDto' is set + if (readyRequestDto == null) { + throw new ApiException("Missing the required parameter 'readyRequestDto' when calling syncPlayReady(Async)"); + } + + return syncPlayReadyCall(readyRequestDto, _callback); + + } + + /** + * Notify SyncPlay group that member is ready for playback. + * + * @param readyRequestDto The player status. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayReady(ReadyRequestDto readyRequestDto) throws ApiException { + syncPlayReadyWithHttpInfo(readyRequestDto); + } + + /** + * Notify SyncPlay group that member is ready for playback. + * + * @param readyRequestDto The player status. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayReadyWithHttpInfo(ReadyRequestDto readyRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayReadyValidateBeforeCall(readyRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Notify SyncPlay group that member is ready for playback. (asynchronously) + * + * @param readyRequestDto The player status. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayReadyAsync(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayReadyValidateBeforeCall(readyRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayRemoveFromPlaylist + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayRemoveFromPlaylistCall(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = removeFromPlaylistRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/RemoveFromPlaylist"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayRemoveFromPlaylistValidateBeforeCall(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'removeFromPlaylistRequestDto' is set + if (removeFromPlaylistRequestDto == null) { + throw new ApiException("Missing the required parameter 'removeFromPlaylistRequestDto' when calling syncPlayRemoveFromPlaylist(Async)"); + } + + return syncPlayRemoveFromPlaylistCall(removeFromPlaylistRequestDto, _callback); + + } + + /** + * Request to remove items from the playlist in SyncPlay group. + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayRemoveFromPlaylist(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto) throws ApiException { + syncPlayRemoveFromPlaylistWithHttpInfo(removeFromPlaylistRequestDto); + } + + /** + * Request to remove items from the playlist in SyncPlay group. + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayRemoveFromPlaylistWithHttpInfo(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayRemoveFromPlaylistValidateBeforeCall(removeFromPlaylistRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to remove items from the playlist in SyncPlay group. (asynchronously) + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayRemoveFromPlaylistAsync(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayRemoveFromPlaylistValidateBeforeCall(removeFromPlaylistRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySeek + * @param seekRequestDto The new playback position. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySeekCall(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seekRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Seek"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySeekValidateBeforeCall(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seekRequestDto' is set + if (seekRequestDto == null) { + throw new ApiException("Missing the required parameter 'seekRequestDto' when calling syncPlaySeek(Async)"); + } + + return syncPlaySeekCall(seekRequestDto, _callback); + + } + + /** + * Request seek in SyncPlay group. + * + * @param seekRequestDto The new playback position. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySeek(SeekRequestDto seekRequestDto) throws ApiException { + syncPlaySeekWithHttpInfo(seekRequestDto); + } + + /** + * Request seek in SyncPlay group. + * + * @param seekRequestDto The new playback position. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySeekWithHttpInfo(SeekRequestDto seekRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySeekValidateBeforeCall(seekRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request seek in SyncPlay group. (asynchronously) + * + * @param seekRequestDto The new playback position. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySeekAsync(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySeekValidateBeforeCall(seekRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetIgnoreWait + * @param ignoreWaitRequestDto The settings to set. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetIgnoreWaitCall(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = ignoreWaitRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetIgnoreWait"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetIgnoreWaitValidateBeforeCall(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'ignoreWaitRequestDto' is set + if (ignoreWaitRequestDto == null) { + throw new ApiException("Missing the required parameter 'ignoreWaitRequestDto' when calling syncPlaySetIgnoreWait(Async)"); + } + + return syncPlaySetIgnoreWaitCall(ignoreWaitRequestDto, _callback); + + } + + /** + * Request SyncPlay group to ignore member during group-wait. + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetIgnoreWait(IgnoreWaitRequestDto ignoreWaitRequestDto) throws ApiException { + syncPlaySetIgnoreWaitWithHttpInfo(ignoreWaitRequestDto); + } + + /** + * Request SyncPlay group to ignore member during group-wait. + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetIgnoreWaitWithHttpInfo(IgnoreWaitRequestDto ignoreWaitRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetIgnoreWaitValidateBeforeCall(ignoreWaitRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request SyncPlay group to ignore member during group-wait. (asynchronously) + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetIgnoreWaitAsync(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetIgnoreWaitValidateBeforeCall(ignoreWaitRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetNewQueue + * @param playRequestDto The new playlist to play in the group. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetNewQueueCall(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetNewQueue"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetNewQueueValidateBeforeCall(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playRequestDto' is set + if (playRequestDto == null) { + throw new ApiException("Missing the required parameter 'playRequestDto' when calling syncPlaySetNewQueue(Async)"); + } + + return syncPlaySetNewQueueCall(playRequestDto, _callback); + + } + + /** + * Request to set new playlist in SyncPlay group. + * + * @param playRequestDto The new playlist to play in the group. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetNewQueue(PlayRequestDto playRequestDto) throws ApiException { + syncPlaySetNewQueueWithHttpInfo(playRequestDto); + } + + /** + * Request to set new playlist in SyncPlay group. + * + * @param playRequestDto The new playlist to play in the group. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetNewQueueWithHttpInfo(PlayRequestDto playRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetNewQueueValidateBeforeCall(playRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set new playlist in SyncPlay group. (asynchronously) + * + * @param playRequestDto The new playlist to play in the group. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetNewQueueAsync(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetNewQueueValidateBeforeCall(playRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetPlaylistItem + * @param setPlaylistItemRequestDto The new item to play. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetPlaylistItemCall(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setPlaylistItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetPlaylistItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetPlaylistItemValidateBeforeCall(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setPlaylistItemRequestDto' is set + if (setPlaylistItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'setPlaylistItemRequestDto' when calling syncPlaySetPlaylistItem(Async)"); + } + + return syncPlaySetPlaylistItemCall(setPlaylistItemRequestDto, _callback); + + } + + /** + * Request to change playlist item in SyncPlay group. + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetPlaylistItem(SetPlaylistItemRequestDto setPlaylistItemRequestDto) throws ApiException { + syncPlaySetPlaylistItemWithHttpInfo(setPlaylistItemRequestDto); + } + + /** + * Request to change playlist item in SyncPlay group. + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetPlaylistItemWithHttpInfo(SetPlaylistItemRequestDto setPlaylistItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetPlaylistItemValidateBeforeCall(setPlaylistItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to change playlist item in SyncPlay group. (asynchronously) + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetPlaylistItemAsync(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetPlaylistItemValidateBeforeCall(setPlaylistItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetRepeatMode + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetRepeatModeCall(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setRepeatModeRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetRepeatMode"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetRepeatModeValidateBeforeCall(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setRepeatModeRequestDto' is set + if (setRepeatModeRequestDto == null) { + throw new ApiException("Missing the required parameter 'setRepeatModeRequestDto' when calling syncPlaySetRepeatMode(Async)"); + } + + return syncPlaySetRepeatModeCall(setRepeatModeRequestDto, _callback); + + } + + /** + * Request to set repeat mode in SyncPlay group. + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetRepeatMode(SetRepeatModeRequestDto setRepeatModeRequestDto) throws ApiException { + syncPlaySetRepeatModeWithHttpInfo(setRepeatModeRequestDto); + } + + /** + * Request to set repeat mode in SyncPlay group. + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetRepeatModeWithHttpInfo(SetRepeatModeRequestDto setRepeatModeRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetRepeatModeValidateBeforeCall(setRepeatModeRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set repeat mode in SyncPlay group. (asynchronously) + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetRepeatModeAsync(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetRepeatModeValidateBeforeCall(setRepeatModeRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetShuffleMode + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetShuffleModeCall(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setShuffleModeRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetShuffleMode"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetShuffleModeValidateBeforeCall(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setShuffleModeRequestDto' is set + if (setShuffleModeRequestDto == null) { + throw new ApiException("Missing the required parameter 'setShuffleModeRequestDto' when calling syncPlaySetShuffleMode(Async)"); + } + + return syncPlaySetShuffleModeCall(setShuffleModeRequestDto, _callback); + + } + + /** + * Request to set shuffle mode in SyncPlay group. + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetShuffleMode(SetShuffleModeRequestDto setShuffleModeRequestDto) throws ApiException { + syncPlaySetShuffleModeWithHttpInfo(setShuffleModeRequestDto); + } + + /** + * Request to set shuffle mode in SyncPlay group. + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetShuffleModeWithHttpInfo(SetShuffleModeRequestDto setShuffleModeRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetShuffleModeValidateBeforeCall(setShuffleModeRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set shuffle mode in SyncPlay group. (asynchronously) + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetShuffleModeAsync(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetShuffleModeValidateBeforeCall(setShuffleModeRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayStop + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayStopCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Stop"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayStopValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayStopCall(_callback); + + } + + /** + * Request stop in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayStop() throws ApiException { + syncPlayStopWithHttpInfo(); + } + + /** + * Request stop in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayStopWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayStopValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request stop in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayStopAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayStopValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayUnpause + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayUnpauseCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Unpause"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayUnpauseValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayUnpauseCall(_callback); + + } + + /** + * Request unpause in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayUnpause() throws ApiException { + syncPlayUnpauseWithHttpInfo(); + } + + /** + * Request unpause in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayUnpauseWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayUnpauseValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request unpause in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayUnpauseAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayUnpauseValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SystemApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SystemApi.java new file mode 100644 index 0000000000000..39166ebb6c9da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/SystemApi.java @@ -0,0 +1,1346 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EndPointInfo; +import java.io.File; +import org.openapitools.client.model.LogFile; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.PublicSystemInfo; +import org.openapitools.client.model.SystemInfo; +import org.openapitools.client.model.WakeOnLanInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SystemApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SystemApi() { + this(Configuration.getDefaultApiClient()); + } + + public SystemApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getEndpointInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get endpoint information. -
401 Unauthorized -
+ */ + public okhttp3.Call getEndpointInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Endpoint"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getEndpointInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getEndpointInfoCall(_callback); + + } + + /** + * Gets information about the request endpoint. + * + * @return EndPointInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get endpoint information. -
401 Unauthorized -
+ */ + public EndPointInfo getEndpointInfo() throws ApiException { + ApiResponse localVarResp = getEndpointInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets information about the request endpoint. + * + * @return ApiResponse<EndPointInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get endpoint information. -
401 Unauthorized -
+ */ + public ApiResponse getEndpointInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getEndpointInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets information about the request endpoint. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get endpoint information. -
401 Unauthorized -
+ */ + public okhttp3.Call getEndpointInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getEndpointInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLogFile + * @param name The name of the log file to get. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
403 User does not have permission to get log files. -
404 Could not find a log file with the name. -
401 Unauthorized -
+ */ + public okhttp3.Call getLogFileCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Logs/Log"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + final String[] localVarAccepts = { + "text/plain", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLogFileValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getLogFile(Async)"); + } + + return getLogFileCall(name, _callback); + + } + + /** + * Gets a log file. + * + * @param name The name of the log file to get. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
403 User does not have permission to get log files. -
404 Could not find a log file with the name. -
401 Unauthorized -
+ */ + public File getLogFile(String name) throws ApiException { + ApiResponse localVarResp = getLogFileWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a log file. + * + * @param name The name of the log file to get. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
403 User does not have permission to get log files. -
404 Could not find a log file with the name. -
401 Unauthorized -
+ */ + public ApiResponse getLogFileWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getLogFileValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a log file. (asynchronously) + * + * @param name The name of the log file to get. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
403 User does not have permission to get log files. -
404 Could not find a log file with the name. -
401 Unauthorized -
+ */ + public okhttp3.Call getLogFileAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLogFileValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPingSystem + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPingSystemCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPingSystemValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPingSystemCall(_callback); + + } + + /** + * Pings the system. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public String getPingSystem() throws ApiException { + ApiResponse localVarResp = getPingSystemWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Pings the system. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse getPingSystemWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPingSystemValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Pings the system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPingSystemAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPingSystemValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPublicSystemInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPublicSystemInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Info/Public"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPublicSystemInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPublicSystemInfoCall(_callback); + + } + + /** + * Gets public information about the server. + * + * @return PublicSystemInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public PublicSystemInfo getPublicSystemInfo() throws ApiException { + ApiResponse localVarResp = getPublicSystemInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets public information about the server. + * + * @return ApiResponse<PublicSystemInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse getPublicSystemInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPublicSystemInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets public information about the server. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPublicSystemInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPublicSystemInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getServerLogs + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get server logs. -
401 Unauthorized -
+ */ + public okhttp3.Call getServerLogsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Logs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getServerLogsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getServerLogsCall(_callback); + + } + + /** + * Gets a list of available server log files. + * + * @return List<LogFile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get server logs. -
401 Unauthorized -
+ */ + public List getServerLogs() throws ApiException { + ApiResponse> localVarResp = getServerLogsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of available server log files. + * + * @return ApiResponse<List<LogFile>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get server logs. -
401 Unauthorized -
+ */ + public ApiResponse> getServerLogsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getServerLogsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of available server log files. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to get server logs. -
401 Unauthorized -
+ */ + public okhttp3.Call getServerLogsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getServerLogsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSystemInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to retrieve information. -
401 Unauthorized -
+ */ + public okhttp3.Call getSystemInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSystemInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getSystemInfoCall(_callback); + + } + + /** + * Gets information about the server. + * + * @return SystemInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to retrieve information. -
401 Unauthorized -
+ */ + public SystemInfo getSystemInfo() throws ApiException { + ApiResponse localVarResp = getSystemInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets information about the server. + * + * @return ApiResponse<SystemInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to retrieve information. -
401 Unauthorized -
+ */ + public ApiResponse getSystemInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getSystemInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets information about the server. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
403 User does not have permission to retrieve information. -
401 Unauthorized -
+ */ + public okhttp3.Call getSystemInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSystemInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getWakeOnLanInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getWakeOnLanInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/WakeOnLanInfo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getWakeOnLanInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getWakeOnLanInfoCall(_callback); + + } + + /** + * Gets wake on lan information. + * + * @return List<WakeOnLanInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public List getWakeOnLanInfo() throws ApiException { + ApiResponse> localVarResp = getWakeOnLanInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets wake on lan information. + * + * @return ApiResponse<List<WakeOnLanInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse> getWakeOnLanInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getWakeOnLanInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets wake on lan information. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getWakeOnLanInfoAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getWakeOnLanInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postPingSystem + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call postPingSystemCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postPingSystemValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return postPingSystemCall(_callback); + + } + + /** + * Pings the system. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public String postPingSystem() throws ApiException { + ApiResponse localVarResp = postPingSystemWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Pings the system. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse postPingSystemWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = postPingSystemValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Pings the system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call postPingSystemAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postPingSystemValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for restartApplication + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
403 User does not have permission to restart server. -
401 Unauthorized -
+ */ + public okhttp3.Call restartApplicationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Restart"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call restartApplicationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return restartApplicationCall(_callback); + + } + + /** + * Restarts the application. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
403 User does not have permission to restart server. -
401 Unauthorized -
+ */ + public void restartApplication() throws ApiException { + restartApplicationWithHttpInfo(); + } + + /** + * Restarts the application. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
403 User does not have permission to restart server. -
401 Unauthorized -
+ */ + public ApiResponse restartApplicationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = restartApplicationValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Restarts the application. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
403 User does not have permission to restart server. -
401 Unauthorized -
+ */ + public okhttp3.Call restartApplicationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = restartApplicationValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for shutdownApplication + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
403 User does not have permission to shutdown server. -
401 Unauthorized -
+ */ + public okhttp3.Call shutdownApplicationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Shutdown"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call shutdownApplicationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return shutdownApplicationCall(_callback); + + } + + /** + * Shuts down the application. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
403 User does not have permission to shutdown server. -
401 Unauthorized -
+ */ + public void shutdownApplication() throws ApiException { + shutdownApplicationWithHttpInfo(); + } + + /** + * Shuts down the application. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
403 User does not have permission to shutdown server. -
401 Unauthorized -
+ */ + public ApiResponse shutdownApplicationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = shutdownApplicationValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Shuts down the application. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
403 User does not have permission to shutdown server. -
401 Unauthorized -
+ */ + public okhttp3.Call shutdownApplicationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = shutdownApplicationValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TimeSyncApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TimeSyncApi.java new file mode 100644 index 0000000000000..765da161bd46a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TimeSyncApi.java @@ -0,0 +1,194 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.UtcTimeResponse; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TimeSyncApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TimeSyncApi() { + this(Configuration.getDefaultApiClient()); + } + + public TimeSyncApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getUtcTime + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public okhttp3.Call getUtcTimeCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/GetUtcTime"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUtcTimeValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getUtcTimeCall(_callback); + + } + + /** + * Gets the current UTC time. + * + * @return UtcTimeResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public UtcTimeResponse getUtcTime() throws ApiException { + ApiResponse localVarResp = getUtcTimeWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the current UTC time. + * + * @return ApiResponse<UtcTimeResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public ApiResponse getUtcTimeWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getUtcTimeValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the current UTC time. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public okhttp3.Call getUtcTimeAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUtcTimeValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TmdbApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TmdbApi.java new file mode 100644 index 0000000000000..5fd576e2b3c34 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TmdbApi.java @@ -0,0 +1,200 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ConfigImageTypes; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TmdbApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TmdbApi() { + this(Configuration.getDefaultApiClient()); + } + + public TmdbApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for tmdbClientConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call tmdbClientConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Tmdb/ClientConfiguration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call tmdbClientConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return tmdbClientConfigurationCall(_callback); + + } + + /** + * Gets the TMDb image configuration options. + * + * @return ConfigImageTypes + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ConfigImageTypes tmdbClientConfiguration() throws ApiException { + ApiResponse localVarResp = tmdbClientConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the TMDb image configuration options. + * + * @return ApiResponse<ConfigImageTypes> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse tmdbClientConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = tmdbClientConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the TMDb image configuration options. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call tmdbClientConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = tmdbClientConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrailersApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrailersApi.java new file mode 100644 index 0000000000000..5a51b01d9ed06 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrailersApi.java @@ -0,0 +1,886 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.LocationType; +import org.openapitools.client.model.MediaType; +import java.time.OffsetDateTime; +import org.openapitools.client.model.SeriesStatus; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; +import org.openapitools.client.model.VideoType; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TrailersApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TrailersApi() { + this(Configuration.getDefaultApiClient()); + } + + public TrailersApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getTrailers + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailersCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Trailers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxOfficialRating", maxOfficialRating)); + } + + if (hasThemeSong != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeSong", hasThemeSong)); + } + + if (hasThemeVideo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeVideo", hasThemeVideo)); + } + + if (hasSubtitles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSubtitles", hasSubtitles)); + } + + if (hasSpecialFeature != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSpecialFeature", hasSpecialFeature)); + } + + if (hasTrailer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTrailer", hasTrailer)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (parentIndexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentIndexNumber", parentIndexNumber)); + } + + if (hasParentalRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasParentalRating", hasParentalRating)); + } + + if (isHd != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHd", isHd)); + } + + if (is4K != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is4K", is4K)); + } + + if (locationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "locationTypes", locationTypes)); + } + + if (excludeLocationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeLocationTypes", excludeLocationTypes)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (isUnaired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isUnaired", isUnaired)); + } + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (minCriticRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCriticRating", minCriticRating)); + } + + if (minPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minPremiereDate", minPremiereDate)); + } + + if (minDateLastSaved != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSaved", minDateLastSaved)); + } + + if (minDateLastSavedForUser != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSavedForUser", minDateLastSavedForUser)); + } + + if (maxPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxPremiereDate", maxPremiereDate)); + } + + if (hasOverview != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOverview", hasOverview)); + } + + if (hasImdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasImdbId", hasImdbId)); + } + + if (hasTmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTmdbId", hasTmdbId)); + } + + if (hasTvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTvdbId", hasTvdbId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (excludeItemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemIds", excludeItemIds)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (imageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "imageTypes", imageTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (artists != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artists", artists)); + } + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (artistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artistIds", artistIds)); + } + + if (albumArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumArtistIds", albumArtistIds)); + } + + if (contributingArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "contributingArtistIds", contributingArtistIds)); + } + + if (albums != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albums", albums)); + } + + if (albumIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumIds", albumIds)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (videoTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "videoTypes", videoTypes)); + } + + if (minOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minOfficialRating", minOfficialRating)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + if (isPlaceHolder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlaceHolder", isPlaceHolder)); + } + + if (hasOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOfficialRating", hasOfficialRating)); + } + + if (collapseBoxSetItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collapseBoxSetItems", collapseBoxSetItems)); + } + + if (minWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minWidth", minWidth)); + } + + if (minHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minHeight", minHeight)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (is3D != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is3D", is3D)); + } + + if (seriesStatus != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "seriesStatus", seriesStatus)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrailersValidateBeforeCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getTrailersCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + + } + + /** + * Finds movies and trailers similar to a given trailer. + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getTrailers(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getTrailersWithHttpInfo(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + return localVarResp.getData(); + } + + /** + * Finds movies and trailers similar to a given trailer. + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTrailersWithHttpInfo(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getTrailersValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Finds movies and trailers similar to a given trailer. (asynchronously) + * + * @param userId The user id supplied as query parameter; this is required when not using an API key. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an IMDb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a TMDb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a TVDb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending, Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailersAsync(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, UUID adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrailersValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrickplayApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrickplayApi.java new file mode 100644 index 0000000000000..5f02cf3e31026 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TrickplayApi.java @@ -0,0 +1,407 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TrickplayApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TrickplayApi() { + this(Configuration.getDefaultApiClient()); + } + + public TrickplayApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getTrickplayHlsPlaylist + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tiles playlist returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrickplayHlsPlaylistCall(UUID itemId, Integer width, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Trickplay/{width}/tiles.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "width" + "}", localVarApiClient.escapeString(width.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrickplayHlsPlaylistValidateBeforeCall(UUID itemId, Integer width, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getTrickplayHlsPlaylist(Async)"); + } + + // verify the required parameter 'width' is set + if (width == null) { + throw new ApiException("Missing the required parameter 'width' when calling getTrickplayHlsPlaylist(Async)"); + } + + return getTrickplayHlsPlaylistCall(itemId, width, mediaSourceId, _callback); + + } + + /** + * Gets an image tiles playlist for trickplay. + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tiles playlist returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public File getTrickplayHlsPlaylist(UUID itemId, Integer width, UUID mediaSourceId) throws ApiException { + ApiResponse localVarResp = getTrickplayHlsPlaylistWithHttpInfo(itemId, width, mediaSourceId); + return localVarResp.getData(); + } + + /** + * Gets an image tiles playlist for trickplay. + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tiles playlist returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTrickplayHlsPlaylistWithHttpInfo(UUID itemId, Integer width, UUID mediaSourceId) throws ApiException { + okhttp3.Call localVarCall = getTrickplayHlsPlaylistValidateBeforeCall(itemId, width, mediaSourceId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an image tiles playlist for trickplay. (asynchronously) + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tiles playlist returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrickplayHlsPlaylistAsync(UUID itemId, Integer width, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrickplayHlsPlaylistValidateBeforeCall(itemId, width, mediaSourceId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTrickplayTileImage + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param index The index of the desired tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tile image not found at specified index. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrickplayTileImageCall(UUID itemId, Integer width, Integer index, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Trickplay/{width}/{index}.jpg" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "width" + "}", localVarApiClient.escapeString(width.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrickplayTileImageValidateBeforeCall(UUID itemId, Integer width, Integer index, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getTrickplayTileImage(Async)"); + } + + // verify the required parameter 'width' is set + if (width == null) { + throw new ApiException("Missing the required parameter 'width' when calling getTrickplayTileImage(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling getTrickplayTileImage(Async)"); + } + + return getTrickplayTileImageCall(itemId, width, index, mediaSourceId, _callback); + + } + + /** + * Gets a trickplay tile image. + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param index The index of the desired tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tile image not found at specified index. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public File getTrickplayTileImage(UUID itemId, Integer width, Integer index, UUID mediaSourceId) throws ApiException { + ApiResponse localVarResp = getTrickplayTileImageWithHttpInfo(itemId, width, index, mediaSourceId); + return localVarResp.getData(); + } + + /** + * Gets a trickplay tile image. + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param index The index of the desired tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tile image not found at specified index. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTrickplayTileImageWithHttpInfo(UUID itemId, Integer width, Integer index, UUID mediaSourceId) throws ApiException { + okhttp3.Call localVarCall = getTrickplayTileImageValidateBeforeCall(itemId, width, index, mediaSourceId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a trickplay tile image. (asynchronously) + * + * @param itemId The item id. (required) + * @param width The width of a single tile. (required) + * @param index The index of the desired tile. (required) + * @param mediaSourceId The media version id, if using an alternate version. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Tile image not found at specified index. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrickplayTileImageAsync(UUID itemId, Integer width, Integer index, UUID mediaSourceId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrickplayTileImageValidateBeforeCall(itemId, width, index, mediaSourceId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TvShowsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TvShowsApi.java new file mode 100644 index 0000000000000..a52751a40439f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/TvShowsApi.java @@ -0,0 +1,993 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import java.time.OffsetDateTime; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TvShowsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TvShowsApi() { + this(Configuration.getDefaultApiClient()); + } + + public TvShowsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getEpisodes + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEpisodesCall(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, UUID adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, ItemSortBy sortBy, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{seriesId}/Episodes" + .replace("{" + "seriesId" + "}", localVarApiClient.escapeString(seriesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (season != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("season", season)); + } + + if (seasonId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seasonId", seasonId)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (startItemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startItemId", startItemId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (sortBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getEpisodesValidateBeforeCall(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, UUID adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, ItemSortBy sortBy, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesId' is set + if (seriesId == null) { + throw new ApiException("Missing the required parameter 'seriesId' when calling getEpisodes(Async)"); + } + + return getEpisodesCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, _callback); + + } + + /** + * Gets episodes for a tv season. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getEpisodes(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, UUID adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, ItemSortBy sortBy) throws ApiException { + ApiResponse localVarResp = getEpisodesWithHttpInfo(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy); + return localVarResp.getData(); + } + + /** + * Gets episodes for a tv season. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getEpisodesWithHttpInfo(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, UUID adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, ItemSortBy sortBy) throws ApiException { + okhttp3.Call localVarCall = getEpisodesValidateBeforeCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets episodes for a tv season. (asynchronously) + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEpisodesAsync(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, UUID adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, ItemSortBy sortBy, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getEpisodesValidateBeforeCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNextUp + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableResumable Whether to include resumable episodes in next up results. (optional, default to true) + * @param enableRewatching Whether to include watched episodes in next up results. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNextUpCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableResumable, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/NextUp"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (seriesId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesId", seriesId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (nextUpDateCutoff != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nextUpDateCutoff", nextUpDateCutoff)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (disableFirstEpisode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("disableFirstEpisode", disableFirstEpisode)); + } + + if (enableResumable != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableResumable", enableResumable)); + } + + if (enableRewatching != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRewatching", enableRewatching)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNextUpValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableResumable, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + return getNextUpCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching, _callback); + + } + + /** + * Gets a list of next up episodes. + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableResumable Whether to include resumable episodes in next up results. (optional, default to true) + * @param enableRewatching Whether to include watched episodes in next up results. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getNextUp(UUID userId, Integer startIndex, Integer limit, List fields, UUID seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableResumable, Boolean enableRewatching) throws ApiException { + ApiResponse localVarResp = getNextUpWithHttpInfo(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching); + return localVarResp.getData(); + } + + /** + * Gets a list of next up episodes. + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableResumable Whether to include resumable episodes in next up results. (optional, default to true) + * @param enableRewatching Whether to include watched episodes in next up results. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNextUpWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List fields, UUID seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableResumable, Boolean enableRewatching) throws ApiException { + okhttp3.Call localVarCall = getNextUpValidateBeforeCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of next up episodes. (asynchronously) + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableResumable Whether to include resumable episodes in next up results. (optional, default to true) + * @param enableRewatching Whether to include watched episodes in next up results. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNextUpAsync(UUID userId, Integer startIndex, Integer limit, List fields, UUID seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableResumable, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNextUpValidateBeforeCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableResumable, enableRewatching, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeasons + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeasonsCall(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, UUID adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{seriesId}/Seasons" + .replace("{" + "seriesId" + "}", localVarApiClient.escapeString(seriesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (isSpecialSeason != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSpecialSeason", isSpecialSeason)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeasonsValidateBeforeCall(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, UUID adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesId' is set + if (seriesId == null) { + throw new ApiException("Missing the required parameter 'seriesId' when calling getSeasons(Async)"); + } + + return getSeasonsCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + + } + + /** + * Gets seasons for a tv series. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSeasons(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, UUID adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + ApiResponse localVarResp = getSeasonsWithHttpInfo(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + return localVarResp.getData(); + } + + /** + * Gets seasons for a tv series. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeasonsWithHttpInfo(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, UUID adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + okhttp3.Call localVarCall = getSeasonsValidateBeforeCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets seasons for a tv series. (asynchronously) + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeasonsAsync(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, UUID adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeasonsValidateBeforeCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUpcomingEpisodes + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUpcomingEpisodesCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/Upcoming"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUpcomingEpisodesValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + return getUpcomingEpisodesCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + + } + + /** + * Gets a list of upcoming episodes. + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getUpcomingEpisodes(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + ApiResponse localVarResp = getUpcomingEpisodesWithHttpInfo(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + return localVarResp.getData(); + } + + /** + * Gets a list of upcoming episodes. + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUpcomingEpisodesWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + okhttp3.Call localVarCall = getUpcomingEpisodesValidateBeforeCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of upcoming episodes. (asynchronously) + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUpcomingEpisodesAsync(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUpcomingEpisodesValidateBeforeCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UniversalAudioApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UniversalAudioApi.java new file mode 100644 index 0000000000000..a641112f112c5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UniversalAudioApi.java @@ -0,0 +1,658 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.MediaStreamProtocol; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UniversalAudioApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UniversalAudioApi() { + this(Configuration.getDefaultApiClient()); + } + + public UniversalAudioApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getUniversalAudioStream + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUniversalAudioStreamCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/universal" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "container", container)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (transcodingAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingAudioChannels", transcodingAudioChannels)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (transcodingContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingContainer", transcodingContainer)); + } + + if (transcodingProtocol != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingProtocol", transcodingProtocol)); + } + + if (maxAudioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioSampleRate", maxAudioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (enableRemoteMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRemoteMedia", enableRemoteMedia)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (enableRedirection != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRedirection", enableRedirection)); + } + + final String[] localVarAccepts = { + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUniversalAudioStreamValidateBeforeCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getUniversalAudioStream(Async)"); + } + + return getUniversalAudioStreamCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getUniversalAudioStream(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + ApiResponse localVarResp = getUniversalAudioStreamWithHttpInfo(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUniversalAudioStreamWithHttpInfo(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + okhttp3.Call localVarCall = getUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUniversalAudioStreamAsync(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headUniversalAudioStream + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headUniversalAudioStreamCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/universal" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "container", container)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (transcodingAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingAudioChannels", transcodingAudioChannels)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (transcodingContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingContainer", transcodingContainer)); + } + + if (transcodingProtocol != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingProtocol", transcodingProtocol)); + } + + if (maxAudioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioSampleRate", maxAudioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (enableRemoteMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRemoteMedia", enableRemoteMedia)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (enableRedirection != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRedirection", enableRedirection)); + } + + final String[] localVarAccepts = { + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headUniversalAudioStreamValidateBeforeCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headUniversalAudioStream(Async)"); + } + + return headUniversalAudioStreamCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headUniversalAudioStream(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + ApiResponse localVarResp = headUniversalAudioStreamWithHttpInfo(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headUniversalAudioStreamWithHttpInfo(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + okhttp3.Call localVarCall = headUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headUniversalAudioStreamAsync(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, MediaStreamProtocol transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean enableAudioVbrEncoding, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, enableAudioVbrEncoding, breakOnNonKeyFrames, enableRedirection, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserApi.java new file mode 100644 index 0000000000000..fa89595675a33 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserApi.java @@ -0,0 +1,2012 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AuthenticateUserByName; +import org.openapitools.client.model.AuthenticationResult; +import org.openapitools.client.model.CreateUserByName; +import org.openapitools.client.model.ForgotPasswordDto; +import org.openapitools.client.model.ForgotPasswordPinDto; +import org.openapitools.client.model.ForgotPasswordResult; +import org.openapitools.client.model.PinRedeemResult; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.QuickConnectDto; +import java.util.UUID; +import org.openapitools.client.model.UpdateUserPassword; +import org.openapitools.client.model.UserConfiguration; +import org.openapitools.client.model.UserDto; +import org.openapitools.client.model.UserPolicy; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for authenticateUserByName + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public okhttp3.Call authenticateUserByNameCall(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = authenticateUserByName; + + // create path and map variables + String localVarPath = "/Users/AuthenticateByName"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authenticateUserByNameValidateBeforeCall(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'authenticateUserByName' is set + if (authenticateUserByName == null) { + throw new ApiException("Missing the required parameter 'authenticateUserByName' when calling authenticateUserByName(Async)"); + } + + return authenticateUserByNameCall(authenticateUserByName, _callback); + + } + + /** + * Authenticates a user by name. + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @return AuthenticationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public AuthenticationResult authenticateUserByName(AuthenticateUserByName authenticateUserByName) throws ApiException { + ApiResponse localVarResp = authenticateUserByNameWithHttpInfo(authenticateUserByName); + return localVarResp.getData(); + } + + /** + * Authenticates a user by name. + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @return ApiResponse<AuthenticationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public ApiResponse authenticateUserByNameWithHttpInfo(AuthenticateUserByName authenticateUserByName) throws ApiException { + okhttp3.Call localVarCall = authenticateUserByNameValidateBeforeCall(authenticateUserByName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authenticates a user by name. (asynchronously) + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public okhttp3.Call authenticateUserByNameAsync(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authenticateUserByNameValidateBeforeCall(authenticateUserByName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for authenticateWithQuickConnect + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public okhttp3.Call authenticateWithQuickConnectCall(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = quickConnectDto; + + // create path and map variables + String localVarPath = "/Users/AuthenticateWithQuickConnect"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authenticateWithQuickConnectValidateBeforeCall(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'quickConnectDto' is set + if (quickConnectDto == null) { + throw new ApiException("Missing the required parameter 'quickConnectDto' when calling authenticateWithQuickConnect(Async)"); + } + + return authenticateWithQuickConnectCall(quickConnectDto, _callback); + + } + + /** + * Authenticates a user with quick connect. + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @return AuthenticationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public AuthenticationResult authenticateWithQuickConnect(QuickConnectDto quickConnectDto) throws ApiException { + ApiResponse localVarResp = authenticateWithQuickConnectWithHttpInfo(quickConnectDto); + return localVarResp.getData(); + } + + /** + * Authenticates a user with quick connect. + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @return ApiResponse<AuthenticationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public ApiResponse authenticateWithQuickConnectWithHttpInfo(QuickConnectDto quickConnectDto) throws ApiException { + okhttp3.Call localVarCall = authenticateWithQuickConnectValidateBeforeCall(quickConnectDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authenticates a user with quick connect. (asynchronously) + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public okhttp3.Call authenticateWithQuickConnectAsync(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authenticateWithQuickConnectValidateBeforeCall(quickConnectDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createUserByName + * @param createUserByName The create user by name request body. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createUserByNameCall(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = createUserByName; + + // create path and map variables + String localVarPath = "/Users/New"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createUserByNameValidateBeforeCall(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'createUserByName' is set + if (createUserByName == null) { + throw new ApiException("Missing the required parameter 'createUserByName' when calling createUserByName(Async)"); + } + + return createUserByNameCall(createUserByName, _callback); + + } + + /** + * Creates a user. + * + * @param createUserByName The create user by name request body. (required) + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto createUserByName(CreateUserByName createUserByName) throws ApiException { + ApiResponse localVarResp = createUserByNameWithHttpInfo(createUserByName); + return localVarResp.getData(); + } + + /** + * Creates a user. + * + * @param createUserByName The create user by name request body. (required) + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createUserByNameWithHttpInfo(CreateUserByName createUserByName) throws ApiException { + okhttp3.Call localVarCall = createUserByNameValidateBeforeCall(createUserByName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a user. (asynchronously) + * + * @param createUserByName The create user by name request body. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createUserByNameAsync(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createUserByNameValidateBeforeCall(createUserByName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteUser + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling deleteUser(Async)"); + } + + return deleteUserCall(userId, _callback); + + } + + /** + * Deletes a user. + * + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteUser(UUID userId) throws ApiException { + deleteUserWithHttpInfo(userId); + } + + /** + * Deletes a user. + * + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteUserWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = deleteUserValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a user. (asynchronously) + * + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for forgotPassword + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public okhttp3.Call forgotPasswordCall(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = forgotPasswordDto; + + // create path and map variables + String localVarPath = "/Users/ForgotPassword"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call forgotPasswordValidateBeforeCall(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'forgotPasswordDto' is set + if (forgotPasswordDto == null) { + throw new ApiException("Missing the required parameter 'forgotPasswordDto' when calling forgotPassword(Async)"); + } + + return forgotPasswordCall(forgotPasswordDto, _callback); + + } + + /** + * Initiates the forgot password process for a local user. + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @return ForgotPasswordResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public ForgotPasswordResult forgotPassword(ForgotPasswordDto forgotPasswordDto) throws ApiException { + ApiResponse localVarResp = forgotPasswordWithHttpInfo(forgotPasswordDto); + return localVarResp.getData(); + } + + /** + * Initiates the forgot password process for a local user. + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @return ApiResponse<ForgotPasswordResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public ApiResponse forgotPasswordWithHttpInfo(ForgotPasswordDto forgotPasswordDto) throws ApiException { + okhttp3.Call localVarCall = forgotPasswordValidateBeforeCall(forgotPasswordDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Initiates the forgot password process for a local user. (asynchronously) + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public okhttp3.Call forgotPasswordAsync(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = forgotPasswordValidateBeforeCall(forgotPasswordDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for forgotPasswordPin + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public okhttp3.Call forgotPasswordPinCall(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = forgotPasswordPinDto; + + // create path and map variables + String localVarPath = "/Users/ForgotPassword/Pin"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call forgotPasswordPinValidateBeforeCall(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'forgotPasswordPinDto' is set + if (forgotPasswordPinDto == null) { + throw new ApiException("Missing the required parameter 'forgotPasswordPinDto' when calling forgotPasswordPin(Async)"); + } + + return forgotPasswordPinCall(forgotPasswordPinDto, _callback); + + } + + /** + * Redeems a forgot password pin. + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @return PinRedeemResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public PinRedeemResult forgotPasswordPin(ForgotPasswordPinDto forgotPasswordPinDto) throws ApiException { + ApiResponse localVarResp = forgotPasswordPinWithHttpInfo(forgotPasswordPinDto); + return localVarResp.getData(); + } + + /** + * Redeems a forgot password pin. + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @return ApiResponse<PinRedeemResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public ApiResponse forgotPasswordPinWithHttpInfo(ForgotPasswordPinDto forgotPasswordPinDto) throws ApiException { + okhttp3.Call localVarCall = forgotPasswordPinValidateBeforeCall(forgotPasswordPinDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Redeems a forgot password pin. (asynchronously) + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public okhttp3.Call forgotPasswordPinAsync(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = forgotPasswordPinValidateBeforeCall(forgotPasswordPinDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCurrentUser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCurrentUserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/Me"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCurrentUserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCurrentUserCall(_callback); + + } + + /** + * Gets the user based on auth token. + * + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto getCurrentUser() throws ApiException { + ApiResponse localVarResp = getCurrentUserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the user based on auth token. + * + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getCurrentUserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCurrentUserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the user based on auth token. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCurrentUserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getCurrentUserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPublicUsers + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public okhttp3.Call getPublicUsersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/Public"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPublicUsersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPublicUsersCall(_callback); + + } + + /** + * Gets a list of publicly visible users for display on a login screen. + * + * @return List<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public List getPublicUsers() throws ApiException { + ApiResponse> localVarResp = getPublicUsersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of publicly visible users for display on a login screen. + * + * @return ApiResponse<List<UserDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public ApiResponse> getPublicUsersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPublicUsersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of publicly visible users for display on a login screen. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public okhttp3.Call getPublicUsersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPublicUsersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserById + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserByIdCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserByIdValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getUserById(Async)"); + } + + return getUserByIdCall(userId, _callback); + + } + + /** + * Gets a user by Id. + * + * @param userId The user id. (required) + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto getUserById(UUID userId) throws ApiException { + ApiResponse localVarResp = getUserByIdWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets a user by Id. + * + * @param userId The user id. (required) + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUserByIdWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getUserByIdValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a user by Id. (asynchronously) + * + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserByIdAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserByIdValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUsers + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUsersCall(Boolean isHidden, Boolean isDisabled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + if (isDisabled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isDisabled", isDisabled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUsersValidateBeforeCall(Boolean isHidden, Boolean isDisabled, final ApiCallback _callback) throws ApiException { + return getUsersCall(isHidden, isDisabled, _callback); + + } + + /** + * Gets a list of users. + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @return List<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getUsers(Boolean isHidden, Boolean isDisabled) throws ApiException { + ApiResponse> localVarResp = getUsersWithHttpInfo(isHidden, isDisabled); + return localVarResp.getData(); + } + + /** + * Gets a list of users. + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @return ApiResponse<List<UserDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getUsersWithHttpInfo(Boolean isHidden, Boolean isDisabled) throws ApiException { + okhttp3.Call localVarCall = getUsersValidateBeforeCall(isHidden, isDisabled, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of users. (asynchronously) + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUsersAsync(Boolean isHidden, Boolean isDisabled, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getUsersValidateBeforeCall(isHidden, isDisabled, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateUser + * @param userDto The updated user model. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserCall(UserDto userDto, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userDto; + + // create path and map variables + String localVarPath = "/Users"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserValidateBeforeCall(UserDto userDto, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userDto' is set + if (userDto == null) { + throw new ApiException("Missing the required parameter 'userDto' when calling updateUser(Async)"); + } + + return updateUserCall(userDto, userId, _callback); + + } + + /** + * Updates a user. + * + * @param userDto The updated user model. (required) + * @param userId The user id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public void updateUser(UserDto userDto, UUID userId) throws ApiException { + updateUserWithHttpInfo(userDto, userId); + } + + /** + * Updates a user. + * + * @param userDto The updated user model. (required) + * @param userId The user id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserWithHttpInfo(UserDto userDto, UUID userId) throws ApiException { + okhttp3.Call localVarCall = updateUserValidateBeforeCall(userDto, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user. (asynchronously) + * + * @param userDto The updated user model. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserAsync(UserDto userDto, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserValidateBeforeCall(userDto, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserConfiguration + * @param userConfiguration The new user configuration. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserConfigurationCall(UserConfiguration userConfiguration, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userConfiguration; + + // create path and map variables + String localVarPath = "/Users/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserConfigurationValidateBeforeCall(UserConfiguration userConfiguration, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userConfiguration' is set + if (userConfiguration == null) { + throw new ApiException("Missing the required parameter 'userConfiguration' when calling updateUserConfiguration(Async)"); + } + + return updateUserConfigurationCall(userConfiguration, userId, _callback); + + } + + /** + * Updates a user configuration. + * + * @param userConfiguration The new user configuration. (required) + * @param userId The user id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public void updateUserConfiguration(UserConfiguration userConfiguration, UUID userId) throws ApiException { + updateUserConfigurationWithHttpInfo(userConfiguration, userId); + } + + /** + * Updates a user configuration. + * + * @param userConfiguration The new user configuration. (required) + * @param userId The user id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserConfigurationWithHttpInfo(UserConfiguration userConfiguration, UUID userId) throws ApiException { + okhttp3.Call localVarCall = updateUserConfigurationValidateBeforeCall(userConfiguration, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user configuration. (asynchronously) + * + * @param userConfiguration The new user configuration. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserConfigurationAsync(UserConfiguration userConfiguration, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserConfigurationValidateBeforeCall(userConfiguration, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserPassword + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPasswordCall(UpdateUserPassword updateUserPassword, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateUserPassword; + + // create path and map variables + String localVarPath = "/Users/Password"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserPasswordValidateBeforeCall(UpdateUserPassword updateUserPassword, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'updateUserPassword' is set + if (updateUserPassword == null) { + throw new ApiException("Missing the required parameter 'updateUserPassword' when calling updateUserPassword(Async)"); + } + + return updateUserPasswordCall(updateUserPassword, userId, _callback); + + } + + /** + * Updates a user's password. + * + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param userId The user id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public void updateUserPassword(UpdateUserPassword updateUserPassword, UUID userId) throws ApiException { + updateUserPasswordWithHttpInfo(updateUserPassword, userId); + } + + /** + * Updates a user's password. + * + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param userId The user id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public ApiResponse updateUserPasswordWithHttpInfo(UpdateUserPassword updateUserPassword, UUID userId) throws ApiException { + okhttp3.Call localVarCall = updateUserPasswordValidateBeforeCall(updateUserPassword, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user's password. (asynchronously) + * + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPasswordAsync(UpdateUserPassword updateUserPassword, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserPasswordValidateBeforeCall(updateUserPassword, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserPolicy + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPolicyCall(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userPolicy; + + // create path and map variables + String localVarPath = "/Users/{userId}/Policy" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserPolicyValidateBeforeCall(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserPolicy(Async)"); + } + + // verify the required parameter 'userPolicy' is set + if (userPolicy == null) { + throw new ApiException("Missing the required parameter 'userPolicy' when calling updateUserPolicy(Async)"); + } + + return updateUserPolicyCall(userId, userPolicy, _callback); + + } + + /** + * Updates a user policy. + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public void updateUserPolicy(UUID userId, UserPolicy userPolicy) throws ApiException { + updateUserPolicyWithHttpInfo(userId, userPolicy); + } + + /** + * Updates a user policy. + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserPolicyWithHttpInfo(UUID userId, UserPolicy userPolicy) throws ApiException { + okhttp3.Call localVarCall = updateUserPolicyValidateBeforeCall(userId, userPolicy, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user policy. (asynchronously) + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPolicyAsync(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserPolicyValidateBeforeCall(userId, userPolicy, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserLibraryApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserLibraryApi.java new file mode 100644 index 0000000000000..697b43431961e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserLibraryApi.java @@ -0,0 +1,1599 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.util.UUID; +import org.openapitools.client.model.UserItemDataDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserLibraryApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserLibraryApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserLibraryApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteUserItemRating + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserItemRatingCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserItems/{itemId}/Rating" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserItemRatingValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteUserItemRating(Async)"); + } + + return deleteUserItemRatingCall(itemId, userId, _callback); + + } + + /** + * Deletes a user's saved personal rating for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto deleteUserItemRating(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = deleteUserItemRatingWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Deletes a user's saved personal rating for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteUserItemRatingWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = deleteUserItemRatingValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Deletes a user's saved personal rating for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserItemRatingAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserItemRatingValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getIntros + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIntrosCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Intros" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getIntrosValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getIntros(Async)"); + } + + return getIntrosCall(itemId, userId, _callback); + + } + + /** + * Gets intros to play before the main media item plays. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getIntros(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getIntrosWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets intros to play before the main media item plays. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getIntrosWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getIntrosValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets intros to play before the main media item plays. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIntrosAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getIntrosValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItem + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItem(Async)"); + } + + return getItemCall(itemId, userId, _callback); + + } + + /** + * Gets an item from a user's library. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getItem(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getItemWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets an item from a user's library. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getItemValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an item from a user's library. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLatestMedia + * @param userId User id. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestMediaCall(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Latest"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (groupItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("groupItems", groupItems)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLatestMediaValidateBeforeCall(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback _callback) throws ApiException { + return getLatestMediaCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, _callback); + + } + + /** + * Gets latest media. + * + * @param userId User id. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLatestMedia(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems) throws ApiException { + ApiResponse> localVarResp = getLatestMediaWithHttpInfo(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems); + return localVarResp.getData(); + } + + /** + * Gets latest media. + * + * @param userId User id. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLatestMediaWithHttpInfo(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems) throws ApiException { + okhttp3.Call localVarCall = getLatestMediaValidateBeforeCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets latest media. (asynchronously) + * + * @param userId User id. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestMediaAsync(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLatestMediaValidateBeforeCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLocalTrailers + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalTrailersCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/LocalTrailers" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLocalTrailersValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getLocalTrailers(Async)"); + } + + return getLocalTrailersCall(itemId, userId, _callback); + + } + + /** + * Gets local trailers for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLocalTrailers(UUID itemId, UUID userId) throws ApiException { + ApiResponse> localVarResp = getLocalTrailersWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets local trailers for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLocalTrailersWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getLocalTrailersValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets local trailers for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalTrailersAsync(UUID itemId, UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLocalTrailersValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRootFolder + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRootFolderCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Root"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRootFolderValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getRootFolderCall(userId, _callback); + + } + + /** + * Gets the root folder from a user's library. + * + * @param userId User id. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getRootFolder(UUID userId) throws ApiException { + ApiResponse localVarResp = getRootFolderWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets the root folder from a user's library. + * + * @param userId User id. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRootFolderWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRootFolderValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the root folder from a user's library. (asynchronously) + * + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRootFolderAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRootFolderValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSpecialFeatures + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSpecialFeaturesCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/SpecialFeatures" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSpecialFeaturesValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSpecialFeatures(Async)"); + } + + return getSpecialFeaturesCall(itemId, userId, _callback); + + } + + /** + * Gets special features for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSpecialFeatures(UUID itemId, UUID userId) throws ApiException { + ApiResponse> localVarResp = getSpecialFeaturesWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets special features for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSpecialFeaturesWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getSpecialFeaturesValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets special features for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSpecialFeaturesAsync(UUID itemId, UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSpecialFeaturesValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for markFavoriteItem + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markFavoriteItemCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserFavoriteItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markFavoriteItemValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markFavoriteItem(Async)"); + } + + return markFavoriteItemCall(itemId, userId, _callback); + + } + + /** + * Marks an item as a favorite. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markFavoriteItem(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = markFavoriteItemWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Marks an item as a favorite. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markFavoriteItemWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = markFavoriteItemValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as a favorite. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markFavoriteItemAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markFavoriteItemValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for unmarkFavoriteItem + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call unmarkFavoriteItemCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserFavoriteItems/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call unmarkFavoriteItemValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling unmarkFavoriteItem(Async)"); + } + + return unmarkFavoriteItemCall(itemId, userId, _callback); + + } + + /** + * Unmarks item as a favorite. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto unmarkFavoriteItem(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = unmarkFavoriteItemWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Unmarks item as a favorite. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse unmarkFavoriteItemWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = unmarkFavoriteItemValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Unmarks item as a favorite. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call unmarkFavoriteItemAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = unmarkFavoriteItemValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateUserItemRating + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateUserItemRatingCall(UUID itemId, UUID userId, Boolean likes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserItems/{itemId}/Rating" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (likes != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("likes", likes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserItemRatingValidateBeforeCall(UUID itemId, UUID userId, Boolean likes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateUserItemRating(Async)"); + } + + return updateUserItemRatingCall(itemId, userId, likes, _callback); + + } + + /** + * Updates a user's rating for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto updateUserItemRating(UUID itemId, UUID userId, Boolean likes) throws ApiException { + ApiResponse localVarResp = updateUserItemRatingWithHttpInfo(itemId, userId, likes); + return localVarResp.getData(); + } + + /** + * Updates a user's rating for an item. + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateUserItemRatingWithHttpInfo(UUID itemId, UUID userId, Boolean likes) throws ApiException { + okhttp3.Call localVarCall = updateUserItemRatingValidateBeforeCall(itemId, userId, likes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Updates a user's rating for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param userId User id. (optional) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateUserItemRatingAsync(UUID itemId, UUID userId, Boolean likes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserItemRatingValidateBeforeCall(itemId, userId, likes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserViewsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserViewsApi.java new file mode 100644 index 0000000000000..331264e9872eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/UserViewsApi.java @@ -0,0 +1,377 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.CollectionType; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SpecialViewOptionDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserViewsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserViewsApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserViewsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getGroupingOptions + * @param userId User id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGroupingOptionsCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserViews/GroupingOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGroupingOptionsValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getGroupingOptionsCall(userId, _callback); + + } + + /** + * Get user view grouping options. + * + * @param userId User id. (optional) + * @return List<SpecialViewOptionDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getGroupingOptions(UUID userId) throws ApiException { + ApiResponse> localVarResp = getGroupingOptionsWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Get user view grouping options. + * + * @param userId User id. (optional) + * @return ApiResponse<List<SpecialViewOptionDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getGroupingOptionsWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getGroupingOptionsValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user view grouping options. (asynchronously) + * + * @param userId User id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGroupingOptionsAsync(UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getGroupingOptionsValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserViews + * @param userId User id. (optional) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserViewsCall(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/UserViews"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (includeExternalContent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeExternalContent", includeExternalContent)); + } + + if (presetViews != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "presetViews", presetViews)); + } + + if (includeHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeHidden", includeHidden)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserViewsValidateBeforeCall(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + return getUserViewsCall(userId, includeExternalContent, presetViews, includeHidden, _callback); + + } + + /** + * Get user views. + * + * @param userId User id. (optional) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getUserViews(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden) throws ApiException { + ApiResponse localVarResp = getUserViewsWithHttpInfo(userId, includeExternalContent, presetViews, includeHidden); + return localVarResp.getData(); + } + + /** + * Get user views. + * + * @param userId User id. (optional) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUserViewsWithHttpInfo(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden) throws ApiException { + okhttp3.Call localVarCall = getUserViewsValidateBeforeCall(userId, includeExternalContent, presetViews, includeHidden, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user views. (asynchronously) + * + * @param userId User id. (optional) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserViewsAsync(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserViewsValidateBeforeCall(userId, includeExternalContent, presetViews, includeHidden, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java new file mode 100644 index 0000000000000..4c59774a5f9c2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VideoAttachmentsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public VideoAttachmentsApi() { + this(Configuration.getDefaultApiClient()); + } + + public VideoAttachmentsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAttachment + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public okhttp3.Call getAttachmentCall(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}" + .replace("{" + "videoId" + "}", localVarApiClient.escapeString(videoId.toString())) + .replace("{" + "mediaSourceId" + "}", localVarApiClient.escapeString(mediaSourceId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/octet-stream", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAttachmentValidateBeforeCall(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'videoId' is set + if (videoId == null) { + throw new ApiException("Missing the required parameter 'videoId' when calling getAttachment(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getAttachment(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling getAttachment(Async)"); + } + + return getAttachmentCall(videoId, mediaSourceId, index, _callback); + + } + + /** + * Get video attachment. + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public File getAttachment(UUID videoId, String mediaSourceId, Integer index) throws ApiException { + ApiResponse localVarResp = getAttachmentWithHttpInfo(videoId, mediaSourceId, index); + return localVarResp.getData(); + } + + /** + * Get video attachment. + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public ApiResponse getAttachmentWithHttpInfo(UUID videoId, String mediaSourceId, Integer index) throws ApiException { + okhttp3.Call localVarCall = getAttachmentValidateBeforeCall(videoId, mediaSourceId, index, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get video attachment. (asynchronously) + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public okhttp3.Call getAttachmentAsync(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAttachmentValidateBeforeCall(videoId, mediaSourceId, index, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideosApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideosApi.java new file mode 100644 index 0000000000000..71ce5c4f06b54 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/VideosApi.java @@ -0,0 +1,2646 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VideosApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public VideosApi() { + this(Configuration.getDefaultApiClient()); + } + + public VideosApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteAlternateSources + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteAlternateSourcesCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/AlternateSources" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteAlternateSourcesValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteAlternateSources(Async)"); + } + + return deleteAlternateSourcesCall(itemId, _callback); + + } + + /** + * Removes alternate video sources. + * + * @param itemId The item id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteAlternateSources(UUID itemId) throws ApiException { + deleteAlternateSourcesWithHttpInfo(itemId); + } + + /** + * Removes alternate video sources. + * + * @param itemId The item id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteAlternateSourcesWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteAlternateSourcesValidateBeforeCall(itemId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes alternate video sources. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteAlternateSourcesAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteAlternateSourcesValidateBeforeCall(itemId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAdditionalPart + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAdditionalPartCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/AdditionalParts" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAdditionalPartValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAdditionalPart(Async)"); + } + + return getAdditionalPartCall(itemId, userId, _callback); + + } + + /** + * Gets additional parts for a video. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getAdditionalPart(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getAdditionalPartWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets additional parts for a video. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getAdditionalPartWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getAdditionalPartValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets additional parts for a video. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAdditionalPartAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAdditionalPartValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVideoStream + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVideoStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVideoStream(Async)"); + } + + return getVideoStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File getVideoStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getVideoStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse getVideoStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVideoStreamByContainer + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVideoStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVideoStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getVideoStreamByContainer(Async)"); + } + + return getVideoStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File getVideoStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = getVideoStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse getVideoStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = getVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headVideoStream + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headVideoStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headVideoStream(Async)"); + } + + return headVideoStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File headVideoStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = headVideoStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse headVideoStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = headVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headVideoStreamByContainer + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAudioVbrEncoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAudioVbrEncoding", enableAudioVbrEncoding)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headVideoStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headVideoStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling headVideoStreamByContainer(Async)"); + } + + return headVideoStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File headVideoStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + ApiResponse localVarResp = headVideoStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse headVideoStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding) throws ApiException { + okhttp3.Call localVarCall = headVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAudioVbrEncoding Optional. Whether to enable Audio Encoding. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAudioVbrEncoding, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAudioVbrEncoding, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for mergeVersions + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call mergeVersionsCall(List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/MergeVersions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call mergeVersionsValidateBeforeCall(List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling mergeVersions(Async)"); + } + + return mergeVersionsCall(ids, _callback); + + } + + /** + * Merges videos into a single record. + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public void mergeVersions(List ids) throws ApiException { + mergeVersionsWithHttpInfo(ids); + } + + /** + * Merges videos into a single record. + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse mergeVersionsWithHttpInfo(List ids) throws ApiException { + okhttp3.Call localVarCall = mergeVersionsValidateBeforeCall(ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Merges videos into a single record. (asynchronously) + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call mergeVersionsAsync(List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = mergeVersionsValidateBeforeCall(ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/YearsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/YearsApi.java new file mode 100644 index 0000000000000..4cafff1dfbf8d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/api/YearsApi.java @@ -0,0 +1,480 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class YearsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public YearsApi() { + this(Configuration.getDefaultApiClient()); + } + + public YearsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getYear + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearCall(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Years/{year}" + .replace("{" + "year" + "}", localVarApiClient.escapeString(year.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getYearValidateBeforeCall(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'year' is set + if (year == null) { + throw new ApiException("Missing the required parameter 'year' when calling getYear(Async)"); + } + + return getYearCall(year, userId, _callback); + + } + + /** + * Gets a year. + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getYear(Integer year, UUID userId) throws ApiException { + ApiResponse localVarResp = getYearWithHttpInfo(year, userId); + return localVarResp.getData(); + } + + /** + * Gets a year. + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getYearWithHttpInfo(Integer year, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getYearValidateBeforeCall(year, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a year. (asynchronously) + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearAsync(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getYearValidateBeforeCall(year, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getYears + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearsCall(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Years"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getYearsValidateBeforeCall(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getYearsCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, _callback); + + } + + /** + * Get years. + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getYears(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getYearsWithHttpInfo(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages); + return localVarResp.getData(); + } + + /** + * Get years. + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getYearsWithHttpInfo(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getYearsValidateBeforeCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get years. (asynchronously) + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearsAsync(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getYearsValidateBeforeCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AccessSchedule.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AccessSchedule.java new file mode 100644 index 0000000000000..fda9627099d2f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AccessSchedule.java @@ -0,0 +1,319 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.DynamicDayOfWeek; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An entity representing a user's access schedule. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AccessSchedule { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Integer id; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_DAY_OF_WEEK = "DayOfWeek"; + @SerializedName(SERIALIZED_NAME_DAY_OF_WEEK) + @javax.annotation.Nullable + private DynamicDayOfWeek dayOfWeek; + + public static final String SERIALIZED_NAME_START_HOUR = "StartHour"; + @SerializedName(SERIALIZED_NAME_START_HOUR) + @javax.annotation.Nullable + private Double startHour; + + public static final String SERIALIZED_NAME_END_HOUR = "EndHour"; + @SerializedName(SERIALIZED_NAME_END_HOUR) + @javax.annotation.Nullable + private Double endHour; + + public AccessSchedule() { + } + + public AccessSchedule( + Integer id + ) { + this(); + this.id = id; + } + + /** + * Gets the id of this instance. + * @return id + */ + @javax.annotation.Nullable + public Integer getId() { + return id; + } + + + + public AccessSchedule userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets the id of the associated user. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public AccessSchedule dayOfWeek(@javax.annotation.Nullable DynamicDayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + return this; + } + + /** + * Gets or sets the day of week. + * @return dayOfWeek + */ + @javax.annotation.Nullable + public DynamicDayOfWeek getDayOfWeek() { + return dayOfWeek; + } + + public void setDayOfWeek(@javax.annotation.Nullable DynamicDayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + } + + + public AccessSchedule startHour(@javax.annotation.Nullable Double startHour) { + this.startHour = startHour; + return this; + } + + /** + * Gets or sets the start hour. + * @return startHour + */ + @javax.annotation.Nullable + public Double getStartHour() { + return startHour; + } + + public void setStartHour(@javax.annotation.Nullable Double startHour) { + this.startHour = startHour; + } + + + public AccessSchedule endHour(@javax.annotation.Nullable Double endHour) { + this.endHour = endHour; + return this; + } + + /** + * Gets or sets the end hour. + * @return endHour + */ + @javax.annotation.Nullable + public Double getEndHour() { + return endHour; + } + + public void setEndHour(@javax.annotation.Nullable Double endHour) { + this.endHour = endHour; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccessSchedule accessSchedule = (AccessSchedule) o; + return Objects.equals(this.id, accessSchedule.id) && + Objects.equals(this.userId, accessSchedule.userId) && + Objects.equals(this.dayOfWeek, accessSchedule.dayOfWeek) && + Objects.equals(this.startHour, accessSchedule.startHour) && + Objects.equals(this.endHour, accessSchedule.endHour); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId, dayOfWeek, startHour, endHour); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccessSchedule {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" dayOfWeek: ").append(toIndentedString(dayOfWeek)).append("\n"); + sb.append(" startHour: ").append(toIndentedString(startHour)).append("\n"); + sb.append(" endHour: ").append(toIndentedString(endHour)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("UserId"); + openapiFields.add("DayOfWeek"); + openapiFields.add("StartHour"); + openapiFields.add("EndHour"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AccessSchedule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AccessSchedule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AccessSchedule is not found in the empty JSON string", AccessSchedule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AccessSchedule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AccessSchedule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + // validate the optional field `DayOfWeek` + if (jsonObj.get("DayOfWeek") != null && !jsonObj.get("DayOfWeek").isJsonNull()) { + DynamicDayOfWeek.validateJsonElement(jsonObj.get("DayOfWeek")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AccessSchedule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AccessSchedule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AccessSchedule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AccessSchedule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AccessSchedule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AccessSchedule given an JSON string + * + * @param jsonString JSON string + * @return An instance of AccessSchedule + * @throws IOException if the JSON string is invalid with respect to AccessSchedule + */ + public static AccessSchedule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AccessSchedule.class); + } + + /** + * Convert an instance of AccessSchedule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntry.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntry.java new file mode 100644 index 0000000000000..b97d42cd731a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntry.java @@ -0,0 +1,491 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.LogLevel; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An activity log entry. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntry { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Long id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_SHORT_OVERVIEW = "ShortOverview"; + @SerializedName(SERIALIZED_NAME_SHORT_OVERVIEW) + @javax.annotation.Nullable + private String shortOverview; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public static final String SERIALIZED_NAME_DATE = "Date"; + @SerializedName(SERIALIZED_NAME_DATE) + @javax.annotation.Nullable + private OffsetDateTime date; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG = "UserPrimaryImageTag"; + @Deprecated + @SerializedName(SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String userPrimaryImageTag; + + public static final String SERIALIZED_NAME_SEVERITY = "Severity"; + @SerializedName(SERIALIZED_NAME_SEVERITY) + @javax.annotation.Nullable + private LogLevel severity; + + public ActivityLogEntry() { + } + + public ActivityLogEntry id(@javax.annotation.Nullable Long id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public Long getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Long id) { + this.id = id; + } + + + public ActivityLogEntry name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ActivityLogEntry overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the overview. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public ActivityLogEntry shortOverview(@javax.annotation.Nullable String shortOverview) { + this.shortOverview = shortOverview; + return this; + } + + /** + * Gets or sets the short overview. + * @return shortOverview + */ + @javax.annotation.Nullable + public String getShortOverview() { + return shortOverview; + } + + public void setShortOverview(@javax.annotation.Nullable String shortOverview) { + this.shortOverview = shortOverview; + } + + + public ActivityLogEntry type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ActivityLogEntry itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + public ActivityLogEntry date(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + return this; + } + + /** + * Gets or sets the date. + * @return date + */ + @javax.annotation.Nullable + public OffsetDateTime getDate() { + return date; + } + + public void setDate(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + } + + + public ActivityLogEntry userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + @Deprecated + public ActivityLogEntry userPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + return this; + } + + /** + * Gets or sets the user primary image tag. + * @return userPrimaryImageTag + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getUserPrimaryImageTag() { + return userPrimaryImageTag; + } + + @Deprecated + public void setUserPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + } + + + public ActivityLogEntry severity(@javax.annotation.Nullable LogLevel severity) { + this.severity = severity; + return this; + } + + /** + * Gets or sets the log severity. + * @return severity + */ + @javax.annotation.Nullable + public LogLevel getSeverity() { + return severity; + } + + public void setSeverity(@javax.annotation.Nullable LogLevel severity) { + this.severity = severity; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntry activityLogEntry = (ActivityLogEntry) o; + return Objects.equals(this.id, activityLogEntry.id) && + Objects.equals(this.name, activityLogEntry.name) && + Objects.equals(this.overview, activityLogEntry.overview) && + Objects.equals(this.shortOverview, activityLogEntry.shortOverview) && + Objects.equals(this.type, activityLogEntry.type) && + Objects.equals(this.itemId, activityLogEntry.itemId) && + Objects.equals(this.date, activityLogEntry.date) && + Objects.equals(this.userId, activityLogEntry.userId) && + Objects.equals(this.userPrimaryImageTag, activityLogEntry.userPrimaryImageTag) && + Objects.equals(this.severity, activityLogEntry.severity); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, overview, shortOverview, type, itemId, date, userId, userPrimaryImageTag, severity); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntry {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" shortOverview: ").append(toIndentedString(shortOverview)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userPrimaryImageTag: ").append(toIndentedString(userPrimaryImageTag)).append("\n"); + sb.append(" severity: ").append(toIndentedString(severity)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("ShortOverview"); + openapiFields.add("Type"); + openapiFields.add("ItemId"); + openapiFields.add("Date"); + openapiFields.add("UserId"); + openapiFields.add("UserPrimaryImageTag"); + openapiFields.add("Severity"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntry + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntry.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntry is not found in the empty JSON string", ActivityLogEntry.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntry.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntry` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ShortOverview") != null && !jsonObj.get("ShortOverview").isJsonNull()) && !jsonObj.get("ShortOverview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ShortOverview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ShortOverview").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserPrimaryImageTag") != null && !jsonObj.get("UserPrimaryImageTag").isJsonNull()) && !jsonObj.get("UserPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserPrimaryImageTag").toString())); + } + // validate the optional field `Severity` + if (jsonObj.get("Severity") != null && !jsonObj.get("Severity").isJsonNull()) { + LogLevel.validateJsonElement(jsonObj.get("Severity")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntry.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntry' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntry.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntry value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntry read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntry given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntry + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntry + */ + public static ActivityLogEntry fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntry.class); + } + + /** + * Convert an instance of ActivityLogEntry to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryMessage.java new file mode 100644 index 0000000000000..7b485923de397 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryMessage.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.ActivityLogEntry; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Activity log created message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntryMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.ACTIVITY_LOG_ENTRY; + + public ActivityLogEntryMessage() { + } + + public ActivityLogEntryMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ActivityLogEntryMessage data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public ActivityLogEntryMessage addDataItem(ActivityLogEntry dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable List data) { + this.data = data; + } + + + public ActivityLogEntryMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntryMessage activityLogEntryMessage = (ActivityLogEntryMessage) o; + return Objects.equals(this.data, activityLogEntryMessage.data) && + Objects.equals(this.messageId, activityLogEntryMessage.messageId) && + Objects.equals(this.messageType, activityLogEntryMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntryMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntryMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntryMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntryMessage is not found in the empty JSON string", ActivityLogEntryMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntryMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntryMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("Data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("Data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be an array in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + + // validate the optional field `Data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + ActivityLogEntry.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntryMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntryMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntryMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntryMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntryMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntryMessage + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntryMessage + */ + public static ActivityLogEntryMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntryMessage.class); + } + + /** + * Convert an instance of ActivityLogEntryMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java new file mode 100644 index 0000000000000..fd2307ba6c1d6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ActivityLogEntry; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntryQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public ActivityLogEntryQueryResult() { + } + + public ActivityLogEntryQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public ActivityLogEntryQueryResult addItemsItem(ActivityLogEntry itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public ActivityLogEntryQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public ActivityLogEntryQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntryQueryResult activityLogEntryQueryResult = (ActivityLogEntryQueryResult) o; + return Objects.equals(this.items, activityLogEntryQueryResult.items) && + Objects.equals(this.totalRecordCount, activityLogEntryQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, activityLogEntryQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntryQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntryQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntryQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntryQueryResult is not found in the empty JSON string", ActivityLogEntryQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntryQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntryQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + ActivityLogEntry.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntryQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntryQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntryQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntryQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntryQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntryQueryResult + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntryQueryResult + */ + public static ActivityLogEntryQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntryQueryResult.class); + } + + /** + * Convert an instance of ActivityLogEntryQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStartMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStartMessage.java new file mode 100644 index 0000000000000..0514ec8101b09 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStartMessage.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Activity log entry start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntryStartMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private String data; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.ACTIVITY_LOG_ENTRY_START; + + public ActivityLogEntryStartMessage() { + } + + public ActivityLogEntryStartMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ActivityLogEntryStartMessage data(@javax.annotation.Nullable String data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nullable String data) { + this.data = data; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntryStartMessage activityLogEntryStartMessage = (ActivityLogEntryStartMessage) o; + return Objects.equals(this.data, activityLogEntryStartMessage.data) && + Objects.equals(this.messageType, activityLogEntryStartMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntryStartMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntryStartMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntryStartMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntryStartMessage is not found in the empty JSON string", ActivityLogEntryStartMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntryStartMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntryStartMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntryStartMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntryStartMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryStartMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntryStartMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntryStartMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntryStartMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntryStartMessage + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntryStartMessage + */ + public static ActivityLogEntryStartMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntryStartMessage.class); + } + + /** + * Convert an instance of ActivityLogEntryStartMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStopMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStopMessage.java new file mode 100644 index 0000000000000..9b8a5cd888475 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ActivityLogEntryStopMessage.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Activity log entry stop message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntryStopMessage { + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.ACTIVITY_LOG_ENTRY_STOP; + + public ActivityLogEntryStopMessage() { + } + + public ActivityLogEntryStopMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntryStopMessage activityLogEntryStopMessage = (ActivityLogEntryStopMessage) o; + return Objects.equals(this.messageType, activityLogEntryStopMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntryStopMessage {\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntryStopMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntryStopMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntryStopMessage is not found in the empty JSON string", ActivityLogEntryStopMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntryStopMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntryStopMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntryStopMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntryStopMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryStopMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntryStopMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntryStopMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntryStopMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntryStopMessage + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntryStopMessage + */ + public static ActivityLogEntryStopMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntryStopMessage.class); + } + + /** + * Convert an instance of ActivityLogEntryStopMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java new file mode 100644 index 0000000000000..f18e95f69d449 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java @@ -0,0 +1,220 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Add virtual folder dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AddVirtualFolderDto { + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public AddVirtualFolderDto() { + } + + public AddVirtualFolderDto libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Gets or sets library options. + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddVirtualFolderDto addVirtualFolderDto = (AddVirtualFolderDto) o; + return Objects.equals(this.libraryOptions, addVirtualFolderDto.libraryOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(libraryOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddVirtualFolderDto {\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LibraryOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddVirtualFolderDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AddVirtualFolderDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AddVirtualFolderDto is not found in the empty JSON string", AddVirtualFolderDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AddVirtualFolderDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddVirtualFolderDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddVirtualFolderDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddVirtualFolderDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AddVirtualFolderDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddVirtualFolderDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AddVirtualFolderDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AddVirtualFolderDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddVirtualFolderDto + * @throws IOException if the JSON string is invalid with respect to AddVirtualFolderDto + */ + public static AddVirtualFolderDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddVirtualFolderDto.class); + } + + /** + * Convert an instance of AddVirtualFolderDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfo.java new file mode 100644 index 0000000000000..acf0245bebb24 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfo.java @@ -0,0 +1,637 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.SongInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AlbumInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AlbumInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ARTIST_PROVIDER_IDS = "ArtistProviderIds"; + @SerializedName(SERIALIZED_NAME_ARTIST_PROVIDER_IDS) + @javax.annotation.Nullable + private Map artistProviderIds = new HashMap<>(); + + public static final String SERIALIZED_NAME_SONG_INFOS = "SongInfos"; + @SerializedName(SERIALIZED_NAME_SONG_INFOS) + @javax.annotation.Nullable + private List songInfos = new ArrayList<>(); + + public AlbumInfo() { + } + + public AlbumInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public AlbumInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public AlbumInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public AlbumInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public AlbumInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public AlbumInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public AlbumInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public AlbumInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public AlbumInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public AlbumInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public AlbumInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public AlbumInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public AlbumInfo albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public AlbumInfo addAlbumArtistsItem(String albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public AlbumInfo artistProviderIds(@javax.annotation.Nullable Map artistProviderIds) { + this.artistProviderIds = artistProviderIds; + return this; + } + + public AlbumInfo putArtistProviderIdsItem(String key, String artistProviderIdsItem) { + if (this.artistProviderIds == null) { + this.artistProviderIds = new HashMap<>(); + } + this.artistProviderIds.put(key, artistProviderIdsItem); + return this; + } + + /** + * Gets or sets the artist provider ids. + * @return artistProviderIds + */ + @javax.annotation.Nullable + public Map getArtistProviderIds() { + return artistProviderIds; + } + + public void setArtistProviderIds(@javax.annotation.Nullable Map artistProviderIds) { + this.artistProviderIds = artistProviderIds; + } + + + public AlbumInfo songInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + return this; + } + + public AlbumInfo addSongInfosItem(SongInfo songInfosItem) { + if (this.songInfos == null) { + this.songInfos = new ArrayList<>(); + } + this.songInfos.add(songInfosItem); + return this; + } + + /** + * Get songInfos + * @return songInfos + */ + @javax.annotation.Nullable + public List getSongInfos() { + return songInfos; + } + + public void setSongInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlbumInfo albumInfo = (AlbumInfo) o; + return Objects.equals(this.name, albumInfo.name) && + Objects.equals(this.originalTitle, albumInfo.originalTitle) && + Objects.equals(this.path, albumInfo.path) && + Objects.equals(this.metadataLanguage, albumInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, albumInfo.metadataCountryCode) && + Objects.equals(this.providerIds, albumInfo.providerIds) && + Objects.equals(this.year, albumInfo.year) && + Objects.equals(this.indexNumber, albumInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, albumInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, albumInfo.premiereDate) && + Objects.equals(this.isAutomated, albumInfo.isAutomated) && + Objects.equals(this.albumArtists, albumInfo.albumArtists) && + Objects.equals(this.artistProviderIds, albumInfo.artistProviderIds) && + Objects.equals(this.songInfos, albumInfo.songInfos); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, albumArtists, artistProviderIds, songInfos); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlbumInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" artistProviderIds: ").append(toIndentedString(artistProviderIds)).append("\n"); + sb.append(" songInfos: ").append(toIndentedString(songInfos)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("AlbumArtists"); + openapiFields.add("ArtistProviderIds"); + openapiFields.add("SongInfos"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlbumInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlbumInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlbumInfo is not found in the empty JSON string", AlbumInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlbumInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlbumInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull() && !jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + if (jsonObj.get("SongInfos") != null && !jsonObj.get("SongInfos").isJsonNull()) { + JsonArray jsonArraysongInfos = jsonObj.getAsJsonArray("SongInfos"); + if (jsonArraysongInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("SongInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SongInfos` to be an array in the JSON string but got `%s`", jsonObj.get("SongInfos").toString())); + } + + // validate the optional field `SongInfos` (array) + for (int i = 0; i < jsonArraysongInfos.size(); i++) { + SongInfo.validateJsonElement(jsonArraysongInfos.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlbumInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlbumInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlbumInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlbumInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlbumInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlbumInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlbumInfo + * @throws IOException if the JSON string is invalid with respect to AlbumInfo + */ + public static AlbumInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlbumInfo.class); + } + + /** + * Convert an instance of AlbumInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..e1225fb180849 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.AlbumInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AlbumInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AlbumInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private AlbumInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public AlbumInfoRemoteSearchQuery() { + } + + public AlbumInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable AlbumInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public AlbumInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable AlbumInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public AlbumInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public AlbumInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public AlbumInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery = (AlbumInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, albumInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, albumInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, albumInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, albumInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlbumInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlbumInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlbumInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlbumInfoRemoteSearchQuery is not found in the empty JSON string", AlbumInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlbumInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlbumInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + AlbumInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlbumInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlbumInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlbumInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlbumInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlbumInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlbumInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlbumInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to AlbumInfoRemoteSearchQuery + */ + public static AlbumInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlbumInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of AlbumInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java new file mode 100644 index 0000000000000..cfd56761e4af1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ThemeMediaResult; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AllThemeMediaResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AllThemeMediaResult { + public static final String SERIALIZED_NAME_THEME_VIDEOS_RESULT = "ThemeVideosResult"; + @SerializedName(SERIALIZED_NAME_THEME_VIDEOS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult themeVideosResult; + + public static final String SERIALIZED_NAME_THEME_SONGS_RESULT = "ThemeSongsResult"; + @SerializedName(SERIALIZED_NAME_THEME_SONGS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult themeSongsResult; + + public static final String SERIALIZED_NAME_SOUNDTRACK_SONGS_RESULT = "SoundtrackSongsResult"; + @SerializedName(SERIALIZED_NAME_SOUNDTRACK_SONGS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult soundtrackSongsResult; + + public AllThemeMediaResult() { + } + + public AllThemeMediaResult themeVideosResult(@javax.annotation.Nullable ThemeMediaResult themeVideosResult) { + this.themeVideosResult = themeVideosResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return themeVideosResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getThemeVideosResult() { + return themeVideosResult; + } + + public void setThemeVideosResult(@javax.annotation.Nullable ThemeMediaResult themeVideosResult) { + this.themeVideosResult = themeVideosResult; + } + + + public AllThemeMediaResult themeSongsResult(@javax.annotation.Nullable ThemeMediaResult themeSongsResult) { + this.themeSongsResult = themeSongsResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return themeSongsResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getThemeSongsResult() { + return themeSongsResult; + } + + public void setThemeSongsResult(@javax.annotation.Nullable ThemeMediaResult themeSongsResult) { + this.themeSongsResult = themeSongsResult; + } + + + public AllThemeMediaResult soundtrackSongsResult(@javax.annotation.Nullable ThemeMediaResult soundtrackSongsResult) { + this.soundtrackSongsResult = soundtrackSongsResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return soundtrackSongsResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getSoundtrackSongsResult() { + return soundtrackSongsResult; + } + + public void setSoundtrackSongsResult(@javax.annotation.Nullable ThemeMediaResult soundtrackSongsResult) { + this.soundtrackSongsResult = soundtrackSongsResult; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AllThemeMediaResult allThemeMediaResult = (AllThemeMediaResult) o; + return Objects.equals(this.themeVideosResult, allThemeMediaResult.themeVideosResult) && + Objects.equals(this.themeSongsResult, allThemeMediaResult.themeSongsResult) && + Objects.equals(this.soundtrackSongsResult, allThemeMediaResult.soundtrackSongsResult); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(themeVideosResult, themeSongsResult, soundtrackSongsResult); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AllThemeMediaResult {\n"); + sb.append(" themeVideosResult: ").append(toIndentedString(themeVideosResult)).append("\n"); + sb.append(" themeSongsResult: ").append(toIndentedString(themeSongsResult)).append("\n"); + sb.append(" soundtrackSongsResult: ").append(toIndentedString(soundtrackSongsResult)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ThemeVideosResult"); + openapiFields.add("ThemeSongsResult"); + openapiFields.add("SoundtrackSongsResult"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AllThemeMediaResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AllThemeMediaResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AllThemeMediaResult is not found in the empty JSON string", AllThemeMediaResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AllThemeMediaResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AllThemeMediaResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ThemeVideosResult` + if (jsonObj.get("ThemeVideosResult") != null && !jsonObj.get("ThemeVideosResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("ThemeVideosResult")); + } + // validate the optional field `ThemeSongsResult` + if (jsonObj.get("ThemeSongsResult") != null && !jsonObj.get("ThemeSongsResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("ThemeSongsResult")); + } + // validate the optional field `SoundtrackSongsResult` + if (jsonObj.get("SoundtrackSongsResult") != null && !jsonObj.get("SoundtrackSongsResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("SoundtrackSongsResult")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AllThemeMediaResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AllThemeMediaResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AllThemeMediaResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AllThemeMediaResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AllThemeMediaResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AllThemeMediaResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AllThemeMediaResult + * @throws IOException if the JSON string is invalid with respect to AllThemeMediaResult + */ + public static AllThemeMediaResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AllThemeMediaResult.class); + } + + /** + * Convert an instance of AllThemeMediaResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfo.java new file mode 100644 index 0000000000000..3532f16efc0c0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfo.java @@ -0,0 +1,563 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.SongInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ArtistInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ArtistInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_SONG_INFOS = "SongInfos"; + @SerializedName(SERIALIZED_NAME_SONG_INFOS) + @javax.annotation.Nullable + private List songInfos = new ArrayList<>(); + + public ArtistInfo() { + } + + public ArtistInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ArtistInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public ArtistInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ArtistInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public ArtistInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public ArtistInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public ArtistInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public ArtistInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public ArtistInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public ArtistInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public ArtistInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public ArtistInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public ArtistInfo songInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + return this; + } + + public ArtistInfo addSongInfosItem(SongInfo songInfosItem) { + if (this.songInfos == null) { + this.songInfos = new ArrayList<>(); + } + this.songInfos.add(songInfosItem); + return this; + } + + /** + * Get songInfos + * @return songInfos + */ + @javax.annotation.Nullable + public List getSongInfos() { + return songInfos; + } + + public void setSongInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArtistInfo artistInfo = (ArtistInfo) o; + return Objects.equals(this.name, artistInfo.name) && + Objects.equals(this.originalTitle, artistInfo.originalTitle) && + Objects.equals(this.path, artistInfo.path) && + Objects.equals(this.metadataLanguage, artistInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, artistInfo.metadataCountryCode) && + Objects.equals(this.providerIds, artistInfo.providerIds) && + Objects.equals(this.year, artistInfo.year) && + Objects.equals(this.indexNumber, artistInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, artistInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, artistInfo.premiereDate) && + Objects.equals(this.isAutomated, artistInfo.isAutomated) && + Objects.equals(this.songInfos, artistInfo.songInfos); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, songInfos); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArtistInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" songInfos: ").append(toIndentedString(songInfos)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("SongInfos"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ArtistInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ArtistInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ArtistInfo is not found in the empty JSON string", ArtistInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ArtistInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ArtistInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if (jsonObj.get("SongInfos") != null && !jsonObj.get("SongInfos").isJsonNull()) { + JsonArray jsonArraysongInfos = jsonObj.getAsJsonArray("SongInfos"); + if (jsonArraysongInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("SongInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SongInfos` to be an array in the JSON string but got `%s`", jsonObj.get("SongInfos").toString())); + } + + // validate the optional field `SongInfos` (array) + for (int i = 0; i < jsonArraysongInfos.size(); i++) { + SongInfo.validateJsonElement(jsonArraysongInfos.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ArtistInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ArtistInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ArtistInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ArtistInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ArtistInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ArtistInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ArtistInfo + * @throws IOException if the JSON string is invalid with respect to ArtistInfo + */ + public static ArtistInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ArtistInfo.class); + } + + /** + * Convert an instance of ArtistInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..54fb690fa6b22 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.ArtistInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ArtistInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ArtistInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private ArtistInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public ArtistInfoRemoteSearchQuery() { + } + + public ArtistInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable ArtistInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public ArtistInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable ArtistInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public ArtistInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public ArtistInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public ArtistInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery = (ArtistInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, artistInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, artistInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, artistInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, artistInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArtistInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ArtistInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ArtistInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ArtistInfoRemoteSearchQuery is not found in the empty JSON string", ArtistInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ArtistInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ArtistInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + ArtistInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ArtistInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ArtistInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ArtistInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ArtistInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ArtistInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ArtistInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of ArtistInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to ArtistInfoRemoteSearchQuery + */ + public static ArtistInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ArtistInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of ArtistInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AudioSpatialFormat.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AudioSpatialFormat.java new file mode 100644 index 0000000000000..3aa992c7e0589 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AudioSpatialFormat.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing formats of spatial audio. + */ +@JsonAdapter(AudioSpatialFormat.Adapter.class) +public enum AudioSpatialFormat { + + NONE("None"), + + DOLBY_ATMOS("DolbyAtmos"), + + DTSX("DTSX"); + + private String value; + + AudioSpatialFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AudioSpatialFormat fromValue(String value) { + for (AudioSpatialFormat b : AudioSpatialFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AudioSpatialFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AudioSpatialFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AudioSpatialFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AudioSpatialFormat.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java new file mode 100644 index 0000000000000..3aa623f0cd1a3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The authenticate user by name request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticateUserByName { + public static final String SERIALIZED_NAME_USERNAME = "Username"; + @SerializedName(SERIALIZED_NAME_USERNAME) + @javax.annotation.Nullable + private String username; + + public static final String SERIALIZED_NAME_PW = "Pw"; + @SerializedName(SERIALIZED_NAME_PW) + @javax.annotation.Nullable + private String pw; + + public AuthenticateUserByName() { + } + + public AuthenticateUserByName username(@javax.annotation.Nullable String username) { + this.username = username; + return this; + } + + /** + * Gets or sets the username. + * @return username + */ + @javax.annotation.Nullable + public String getUsername() { + return username; + } + + public void setUsername(@javax.annotation.Nullable String username) { + this.username = username; + } + + + public AuthenticateUserByName pw(@javax.annotation.Nullable String pw) { + this.pw = pw; + return this; + } + + /** + * Gets or sets the plain text password. + * @return pw + */ + @javax.annotation.Nullable + public String getPw() { + return pw; + } + + public void setPw(@javax.annotation.Nullable String pw) { + this.pw = pw; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticateUserByName authenticateUserByName = (AuthenticateUserByName) o; + return Objects.equals(this.username, authenticateUserByName.username) && + Objects.equals(this.pw, authenticateUserByName.pw); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(username, pw); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticateUserByName {\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" pw: ").append(toIndentedString(pw)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Username"); + openapiFields.add("Pw"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticateUserByName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticateUserByName.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticateUserByName is not found in the empty JSON string", AuthenticateUserByName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticateUserByName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticateUserByName` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Username") != null && !jsonObj.get("Username").isJsonNull()) && !jsonObj.get("Username").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Username` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Username").toString())); + } + if ((jsonObj.get("Pw") != null && !jsonObj.get("Pw").isJsonNull()) && !jsonObj.get("Pw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Pw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Pw").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticateUserByName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticateUserByName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticateUserByName.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticateUserByName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticateUserByName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticateUserByName given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticateUserByName + * @throws IOException if the JSON string is invalid with respect to AuthenticateUserByName + */ + public static AuthenticateUserByName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticateUserByName.class); + } + + /** + * Convert an instance of AuthenticateUserByName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfo.java new file mode 100644 index 0000000000000..15fed8012a9f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfo.java @@ -0,0 +1,535 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AuthenticationInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Long id; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_IS_ACTIVE = "IsActive"; + @SerializedName(SERIALIZED_NAME_IS_ACTIVE) + @javax.annotation.Nullable + private Boolean isActive; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_REVOKED = "DateRevoked"; + @SerializedName(SERIALIZED_NAME_DATE_REVOKED) + @javax.annotation.Nullable + private OffsetDateTime dateRevoked; + + public static final String SERIALIZED_NAME_DATE_LAST_ACTIVITY = "DateLastActivity"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_ACTIVITY) + @javax.annotation.Nullable + private OffsetDateTime dateLastActivity; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public AuthenticationInfo() { + } + + public AuthenticationInfo id(@javax.annotation.Nullable Long id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public Long getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Long id) { + this.id = id; + } + + + public AuthenticationInfo accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Gets or sets the access token. + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public AuthenticationInfo deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device identifier. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public AuthenticationInfo appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets or sets the name of the application. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public AuthenticationInfo appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public AuthenticationInfo deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets or sets the name of the device. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public AuthenticationInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public AuthenticationInfo isActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is active. + * @return isActive + */ + @javax.annotation.Nullable + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + } + + + public AuthenticationInfo dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public AuthenticationInfo dateRevoked(@javax.annotation.Nullable OffsetDateTime dateRevoked) { + this.dateRevoked = dateRevoked; + return this; + } + + /** + * Gets or sets the date revoked. + * @return dateRevoked + */ + @javax.annotation.Nullable + public OffsetDateTime getDateRevoked() { + return dateRevoked; + } + + public void setDateRevoked(@javax.annotation.Nullable OffsetDateTime dateRevoked) { + this.dateRevoked = dateRevoked; + } + + + public AuthenticationInfo dateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + return this; + } + + /** + * Get dateLastActivity + * @return dateLastActivity + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastActivity() { + return dateLastActivity; + } + + public void setDateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + } + + + public AuthenticationInfo userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Get userName + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationInfo authenticationInfo = (AuthenticationInfo) o; + return Objects.equals(this.id, authenticationInfo.id) && + Objects.equals(this.accessToken, authenticationInfo.accessToken) && + Objects.equals(this.deviceId, authenticationInfo.deviceId) && + Objects.equals(this.appName, authenticationInfo.appName) && + Objects.equals(this.appVersion, authenticationInfo.appVersion) && + Objects.equals(this.deviceName, authenticationInfo.deviceName) && + Objects.equals(this.userId, authenticationInfo.userId) && + Objects.equals(this.isActive, authenticationInfo.isActive) && + Objects.equals(this.dateCreated, authenticationInfo.dateCreated) && + Objects.equals(this.dateRevoked, authenticationInfo.dateRevoked) && + Objects.equals(this.dateLastActivity, authenticationInfo.dateLastActivity) && + Objects.equals(this.userName, authenticationInfo.userName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, accessToken, deviceId, appName, appVersion, deviceName, userId, isActive, dateCreated, dateRevoked, dateLastActivity, userName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateRevoked: ").append(toIndentedString(dateRevoked)).append("\n"); + sb.append(" dateLastActivity: ").append(toIndentedString(dateLastActivity)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("AccessToken"); + openapiFields.add("DeviceId"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("DeviceName"); + openapiFields.add("UserId"); + openapiFields.add("IsActive"); + openapiFields.add("DateCreated"); + openapiFields.add("DateRevoked"); + openapiFields.add("DateLastActivity"); + openapiFields.add("UserName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationInfo is not found in the empty JSON string", AuthenticationInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationInfo + * @throws IOException if the JSON string is invalid with respect to AuthenticationInfo + */ + public static AuthenticationInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationInfo.class); + } + + /** + * Convert an instance of AuthenticationInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java new file mode 100644 index 0000000000000..71d6f9c6a4521 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.AuthenticationInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationInfoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public AuthenticationInfoQueryResult() { + } + + public AuthenticationInfoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public AuthenticationInfoQueryResult addItemsItem(AuthenticationInfo itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public AuthenticationInfoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public AuthenticationInfoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationInfoQueryResult authenticationInfoQueryResult = (AuthenticationInfoQueryResult) o; + return Objects.equals(this.items, authenticationInfoQueryResult.items) && + Objects.equals(this.totalRecordCount, authenticationInfoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, authenticationInfoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationInfoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationInfoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationInfoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationInfoQueryResult is not found in the empty JSON string", AuthenticationInfoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationInfoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationInfoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + AuthenticationInfo.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationInfoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationInfoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationInfoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationInfoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationInfoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationInfoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationInfoQueryResult + * @throws IOException if the JSON string is invalid with respect to AuthenticationInfoQueryResult + */ + public static AuthenticationInfoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationInfoQueryResult.class); + } + + /** + * Convert an instance of AuthenticationInfoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationResult.java new file mode 100644 index 0000000000000..86db1cc7401f0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/AuthenticationResult.java @@ -0,0 +1,312 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionInfoDto; +import org.openapitools.client.model.UserDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A class representing an authentication result. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationResult { + public static final String SERIALIZED_NAME_USER = "User"; + @SerializedName(SERIALIZED_NAME_USER) + @javax.annotation.Nullable + private UserDto user; + + public static final String SERIALIZED_NAME_SESSION_INFO = "SessionInfo"; + @SerializedName(SERIALIZED_NAME_SESSION_INFO) + @javax.annotation.Nullable + private SessionInfoDto sessionInfo; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public AuthenticationResult() { + } + + public AuthenticationResult user(@javax.annotation.Nullable UserDto user) { + this.user = user; + return this; + } + + /** + * Class UserDto. + * @return user + */ + @javax.annotation.Nullable + public UserDto getUser() { + return user; + } + + public void setUser(@javax.annotation.Nullable UserDto user) { + this.user = user; + } + + + public AuthenticationResult sessionInfo(@javax.annotation.Nullable SessionInfoDto sessionInfo) { + this.sessionInfo = sessionInfo; + return this; + } + + /** + * Session info DTO. + * @return sessionInfo + */ + @javax.annotation.Nullable + public SessionInfoDto getSessionInfo() { + return sessionInfo; + } + + public void setSessionInfo(@javax.annotation.Nullable SessionInfoDto sessionInfo) { + this.sessionInfo = sessionInfo; + } + + + public AuthenticationResult accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Gets or sets the access token. + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public AuthenticationResult serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server id. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationResult authenticationResult = (AuthenticationResult) o; + return Objects.equals(this.user, authenticationResult.user) && + Objects.equals(this.sessionInfo, authenticationResult.sessionInfo) && + Objects.equals(this.accessToken, authenticationResult.accessToken) && + Objects.equals(this.serverId, authenticationResult.serverId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(user, sessionInfo, accessToken, serverId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationResult {\n"); + sb.append(" user: ").append(toIndentedString(user)).append("\n"); + sb.append(" sessionInfo: ").append(toIndentedString(sessionInfo)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("User"); + openapiFields.add("SessionInfo"); + openapiFields.add("AccessToken"); + openapiFields.add("ServerId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationResult is not found in the empty JSON string", AuthenticationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `User` + if (jsonObj.get("User") != null && !jsonObj.get("User").isJsonNull()) { + UserDto.validateJsonElement(jsonObj.get("User")); + } + // validate the optional field `SessionInfo` + if (jsonObj.get("SessionInfo") != null && !jsonObj.get("SessionInfo").isJsonNull()) { + SessionInfoDto.validateJsonElement(jsonObj.get("SessionInfo")); + } + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationResult + * @throws IOException if the JSON string is invalid with respect to AuthenticationResult + */ + public static AuthenticationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationResult.class); + } + + /** + * Convert an instance of AuthenticationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDto.java new file mode 100644 index 0000000000000..ab8877f3a26c0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDto.java @@ -0,0 +1,4935 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDtoImageBlurHashes; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.BaseItemPerson; +import org.openapitools.client.model.ChannelType; +import org.openapitools.client.model.ChapterInfo; +import org.openapitools.client.model.CollectionType; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.client.model.ExternalUrl; +import org.openapitools.client.model.ExtraType; +import org.openapitools.client.model.ImageOrientation; +import org.openapitools.client.model.IsoType; +import org.openapitools.client.model.LocationType; +import org.openapitools.client.model.MediaSourceInfo; +import org.openapitools.client.model.MediaStream; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.MediaUrl; +import org.openapitools.client.model.MetadataField; +import org.openapitools.client.model.NameGuidPair; +import org.openapitools.client.model.PlayAccess; +import org.openapitools.client.model.ProgramAudio; +import org.openapitools.client.model.TrickplayInfo; +import org.openapitools.client.model.UserItemDataDto; +import org.openapitools.client.model.Video3DFormat; +import org.openapitools.client.model.VideoType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_ETAG = "Etag"; + @SerializedName(SERIALIZED_NAME_ETAG) + @javax.annotation.Nullable + private String etag; + + public static final String SERIALIZED_NAME_SOURCE_TYPE = "SourceType"; + @SerializedName(SERIALIZED_NAME_SOURCE_TYPE) + @javax.annotation.Nullable + private String sourceType; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_LAST_MEDIA_ADDED = "DateLastMediaAdded"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_MEDIA_ADDED) + @javax.annotation.Nullable + private OffsetDateTime dateLastMediaAdded; + + public static final String SERIALIZED_NAME_EXTRA_TYPE = "ExtraType"; + @SerializedName(SERIALIZED_NAME_EXTRA_TYPE) + @javax.annotation.Nullable + private ExtraType extraType; + + public static final String SERIALIZED_NAME_AIRS_BEFORE_SEASON_NUMBER = "AirsBeforeSeasonNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_BEFORE_SEASON_NUMBER) + @javax.annotation.Nullable + private Integer airsBeforeSeasonNumber; + + public static final String SERIALIZED_NAME_AIRS_AFTER_SEASON_NUMBER = "AirsAfterSeasonNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_AFTER_SEASON_NUMBER) + @javax.annotation.Nullable + private Integer airsAfterSeasonNumber; + + public static final String SERIALIZED_NAME_AIRS_BEFORE_EPISODE_NUMBER = "AirsBeforeEpisodeNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_BEFORE_EPISODE_NUMBER) + @javax.annotation.Nullable + private Integer airsBeforeEpisodeNumber; + + public static final String SERIALIZED_NAME_CAN_DELETE = "CanDelete"; + @SerializedName(SERIALIZED_NAME_CAN_DELETE) + @javax.annotation.Nullable + private Boolean canDelete; + + public static final String SERIALIZED_NAME_CAN_DOWNLOAD = "CanDownload"; + @SerializedName(SERIALIZED_NAME_CAN_DOWNLOAD) + @javax.annotation.Nullable + private Boolean canDownload; + + public static final String SERIALIZED_NAME_HAS_LYRICS = "HasLyrics"; + @SerializedName(SERIALIZED_NAME_HAS_LYRICS) + @javax.annotation.Nullable + private Boolean hasLyrics; + + public static final String SERIALIZED_NAME_HAS_SUBTITLES = "HasSubtitles"; + @SerializedName(SERIALIZED_NAME_HAS_SUBTITLES) + @javax.annotation.Nullable + private Boolean hasSubtitles; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_COUNTRY_CODE = "PreferredMetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String preferredMetadataCountryCode; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SORT_NAME = "SortName"; + @SerializedName(SERIALIZED_NAME_SORT_NAME) + @javax.annotation.Nullable + private String sortName; + + public static final String SERIALIZED_NAME_FORCED_SORT_NAME = "ForcedSortName"; + @SerializedName(SERIALIZED_NAME_FORCED_SORT_NAME) + @javax.annotation.Nullable + private String forcedSortName; + + public static final String SERIALIZED_NAME_VIDEO3_D_FORMAT = "Video3DFormat"; + @SerializedName(SERIALIZED_NAME_VIDEO3_D_FORMAT) + @javax.annotation.Nullable + private Video3DFormat video3DFormat; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_EXTERNAL_URLS = "ExternalUrls"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_URLS) + @javax.annotation.Nullable + private List externalUrls; + + public static final String SERIALIZED_NAME_MEDIA_SOURCES = "MediaSources"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCES) + @javax.annotation.Nullable + private List mediaSources; + + public static final String SERIALIZED_NAME_CRITIC_RATING = "CriticRating"; + @SerializedName(SERIALIZED_NAME_CRITIC_RATING) + @javax.annotation.Nullable + private Float criticRating; + + public static final String SERIALIZED_NAME_PRODUCTION_LOCATIONS = "ProductionLocations"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_LOCATIONS) + @javax.annotation.Nullable + private List productionLocations; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_SOURCE_DISPLAY = "EnableMediaSourceDisplay"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_SOURCE_DISPLAY) + @javax.annotation.Nullable + private Boolean enableMediaSourceDisplay; + + public static final String SERIALIZED_NAME_OFFICIAL_RATING = "OfficialRating"; + @SerializedName(SERIALIZED_NAME_OFFICIAL_RATING) + @javax.annotation.Nullable + private String officialRating; + + public static final String SERIALIZED_NAME_CUSTOM_RATING = "CustomRating"; + @SerializedName(SERIALIZED_NAME_CUSTOM_RATING) + @javax.annotation.Nullable + private String customRating; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_TAGLINES = "Taglines"; + @SerializedName(SERIALIZED_NAME_TAGLINES) + @javax.annotation.Nullable + private List taglines; + + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Float communityRating; + + public static final String SERIALIZED_NAME_CUMULATIVE_RUN_TIME_TICKS = "CumulativeRunTimeTicks"; + @SerializedName(SERIALIZED_NAME_CUMULATIVE_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long cumulativeRunTimeTicks; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_PLAY_ACCESS = "PlayAccess"; + @SerializedName(SERIALIZED_NAME_PLAY_ACCESS) + @javax.annotation.Nullable + private PlayAccess playAccess; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_IS_PLACE_HOLDER = "IsPlaceHolder"; + @SerializedName(SERIALIZED_NAME_IS_PLACE_HOLDER) + @javax.annotation.Nullable + private Boolean isPlaceHolder; + + public static final String SERIALIZED_NAME_NUMBER = "Number"; + @SerializedName(SERIALIZED_NAME_NUMBER) + @javax.annotation.Nullable + private String number; + + public static final String SERIALIZED_NAME_CHANNEL_NUMBER = "ChannelNumber"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NUMBER) + @javax.annotation.Nullable + private String channelNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER_END = "IndexNumberEnd"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER_END) + @javax.annotation.Nullable + private Integer indexNumberEnd; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_REMOTE_TRAILERS = "RemoteTrailers"; + @SerializedName(SERIALIZED_NAME_REMOTE_TRAILERS) + @javax.annotation.Nullable + private List remoteTrailers; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_IS_H_D = "IsHD"; + @SerializedName(SERIALIZED_NAME_IS_H_D) + @javax.annotation.Nullable + private Boolean isHD; + + public static final String SERIALIZED_NAME_IS_FOLDER = "IsFolder"; + @SerializedName(SERIALIZED_NAME_IS_FOLDER) + @javax.annotation.Nullable + private Boolean isFolder; + + public static final String SERIALIZED_NAME_PARENT_ID = "ParentId"; + @SerializedName(SERIALIZED_NAME_PARENT_ID) + @javax.annotation.Nullable + private UUID parentId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private BaseItemKind type; + + public static final String SERIALIZED_NAME_PEOPLE = "People"; + @SerializedName(SERIALIZED_NAME_PEOPLE) + @javax.annotation.Nullable + private List people; + + public static final String SERIALIZED_NAME_STUDIOS = "Studios"; + @SerializedName(SERIALIZED_NAME_STUDIOS) + @javax.annotation.Nullable + private List studios; + + public static final String SERIALIZED_NAME_GENRE_ITEMS = "GenreItems"; + @SerializedName(SERIALIZED_NAME_GENRE_ITEMS) + @javax.annotation.Nullable + private List genreItems; + + public static final String SERIALIZED_NAME_PARENT_LOGO_ITEM_ID = "ParentLogoItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_LOGO_ITEM_ID) + @javax.annotation.Nullable + private UUID parentLogoItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private UUID parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_LOCAL_TRAILER_COUNT = "LocalTrailerCount"; + @SerializedName(SERIALIZED_NAME_LOCAL_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer localTrailerCount; + + public static final String SERIALIZED_NAME_USER_DATA = "UserData"; + @SerializedName(SERIALIZED_NAME_USER_DATA) + @javax.annotation.Nullable + private UserItemDataDto userData; + + public static final String SERIALIZED_NAME_RECURSIVE_ITEM_COUNT = "RecursiveItemCount"; + @SerializedName(SERIALIZED_NAME_RECURSIVE_ITEM_COUNT) + @javax.annotation.Nullable + private Integer recursiveItemCount; + + public static final String SERIALIZED_NAME_CHILD_COUNT = "ChildCount"; + @SerializedName(SERIALIZED_NAME_CHILD_COUNT) + @javax.annotation.Nullable + private Integer childCount; + + public static final String SERIALIZED_NAME_SERIES_NAME = "SeriesName"; + @SerializedName(SERIALIZED_NAME_SERIES_NAME) + @javax.annotation.Nullable + private String seriesName; + + public static final String SERIALIZED_NAME_SERIES_ID = "SeriesId"; + @SerializedName(SERIALIZED_NAME_SERIES_ID) + @javax.annotation.Nullable + private UUID seriesId; + + public static final String SERIALIZED_NAME_SEASON_ID = "SeasonId"; + @SerializedName(SERIALIZED_NAME_SEASON_ID) + @javax.annotation.Nullable + private UUID seasonId; + + public static final String SERIALIZED_NAME_SPECIAL_FEATURE_COUNT = "SpecialFeatureCount"; + @SerializedName(SERIALIZED_NAME_SPECIAL_FEATURE_COUNT) + @javax.annotation.Nullable + private Integer specialFeatureCount; + + public static final String SERIALIZED_NAME_DISPLAY_PREFERENCES_ID = "DisplayPreferencesId"; + @SerializedName(SERIALIZED_NAME_DISPLAY_PREFERENCES_ID) + @javax.annotation.Nullable + private String displayPreferencesId; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_AIR_TIME = "AirTime"; + @SerializedName(SERIALIZED_NAME_AIR_TIME) + @javax.annotation.Nullable + private String airTime; + + public static final String SERIALIZED_NAME_AIR_DAYS = "AirDays"; + @SerializedName(SERIALIZED_NAME_AIR_DAYS) + @javax.annotation.Nullable + private List airDays; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public static final String SERIALIZED_NAME_ARTIST_ITEMS = "ArtistItems"; + @SerializedName(SERIALIZED_NAME_ARTIST_ITEMS) + @javax.annotation.Nullable + private List artistItems; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_COLLECTION_TYPE = "CollectionType"; + @SerializedName(SERIALIZED_NAME_COLLECTION_TYPE) + @javax.annotation.Nullable + private CollectionType collectionType; + + public static final String SERIALIZED_NAME_DISPLAY_ORDER = "DisplayOrder"; + @SerializedName(SERIALIZED_NAME_DISPLAY_ORDER) + @javax.annotation.Nullable + private String displayOrder; + + public static final String SERIALIZED_NAME_ALBUM_ID = "AlbumId"; + @SerializedName(SERIALIZED_NAME_ALBUM_ID) + @javax.annotation.Nullable + private UUID albumId; + + public static final String SERIALIZED_NAME_ALBUM_PRIMARY_IMAGE_TAG = "AlbumPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_ALBUM_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String albumPrimaryImageTag; + + public static final String SERIALIZED_NAME_SERIES_PRIMARY_IMAGE_TAG = "SeriesPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_SERIES_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String seriesPrimaryImageTag; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private String albumArtist; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists; + + public static final String SERIALIZED_NAME_SEASON_NAME = "SeasonName"; + @SerializedName(SERIALIZED_NAME_SEASON_NAME) + @javax.annotation.Nullable + private String seasonName; + + public static final String SERIALIZED_NAME_MEDIA_STREAMS = "MediaStreams"; + @SerializedName(SERIALIZED_NAME_MEDIA_STREAMS) + @javax.annotation.Nullable + private List mediaStreams; + + public static final String SERIALIZED_NAME_VIDEO_TYPE = "VideoType"; + @SerializedName(SERIALIZED_NAME_VIDEO_TYPE) + @javax.annotation.Nullable + private VideoType videoType; + + public static final String SERIALIZED_NAME_PART_COUNT = "PartCount"; + @SerializedName(SERIALIZED_NAME_PART_COUNT) + @javax.annotation.Nullable + private Integer partCount; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_COUNT = "MediaSourceCount"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_COUNT) + @javax.annotation.Nullable + private Integer mediaSourceCount; + + public static final String SERIALIZED_NAME_IMAGE_TAGS = "ImageTags"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAGS) + @javax.annotation.Nullable + private Map imageTags; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_TAGS = "BackdropImageTags"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List backdropImageTags; + + public static final String SERIALIZED_NAME_SCREENSHOT_IMAGE_TAGS = "ScreenshotImageTags"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT_IMAGE_TAGS) + @javax.annotation.Nullable + private List screenshotImageTags; + + public static final String SERIALIZED_NAME_PARENT_LOGO_IMAGE_TAG = "ParentLogoImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_LOGO_IMAGE_TAG) + @javax.annotation.Nullable + private String parentLogoImageTag; + + public static final String SERIALIZED_NAME_PARENT_ART_ITEM_ID = "ParentArtItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_ART_ITEM_ID) + @javax.annotation.Nullable + private UUID parentArtItemId; + + public static final String SERIALIZED_NAME_PARENT_ART_IMAGE_TAG = "ParentArtImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_ART_IMAGE_TAG) + @javax.annotation.Nullable + private String parentArtImageTag; + + public static final String SERIALIZED_NAME_SERIES_THUMB_IMAGE_TAG = "SeriesThumbImageTag"; + @SerializedName(SERIALIZED_NAME_SERIES_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String seriesThumbImageTag; + + public static final String SERIALIZED_NAME_IMAGE_BLUR_HASHES = "ImageBlurHashes"; + @SerializedName(SERIALIZED_NAME_IMAGE_BLUR_HASHES) + @javax.annotation.Nullable + private BaseItemDtoImageBlurHashes imageBlurHashes; + + public static final String SERIALIZED_NAME_SERIES_STUDIO = "SeriesStudio"; + @SerializedName(SERIALIZED_NAME_SERIES_STUDIO) + @javax.annotation.Nullable + private String seriesStudio; + + public static final String SERIALIZED_NAME_PARENT_THUMB_ITEM_ID = "ParentThumbItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_ITEM_ID) + @javax.annotation.Nullable + private UUID parentThumbItemId; + + public static final String SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG = "ParentThumbImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String parentThumbImageTag; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID = "ParentPrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String parentPrimaryImageItemId; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG = "ParentPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String parentPrimaryImageTag; + + public static final String SERIALIZED_NAME_CHAPTERS = "Chapters"; + @SerializedName(SERIALIZED_NAME_CHAPTERS) + @javax.annotation.Nullable + private List chapters; + + public static final String SERIALIZED_NAME_TRICKPLAY = "Trickplay"; + @SerializedName(SERIALIZED_NAME_TRICKPLAY) + @javax.annotation.Nullable + private Map> trickplay; + + public static final String SERIALIZED_NAME_LOCATION_TYPE = "LocationType"; + @SerializedName(SERIALIZED_NAME_LOCATION_TYPE) + @javax.annotation.Nullable + private LocationType locationType; + + public static final String SERIALIZED_NAME_ISO_TYPE = "IsoType"; + @SerializedName(SERIALIZED_NAME_ISO_TYPE) + @javax.annotation.Nullable + private IsoType isoType; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private MediaType mediaType; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_LOCKED_FIELDS = "LockedFields"; + @SerializedName(SERIALIZED_NAME_LOCKED_FIELDS) + @javax.annotation.Nullable + private List lockedFields; + + public static final String SERIALIZED_NAME_TRAILER_COUNT = "TrailerCount"; + @SerializedName(SERIALIZED_NAME_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer trailerCount; + + public static final String SERIALIZED_NAME_MOVIE_COUNT = "MovieCount"; + @SerializedName(SERIALIZED_NAME_MOVIE_COUNT) + @javax.annotation.Nullable + private Integer movieCount; + + public static final String SERIALIZED_NAME_SERIES_COUNT = "SeriesCount"; + @SerializedName(SERIALIZED_NAME_SERIES_COUNT) + @javax.annotation.Nullable + private Integer seriesCount; + + public static final String SERIALIZED_NAME_PROGRAM_COUNT = "ProgramCount"; + @SerializedName(SERIALIZED_NAME_PROGRAM_COUNT) + @javax.annotation.Nullable + private Integer programCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_ALBUM_COUNT = "AlbumCount"; + @SerializedName(SERIALIZED_NAME_ALBUM_COUNT) + @javax.annotation.Nullable + private Integer albumCount; + + public static final String SERIALIZED_NAME_ARTIST_COUNT = "ArtistCount"; + @SerializedName(SERIALIZED_NAME_ARTIST_COUNT) + @javax.annotation.Nullable + private Integer artistCount; + + public static final String SERIALIZED_NAME_MUSIC_VIDEO_COUNT = "MusicVideoCount"; + @SerializedName(SERIALIZED_NAME_MUSIC_VIDEO_COUNT) + @javax.annotation.Nullable + private Integer musicVideoCount; + + public static final String SERIALIZED_NAME_LOCK_DATA = "LockData"; + @SerializedName(SERIALIZED_NAME_LOCK_DATA) + @javax.annotation.Nullable + private Boolean lockData; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_CAMERA_MAKE = "CameraMake"; + @SerializedName(SERIALIZED_NAME_CAMERA_MAKE) + @javax.annotation.Nullable + private String cameraMake; + + public static final String SERIALIZED_NAME_CAMERA_MODEL = "CameraModel"; + @SerializedName(SERIALIZED_NAME_CAMERA_MODEL) + @javax.annotation.Nullable + private String cameraModel; + + public static final String SERIALIZED_NAME_SOFTWARE = "Software"; + @SerializedName(SERIALIZED_NAME_SOFTWARE) + @javax.annotation.Nullable + private String software; + + public static final String SERIALIZED_NAME_EXPOSURE_TIME = "ExposureTime"; + @SerializedName(SERIALIZED_NAME_EXPOSURE_TIME) + @javax.annotation.Nullable + private Double exposureTime; + + public static final String SERIALIZED_NAME_FOCAL_LENGTH = "FocalLength"; + @SerializedName(SERIALIZED_NAME_FOCAL_LENGTH) + @javax.annotation.Nullable + private Double focalLength; + + public static final String SERIALIZED_NAME_IMAGE_ORIENTATION = "ImageOrientation"; + @SerializedName(SERIALIZED_NAME_IMAGE_ORIENTATION) + @javax.annotation.Nullable + private ImageOrientation imageOrientation; + + public static final String SERIALIZED_NAME_APERTURE = "Aperture"; + @SerializedName(SERIALIZED_NAME_APERTURE) + @javax.annotation.Nullable + private Double aperture; + + public static final String SERIALIZED_NAME_SHUTTER_SPEED = "ShutterSpeed"; + @SerializedName(SERIALIZED_NAME_SHUTTER_SPEED) + @javax.annotation.Nullable + private Double shutterSpeed; + + public static final String SERIALIZED_NAME_LATITUDE = "Latitude"; + @SerializedName(SERIALIZED_NAME_LATITUDE) + @javax.annotation.Nullable + private Double latitude; + + public static final String SERIALIZED_NAME_LONGITUDE = "Longitude"; + @SerializedName(SERIALIZED_NAME_LONGITUDE) + @javax.annotation.Nullable + private Double longitude; + + public static final String SERIALIZED_NAME_ALTITUDE = "Altitude"; + @SerializedName(SERIALIZED_NAME_ALTITUDE) + @javax.annotation.Nullable + private Double altitude; + + public static final String SERIALIZED_NAME_ISO_SPEED_RATING = "IsoSpeedRating"; + @SerializedName(SERIALIZED_NAME_ISO_SPEED_RATING) + @javax.annotation.Nullable + private Integer isoSpeedRating; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_COMPLETION_PERCENTAGE = "CompletionPercentage"; + @SerializedName(SERIALIZED_NAME_COMPLETION_PERCENTAGE) + @javax.annotation.Nullable + private Double completionPercentage; + + public static final String SERIALIZED_NAME_IS_REPEAT = "IsRepeat"; + @SerializedName(SERIALIZED_NAME_IS_REPEAT) + @javax.annotation.Nullable + private Boolean isRepeat; + + public static final String SERIALIZED_NAME_EPISODE_TITLE = "EpisodeTitle"; + @SerializedName(SERIALIZED_NAME_EPISODE_TITLE) + @javax.annotation.Nullable + private String episodeTitle; + + public static final String SERIALIZED_NAME_CHANNEL_TYPE = "ChannelType"; + @SerializedName(SERIALIZED_NAME_CHANNEL_TYPE) + @javax.annotation.Nullable + private ChannelType channelType; + + public static final String SERIALIZED_NAME_AUDIO = "Audio"; + @SerializedName(SERIALIZED_NAME_AUDIO) + @javax.annotation.Nullable + private ProgramAudio audio; + + public static final String SERIALIZED_NAME_IS_MOVIE = "IsMovie"; + @SerializedName(SERIALIZED_NAME_IS_MOVIE) + @javax.annotation.Nullable + private Boolean isMovie; + + public static final String SERIALIZED_NAME_IS_SPORTS = "IsSports"; + @SerializedName(SERIALIZED_NAME_IS_SPORTS) + @javax.annotation.Nullable + private Boolean isSports; + + public static final String SERIALIZED_NAME_IS_SERIES = "IsSeries"; + @SerializedName(SERIALIZED_NAME_IS_SERIES) + @javax.annotation.Nullable + private Boolean isSeries; + + public static final String SERIALIZED_NAME_IS_LIVE = "IsLive"; + @SerializedName(SERIALIZED_NAME_IS_LIVE) + @javax.annotation.Nullable + private Boolean isLive; + + public static final String SERIALIZED_NAME_IS_NEWS = "IsNews"; + @SerializedName(SERIALIZED_NAME_IS_NEWS) + @javax.annotation.Nullable + private Boolean isNews; + + public static final String SERIALIZED_NAME_IS_KIDS = "IsKids"; + @SerializedName(SERIALIZED_NAME_IS_KIDS) + @javax.annotation.Nullable + private Boolean isKids; + + public static final String SERIALIZED_NAME_IS_PREMIERE = "IsPremiere"; + @SerializedName(SERIALIZED_NAME_IS_PREMIERE) + @javax.annotation.Nullable + private Boolean isPremiere; + + public static final String SERIALIZED_NAME_TIMER_ID = "TimerId"; + @SerializedName(SERIALIZED_NAME_TIMER_ID) + @javax.annotation.Nullable + private String timerId; + + public static final String SERIALIZED_NAME_NORMALIZATION_GAIN = "NormalizationGain"; + @SerializedName(SERIALIZED_NAME_NORMALIZATION_GAIN) + @javax.annotation.Nullable + private Float normalizationGain; + + public static final String SERIALIZED_NAME_CURRENT_PROGRAM = "CurrentProgram"; + @SerializedName(SERIALIZED_NAME_CURRENT_PROGRAM) + @javax.annotation.Nullable + private BaseItemDto currentProgram; + + public BaseItemDto() { + } + + public BaseItemDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BaseItemDto originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Get originalTitle + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BaseItemDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public BaseItemDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public BaseItemDto etag(@javax.annotation.Nullable String etag) { + this.etag = etag; + return this; + } + + /** + * Gets or sets the etag. + * @return etag + */ + @javax.annotation.Nullable + public String getEtag() { + return etag; + } + + public void setEtag(@javax.annotation.Nullable String etag) { + this.etag = etag; + } + + + public BaseItemDto sourceType(@javax.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + return this; + } + + /** + * Gets or sets the type of the source. + * @return sourceType + */ + @javax.annotation.Nullable + public String getSourceType() { + return sourceType; + } + + public void setSourceType(@javax.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + } + + + public BaseItemDto playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public BaseItemDto dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public BaseItemDto dateLastMediaAdded(@javax.annotation.Nullable OffsetDateTime dateLastMediaAdded) { + this.dateLastMediaAdded = dateLastMediaAdded; + return this; + } + + /** + * Get dateLastMediaAdded + * @return dateLastMediaAdded + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastMediaAdded() { + return dateLastMediaAdded; + } + + public void setDateLastMediaAdded(@javax.annotation.Nullable OffsetDateTime dateLastMediaAdded) { + this.dateLastMediaAdded = dateLastMediaAdded; + } + + + public BaseItemDto extraType(@javax.annotation.Nullable ExtraType extraType) { + this.extraType = extraType; + return this; + } + + /** + * Get extraType + * @return extraType + */ + @javax.annotation.Nullable + public ExtraType getExtraType() { + return extraType; + } + + public void setExtraType(@javax.annotation.Nullable ExtraType extraType) { + this.extraType = extraType; + } + + + public BaseItemDto airsBeforeSeasonNumber(@javax.annotation.Nullable Integer airsBeforeSeasonNumber) { + this.airsBeforeSeasonNumber = airsBeforeSeasonNumber; + return this; + } + + /** + * Get airsBeforeSeasonNumber + * @return airsBeforeSeasonNumber + */ + @javax.annotation.Nullable + public Integer getAirsBeforeSeasonNumber() { + return airsBeforeSeasonNumber; + } + + public void setAirsBeforeSeasonNumber(@javax.annotation.Nullable Integer airsBeforeSeasonNumber) { + this.airsBeforeSeasonNumber = airsBeforeSeasonNumber; + } + + + public BaseItemDto airsAfterSeasonNumber(@javax.annotation.Nullable Integer airsAfterSeasonNumber) { + this.airsAfterSeasonNumber = airsAfterSeasonNumber; + return this; + } + + /** + * Get airsAfterSeasonNumber + * @return airsAfterSeasonNumber + */ + @javax.annotation.Nullable + public Integer getAirsAfterSeasonNumber() { + return airsAfterSeasonNumber; + } + + public void setAirsAfterSeasonNumber(@javax.annotation.Nullable Integer airsAfterSeasonNumber) { + this.airsAfterSeasonNumber = airsAfterSeasonNumber; + } + + + public BaseItemDto airsBeforeEpisodeNumber(@javax.annotation.Nullable Integer airsBeforeEpisodeNumber) { + this.airsBeforeEpisodeNumber = airsBeforeEpisodeNumber; + return this; + } + + /** + * Get airsBeforeEpisodeNumber + * @return airsBeforeEpisodeNumber + */ + @javax.annotation.Nullable + public Integer getAirsBeforeEpisodeNumber() { + return airsBeforeEpisodeNumber; + } + + public void setAirsBeforeEpisodeNumber(@javax.annotation.Nullable Integer airsBeforeEpisodeNumber) { + this.airsBeforeEpisodeNumber = airsBeforeEpisodeNumber; + } + + + public BaseItemDto canDelete(@javax.annotation.Nullable Boolean canDelete) { + this.canDelete = canDelete; + return this; + } + + /** + * Get canDelete + * @return canDelete + */ + @javax.annotation.Nullable + public Boolean getCanDelete() { + return canDelete; + } + + public void setCanDelete(@javax.annotation.Nullable Boolean canDelete) { + this.canDelete = canDelete; + } + + + public BaseItemDto canDownload(@javax.annotation.Nullable Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + /** + * Get canDownload + * @return canDownload + */ + @javax.annotation.Nullable + public Boolean getCanDownload() { + return canDownload; + } + + public void setCanDownload(@javax.annotation.Nullable Boolean canDownload) { + this.canDownload = canDownload; + } + + + public BaseItemDto hasLyrics(@javax.annotation.Nullable Boolean hasLyrics) { + this.hasLyrics = hasLyrics; + return this; + } + + /** + * Get hasLyrics + * @return hasLyrics + */ + @javax.annotation.Nullable + public Boolean getHasLyrics() { + return hasLyrics; + } + + public void setHasLyrics(@javax.annotation.Nullable Boolean hasLyrics) { + this.hasLyrics = hasLyrics; + } + + + public BaseItemDto hasSubtitles(@javax.annotation.Nullable Boolean hasSubtitles) { + this.hasSubtitles = hasSubtitles; + return this; + } + + /** + * Get hasSubtitles + * @return hasSubtitles + */ + @javax.annotation.Nullable + public Boolean getHasSubtitles() { + return hasSubtitles; + } + + public void setHasSubtitles(@javax.annotation.Nullable Boolean hasSubtitles) { + this.hasSubtitles = hasSubtitles; + } + + + public BaseItemDto preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Get preferredMetadataLanguage + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public BaseItemDto preferredMetadataCountryCode(@javax.annotation.Nullable String preferredMetadataCountryCode) { + this.preferredMetadataCountryCode = preferredMetadataCountryCode; + return this; + } + + /** + * Get preferredMetadataCountryCode + * @return preferredMetadataCountryCode + */ + @javax.annotation.Nullable + public String getPreferredMetadataCountryCode() { + return preferredMetadataCountryCode; + } + + public void setPreferredMetadataCountryCode(@javax.annotation.Nullable String preferredMetadataCountryCode) { + this.preferredMetadataCountryCode = preferredMetadataCountryCode; + } + + + public BaseItemDto container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public BaseItemDto sortName(@javax.annotation.Nullable String sortName) { + this.sortName = sortName; + return this; + } + + /** + * Gets or sets the name of the sort. + * @return sortName + */ + @javax.annotation.Nullable + public String getSortName() { + return sortName; + } + + public void setSortName(@javax.annotation.Nullable String sortName) { + this.sortName = sortName; + } + + + public BaseItemDto forcedSortName(@javax.annotation.Nullable String forcedSortName) { + this.forcedSortName = forcedSortName; + return this; + } + + /** + * Get forcedSortName + * @return forcedSortName + */ + @javax.annotation.Nullable + public String getForcedSortName() { + return forcedSortName; + } + + public void setForcedSortName(@javax.annotation.Nullable String forcedSortName) { + this.forcedSortName = forcedSortName; + } + + + public BaseItemDto video3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + return this; + } + + /** + * Gets or sets the video3 D format. + * @return video3DFormat + */ + @javax.annotation.Nullable + public Video3DFormat getVideo3DFormat() { + return video3DFormat; + } + + public void setVideo3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + } + + + public BaseItemDto premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Gets or sets the premiere date. + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BaseItemDto externalUrls(@javax.annotation.Nullable List externalUrls) { + this.externalUrls = externalUrls; + return this; + } + + public BaseItemDto addExternalUrlsItem(ExternalUrl externalUrlsItem) { + if (this.externalUrls == null) { + this.externalUrls = new ArrayList<>(); + } + this.externalUrls.add(externalUrlsItem); + return this; + } + + /** + * Gets or sets the external urls. + * @return externalUrls + */ + @javax.annotation.Nullable + public List getExternalUrls() { + return externalUrls; + } + + public void setExternalUrls(@javax.annotation.Nullable List externalUrls) { + this.externalUrls = externalUrls; + } + + + public BaseItemDto mediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + return this; + } + + public BaseItemDto addMediaSourcesItem(MediaSourceInfo mediaSourcesItem) { + if (this.mediaSources == null) { + this.mediaSources = new ArrayList<>(); + } + this.mediaSources.add(mediaSourcesItem); + return this; + } + + /** + * Gets or sets the media versions. + * @return mediaSources + */ + @javax.annotation.Nullable + public List getMediaSources() { + return mediaSources; + } + + public void setMediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + } + + + public BaseItemDto criticRating(@javax.annotation.Nullable Float criticRating) { + this.criticRating = criticRating; + return this; + } + + /** + * Gets or sets the critic rating. + * @return criticRating + */ + @javax.annotation.Nullable + public Float getCriticRating() { + return criticRating; + } + + public void setCriticRating(@javax.annotation.Nullable Float criticRating) { + this.criticRating = criticRating; + } + + + public BaseItemDto productionLocations(@javax.annotation.Nullable List productionLocations) { + this.productionLocations = productionLocations; + return this; + } + + public BaseItemDto addProductionLocationsItem(String productionLocationsItem) { + if (this.productionLocations == null) { + this.productionLocations = new ArrayList<>(); + } + this.productionLocations.add(productionLocationsItem); + return this; + } + + /** + * Get productionLocations + * @return productionLocations + */ + @javax.annotation.Nullable + public List getProductionLocations() { + return productionLocations; + } + + public void setProductionLocations(@javax.annotation.Nullable List productionLocations) { + this.productionLocations = productionLocations; + } + + + public BaseItemDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BaseItemDto enableMediaSourceDisplay(@javax.annotation.Nullable Boolean enableMediaSourceDisplay) { + this.enableMediaSourceDisplay = enableMediaSourceDisplay; + return this; + } + + /** + * Get enableMediaSourceDisplay + * @return enableMediaSourceDisplay + */ + @javax.annotation.Nullable + public Boolean getEnableMediaSourceDisplay() { + return enableMediaSourceDisplay; + } + + public void setEnableMediaSourceDisplay(@javax.annotation.Nullable Boolean enableMediaSourceDisplay) { + this.enableMediaSourceDisplay = enableMediaSourceDisplay; + } + + + public BaseItemDto officialRating(@javax.annotation.Nullable String officialRating) { + this.officialRating = officialRating; + return this; + } + + /** + * Gets or sets the official rating. + * @return officialRating + */ + @javax.annotation.Nullable + public String getOfficialRating() { + return officialRating; + } + + public void setOfficialRating(@javax.annotation.Nullable String officialRating) { + this.officialRating = officialRating; + } + + + public BaseItemDto customRating(@javax.annotation.Nullable String customRating) { + this.customRating = customRating; + return this; + } + + /** + * Gets or sets the custom rating. + * @return customRating + */ + @javax.annotation.Nullable + public String getCustomRating() { + return customRating; + } + + public void setCustomRating(@javax.annotation.Nullable String customRating) { + this.customRating = customRating; + } + + + public BaseItemDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel identifier. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public BaseItemDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Get channelName + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public BaseItemDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the overview. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public BaseItemDto taglines(@javax.annotation.Nullable List taglines) { + this.taglines = taglines; + return this; + } + + public BaseItemDto addTaglinesItem(String taglinesItem) { + if (this.taglines == null) { + this.taglines = new ArrayList<>(); + } + this.taglines.add(taglinesItem); + return this; + } + + /** + * Gets or sets the taglines. + * @return taglines + */ + @javax.annotation.Nullable + public List getTaglines() { + return taglines; + } + + public void setTaglines(@javax.annotation.Nullable List taglines) { + this.taglines = taglines; + } + + + public BaseItemDto genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public BaseItemDto addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Gets or sets the genres. + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public BaseItemDto communityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Gets or sets the community rating. + * @return communityRating + */ + @javax.annotation.Nullable + public Float getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + } + + + public BaseItemDto cumulativeRunTimeTicks(@javax.annotation.Nullable Long cumulativeRunTimeTicks) { + this.cumulativeRunTimeTicks = cumulativeRunTimeTicks; + return this; + } + + /** + * Gets or sets the cumulative run time ticks. + * @return cumulativeRunTimeTicks + */ + @javax.annotation.Nullable + public Long getCumulativeRunTimeTicks() { + return cumulativeRunTimeTicks; + } + + public void setCumulativeRunTimeTicks(@javax.annotation.Nullable Long cumulativeRunTimeTicks) { + this.cumulativeRunTimeTicks = cumulativeRunTimeTicks; + } + + + public BaseItemDto runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public BaseItemDto playAccess(@javax.annotation.Nullable PlayAccess playAccess) { + this.playAccess = playAccess; + return this; + } + + /** + * Gets or sets the play access. + * @return playAccess + */ + @javax.annotation.Nullable + public PlayAccess getPlayAccess() { + return playAccess; + } + + public void setPlayAccess(@javax.annotation.Nullable PlayAccess playAccess) { + this.playAccess = playAccess; + } + + + public BaseItemDto aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Gets or sets the aspect ratio. + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public BaseItemDto productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the production year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public BaseItemDto isPlaceHolder(@javax.annotation.Nullable Boolean isPlaceHolder) { + this.isPlaceHolder = isPlaceHolder; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is place holder. + * @return isPlaceHolder + */ + @javax.annotation.Nullable + public Boolean getIsPlaceHolder() { + return isPlaceHolder; + } + + public void setIsPlaceHolder(@javax.annotation.Nullable Boolean isPlaceHolder) { + this.isPlaceHolder = isPlaceHolder; + } + + + public BaseItemDto number(@javax.annotation.Nullable String number) { + this.number = number; + return this; + } + + /** + * Gets or sets the number. + * @return number + */ + @javax.annotation.Nullable + public String getNumber() { + return number; + } + + public void setNumber(@javax.annotation.Nullable String number) { + this.number = number; + } + + + public BaseItemDto channelNumber(@javax.annotation.Nullable String channelNumber) { + this.channelNumber = channelNumber; + return this; + } + + /** + * Get channelNumber + * @return channelNumber + */ + @javax.annotation.Nullable + public String getChannelNumber() { + return channelNumber; + } + + public void setChannelNumber(@javax.annotation.Nullable String channelNumber) { + this.channelNumber = channelNumber; + } + + + public BaseItemDto indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Gets or sets the index number. + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BaseItemDto indexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + return this; + } + + /** + * Gets or sets the index number end. + * @return indexNumberEnd + */ + @javax.annotation.Nullable + public Integer getIndexNumberEnd() { + return indexNumberEnd; + } + + public void setIndexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + } + + + public BaseItemDto parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Gets or sets the parent index number. + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BaseItemDto remoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + return this; + } + + public BaseItemDto addRemoteTrailersItem(MediaUrl remoteTrailersItem) { + if (this.remoteTrailers == null) { + this.remoteTrailers = new ArrayList<>(); + } + this.remoteTrailers.add(remoteTrailersItem); + return this; + } + + /** + * Gets or sets the trailer urls. + * @return remoteTrailers + */ + @javax.annotation.Nullable + public List getRemoteTrailers() { + return remoteTrailers; + } + + public void setRemoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + } + + + public BaseItemDto providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BaseItemDto putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BaseItemDto isHD(@javax.annotation.Nullable Boolean isHD) { + this.isHD = isHD; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is HD. + * @return isHD + */ + @javax.annotation.Nullable + public Boolean getIsHD() { + return isHD; + } + + public void setIsHD(@javax.annotation.Nullable Boolean isHD) { + this.isHD = isHD; + } + + + public BaseItemDto isFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is folder. + * @return isFolder + */ + @javax.annotation.Nullable + public Boolean getIsFolder() { + return isFolder; + } + + public void setIsFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + } + + + public BaseItemDto parentId(@javax.annotation.Nullable UUID parentId) { + this.parentId = parentId; + return this; + } + + /** + * Gets or sets the parent id. + * @return parentId + */ + @javax.annotation.Nullable + public UUID getParentId() { + return parentId; + } + + public void setParentId(@javax.annotation.Nullable UUID parentId) { + this.parentId = parentId; + } + + + public BaseItemDto type(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + return this; + } + + /** + * The base item kind. + * @return type + */ + @javax.annotation.Nullable + public BaseItemKind getType() { + return type; + } + + public void setType(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + } + + + public BaseItemDto people(@javax.annotation.Nullable List people) { + this.people = people; + return this; + } + + public BaseItemDto addPeopleItem(BaseItemPerson peopleItem) { + if (this.people == null) { + this.people = new ArrayList<>(); + } + this.people.add(peopleItem); + return this; + } + + /** + * Gets or sets the people. + * @return people + */ + @javax.annotation.Nullable + public List getPeople() { + return people; + } + + public void setPeople(@javax.annotation.Nullable List people) { + this.people = people; + } + + + public BaseItemDto studios(@javax.annotation.Nullable List studios) { + this.studios = studios; + return this; + } + + public BaseItemDto addStudiosItem(NameGuidPair studiosItem) { + if (this.studios == null) { + this.studios = new ArrayList<>(); + } + this.studios.add(studiosItem); + return this; + } + + /** + * Gets or sets the studios. + * @return studios + */ + @javax.annotation.Nullable + public List getStudios() { + return studios; + } + + public void setStudios(@javax.annotation.Nullable List studios) { + this.studios = studios; + } + + + public BaseItemDto genreItems(@javax.annotation.Nullable List genreItems) { + this.genreItems = genreItems; + return this; + } + + public BaseItemDto addGenreItemsItem(NameGuidPair genreItemsItem) { + if (this.genreItems == null) { + this.genreItems = new ArrayList<>(); + } + this.genreItems.add(genreItemsItem); + return this; + } + + /** + * Get genreItems + * @return genreItems + */ + @javax.annotation.Nullable + public List getGenreItems() { + return genreItems; + } + + public void setGenreItems(@javax.annotation.Nullable List genreItems) { + this.genreItems = genreItems; + } + + + public BaseItemDto parentLogoItemId(@javax.annotation.Nullable UUID parentLogoItemId) { + this.parentLogoItemId = parentLogoItemId; + return this; + } + + /** + * Gets or sets whether the item has a logo, this will hold the Id of the Parent that has one. + * @return parentLogoItemId + */ + @javax.annotation.Nullable + public UUID getParentLogoItemId() { + return parentLogoItemId; + } + + public void setParentLogoItemId(@javax.annotation.Nullable UUID parentLogoItemId) { + this.parentLogoItemId = parentLogoItemId; + } + + + public BaseItemDto parentBackdropItemId(@javax.annotation.Nullable UUID parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets whether the item has any backdrops, this will hold the Id of the Parent that has one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public UUID getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable UUID parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public BaseItemDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public BaseItemDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public BaseItemDto localTrailerCount(@javax.annotation.Nullable Integer localTrailerCount) { + this.localTrailerCount = localTrailerCount; + return this; + } + + /** + * Gets or sets the local trailer count. + * @return localTrailerCount + */ + @javax.annotation.Nullable + public Integer getLocalTrailerCount() { + return localTrailerCount; + } + + public void setLocalTrailerCount(@javax.annotation.Nullable Integer localTrailerCount) { + this.localTrailerCount = localTrailerCount; + } + + + public BaseItemDto userData(@javax.annotation.Nullable UserItemDataDto userData) { + this.userData = userData; + return this; + } + + /** + * Gets or sets the user data for this item based on the user it's being requested for. + * @return userData + */ + @javax.annotation.Nullable + public UserItemDataDto getUserData() { + return userData; + } + + public void setUserData(@javax.annotation.Nullable UserItemDataDto userData) { + this.userData = userData; + } + + + public BaseItemDto recursiveItemCount(@javax.annotation.Nullable Integer recursiveItemCount) { + this.recursiveItemCount = recursiveItemCount; + return this; + } + + /** + * Gets or sets the recursive item count. + * @return recursiveItemCount + */ + @javax.annotation.Nullable + public Integer getRecursiveItemCount() { + return recursiveItemCount; + } + + public void setRecursiveItemCount(@javax.annotation.Nullable Integer recursiveItemCount) { + this.recursiveItemCount = recursiveItemCount; + } + + + public BaseItemDto childCount(@javax.annotation.Nullable Integer childCount) { + this.childCount = childCount; + return this; + } + + /** + * Gets or sets the child count. + * @return childCount + */ + @javax.annotation.Nullable + public Integer getChildCount() { + return childCount; + } + + public void setChildCount(@javax.annotation.Nullable Integer childCount) { + this.childCount = childCount; + } + + + public BaseItemDto seriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + return this; + } + + /** + * Gets or sets the name of the series. + * @return seriesName + */ + @javax.annotation.Nullable + public String getSeriesName() { + return seriesName; + } + + public void setSeriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + } + + + public BaseItemDto seriesId(@javax.annotation.Nullable UUID seriesId) { + this.seriesId = seriesId; + return this; + } + + /** + * Gets or sets the series id. + * @return seriesId + */ + @javax.annotation.Nullable + public UUID getSeriesId() { + return seriesId; + } + + public void setSeriesId(@javax.annotation.Nullable UUID seriesId) { + this.seriesId = seriesId; + } + + + public BaseItemDto seasonId(@javax.annotation.Nullable UUID seasonId) { + this.seasonId = seasonId; + return this; + } + + /** + * Gets or sets the season identifier. + * @return seasonId + */ + @javax.annotation.Nullable + public UUID getSeasonId() { + return seasonId; + } + + public void setSeasonId(@javax.annotation.Nullable UUID seasonId) { + this.seasonId = seasonId; + } + + + public BaseItemDto specialFeatureCount(@javax.annotation.Nullable Integer specialFeatureCount) { + this.specialFeatureCount = specialFeatureCount; + return this; + } + + /** + * Gets or sets the special feature count. + * @return specialFeatureCount + */ + @javax.annotation.Nullable + public Integer getSpecialFeatureCount() { + return specialFeatureCount; + } + + public void setSpecialFeatureCount(@javax.annotation.Nullable Integer specialFeatureCount) { + this.specialFeatureCount = specialFeatureCount; + } + + + public BaseItemDto displayPreferencesId(@javax.annotation.Nullable String displayPreferencesId) { + this.displayPreferencesId = displayPreferencesId; + return this; + } + + /** + * Gets or sets the display preferences id. + * @return displayPreferencesId + */ + @javax.annotation.Nullable + public String getDisplayPreferencesId() { + return displayPreferencesId; + } + + public void setDisplayPreferencesId(@javax.annotation.Nullable String displayPreferencesId) { + this.displayPreferencesId = displayPreferencesId; + } + + + public BaseItemDto status(@javax.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable String status) { + this.status = status; + } + + + public BaseItemDto airTime(@javax.annotation.Nullable String airTime) { + this.airTime = airTime; + return this; + } + + /** + * Gets or sets the air time. + * @return airTime + */ + @javax.annotation.Nullable + public String getAirTime() { + return airTime; + } + + public void setAirTime(@javax.annotation.Nullable String airTime) { + this.airTime = airTime; + } + + + public BaseItemDto airDays(@javax.annotation.Nullable List airDays) { + this.airDays = airDays; + return this; + } + + public BaseItemDto addAirDaysItem(DayOfWeek airDaysItem) { + if (this.airDays == null) { + this.airDays = new ArrayList<>(); + } + this.airDays.add(airDaysItem); + return this; + } + + /** + * Gets or sets the air days. + * @return airDays + */ + @javax.annotation.Nullable + public List getAirDays() { + return airDays; + } + + public void setAirDays(@javax.annotation.Nullable List airDays) { + this.airDays = airDays; + } + + + public BaseItemDto tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public BaseItemDto addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Gets or sets the tags. + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + public BaseItemDto primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio, after image enhancements. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + public BaseItemDto artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public BaseItemDto addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Gets or sets the artists. + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + public BaseItemDto artistItems(@javax.annotation.Nullable List artistItems) { + this.artistItems = artistItems; + return this; + } + + public BaseItemDto addArtistItemsItem(NameGuidPair artistItemsItem) { + if (this.artistItems == null) { + this.artistItems = new ArrayList<>(); + } + this.artistItems.add(artistItemsItem); + return this; + } + + /** + * Gets or sets the artist items. + * @return artistItems + */ + @javax.annotation.Nullable + public List getArtistItems() { + return artistItems; + } + + public void setArtistItems(@javax.annotation.Nullable List artistItems) { + this.artistItems = artistItems; + } + + + public BaseItemDto album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Gets or sets the album. + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public BaseItemDto collectionType(@javax.annotation.Nullable CollectionType collectionType) { + this.collectionType = collectionType; + return this; + } + + /** + * Gets or sets the type of the collection. + * @return collectionType + */ + @javax.annotation.Nullable + public CollectionType getCollectionType() { + return collectionType; + } + + public void setCollectionType(@javax.annotation.Nullable CollectionType collectionType) { + this.collectionType = collectionType; + } + + + public BaseItemDto displayOrder(@javax.annotation.Nullable String displayOrder) { + this.displayOrder = displayOrder; + return this; + } + + /** + * Gets or sets the display order. + * @return displayOrder + */ + @javax.annotation.Nullable + public String getDisplayOrder() { + return displayOrder; + } + + public void setDisplayOrder(@javax.annotation.Nullable String displayOrder) { + this.displayOrder = displayOrder; + } + + + public BaseItemDto albumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + return this; + } + + /** + * Gets or sets the album id. + * @return albumId + */ + @javax.annotation.Nullable + public UUID getAlbumId() { + return albumId; + } + + public void setAlbumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + } + + + public BaseItemDto albumPrimaryImageTag(@javax.annotation.Nullable String albumPrimaryImageTag) { + this.albumPrimaryImageTag = albumPrimaryImageTag; + return this; + } + + /** + * Gets or sets the album image tag. + * @return albumPrimaryImageTag + */ + @javax.annotation.Nullable + public String getAlbumPrimaryImageTag() { + return albumPrimaryImageTag; + } + + public void setAlbumPrimaryImageTag(@javax.annotation.Nullable String albumPrimaryImageTag) { + this.albumPrimaryImageTag = albumPrimaryImageTag; + } + + + public BaseItemDto seriesPrimaryImageTag(@javax.annotation.Nullable String seriesPrimaryImageTag) { + this.seriesPrimaryImageTag = seriesPrimaryImageTag; + return this; + } + + /** + * Gets or sets the series primary image tag. + * @return seriesPrimaryImageTag + */ + @javax.annotation.Nullable + public String getSeriesPrimaryImageTag() { + return seriesPrimaryImageTag; + } + + public void setSeriesPrimaryImageTag(@javax.annotation.Nullable String seriesPrimaryImageTag) { + this.seriesPrimaryImageTag = seriesPrimaryImageTag; + } + + + public BaseItemDto albumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtist + */ + @javax.annotation.Nullable + public String getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + } + + + public BaseItemDto albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public BaseItemDto addAlbumArtistsItem(NameGuidPair albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Gets or sets the album artists. + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public BaseItemDto seasonName(@javax.annotation.Nullable String seasonName) { + this.seasonName = seasonName; + return this; + } + + /** + * Gets or sets the name of the season. + * @return seasonName + */ + @javax.annotation.Nullable + public String getSeasonName() { + return seasonName; + } + + public void setSeasonName(@javax.annotation.Nullable String seasonName) { + this.seasonName = seasonName; + } + + + public BaseItemDto mediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + return this; + } + + public BaseItemDto addMediaStreamsItem(MediaStream mediaStreamsItem) { + if (this.mediaStreams == null) { + this.mediaStreams = new ArrayList<>(); + } + this.mediaStreams.add(mediaStreamsItem); + return this; + } + + /** + * Gets or sets the media streams. + * @return mediaStreams + */ + @javax.annotation.Nullable + public List getMediaStreams() { + return mediaStreams; + } + + public void setMediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + } + + + public BaseItemDto videoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + return this; + } + + /** + * Gets or sets the type of the video. + * @return videoType + */ + @javax.annotation.Nullable + public VideoType getVideoType() { + return videoType; + } + + public void setVideoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + } + + + public BaseItemDto partCount(@javax.annotation.Nullable Integer partCount) { + this.partCount = partCount; + return this; + } + + /** + * Gets or sets the part count. + * @return partCount + */ + @javax.annotation.Nullable + public Integer getPartCount() { + return partCount; + } + + public void setPartCount(@javax.annotation.Nullable Integer partCount) { + this.partCount = partCount; + } + + + public BaseItemDto mediaSourceCount(@javax.annotation.Nullable Integer mediaSourceCount) { + this.mediaSourceCount = mediaSourceCount; + return this; + } + + /** + * Get mediaSourceCount + * @return mediaSourceCount + */ + @javax.annotation.Nullable + public Integer getMediaSourceCount() { + return mediaSourceCount; + } + + public void setMediaSourceCount(@javax.annotation.Nullable Integer mediaSourceCount) { + this.mediaSourceCount = mediaSourceCount; + } + + + public BaseItemDto imageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + return this; + } + + public BaseItemDto putImageTagsItem(String key, String imageTagsItem) { + if (this.imageTags == null) { + this.imageTags = new HashMap<>(); + } + this.imageTags.put(key, imageTagsItem); + return this; + } + + /** + * Gets or sets the image tags. + * @return imageTags + */ + @javax.annotation.Nullable + public Map getImageTags() { + return imageTags; + } + + public void setImageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + } + + + public BaseItemDto backdropImageTags(@javax.annotation.Nullable List backdropImageTags) { + this.backdropImageTags = backdropImageTags; + return this; + } + + public BaseItemDto addBackdropImageTagsItem(String backdropImageTagsItem) { + if (this.backdropImageTags == null) { + this.backdropImageTags = new ArrayList<>(); + } + this.backdropImageTags.add(backdropImageTagsItem); + return this; + } + + /** + * Gets or sets the backdrop image tags. + * @return backdropImageTags + */ + @javax.annotation.Nullable + public List getBackdropImageTags() { + return backdropImageTags; + } + + public void setBackdropImageTags(@javax.annotation.Nullable List backdropImageTags) { + this.backdropImageTags = backdropImageTags; + } + + + public BaseItemDto screenshotImageTags(@javax.annotation.Nullable List screenshotImageTags) { + this.screenshotImageTags = screenshotImageTags; + return this; + } + + public BaseItemDto addScreenshotImageTagsItem(String screenshotImageTagsItem) { + if (this.screenshotImageTags == null) { + this.screenshotImageTags = new ArrayList<>(); + } + this.screenshotImageTags.add(screenshotImageTagsItem); + return this; + } + + /** + * Gets or sets the screenshot image tags. + * @return screenshotImageTags + */ + @javax.annotation.Nullable + public List getScreenshotImageTags() { + return screenshotImageTags; + } + + public void setScreenshotImageTags(@javax.annotation.Nullable List screenshotImageTags) { + this.screenshotImageTags = screenshotImageTags; + } + + + public BaseItemDto parentLogoImageTag(@javax.annotation.Nullable String parentLogoImageTag) { + this.parentLogoImageTag = parentLogoImageTag; + return this; + } + + /** + * Gets or sets the parent logo image tag. + * @return parentLogoImageTag + */ + @javax.annotation.Nullable + public String getParentLogoImageTag() { + return parentLogoImageTag; + } + + public void setParentLogoImageTag(@javax.annotation.Nullable String parentLogoImageTag) { + this.parentLogoImageTag = parentLogoImageTag; + } + + + public BaseItemDto parentArtItemId(@javax.annotation.Nullable UUID parentArtItemId) { + this.parentArtItemId = parentArtItemId; + return this; + } + + /** + * Gets or sets whether the item has fan art, this will hold the Id of the Parent that has one. + * @return parentArtItemId + */ + @javax.annotation.Nullable + public UUID getParentArtItemId() { + return parentArtItemId; + } + + public void setParentArtItemId(@javax.annotation.Nullable UUID parentArtItemId) { + this.parentArtItemId = parentArtItemId; + } + + + public BaseItemDto parentArtImageTag(@javax.annotation.Nullable String parentArtImageTag) { + this.parentArtImageTag = parentArtImageTag; + return this; + } + + /** + * Gets or sets the parent art image tag. + * @return parentArtImageTag + */ + @javax.annotation.Nullable + public String getParentArtImageTag() { + return parentArtImageTag; + } + + public void setParentArtImageTag(@javax.annotation.Nullable String parentArtImageTag) { + this.parentArtImageTag = parentArtImageTag; + } + + + public BaseItemDto seriesThumbImageTag(@javax.annotation.Nullable String seriesThumbImageTag) { + this.seriesThumbImageTag = seriesThumbImageTag; + return this; + } + + /** + * Gets or sets the series thumb image tag. + * @return seriesThumbImageTag + */ + @javax.annotation.Nullable + public String getSeriesThumbImageTag() { + return seriesThumbImageTag; + } + + public void setSeriesThumbImageTag(@javax.annotation.Nullable String seriesThumbImageTag) { + this.seriesThumbImageTag = seriesThumbImageTag; + } + + + public BaseItemDto imageBlurHashes(@javax.annotation.Nullable BaseItemDtoImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + return this; + } + + /** + * Get imageBlurHashes + * @return imageBlurHashes + */ + @javax.annotation.Nullable + public BaseItemDtoImageBlurHashes getImageBlurHashes() { + return imageBlurHashes; + } + + public void setImageBlurHashes(@javax.annotation.Nullable BaseItemDtoImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + } + + + public BaseItemDto seriesStudio(@javax.annotation.Nullable String seriesStudio) { + this.seriesStudio = seriesStudio; + return this; + } + + /** + * Gets or sets the series studio. + * @return seriesStudio + */ + @javax.annotation.Nullable + public String getSeriesStudio() { + return seriesStudio; + } + + public void setSeriesStudio(@javax.annotation.Nullable String seriesStudio) { + this.seriesStudio = seriesStudio; + } + + + public BaseItemDto parentThumbItemId(@javax.annotation.Nullable UUID parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + return this; + } + + /** + * Gets or sets the parent thumb item id. + * @return parentThumbItemId + */ + @javax.annotation.Nullable + public UUID getParentThumbItemId() { + return parentThumbItemId; + } + + public void setParentThumbItemId(@javax.annotation.Nullable UUID parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + } + + + public BaseItemDto parentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + return this; + } + + /** + * Gets or sets the parent thumb image tag. + * @return parentThumbImageTag + */ + @javax.annotation.Nullable + public String getParentThumbImageTag() { + return parentThumbImageTag; + } + + public void setParentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + } + + + public BaseItemDto parentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + return this; + } + + /** + * Gets or sets the parent primary image item identifier. + * @return parentPrimaryImageItemId + */ + @javax.annotation.Nullable + public String getParentPrimaryImageItemId() { + return parentPrimaryImageItemId; + } + + public void setParentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + } + + + public BaseItemDto parentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + return this; + } + + /** + * Gets or sets the parent primary image tag. + * @return parentPrimaryImageTag + */ + @javax.annotation.Nullable + public String getParentPrimaryImageTag() { + return parentPrimaryImageTag; + } + + public void setParentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + } + + + public BaseItemDto chapters(@javax.annotation.Nullable List chapters) { + this.chapters = chapters; + return this; + } + + public BaseItemDto addChaptersItem(ChapterInfo chaptersItem) { + if (this.chapters == null) { + this.chapters = new ArrayList<>(); + } + this.chapters.add(chaptersItem); + return this; + } + + /** + * Gets or sets the chapters. + * @return chapters + */ + @javax.annotation.Nullable + public List getChapters() { + return chapters; + } + + public void setChapters(@javax.annotation.Nullable List chapters) { + this.chapters = chapters; + } + + + public BaseItemDto trickplay(@javax.annotation.Nullable Map> trickplay) { + this.trickplay = trickplay; + return this; + } + + public BaseItemDto putTrickplayItem(String key, Map trickplayItem) { + if (this.trickplay == null) { + this.trickplay = new HashMap<>(); + } + this.trickplay.put(key, trickplayItem); + return this; + } + + /** + * Gets or sets the trickplay manifest. + * @return trickplay + */ + @javax.annotation.Nullable + public Map> getTrickplay() { + return trickplay; + } + + public void setTrickplay(@javax.annotation.Nullable Map> trickplay) { + this.trickplay = trickplay; + } + + + public BaseItemDto locationType(@javax.annotation.Nullable LocationType locationType) { + this.locationType = locationType; + return this; + } + + /** + * Gets or sets the type of the location. + * @return locationType + */ + @javax.annotation.Nullable + public LocationType getLocationType() { + return locationType; + } + + public void setLocationType(@javax.annotation.Nullable LocationType locationType) { + this.locationType = locationType; + } + + + public BaseItemDto isoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + return this; + } + + /** + * Gets or sets the type of the iso. + * @return isoType + */ + @javax.annotation.Nullable + public IsoType getIsoType() { + return isoType; + } + + public void setIsoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + } + + + public BaseItemDto mediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Media types. + * @return mediaType + */ + @javax.annotation.Nullable + public MediaType getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + } + + + public BaseItemDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public BaseItemDto lockedFields(@javax.annotation.Nullable List lockedFields) { + this.lockedFields = lockedFields; + return this; + } + + public BaseItemDto addLockedFieldsItem(MetadataField lockedFieldsItem) { + if (this.lockedFields == null) { + this.lockedFields = new ArrayList<>(); + } + this.lockedFields.add(lockedFieldsItem); + return this; + } + + /** + * Gets or sets the locked fields. + * @return lockedFields + */ + @javax.annotation.Nullable + public List getLockedFields() { + return lockedFields; + } + + public void setLockedFields(@javax.annotation.Nullable List lockedFields) { + this.lockedFields = lockedFields; + } + + + public BaseItemDto trailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + return this; + } + + /** + * Gets or sets the trailer count. + * @return trailerCount + */ + @javax.annotation.Nullable + public Integer getTrailerCount() { + return trailerCount; + } + + public void setTrailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + } + + + public BaseItemDto movieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + return this; + } + + /** + * Gets or sets the movie count. + * @return movieCount + */ + @javax.annotation.Nullable + public Integer getMovieCount() { + return movieCount; + } + + public void setMovieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + } + + + public BaseItemDto seriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + return this; + } + + /** + * Gets or sets the series count. + * @return seriesCount + */ + @javax.annotation.Nullable + public Integer getSeriesCount() { + return seriesCount; + } + + public void setSeriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + } + + + public BaseItemDto programCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + return this; + } + + /** + * Get programCount + * @return programCount + */ + @javax.annotation.Nullable + public Integer getProgramCount() { + return programCount; + } + + public void setProgramCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + } + + + public BaseItemDto episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public BaseItemDto songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public BaseItemDto albumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + return this; + } + + /** + * Gets or sets the album count. + * @return albumCount + */ + @javax.annotation.Nullable + public Integer getAlbumCount() { + return albumCount; + } + + public void setAlbumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + } + + + public BaseItemDto artistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + return this; + } + + /** + * Get artistCount + * @return artistCount + */ + @javax.annotation.Nullable + public Integer getArtistCount() { + return artistCount; + } + + public void setArtistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + } + + + public BaseItemDto musicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + return this; + } + + /** + * Gets or sets the music video count. + * @return musicVideoCount + */ + @javax.annotation.Nullable + public Integer getMusicVideoCount() { + return musicVideoCount; + } + + public void setMusicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + } + + + public BaseItemDto lockData(@javax.annotation.Nullable Boolean lockData) { + this.lockData = lockData; + return this; + } + + /** + * Gets or sets a value indicating whether [enable internet providers]. + * @return lockData + */ + @javax.annotation.Nullable + public Boolean getLockData() { + return lockData; + } + + public void setLockData(@javax.annotation.Nullable Boolean lockData) { + this.lockData = lockData; + } + + + public BaseItemDto width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Get width + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public BaseItemDto height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Get height + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public BaseItemDto cameraMake(@javax.annotation.Nullable String cameraMake) { + this.cameraMake = cameraMake; + return this; + } + + /** + * Get cameraMake + * @return cameraMake + */ + @javax.annotation.Nullable + public String getCameraMake() { + return cameraMake; + } + + public void setCameraMake(@javax.annotation.Nullable String cameraMake) { + this.cameraMake = cameraMake; + } + + + public BaseItemDto cameraModel(@javax.annotation.Nullable String cameraModel) { + this.cameraModel = cameraModel; + return this; + } + + /** + * Get cameraModel + * @return cameraModel + */ + @javax.annotation.Nullable + public String getCameraModel() { + return cameraModel; + } + + public void setCameraModel(@javax.annotation.Nullable String cameraModel) { + this.cameraModel = cameraModel; + } + + + public BaseItemDto software(@javax.annotation.Nullable String software) { + this.software = software; + return this; + } + + /** + * Get software + * @return software + */ + @javax.annotation.Nullable + public String getSoftware() { + return software; + } + + public void setSoftware(@javax.annotation.Nullable String software) { + this.software = software; + } + + + public BaseItemDto exposureTime(@javax.annotation.Nullable Double exposureTime) { + this.exposureTime = exposureTime; + return this; + } + + /** + * Get exposureTime + * @return exposureTime + */ + @javax.annotation.Nullable + public Double getExposureTime() { + return exposureTime; + } + + public void setExposureTime(@javax.annotation.Nullable Double exposureTime) { + this.exposureTime = exposureTime; + } + + + public BaseItemDto focalLength(@javax.annotation.Nullable Double focalLength) { + this.focalLength = focalLength; + return this; + } + + /** + * Get focalLength + * @return focalLength + */ + @javax.annotation.Nullable + public Double getFocalLength() { + return focalLength; + } + + public void setFocalLength(@javax.annotation.Nullable Double focalLength) { + this.focalLength = focalLength; + } + + + public BaseItemDto imageOrientation(@javax.annotation.Nullable ImageOrientation imageOrientation) { + this.imageOrientation = imageOrientation; + return this; + } + + /** + * Get imageOrientation + * @return imageOrientation + */ + @javax.annotation.Nullable + public ImageOrientation getImageOrientation() { + return imageOrientation; + } + + public void setImageOrientation(@javax.annotation.Nullable ImageOrientation imageOrientation) { + this.imageOrientation = imageOrientation; + } + + + public BaseItemDto aperture(@javax.annotation.Nullable Double aperture) { + this.aperture = aperture; + return this; + } + + /** + * Get aperture + * @return aperture + */ + @javax.annotation.Nullable + public Double getAperture() { + return aperture; + } + + public void setAperture(@javax.annotation.Nullable Double aperture) { + this.aperture = aperture; + } + + + public BaseItemDto shutterSpeed(@javax.annotation.Nullable Double shutterSpeed) { + this.shutterSpeed = shutterSpeed; + return this; + } + + /** + * Get shutterSpeed + * @return shutterSpeed + */ + @javax.annotation.Nullable + public Double getShutterSpeed() { + return shutterSpeed; + } + + public void setShutterSpeed(@javax.annotation.Nullable Double shutterSpeed) { + this.shutterSpeed = shutterSpeed; + } + + + public BaseItemDto latitude(@javax.annotation.Nullable Double latitude) { + this.latitude = latitude; + return this; + } + + /** + * Get latitude + * @return latitude + */ + @javax.annotation.Nullable + public Double getLatitude() { + return latitude; + } + + public void setLatitude(@javax.annotation.Nullable Double latitude) { + this.latitude = latitude; + } + + + public BaseItemDto longitude(@javax.annotation.Nullable Double longitude) { + this.longitude = longitude; + return this; + } + + /** + * Get longitude + * @return longitude + */ + @javax.annotation.Nullable + public Double getLongitude() { + return longitude; + } + + public void setLongitude(@javax.annotation.Nullable Double longitude) { + this.longitude = longitude; + } + + + public BaseItemDto altitude(@javax.annotation.Nullable Double altitude) { + this.altitude = altitude; + return this; + } + + /** + * Get altitude + * @return altitude + */ + @javax.annotation.Nullable + public Double getAltitude() { + return altitude; + } + + public void setAltitude(@javax.annotation.Nullable Double altitude) { + this.altitude = altitude; + } + + + public BaseItemDto isoSpeedRating(@javax.annotation.Nullable Integer isoSpeedRating) { + this.isoSpeedRating = isoSpeedRating; + return this; + } + + /** + * Get isoSpeedRating + * @return isoSpeedRating + */ + @javax.annotation.Nullable + public Integer getIsoSpeedRating() { + return isoSpeedRating; + } + + public void setIsoSpeedRating(@javax.annotation.Nullable Integer isoSpeedRating) { + this.isoSpeedRating = isoSpeedRating; + } + + + public BaseItemDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets the series timer identifier. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public BaseItemDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public BaseItemDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Gets or sets the channel primary image tag. + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public BaseItemDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public BaseItemDto completionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + return this; + } + + /** + * Gets or sets the completion percentage. + * @return completionPercentage + */ + @javax.annotation.Nullable + public Double getCompletionPercentage() { + return completionPercentage; + } + + public void setCompletionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + } + + + public BaseItemDto isRepeat(@javax.annotation.Nullable Boolean isRepeat) { + this.isRepeat = isRepeat; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is repeat. + * @return isRepeat + */ + @javax.annotation.Nullable + public Boolean getIsRepeat() { + return isRepeat; + } + + public void setIsRepeat(@javax.annotation.Nullable Boolean isRepeat) { + this.isRepeat = isRepeat; + } + + + public BaseItemDto episodeTitle(@javax.annotation.Nullable String episodeTitle) { + this.episodeTitle = episodeTitle; + return this; + } + + /** + * Gets or sets the episode title. + * @return episodeTitle + */ + @javax.annotation.Nullable + public String getEpisodeTitle() { + return episodeTitle; + } + + public void setEpisodeTitle(@javax.annotation.Nullable String episodeTitle) { + this.episodeTitle = episodeTitle; + } + + + public BaseItemDto channelType(@javax.annotation.Nullable ChannelType channelType) { + this.channelType = channelType; + return this; + } + + /** + * Gets or sets the type of the channel. + * @return channelType + */ + @javax.annotation.Nullable + public ChannelType getChannelType() { + return channelType; + } + + public void setChannelType(@javax.annotation.Nullable ChannelType channelType) { + this.channelType = channelType; + } + + + public BaseItemDto audio(@javax.annotation.Nullable ProgramAudio audio) { + this.audio = audio; + return this; + } + + /** + * Gets or sets the audio. + * @return audio + */ + @javax.annotation.Nullable + public ProgramAudio getAudio() { + return audio; + } + + public void setAudio(@javax.annotation.Nullable ProgramAudio audio) { + this.audio = audio; + } + + + public BaseItemDto isMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is movie. + * @return isMovie + */ + @javax.annotation.Nullable + public Boolean getIsMovie() { + return isMovie; + } + + public void setIsMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + } + + + public BaseItemDto isSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is sports. + * @return isSports + */ + @javax.annotation.Nullable + public Boolean getIsSports() { + return isSports; + } + + public void setIsSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + } + + + public BaseItemDto isSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is series. + * @return isSeries + */ + @javax.annotation.Nullable + public Boolean getIsSeries() { + return isSeries; + } + + public void setIsSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + } + + + public BaseItemDto isLive(@javax.annotation.Nullable Boolean isLive) { + this.isLive = isLive; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is live. + * @return isLive + */ + @javax.annotation.Nullable + public Boolean getIsLive() { + return isLive; + } + + public void setIsLive(@javax.annotation.Nullable Boolean isLive) { + this.isLive = isLive; + } + + + public BaseItemDto isNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is news. + * @return isNews + */ + @javax.annotation.Nullable + public Boolean getIsNews() { + return isNews; + } + + public void setIsNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + } + + + public BaseItemDto isKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is kids. + * @return isKids + */ + @javax.annotation.Nullable + public Boolean getIsKids() { + return isKids; + } + + public void setIsKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + } + + + public BaseItemDto isPremiere(@javax.annotation.Nullable Boolean isPremiere) { + this.isPremiere = isPremiere; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is premiere. + * @return isPremiere + */ + @javax.annotation.Nullable + public Boolean getIsPremiere() { + return isPremiere; + } + + public void setIsPremiere(@javax.annotation.Nullable Boolean isPremiere) { + this.isPremiere = isPremiere; + } + + + public BaseItemDto timerId(@javax.annotation.Nullable String timerId) { + this.timerId = timerId; + return this; + } + + /** + * Gets or sets the timer identifier. + * @return timerId + */ + @javax.annotation.Nullable + public String getTimerId() { + return timerId; + } + + public void setTimerId(@javax.annotation.Nullable String timerId) { + this.timerId = timerId; + } + + + public BaseItemDto normalizationGain(@javax.annotation.Nullable Float normalizationGain) { + this.normalizationGain = normalizationGain; + return this; + } + + /** + * Gets or sets the gain required for audio normalization. + * @return normalizationGain + */ + @javax.annotation.Nullable + public Float getNormalizationGain() { + return normalizationGain; + } + + public void setNormalizationGain(@javax.annotation.Nullable Float normalizationGain) { + this.normalizationGain = normalizationGain; + } + + + public BaseItemDto currentProgram(@javax.annotation.Nullable BaseItemDto currentProgram) { + this.currentProgram = currentProgram; + return this; + } + + /** + * Gets or sets the current program. + * @return currentProgram + */ + @javax.annotation.Nullable + public BaseItemDto getCurrentProgram() { + return currentProgram; + } + + public void setCurrentProgram(@javax.annotation.Nullable BaseItemDto currentProgram) { + this.currentProgram = currentProgram; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDto baseItemDto = (BaseItemDto) o; + return Objects.equals(this.name, baseItemDto.name) && + Objects.equals(this.originalTitle, baseItemDto.originalTitle) && + Objects.equals(this.serverId, baseItemDto.serverId) && + Objects.equals(this.id, baseItemDto.id) && + Objects.equals(this.etag, baseItemDto.etag) && + Objects.equals(this.sourceType, baseItemDto.sourceType) && + Objects.equals(this.playlistItemId, baseItemDto.playlistItemId) && + Objects.equals(this.dateCreated, baseItemDto.dateCreated) && + Objects.equals(this.dateLastMediaAdded, baseItemDto.dateLastMediaAdded) && + Objects.equals(this.extraType, baseItemDto.extraType) && + Objects.equals(this.airsBeforeSeasonNumber, baseItemDto.airsBeforeSeasonNumber) && + Objects.equals(this.airsAfterSeasonNumber, baseItemDto.airsAfterSeasonNumber) && + Objects.equals(this.airsBeforeEpisodeNumber, baseItemDto.airsBeforeEpisodeNumber) && + Objects.equals(this.canDelete, baseItemDto.canDelete) && + Objects.equals(this.canDownload, baseItemDto.canDownload) && + Objects.equals(this.hasLyrics, baseItemDto.hasLyrics) && + Objects.equals(this.hasSubtitles, baseItemDto.hasSubtitles) && + Objects.equals(this.preferredMetadataLanguage, baseItemDto.preferredMetadataLanguage) && + Objects.equals(this.preferredMetadataCountryCode, baseItemDto.preferredMetadataCountryCode) && + Objects.equals(this.container, baseItemDto.container) && + Objects.equals(this.sortName, baseItemDto.sortName) && + Objects.equals(this.forcedSortName, baseItemDto.forcedSortName) && + Objects.equals(this.video3DFormat, baseItemDto.video3DFormat) && + Objects.equals(this.premiereDate, baseItemDto.premiereDate) && + Objects.equals(this.externalUrls, baseItemDto.externalUrls) && + Objects.equals(this.mediaSources, baseItemDto.mediaSources) && + Objects.equals(this.criticRating, baseItemDto.criticRating) && + Objects.equals(this.productionLocations, baseItemDto.productionLocations) && + Objects.equals(this.path, baseItemDto.path) && + Objects.equals(this.enableMediaSourceDisplay, baseItemDto.enableMediaSourceDisplay) && + Objects.equals(this.officialRating, baseItemDto.officialRating) && + Objects.equals(this.customRating, baseItemDto.customRating) && + Objects.equals(this.channelId, baseItemDto.channelId) && + Objects.equals(this.channelName, baseItemDto.channelName) && + Objects.equals(this.overview, baseItemDto.overview) && + Objects.equals(this.taglines, baseItemDto.taglines) && + Objects.equals(this.genres, baseItemDto.genres) && + Objects.equals(this.communityRating, baseItemDto.communityRating) && + Objects.equals(this.cumulativeRunTimeTicks, baseItemDto.cumulativeRunTimeTicks) && + Objects.equals(this.runTimeTicks, baseItemDto.runTimeTicks) && + Objects.equals(this.playAccess, baseItemDto.playAccess) && + Objects.equals(this.aspectRatio, baseItemDto.aspectRatio) && + Objects.equals(this.productionYear, baseItemDto.productionYear) && + Objects.equals(this.isPlaceHolder, baseItemDto.isPlaceHolder) && + Objects.equals(this.number, baseItemDto.number) && + Objects.equals(this.channelNumber, baseItemDto.channelNumber) && + Objects.equals(this.indexNumber, baseItemDto.indexNumber) && + Objects.equals(this.indexNumberEnd, baseItemDto.indexNumberEnd) && + Objects.equals(this.parentIndexNumber, baseItemDto.parentIndexNumber) && + Objects.equals(this.remoteTrailers, baseItemDto.remoteTrailers) && + Objects.equals(this.providerIds, baseItemDto.providerIds) && + Objects.equals(this.isHD, baseItemDto.isHD) && + Objects.equals(this.isFolder, baseItemDto.isFolder) && + Objects.equals(this.parentId, baseItemDto.parentId) && + Objects.equals(this.type, baseItemDto.type) && + Objects.equals(this.people, baseItemDto.people) && + Objects.equals(this.studios, baseItemDto.studios) && + Objects.equals(this.genreItems, baseItemDto.genreItems) && + Objects.equals(this.parentLogoItemId, baseItemDto.parentLogoItemId) && + Objects.equals(this.parentBackdropItemId, baseItemDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, baseItemDto.parentBackdropImageTags) && + Objects.equals(this.localTrailerCount, baseItemDto.localTrailerCount) && + Objects.equals(this.userData, baseItemDto.userData) && + Objects.equals(this.recursiveItemCount, baseItemDto.recursiveItemCount) && + Objects.equals(this.childCount, baseItemDto.childCount) && + Objects.equals(this.seriesName, baseItemDto.seriesName) && + Objects.equals(this.seriesId, baseItemDto.seriesId) && + Objects.equals(this.seasonId, baseItemDto.seasonId) && + Objects.equals(this.specialFeatureCount, baseItemDto.specialFeatureCount) && + Objects.equals(this.displayPreferencesId, baseItemDto.displayPreferencesId) && + Objects.equals(this.status, baseItemDto.status) && + Objects.equals(this.airTime, baseItemDto.airTime) && + Objects.equals(this.airDays, baseItemDto.airDays) && + Objects.equals(this.tags, baseItemDto.tags) && + Objects.equals(this.primaryImageAspectRatio, baseItemDto.primaryImageAspectRatio) && + Objects.equals(this.artists, baseItemDto.artists) && + Objects.equals(this.artistItems, baseItemDto.artistItems) && + Objects.equals(this.album, baseItemDto.album) && + Objects.equals(this.collectionType, baseItemDto.collectionType) && + Objects.equals(this.displayOrder, baseItemDto.displayOrder) && + Objects.equals(this.albumId, baseItemDto.albumId) && + Objects.equals(this.albumPrimaryImageTag, baseItemDto.albumPrimaryImageTag) && + Objects.equals(this.seriesPrimaryImageTag, baseItemDto.seriesPrimaryImageTag) && + Objects.equals(this.albumArtist, baseItemDto.albumArtist) && + Objects.equals(this.albumArtists, baseItemDto.albumArtists) && + Objects.equals(this.seasonName, baseItemDto.seasonName) && + Objects.equals(this.mediaStreams, baseItemDto.mediaStreams) && + Objects.equals(this.videoType, baseItemDto.videoType) && + Objects.equals(this.partCount, baseItemDto.partCount) && + Objects.equals(this.mediaSourceCount, baseItemDto.mediaSourceCount) && + Objects.equals(this.imageTags, baseItemDto.imageTags) && + Objects.equals(this.backdropImageTags, baseItemDto.backdropImageTags) && + Objects.equals(this.screenshotImageTags, baseItemDto.screenshotImageTags) && + Objects.equals(this.parentLogoImageTag, baseItemDto.parentLogoImageTag) && + Objects.equals(this.parentArtItemId, baseItemDto.parentArtItemId) && + Objects.equals(this.parentArtImageTag, baseItemDto.parentArtImageTag) && + Objects.equals(this.seriesThumbImageTag, baseItemDto.seriesThumbImageTag) && + Objects.equals(this.imageBlurHashes, baseItemDto.imageBlurHashes) && + Objects.equals(this.seriesStudio, baseItemDto.seriesStudio) && + Objects.equals(this.parentThumbItemId, baseItemDto.parentThumbItemId) && + Objects.equals(this.parentThumbImageTag, baseItemDto.parentThumbImageTag) && + Objects.equals(this.parentPrimaryImageItemId, baseItemDto.parentPrimaryImageItemId) && + Objects.equals(this.parentPrimaryImageTag, baseItemDto.parentPrimaryImageTag) && + Objects.equals(this.chapters, baseItemDto.chapters) && + Objects.equals(this.trickplay, baseItemDto.trickplay) && + Objects.equals(this.locationType, baseItemDto.locationType) && + Objects.equals(this.isoType, baseItemDto.isoType) && + Objects.equals(this.mediaType, baseItemDto.mediaType) && + Objects.equals(this.endDate, baseItemDto.endDate) && + Objects.equals(this.lockedFields, baseItemDto.lockedFields) && + Objects.equals(this.trailerCount, baseItemDto.trailerCount) && + Objects.equals(this.movieCount, baseItemDto.movieCount) && + Objects.equals(this.seriesCount, baseItemDto.seriesCount) && + Objects.equals(this.programCount, baseItemDto.programCount) && + Objects.equals(this.episodeCount, baseItemDto.episodeCount) && + Objects.equals(this.songCount, baseItemDto.songCount) && + Objects.equals(this.albumCount, baseItemDto.albumCount) && + Objects.equals(this.artistCount, baseItemDto.artistCount) && + Objects.equals(this.musicVideoCount, baseItemDto.musicVideoCount) && + Objects.equals(this.lockData, baseItemDto.lockData) && + Objects.equals(this.width, baseItemDto.width) && + Objects.equals(this.height, baseItemDto.height) && + Objects.equals(this.cameraMake, baseItemDto.cameraMake) && + Objects.equals(this.cameraModel, baseItemDto.cameraModel) && + Objects.equals(this.software, baseItemDto.software) && + Objects.equals(this.exposureTime, baseItemDto.exposureTime) && + Objects.equals(this.focalLength, baseItemDto.focalLength) && + Objects.equals(this.imageOrientation, baseItemDto.imageOrientation) && + Objects.equals(this.aperture, baseItemDto.aperture) && + Objects.equals(this.shutterSpeed, baseItemDto.shutterSpeed) && + Objects.equals(this.latitude, baseItemDto.latitude) && + Objects.equals(this.longitude, baseItemDto.longitude) && + Objects.equals(this.altitude, baseItemDto.altitude) && + Objects.equals(this.isoSpeedRating, baseItemDto.isoSpeedRating) && + Objects.equals(this.seriesTimerId, baseItemDto.seriesTimerId) && + Objects.equals(this.programId, baseItemDto.programId) && + Objects.equals(this.channelPrimaryImageTag, baseItemDto.channelPrimaryImageTag) && + Objects.equals(this.startDate, baseItemDto.startDate) && + Objects.equals(this.completionPercentage, baseItemDto.completionPercentage) && + Objects.equals(this.isRepeat, baseItemDto.isRepeat) && + Objects.equals(this.episodeTitle, baseItemDto.episodeTitle) && + Objects.equals(this.channelType, baseItemDto.channelType) && + Objects.equals(this.audio, baseItemDto.audio) && + Objects.equals(this.isMovie, baseItemDto.isMovie) && + Objects.equals(this.isSports, baseItemDto.isSports) && + Objects.equals(this.isSeries, baseItemDto.isSeries) && + Objects.equals(this.isLive, baseItemDto.isLive) && + Objects.equals(this.isNews, baseItemDto.isNews) && + Objects.equals(this.isKids, baseItemDto.isKids) && + Objects.equals(this.isPremiere, baseItemDto.isPremiere) && + Objects.equals(this.timerId, baseItemDto.timerId) && + Objects.equals(this.normalizationGain, baseItemDto.normalizationGain) && + Objects.equals(this.currentProgram, baseItemDto.currentProgram); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, serverId, id, etag, sourceType, playlistItemId, dateCreated, dateLastMediaAdded, extraType, airsBeforeSeasonNumber, airsAfterSeasonNumber, airsBeforeEpisodeNumber, canDelete, canDownload, hasLyrics, hasSubtitles, preferredMetadataLanguage, preferredMetadataCountryCode, container, sortName, forcedSortName, video3DFormat, premiereDate, externalUrls, mediaSources, criticRating, productionLocations, path, enableMediaSourceDisplay, officialRating, customRating, channelId, channelName, overview, taglines, genres, communityRating, cumulativeRunTimeTicks, runTimeTicks, playAccess, aspectRatio, productionYear, isPlaceHolder, number, channelNumber, indexNumber, indexNumberEnd, parentIndexNumber, remoteTrailers, providerIds, isHD, isFolder, parentId, type, people, studios, genreItems, parentLogoItemId, parentBackdropItemId, parentBackdropImageTags, localTrailerCount, userData, recursiveItemCount, childCount, seriesName, seriesId, seasonId, specialFeatureCount, displayPreferencesId, status, airTime, airDays, tags, primaryImageAspectRatio, artists, artistItems, album, collectionType, displayOrder, albumId, albumPrimaryImageTag, seriesPrimaryImageTag, albumArtist, albumArtists, seasonName, mediaStreams, videoType, partCount, mediaSourceCount, imageTags, backdropImageTags, screenshotImageTags, parentLogoImageTag, parentArtItemId, parentArtImageTag, seriesThumbImageTag, imageBlurHashes, seriesStudio, parentThumbItemId, parentThumbImageTag, parentPrimaryImageItemId, parentPrimaryImageTag, chapters, trickplay, locationType, isoType, mediaType, endDate, lockedFields, trailerCount, movieCount, seriesCount, programCount, episodeCount, songCount, albumCount, artistCount, musicVideoCount, lockData, width, height, cameraMake, cameraModel, software, exposureTime, focalLength, imageOrientation, aperture, shutterSpeed, latitude, longitude, altitude, isoSpeedRating, seriesTimerId, programId, channelPrimaryImageTag, startDate, completionPercentage, isRepeat, episodeTitle, channelType, audio, isMovie, isSports, isSeries, isLive, isNews, isKids, isPremiere, timerId, normalizationGain, currentProgram); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" etag: ").append(toIndentedString(etag)).append("\n"); + sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateLastMediaAdded: ").append(toIndentedString(dateLastMediaAdded)).append("\n"); + sb.append(" extraType: ").append(toIndentedString(extraType)).append("\n"); + sb.append(" airsBeforeSeasonNumber: ").append(toIndentedString(airsBeforeSeasonNumber)).append("\n"); + sb.append(" airsAfterSeasonNumber: ").append(toIndentedString(airsAfterSeasonNumber)).append("\n"); + sb.append(" airsBeforeEpisodeNumber: ").append(toIndentedString(airsBeforeEpisodeNumber)).append("\n"); + sb.append(" canDelete: ").append(toIndentedString(canDelete)).append("\n"); + sb.append(" canDownload: ").append(toIndentedString(canDownload)).append("\n"); + sb.append(" hasLyrics: ").append(toIndentedString(hasLyrics)).append("\n"); + sb.append(" hasSubtitles: ").append(toIndentedString(hasSubtitles)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" preferredMetadataCountryCode: ").append(toIndentedString(preferredMetadataCountryCode)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" sortName: ").append(toIndentedString(sortName)).append("\n"); + sb.append(" forcedSortName: ").append(toIndentedString(forcedSortName)).append("\n"); + sb.append(" video3DFormat: ").append(toIndentedString(video3DFormat)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" externalUrls: ").append(toIndentedString(externalUrls)).append("\n"); + sb.append(" mediaSources: ").append(toIndentedString(mediaSources)).append("\n"); + sb.append(" criticRating: ").append(toIndentedString(criticRating)).append("\n"); + sb.append(" productionLocations: ").append(toIndentedString(productionLocations)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" enableMediaSourceDisplay: ").append(toIndentedString(enableMediaSourceDisplay)).append("\n"); + sb.append(" officialRating: ").append(toIndentedString(officialRating)).append("\n"); + sb.append(" customRating: ").append(toIndentedString(customRating)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" taglines: ").append(toIndentedString(taglines)).append("\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" cumulativeRunTimeTicks: ").append(toIndentedString(cumulativeRunTimeTicks)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" playAccess: ").append(toIndentedString(playAccess)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" isPlaceHolder: ").append(toIndentedString(isPlaceHolder)).append("\n"); + sb.append(" number: ").append(toIndentedString(number)).append("\n"); + sb.append(" channelNumber: ").append(toIndentedString(channelNumber)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" indexNumberEnd: ").append(toIndentedString(indexNumberEnd)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" remoteTrailers: ").append(toIndentedString(remoteTrailers)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" isHD: ").append(toIndentedString(isHD)).append("\n"); + sb.append(" isFolder: ").append(toIndentedString(isFolder)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" people: ").append(toIndentedString(people)).append("\n"); + sb.append(" studios: ").append(toIndentedString(studios)).append("\n"); + sb.append(" genreItems: ").append(toIndentedString(genreItems)).append("\n"); + sb.append(" parentLogoItemId: ").append(toIndentedString(parentLogoItemId)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" localTrailerCount: ").append(toIndentedString(localTrailerCount)).append("\n"); + sb.append(" userData: ").append(toIndentedString(userData)).append("\n"); + sb.append(" recursiveItemCount: ").append(toIndentedString(recursiveItemCount)).append("\n"); + sb.append(" childCount: ").append(toIndentedString(childCount)).append("\n"); + sb.append(" seriesName: ").append(toIndentedString(seriesName)).append("\n"); + sb.append(" seriesId: ").append(toIndentedString(seriesId)).append("\n"); + sb.append(" seasonId: ").append(toIndentedString(seasonId)).append("\n"); + sb.append(" specialFeatureCount: ").append(toIndentedString(specialFeatureCount)).append("\n"); + sb.append(" displayPreferencesId: ").append(toIndentedString(displayPreferencesId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" airTime: ").append(toIndentedString(airTime)).append("\n"); + sb.append(" airDays: ").append(toIndentedString(airDays)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append(" artistItems: ").append(toIndentedString(artistItems)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" collectionType: ").append(toIndentedString(collectionType)).append("\n"); + sb.append(" displayOrder: ").append(toIndentedString(displayOrder)).append("\n"); + sb.append(" albumId: ").append(toIndentedString(albumId)).append("\n"); + sb.append(" albumPrimaryImageTag: ").append(toIndentedString(albumPrimaryImageTag)).append("\n"); + sb.append(" seriesPrimaryImageTag: ").append(toIndentedString(seriesPrimaryImageTag)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" seasonName: ").append(toIndentedString(seasonName)).append("\n"); + sb.append(" mediaStreams: ").append(toIndentedString(mediaStreams)).append("\n"); + sb.append(" videoType: ").append(toIndentedString(videoType)).append("\n"); + sb.append(" partCount: ").append(toIndentedString(partCount)).append("\n"); + sb.append(" mediaSourceCount: ").append(toIndentedString(mediaSourceCount)).append("\n"); + sb.append(" imageTags: ").append(toIndentedString(imageTags)).append("\n"); + sb.append(" backdropImageTags: ").append(toIndentedString(backdropImageTags)).append("\n"); + sb.append(" screenshotImageTags: ").append(toIndentedString(screenshotImageTags)).append("\n"); + sb.append(" parentLogoImageTag: ").append(toIndentedString(parentLogoImageTag)).append("\n"); + sb.append(" parentArtItemId: ").append(toIndentedString(parentArtItemId)).append("\n"); + sb.append(" parentArtImageTag: ").append(toIndentedString(parentArtImageTag)).append("\n"); + sb.append(" seriesThumbImageTag: ").append(toIndentedString(seriesThumbImageTag)).append("\n"); + sb.append(" imageBlurHashes: ").append(toIndentedString(imageBlurHashes)).append("\n"); + sb.append(" seriesStudio: ").append(toIndentedString(seriesStudio)).append("\n"); + sb.append(" parentThumbItemId: ").append(toIndentedString(parentThumbItemId)).append("\n"); + sb.append(" parentThumbImageTag: ").append(toIndentedString(parentThumbImageTag)).append("\n"); + sb.append(" parentPrimaryImageItemId: ").append(toIndentedString(parentPrimaryImageItemId)).append("\n"); + sb.append(" parentPrimaryImageTag: ").append(toIndentedString(parentPrimaryImageTag)).append("\n"); + sb.append(" chapters: ").append(toIndentedString(chapters)).append("\n"); + sb.append(" trickplay: ").append(toIndentedString(trickplay)).append("\n"); + sb.append(" locationType: ").append(toIndentedString(locationType)).append("\n"); + sb.append(" isoType: ").append(toIndentedString(isoType)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" lockedFields: ").append(toIndentedString(lockedFields)).append("\n"); + sb.append(" trailerCount: ").append(toIndentedString(trailerCount)).append("\n"); + sb.append(" movieCount: ").append(toIndentedString(movieCount)).append("\n"); + sb.append(" seriesCount: ").append(toIndentedString(seriesCount)).append("\n"); + sb.append(" programCount: ").append(toIndentedString(programCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" albumCount: ").append(toIndentedString(albumCount)).append("\n"); + sb.append(" artistCount: ").append(toIndentedString(artistCount)).append("\n"); + sb.append(" musicVideoCount: ").append(toIndentedString(musicVideoCount)).append("\n"); + sb.append(" lockData: ").append(toIndentedString(lockData)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" cameraMake: ").append(toIndentedString(cameraMake)).append("\n"); + sb.append(" cameraModel: ").append(toIndentedString(cameraModel)).append("\n"); + sb.append(" software: ").append(toIndentedString(software)).append("\n"); + sb.append(" exposureTime: ").append(toIndentedString(exposureTime)).append("\n"); + sb.append(" focalLength: ").append(toIndentedString(focalLength)).append("\n"); + sb.append(" imageOrientation: ").append(toIndentedString(imageOrientation)).append("\n"); + sb.append(" aperture: ").append(toIndentedString(aperture)).append("\n"); + sb.append(" shutterSpeed: ").append(toIndentedString(shutterSpeed)).append("\n"); + sb.append(" latitude: ").append(toIndentedString(latitude)).append("\n"); + sb.append(" longitude: ").append(toIndentedString(longitude)).append("\n"); + sb.append(" altitude: ").append(toIndentedString(altitude)).append("\n"); + sb.append(" isoSpeedRating: ").append(toIndentedString(isoSpeedRating)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" completionPercentage: ").append(toIndentedString(completionPercentage)).append("\n"); + sb.append(" isRepeat: ").append(toIndentedString(isRepeat)).append("\n"); + sb.append(" episodeTitle: ").append(toIndentedString(episodeTitle)).append("\n"); + sb.append(" channelType: ").append(toIndentedString(channelType)).append("\n"); + sb.append(" audio: ").append(toIndentedString(audio)).append("\n"); + sb.append(" isMovie: ").append(toIndentedString(isMovie)).append("\n"); + sb.append(" isSports: ").append(toIndentedString(isSports)).append("\n"); + sb.append(" isSeries: ").append(toIndentedString(isSeries)).append("\n"); + sb.append(" isLive: ").append(toIndentedString(isLive)).append("\n"); + sb.append(" isNews: ").append(toIndentedString(isNews)).append("\n"); + sb.append(" isKids: ").append(toIndentedString(isKids)).append("\n"); + sb.append(" isPremiere: ").append(toIndentedString(isPremiere)).append("\n"); + sb.append(" timerId: ").append(toIndentedString(timerId)).append("\n"); + sb.append(" normalizationGain: ").append(toIndentedString(normalizationGain)).append("\n"); + sb.append(" currentProgram: ").append(toIndentedString(currentProgram)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("ServerId"); + openapiFields.add("Id"); + openapiFields.add("Etag"); + openapiFields.add("SourceType"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("DateCreated"); + openapiFields.add("DateLastMediaAdded"); + openapiFields.add("ExtraType"); + openapiFields.add("AirsBeforeSeasonNumber"); + openapiFields.add("AirsAfterSeasonNumber"); + openapiFields.add("AirsBeforeEpisodeNumber"); + openapiFields.add("CanDelete"); + openapiFields.add("CanDownload"); + openapiFields.add("HasLyrics"); + openapiFields.add("HasSubtitles"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("PreferredMetadataCountryCode"); + openapiFields.add("Container"); + openapiFields.add("SortName"); + openapiFields.add("ForcedSortName"); + openapiFields.add("Video3DFormat"); + openapiFields.add("PremiereDate"); + openapiFields.add("ExternalUrls"); + openapiFields.add("MediaSources"); + openapiFields.add("CriticRating"); + openapiFields.add("ProductionLocations"); + openapiFields.add("Path"); + openapiFields.add("EnableMediaSourceDisplay"); + openapiFields.add("OfficialRating"); + openapiFields.add("CustomRating"); + openapiFields.add("ChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("Overview"); + openapiFields.add("Taglines"); + openapiFields.add("Genres"); + openapiFields.add("CommunityRating"); + openapiFields.add("CumulativeRunTimeTicks"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("PlayAccess"); + openapiFields.add("AspectRatio"); + openapiFields.add("ProductionYear"); + openapiFields.add("IsPlaceHolder"); + openapiFields.add("Number"); + openapiFields.add("ChannelNumber"); + openapiFields.add("IndexNumber"); + openapiFields.add("IndexNumberEnd"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("RemoteTrailers"); + openapiFields.add("ProviderIds"); + openapiFields.add("IsHD"); + openapiFields.add("IsFolder"); + openapiFields.add("ParentId"); + openapiFields.add("Type"); + openapiFields.add("People"); + openapiFields.add("Studios"); + openapiFields.add("GenreItems"); + openapiFields.add("ParentLogoItemId"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("LocalTrailerCount"); + openapiFields.add("UserData"); + openapiFields.add("RecursiveItemCount"); + openapiFields.add("ChildCount"); + openapiFields.add("SeriesName"); + openapiFields.add("SeriesId"); + openapiFields.add("SeasonId"); + openapiFields.add("SpecialFeatureCount"); + openapiFields.add("DisplayPreferencesId"); + openapiFields.add("Status"); + openapiFields.add("AirTime"); + openapiFields.add("AirDays"); + openapiFields.add("Tags"); + openapiFields.add("PrimaryImageAspectRatio"); + openapiFields.add("Artists"); + openapiFields.add("ArtistItems"); + openapiFields.add("Album"); + openapiFields.add("CollectionType"); + openapiFields.add("DisplayOrder"); + openapiFields.add("AlbumId"); + openapiFields.add("AlbumPrimaryImageTag"); + openapiFields.add("SeriesPrimaryImageTag"); + openapiFields.add("AlbumArtist"); + openapiFields.add("AlbumArtists"); + openapiFields.add("SeasonName"); + openapiFields.add("MediaStreams"); + openapiFields.add("VideoType"); + openapiFields.add("PartCount"); + openapiFields.add("MediaSourceCount"); + openapiFields.add("ImageTags"); + openapiFields.add("BackdropImageTags"); + openapiFields.add("ScreenshotImageTags"); + openapiFields.add("ParentLogoImageTag"); + openapiFields.add("ParentArtItemId"); + openapiFields.add("ParentArtImageTag"); + openapiFields.add("SeriesThumbImageTag"); + openapiFields.add("ImageBlurHashes"); + openapiFields.add("SeriesStudio"); + openapiFields.add("ParentThumbItemId"); + openapiFields.add("ParentThumbImageTag"); + openapiFields.add("ParentPrimaryImageItemId"); + openapiFields.add("ParentPrimaryImageTag"); + openapiFields.add("Chapters"); + openapiFields.add("Trickplay"); + openapiFields.add("LocationType"); + openapiFields.add("IsoType"); + openapiFields.add("MediaType"); + openapiFields.add("EndDate"); + openapiFields.add("LockedFields"); + openapiFields.add("TrailerCount"); + openapiFields.add("MovieCount"); + openapiFields.add("SeriesCount"); + openapiFields.add("ProgramCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("SongCount"); + openapiFields.add("AlbumCount"); + openapiFields.add("ArtistCount"); + openapiFields.add("MusicVideoCount"); + openapiFields.add("LockData"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("CameraMake"); + openapiFields.add("CameraModel"); + openapiFields.add("Software"); + openapiFields.add("ExposureTime"); + openapiFields.add("FocalLength"); + openapiFields.add("ImageOrientation"); + openapiFields.add("Aperture"); + openapiFields.add("ShutterSpeed"); + openapiFields.add("Latitude"); + openapiFields.add("Longitude"); + openapiFields.add("Altitude"); + openapiFields.add("IsoSpeedRating"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("ProgramId"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("StartDate"); + openapiFields.add("CompletionPercentage"); + openapiFields.add("IsRepeat"); + openapiFields.add("EpisodeTitle"); + openapiFields.add("ChannelType"); + openapiFields.add("Audio"); + openapiFields.add("IsMovie"); + openapiFields.add("IsSports"); + openapiFields.add("IsSeries"); + openapiFields.add("IsLive"); + openapiFields.add("IsNews"); + openapiFields.add("IsKids"); + openapiFields.add("IsPremiere"); + openapiFields.add("TimerId"); + openapiFields.add("NormalizationGain"); + openapiFields.add("CurrentProgram"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDto is not found in the empty JSON string", BaseItemDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Etag") != null && !jsonObj.get("Etag").isJsonNull()) && !jsonObj.get("Etag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Etag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Etag").toString())); + } + if ((jsonObj.get("SourceType") != null && !jsonObj.get("SourceType").isJsonNull()) && !jsonObj.get("SourceType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SourceType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SourceType").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + // validate the optional field `ExtraType` + if (jsonObj.get("ExtraType") != null && !jsonObj.get("ExtraType").isJsonNull()) { + ExtraType.validateJsonElement(jsonObj.get("ExtraType")); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("PreferredMetadataCountryCode") != null && !jsonObj.get("PreferredMetadataCountryCode").isJsonNull()) && !jsonObj.get("PreferredMetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataCountryCode").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("SortName") != null && !jsonObj.get("SortName").isJsonNull()) && !jsonObj.get("SortName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SortName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SortName").toString())); + } + if ((jsonObj.get("ForcedSortName") != null && !jsonObj.get("ForcedSortName").isJsonNull()) && !jsonObj.get("ForcedSortName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ForcedSortName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ForcedSortName").toString())); + } + // validate the optional field `Video3DFormat` + if (jsonObj.get("Video3DFormat") != null && !jsonObj.get("Video3DFormat").isJsonNull()) { + Video3DFormat.validateJsonElement(jsonObj.get("Video3DFormat")); + } + if (jsonObj.get("ExternalUrls") != null && !jsonObj.get("ExternalUrls").isJsonNull()) { + JsonArray jsonArrayexternalUrls = jsonObj.getAsJsonArray("ExternalUrls"); + if (jsonArrayexternalUrls != null) { + // ensure the json data is an array + if (!jsonObj.get("ExternalUrls").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalUrls` to be an array in the JSON string but got `%s`", jsonObj.get("ExternalUrls").toString())); + } + + // validate the optional field `ExternalUrls` (array) + for (int i = 0; i < jsonArrayexternalUrls.size(); i++) { + ExternalUrl.validateJsonElement(jsonArrayexternalUrls.get(i)); + }; + } + } + if (jsonObj.get("MediaSources") != null && !jsonObj.get("MediaSources").isJsonNull()) { + JsonArray jsonArraymediaSources = jsonObj.getAsJsonArray("MediaSources"); + if (jsonArraymediaSources != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaSources").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSources` to be an array in the JSON string but got `%s`", jsonObj.get("MediaSources").toString())); + } + + // validate the optional field `MediaSources` (array) + for (int i = 0; i < jsonArraymediaSources.size(); i++) { + MediaSourceInfo.validateJsonElement(jsonArraymediaSources.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("ProductionLocations") != null && !jsonObj.get("ProductionLocations").isJsonNull() && !jsonObj.get("ProductionLocations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductionLocations` to be an array in the JSON string but got `%s`", jsonObj.get("ProductionLocations").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("OfficialRating") != null && !jsonObj.get("OfficialRating").isJsonNull()) && !jsonObj.get("OfficialRating").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OfficialRating` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OfficialRating").toString())); + } + if ((jsonObj.get("CustomRating") != null && !jsonObj.get("CustomRating").isJsonNull()) && !jsonObj.get("CustomRating").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomRating` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomRating").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Taglines") != null && !jsonObj.get("Taglines").isJsonNull() && !jsonObj.get("Taglines").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Taglines` to be an array in the JSON string but got `%s`", jsonObj.get("Taglines").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // validate the optional field `PlayAccess` + if (jsonObj.get("PlayAccess") != null && !jsonObj.get("PlayAccess").isJsonNull()) { + PlayAccess.validateJsonElement(jsonObj.get("PlayAccess")); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + if ((jsonObj.get("Number") != null && !jsonObj.get("Number").isJsonNull()) && !jsonObj.get("Number").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Number` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Number").toString())); + } + if ((jsonObj.get("ChannelNumber") != null && !jsonObj.get("ChannelNumber").isJsonNull()) && !jsonObj.get("ChannelNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelNumber").toString())); + } + if (jsonObj.get("RemoteTrailers") != null && !jsonObj.get("RemoteTrailers").isJsonNull()) { + JsonArray jsonArrayremoteTrailers = jsonObj.getAsJsonArray("RemoteTrailers"); + if (jsonArrayremoteTrailers != null) { + // ensure the json data is an array + if (!jsonObj.get("RemoteTrailers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteTrailers` to be an array in the JSON string but got `%s`", jsonObj.get("RemoteTrailers").toString())); + } + + // validate the optional field `RemoteTrailers` (array) + for (int i = 0; i < jsonArrayremoteTrailers.size(); i++) { + MediaUrl.validateJsonElement(jsonArrayremoteTrailers.get(i)); + }; + } + } + if ((jsonObj.get("ParentId") != null && !jsonObj.get("ParentId").isJsonNull()) && !jsonObj.get("ParentId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + BaseItemKind.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("People") != null && !jsonObj.get("People").isJsonNull()) { + JsonArray jsonArraypeople = jsonObj.getAsJsonArray("People"); + if (jsonArraypeople != null) { + // ensure the json data is an array + if (!jsonObj.get("People").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `People` to be an array in the JSON string but got `%s`", jsonObj.get("People").toString())); + } + + // validate the optional field `People` (array) + for (int i = 0; i < jsonArraypeople.size(); i++) { + BaseItemPerson.validateJsonElement(jsonArraypeople.get(i)); + }; + } + } + if (jsonObj.get("Studios") != null && !jsonObj.get("Studios").isJsonNull()) { + JsonArray jsonArraystudios = jsonObj.getAsJsonArray("Studios"); + if (jsonArraystudios != null) { + // ensure the json data is an array + if (!jsonObj.get("Studios").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Studios` to be an array in the JSON string but got `%s`", jsonObj.get("Studios").toString())); + } + + // validate the optional field `Studios` (array) + for (int i = 0; i < jsonArraystudios.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraystudios.get(i)); + }; + } + } + if (jsonObj.get("GenreItems") != null && !jsonObj.get("GenreItems").isJsonNull()) { + JsonArray jsonArraygenreItems = jsonObj.getAsJsonArray("GenreItems"); + if (jsonArraygenreItems != null) { + // ensure the json data is an array + if (!jsonObj.get("GenreItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GenreItems` to be an array in the JSON string but got `%s`", jsonObj.get("GenreItems").toString())); + } + + // validate the optional field `GenreItems` (array) + for (int i = 0; i < jsonArraygenreItems.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraygenreItems.get(i)); + }; + } + } + if ((jsonObj.get("ParentLogoItemId") != null && !jsonObj.get("ParentLogoItemId").isJsonNull()) && !jsonObj.get("ParentLogoItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentLogoItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentLogoItemId").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `UserData` + if (jsonObj.get("UserData") != null && !jsonObj.get("UserData").isJsonNull()) { + UserItemDataDto.validateJsonElement(jsonObj.get("UserData")); + } + if ((jsonObj.get("SeriesName") != null && !jsonObj.get("SeriesName").isJsonNull()) && !jsonObj.get("SeriesName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesName").toString())); + } + if ((jsonObj.get("SeriesId") != null && !jsonObj.get("SeriesId").isJsonNull()) && !jsonObj.get("SeriesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesId").toString())); + } + if ((jsonObj.get("SeasonId") != null && !jsonObj.get("SeasonId").isJsonNull()) && !jsonObj.get("SeasonId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonId").toString())); + } + if ((jsonObj.get("DisplayPreferencesId") != null && !jsonObj.get("DisplayPreferencesId").isJsonNull()) && !jsonObj.get("DisplayPreferencesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayPreferencesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayPreferencesId").toString())); + } + if ((jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) && !jsonObj.get("Status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Status").toString())); + } + if ((jsonObj.get("AirTime") != null && !jsonObj.get("AirTime").isJsonNull()) && !jsonObj.get("AirTime").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AirTime` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AirTime").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AirDays") != null && !jsonObj.get("AirDays").isJsonNull() && !jsonObj.get("AirDays").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AirDays` to be an array in the JSON string but got `%s`", jsonObj.get("AirDays").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + if (jsonObj.get("ArtistItems") != null && !jsonObj.get("ArtistItems").isJsonNull()) { + JsonArray jsonArrayartistItems = jsonObj.getAsJsonArray("ArtistItems"); + if (jsonArrayartistItems != null) { + // ensure the json data is an array + if (!jsonObj.get("ArtistItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ArtistItems` to be an array in the JSON string but got `%s`", jsonObj.get("ArtistItems").toString())); + } + + // validate the optional field `ArtistItems` (array) + for (int i = 0; i < jsonArrayartistItems.size(); i++) { + NameGuidPair.validateJsonElement(jsonArrayartistItems.get(i)); + }; + } + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + // validate the optional field `CollectionType` + if (jsonObj.get("CollectionType") != null && !jsonObj.get("CollectionType").isJsonNull()) { + CollectionType.validateJsonElement(jsonObj.get("CollectionType")); + } + if ((jsonObj.get("DisplayOrder") != null && !jsonObj.get("DisplayOrder").isJsonNull()) && !jsonObj.get("DisplayOrder").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayOrder` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayOrder").toString())); + } + if ((jsonObj.get("AlbumId") != null && !jsonObj.get("AlbumId").isJsonNull()) && !jsonObj.get("AlbumId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumId").toString())); + } + if ((jsonObj.get("AlbumPrimaryImageTag") != null && !jsonObj.get("AlbumPrimaryImageTag").isJsonNull()) && !jsonObj.get("AlbumPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumPrimaryImageTag").toString())); + } + if ((jsonObj.get("SeriesPrimaryImageTag") != null && !jsonObj.get("SeriesPrimaryImageTag").isJsonNull()) && !jsonObj.get("SeriesPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesPrimaryImageTag").toString())); + } + if ((jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) && !jsonObj.get("AlbumArtist").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtist` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumArtist").toString())); + } + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull()) { + JsonArray jsonArrayalbumArtists = jsonObj.getAsJsonArray("AlbumArtists"); + if (jsonArrayalbumArtists != null) { + // ensure the json data is an array + if (!jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + + // validate the optional field `AlbumArtists` (array) + for (int i = 0; i < jsonArrayalbumArtists.size(); i++) { + NameGuidPair.validateJsonElement(jsonArrayalbumArtists.get(i)); + }; + } + } + if ((jsonObj.get("SeasonName") != null && !jsonObj.get("SeasonName").isJsonNull()) && !jsonObj.get("SeasonName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonName").toString())); + } + if (jsonObj.get("MediaStreams") != null && !jsonObj.get("MediaStreams").isJsonNull()) { + JsonArray jsonArraymediaStreams = jsonObj.getAsJsonArray("MediaStreams"); + if (jsonArraymediaStreams != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaStreams").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaStreams` to be an array in the JSON string but got `%s`", jsonObj.get("MediaStreams").toString())); + } + + // validate the optional field `MediaStreams` (array) + for (int i = 0; i < jsonArraymediaStreams.size(); i++) { + MediaStream.validateJsonElement(jsonArraymediaStreams.get(i)); + }; + } + } + // validate the optional field `VideoType` + if (jsonObj.get("VideoType") != null && !jsonObj.get("VideoType").isJsonNull()) { + VideoType.validateJsonElement(jsonObj.get("VideoType")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BackdropImageTags") != null && !jsonObj.get("BackdropImageTags").isJsonNull() && !jsonObj.get("BackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("BackdropImageTags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ScreenshotImageTags") != null && !jsonObj.get("ScreenshotImageTags").isJsonNull() && !jsonObj.get("ScreenshotImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ScreenshotImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ScreenshotImageTags").toString())); + } + if ((jsonObj.get("ParentLogoImageTag") != null && !jsonObj.get("ParentLogoImageTag").isJsonNull()) && !jsonObj.get("ParentLogoImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentLogoImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentLogoImageTag").toString())); + } + if ((jsonObj.get("ParentArtItemId") != null && !jsonObj.get("ParentArtItemId").isJsonNull()) && !jsonObj.get("ParentArtItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentArtItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentArtItemId").toString())); + } + if ((jsonObj.get("ParentArtImageTag") != null && !jsonObj.get("ParentArtImageTag").isJsonNull()) && !jsonObj.get("ParentArtImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentArtImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentArtImageTag").toString())); + } + if ((jsonObj.get("SeriesThumbImageTag") != null && !jsonObj.get("SeriesThumbImageTag").isJsonNull()) && !jsonObj.get("SeriesThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesThumbImageTag").toString())); + } + // validate the optional field `ImageBlurHashes` + if (jsonObj.get("ImageBlurHashes") != null && !jsonObj.get("ImageBlurHashes").isJsonNull()) { + BaseItemDtoImageBlurHashes.validateJsonElement(jsonObj.get("ImageBlurHashes")); + } + if ((jsonObj.get("SeriesStudio") != null && !jsonObj.get("SeriesStudio").isJsonNull()) && !jsonObj.get("SeriesStudio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesStudio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesStudio").toString())); + } + if ((jsonObj.get("ParentThumbItemId") != null && !jsonObj.get("ParentThumbItemId").isJsonNull()) && !jsonObj.get("ParentThumbItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbItemId").toString())); + } + if ((jsonObj.get("ParentThumbImageTag") != null && !jsonObj.get("ParentThumbImageTag").isJsonNull()) && !jsonObj.get("ParentThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbImageTag").toString())); + } + if ((jsonObj.get("ParentPrimaryImageItemId") != null && !jsonObj.get("ParentPrimaryImageItemId").isJsonNull()) && !jsonObj.get("ParentPrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageItemId").toString())); + } + if ((jsonObj.get("ParentPrimaryImageTag") != null && !jsonObj.get("ParentPrimaryImageTag").isJsonNull()) && !jsonObj.get("ParentPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageTag").toString())); + } + if (jsonObj.get("Chapters") != null && !jsonObj.get("Chapters").isJsonNull()) { + JsonArray jsonArraychapters = jsonObj.getAsJsonArray("Chapters"); + if (jsonArraychapters != null) { + // ensure the json data is an array + if (!jsonObj.get("Chapters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Chapters` to be an array in the JSON string but got `%s`", jsonObj.get("Chapters").toString())); + } + + // validate the optional field `Chapters` (array) + for (int i = 0; i < jsonArraychapters.size(); i++) { + ChapterInfo.validateJsonElement(jsonArraychapters.get(i)); + }; + } + } + // validate the optional field `LocationType` + if (jsonObj.get("LocationType") != null && !jsonObj.get("LocationType").isJsonNull()) { + LocationType.validateJsonElement(jsonObj.get("LocationType")); + } + // validate the optional field `IsoType` + if (jsonObj.get("IsoType") != null && !jsonObj.get("IsoType").isJsonNull()) { + IsoType.validateJsonElement(jsonObj.get("IsoType")); + } + // validate the optional field `MediaType` + if (jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) { + MediaType.validateJsonElement(jsonObj.get("MediaType")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LockedFields") != null && !jsonObj.get("LockedFields").isJsonNull() && !jsonObj.get("LockedFields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LockedFields` to be an array in the JSON string but got `%s`", jsonObj.get("LockedFields").toString())); + } + if ((jsonObj.get("CameraMake") != null && !jsonObj.get("CameraMake").isJsonNull()) && !jsonObj.get("CameraMake").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CameraMake` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CameraMake").toString())); + } + if ((jsonObj.get("CameraModel") != null && !jsonObj.get("CameraModel").isJsonNull()) && !jsonObj.get("CameraModel").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CameraModel` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CameraModel").toString())); + } + if ((jsonObj.get("Software") != null && !jsonObj.get("Software").isJsonNull()) && !jsonObj.get("Software").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Software` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Software").toString())); + } + // validate the optional field `ImageOrientation` + if (jsonObj.get("ImageOrientation") != null && !jsonObj.get("ImageOrientation").isJsonNull()) { + ImageOrientation.validateJsonElement(jsonObj.get("ImageOrientation")); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("EpisodeTitle") != null && !jsonObj.get("EpisodeTitle").isJsonNull()) && !jsonObj.get("EpisodeTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EpisodeTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EpisodeTitle").toString())); + } + // validate the optional field `ChannelType` + if (jsonObj.get("ChannelType") != null && !jsonObj.get("ChannelType").isJsonNull()) { + ChannelType.validateJsonElement(jsonObj.get("ChannelType")); + } + // validate the optional field `Audio` + if (jsonObj.get("Audio") != null && !jsonObj.get("Audio").isJsonNull()) { + ProgramAudio.validateJsonElement(jsonObj.get("Audio")); + } + if ((jsonObj.get("TimerId") != null && !jsonObj.get("TimerId").isJsonNull()) && !jsonObj.get("TimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TimerId").toString())); + } + // validate the optional field `CurrentProgram` + if (jsonObj.get("CurrentProgram") != null && !jsonObj.get("CurrentProgram").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("CurrentProgram")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDto + * @throws IOException if the JSON string is invalid with respect to BaseItemDto + */ + public static BaseItemDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDto.class); + } + + /** + * Convert an instance of BaseItemDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java new file mode 100644 index 0000000000000..748d526ab2b0a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java @@ -0,0 +1,633 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Gets or sets the blurhashes for the image tags. Maps image type to dictionary mapping image tag to blurhash value. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDtoImageBlurHashes { + public static final String SERIALIZED_NAME_PRIMARY = "Primary"; + @SerializedName(SERIALIZED_NAME_PRIMARY) + @javax.annotation.Nullable + private Map primary = new HashMap<>(); + + public static final String SERIALIZED_NAME_ART = "Art"; + @SerializedName(SERIALIZED_NAME_ART) + @javax.annotation.Nullable + private Map art = new HashMap<>(); + + public static final String SERIALIZED_NAME_BACKDROP = "Backdrop"; + @SerializedName(SERIALIZED_NAME_BACKDROP) + @javax.annotation.Nullable + private Map backdrop = new HashMap<>(); + + public static final String SERIALIZED_NAME_BANNER = "Banner"; + @SerializedName(SERIALIZED_NAME_BANNER) + @javax.annotation.Nullable + private Map banner = new HashMap<>(); + + public static final String SERIALIZED_NAME_LOGO = "Logo"; + @SerializedName(SERIALIZED_NAME_LOGO) + @javax.annotation.Nullable + private Map logo = new HashMap<>(); + + public static final String SERIALIZED_NAME_THUMB = "Thumb"; + @SerializedName(SERIALIZED_NAME_THUMB) + @javax.annotation.Nullable + private Map thumb = new HashMap<>(); + + public static final String SERIALIZED_NAME_DISC = "Disc"; + @SerializedName(SERIALIZED_NAME_DISC) + @javax.annotation.Nullable + private Map disc = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX = "Box"; + @SerializedName(SERIALIZED_NAME_BOX) + @javax.annotation.Nullable + private Map box = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCREENSHOT = "Screenshot"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT) + @javax.annotation.Nullable + private Map screenshot = new HashMap<>(); + + public static final String SERIALIZED_NAME_MENU = "Menu"; + @SerializedName(SERIALIZED_NAME_MENU) + @javax.annotation.Nullable + private Map menu = new HashMap<>(); + + public static final String SERIALIZED_NAME_CHAPTER = "Chapter"; + @SerializedName(SERIALIZED_NAME_CHAPTER) + @javax.annotation.Nullable + private Map chapter = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX_REAR = "BoxRear"; + @SerializedName(SERIALIZED_NAME_BOX_REAR) + @javax.annotation.Nullable + private Map boxRear = new HashMap<>(); + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private Map profile = new HashMap<>(); + + public BaseItemDtoImageBlurHashes() { + } + + public BaseItemDtoImageBlurHashes primary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + return this; + } + + public BaseItemDtoImageBlurHashes putPrimaryItem(String key, String primaryItem) { + if (this.primary == null) { + this.primary = new HashMap<>(); + } + this.primary.put(key, primaryItem); + return this; + } + + /** + * Get primary + * @return primary + */ + @javax.annotation.Nullable + public Map getPrimary() { + return primary; + } + + public void setPrimary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + } + + + public BaseItemDtoImageBlurHashes art(@javax.annotation.Nullable Map art) { + this.art = art; + return this; + } + + public BaseItemDtoImageBlurHashes putArtItem(String key, String artItem) { + if (this.art == null) { + this.art = new HashMap<>(); + } + this.art.put(key, artItem); + return this; + } + + /** + * Get art + * @return art + */ + @javax.annotation.Nullable + public Map getArt() { + return art; + } + + public void setArt(@javax.annotation.Nullable Map art) { + this.art = art; + } + + + public BaseItemDtoImageBlurHashes backdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + return this; + } + + public BaseItemDtoImageBlurHashes putBackdropItem(String key, String backdropItem) { + if (this.backdrop == null) { + this.backdrop = new HashMap<>(); + } + this.backdrop.put(key, backdropItem); + return this; + } + + /** + * Get backdrop + * @return backdrop + */ + @javax.annotation.Nullable + public Map getBackdrop() { + return backdrop; + } + + public void setBackdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + } + + + public BaseItemDtoImageBlurHashes banner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + return this; + } + + public BaseItemDtoImageBlurHashes putBannerItem(String key, String bannerItem) { + if (this.banner == null) { + this.banner = new HashMap<>(); + } + this.banner.put(key, bannerItem); + return this; + } + + /** + * Get banner + * @return banner + */ + @javax.annotation.Nullable + public Map getBanner() { + return banner; + } + + public void setBanner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + } + + + public BaseItemDtoImageBlurHashes logo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + return this; + } + + public BaseItemDtoImageBlurHashes putLogoItem(String key, String logoItem) { + if (this.logo == null) { + this.logo = new HashMap<>(); + } + this.logo.put(key, logoItem); + return this; + } + + /** + * Get logo + * @return logo + */ + @javax.annotation.Nullable + public Map getLogo() { + return logo; + } + + public void setLogo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + } + + + public BaseItemDtoImageBlurHashes thumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + return this; + } + + public BaseItemDtoImageBlurHashes putThumbItem(String key, String thumbItem) { + if (this.thumb == null) { + this.thumb = new HashMap<>(); + } + this.thumb.put(key, thumbItem); + return this; + } + + /** + * Get thumb + * @return thumb + */ + @javax.annotation.Nullable + public Map getThumb() { + return thumb; + } + + public void setThumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + } + + + public BaseItemDtoImageBlurHashes disc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + return this; + } + + public BaseItemDtoImageBlurHashes putDiscItem(String key, String discItem) { + if (this.disc == null) { + this.disc = new HashMap<>(); + } + this.disc.put(key, discItem); + return this; + } + + /** + * Get disc + * @return disc + */ + @javax.annotation.Nullable + public Map getDisc() { + return disc; + } + + public void setDisc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + } + + + public BaseItemDtoImageBlurHashes box(@javax.annotation.Nullable Map box) { + this.box = box; + return this; + } + + public BaseItemDtoImageBlurHashes putBoxItem(String key, String boxItem) { + if (this.box == null) { + this.box = new HashMap<>(); + } + this.box.put(key, boxItem); + return this; + } + + /** + * Get box + * @return box + */ + @javax.annotation.Nullable + public Map getBox() { + return box; + } + + public void setBox(@javax.annotation.Nullable Map box) { + this.box = box; + } + + + public BaseItemDtoImageBlurHashes screenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + return this; + } + + public BaseItemDtoImageBlurHashes putScreenshotItem(String key, String screenshotItem) { + if (this.screenshot == null) { + this.screenshot = new HashMap<>(); + } + this.screenshot.put(key, screenshotItem); + return this; + } + + /** + * Get screenshot + * @return screenshot + */ + @javax.annotation.Nullable + public Map getScreenshot() { + return screenshot; + } + + public void setScreenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + } + + + public BaseItemDtoImageBlurHashes menu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + return this; + } + + public BaseItemDtoImageBlurHashes putMenuItem(String key, String menuItem) { + if (this.menu == null) { + this.menu = new HashMap<>(); + } + this.menu.put(key, menuItem); + return this; + } + + /** + * Get menu + * @return menu + */ + @javax.annotation.Nullable + public Map getMenu() { + return menu; + } + + public void setMenu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + } + + + public BaseItemDtoImageBlurHashes chapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + return this; + } + + public BaseItemDtoImageBlurHashes putChapterItem(String key, String chapterItem) { + if (this.chapter == null) { + this.chapter = new HashMap<>(); + } + this.chapter.put(key, chapterItem); + return this; + } + + /** + * Get chapter + * @return chapter + */ + @javax.annotation.Nullable + public Map getChapter() { + return chapter; + } + + public void setChapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + } + + + public BaseItemDtoImageBlurHashes boxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + return this; + } + + public BaseItemDtoImageBlurHashes putBoxRearItem(String key, String boxRearItem) { + if (this.boxRear == null) { + this.boxRear = new HashMap<>(); + } + this.boxRear.put(key, boxRearItem); + return this; + } + + /** + * Get boxRear + * @return boxRear + */ + @javax.annotation.Nullable + public Map getBoxRear() { + return boxRear; + } + + public void setBoxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + } + + + public BaseItemDtoImageBlurHashes profile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + return this; + } + + public BaseItemDtoImageBlurHashes putProfileItem(String key, String profileItem) { + if (this.profile == null) { + this.profile = new HashMap<>(); + } + this.profile.put(key, profileItem); + return this; + } + + /** + * Get profile + * @return profile + */ + @javax.annotation.Nullable + public Map getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDtoImageBlurHashes baseItemDtoImageBlurHashes = (BaseItemDtoImageBlurHashes) o; + return Objects.equals(this.primary, baseItemDtoImageBlurHashes.primary) && + Objects.equals(this.art, baseItemDtoImageBlurHashes.art) && + Objects.equals(this.backdrop, baseItemDtoImageBlurHashes.backdrop) && + Objects.equals(this.banner, baseItemDtoImageBlurHashes.banner) && + Objects.equals(this.logo, baseItemDtoImageBlurHashes.logo) && + Objects.equals(this.thumb, baseItemDtoImageBlurHashes.thumb) && + Objects.equals(this.disc, baseItemDtoImageBlurHashes.disc) && + Objects.equals(this.box, baseItemDtoImageBlurHashes.box) && + Objects.equals(this.screenshot, baseItemDtoImageBlurHashes.screenshot) && + Objects.equals(this.menu, baseItemDtoImageBlurHashes.menu) && + Objects.equals(this.chapter, baseItemDtoImageBlurHashes.chapter) && + Objects.equals(this.boxRear, baseItemDtoImageBlurHashes.boxRear) && + Objects.equals(this.profile, baseItemDtoImageBlurHashes.profile); + } + + @Override + public int hashCode() { + return Objects.hash(primary, art, backdrop, banner, logo, thumb, disc, box, screenshot, menu, chapter, boxRear, profile); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDtoImageBlurHashes {\n"); + sb.append(" primary: ").append(toIndentedString(primary)).append("\n"); + sb.append(" art: ").append(toIndentedString(art)).append("\n"); + sb.append(" backdrop: ").append(toIndentedString(backdrop)).append("\n"); + sb.append(" banner: ").append(toIndentedString(banner)).append("\n"); + sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); + sb.append(" thumb: ").append(toIndentedString(thumb)).append("\n"); + sb.append(" disc: ").append(toIndentedString(disc)).append("\n"); + sb.append(" box: ").append(toIndentedString(box)).append("\n"); + sb.append(" screenshot: ").append(toIndentedString(screenshot)).append("\n"); + sb.append(" menu: ").append(toIndentedString(menu)).append("\n"); + sb.append(" chapter: ").append(toIndentedString(chapter)).append("\n"); + sb.append(" boxRear: ").append(toIndentedString(boxRear)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Primary"); + openapiFields.add("Art"); + openapiFields.add("Backdrop"); + openapiFields.add("Banner"); + openapiFields.add("Logo"); + openapiFields.add("Thumb"); + openapiFields.add("Disc"); + openapiFields.add("Box"); + openapiFields.add("Screenshot"); + openapiFields.add("Menu"); + openapiFields.add("Chapter"); + openapiFields.add("BoxRear"); + openapiFields.add("Profile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDtoImageBlurHashes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDtoImageBlurHashes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDtoImageBlurHashes is not found in the empty JSON string", BaseItemDtoImageBlurHashes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDtoImageBlurHashes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDtoImageBlurHashes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDtoImageBlurHashes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDtoImageBlurHashes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDtoImageBlurHashes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDtoImageBlurHashes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDtoImageBlurHashes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDtoImageBlurHashes given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDtoImageBlurHashes + * @throws IOException if the JSON string is invalid with respect to BaseItemDtoImageBlurHashes + */ + public static BaseItemDtoImageBlurHashes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDtoImageBlurHashes.class); + } + + /** + * Convert an instance of BaseItemDtoImageBlurHashes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java new file mode 100644 index 0000000000000..a14395f8f47bf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.BaseItemDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public BaseItemDtoQueryResult() { + } + + public BaseItemDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public BaseItemDtoQueryResult addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public BaseItemDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public BaseItemDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDtoQueryResult baseItemDtoQueryResult = (BaseItemDtoQueryResult) o; + return Objects.equals(this.items, baseItemDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, baseItemDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, baseItemDtoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDtoQueryResult is not found in the empty JSON string", BaseItemDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to BaseItemDtoQueryResult + */ + public static BaseItemDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDtoQueryResult.class); + } + + /** + * Convert an instance of BaseItemDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemKind.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemKind.java new file mode 100644 index 0000000000000..d6c98e57817d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemKind.java @@ -0,0 +1,148 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The base item kind. + */ +@JsonAdapter(BaseItemKind.Adapter.class) +public enum BaseItemKind { + + AGGREGATE_FOLDER("AggregateFolder"), + + AUDIO("Audio"), + + AUDIO_BOOK("AudioBook"), + + BASE_PLUGIN_FOLDER("BasePluginFolder"), + + BOOK("Book"), + + BOX_SET("BoxSet"), + + CHANNEL("Channel"), + + CHANNEL_FOLDER_ITEM("ChannelFolderItem"), + + COLLECTION_FOLDER("CollectionFolder"), + + EPISODE("Episode"), + + FOLDER("Folder"), + + GENRE("Genre"), + + MANUAL_PLAYLISTS_FOLDER("ManualPlaylistsFolder"), + + MOVIE("Movie"), + + LIVE_TV_CHANNEL("LiveTvChannel"), + + LIVE_TV_PROGRAM("LiveTvProgram"), + + MUSIC_ALBUM("MusicAlbum"), + + MUSIC_ARTIST("MusicArtist"), + + MUSIC_GENRE("MusicGenre"), + + MUSIC_VIDEO("MusicVideo"), + + PERSON("Person"), + + PHOTO("Photo"), + + PHOTO_ALBUM("PhotoAlbum"), + + PLAYLIST("Playlist"), + + PLAYLISTS_FOLDER("PlaylistsFolder"), + + PROGRAM("Program"), + + RECORDING("Recording"), + + SEASON("Season"), + + SERIES("Series"), + + STUDIO("Studio"), + + TRAILER("Trailer"), + + TV_CHANNEL("TvChannel"), + + TV_PROGRAM("TvProgram"), + + USER_ROOT_FOLDER("UserRootFolder"), + + USER_VIEW("UserView"), + + VIDEO("Video"), + + YEAR("Year"); + + private String value; + + BaseItemKind(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static BaseItemKind fromValue(String value) { + for (BaseItemKind b : BaseItemKind.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final BaseItemKind enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public BaseItemKind read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return BaseItemKind.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + BaseItemKind.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPerson.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPerson.java new file mode 100644 index 0000000000000..1385be221ef7e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPerson.java @@ -0,0 +1,373 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BaseItemPersonImageBlurHashes; +import org.openapitools.client.model.PersonKind; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is used by the api to get information about a Person within a BaseItem. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemPerson { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_ROLE = "Role"; + @SerializedName(SERIALIZED_NAME_ROLE) + @javax.annotation.Nullable + private String role; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private PersonKind type; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_IMAGE_BLUR_HASHES = "ImageBlurHashes"; + @SerializedName(SERIALIZED_NAME_IMAGE_BLUR_HASHES) + @javax.annotation.Nullable + private BaseItemPersonImageBlurHashes imageBlurHashes; + + public BaseItemPerson() { + } + + public BaseItemPerson name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BaseItemPerson id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public BaseItemPerson role(@javax.annotation.Nullable String role) { + this.role = role; + return this; + } + + /** + * Gets or sets the role. + * @return role + */ + @javax.annotation.Nullable + public String getRole() { + return role; + } + + public void setRole(@javax.annotation.Nullable String role) { + this.role = role; + } + + + public BaseItemPerson type(@javax.annotation.Nullable PersonKind type) { + this.type = type; + return this; + } + + /** + * The person kind. + * @return type + */ + @javax.annotation.Nullable + public PersonKind getType() { + return type; + } + + public void setType(@javax.annotation.Nullable PersonKind type) { + this.type = type; + } + + + public BaseItemPerson primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the primary image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public BaseItemPerson imageBlurHashes(@javax.annotation.Nullable BaseItemPersonImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + return this; + } + + /** + * Get imageBlurHashes + * @return imageBlurHashes + */ + @javax.annotation.Nullable + public BaseItemPersonImageBlurHashes getImageBlurHashes() { + return imageBlurHashes; + } + + public void setImageBlurHashes(@javax.annotation.Nullable BaseItemPersonImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemPerson baseItemPerson = (BaseItemPerson) o; + return Objects.equals(this.name, baseItemPerson.name) && + Objects.equals(this.id, baseItemPerson.id) && + Objects.equals(this.role, baseItemPerson.role) && + Objects.equals(this.type, baseItemPerson.type) && + Objects.equals(this.primaryImageTag, baseItemPerson.primaryImageTag) && + Objects.equals(this.imageBlurHashes, baseItemPerson.imageBlurHashes); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, role, type, primaryImageTag, imageBlurHashes); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemPerson {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" imageBlurHashes: ").append(toIndentedString(imageBlurHashes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("Role"); + openapiFields.add("Type"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("ImageBlurHashes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemPerson + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemPerson.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemPerson is not found in the empty JSON string", BaseItemPerson.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemPerson.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemPerson` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Role") != null && !jsonObj.get("Role").isJsonNull()) && !jsonObj.get("Role").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Role` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Role").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + PersonKind.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + // validate the optional field `ImageBlurHashes` + if (jsonObj.get("ImageBlurHashes") != null && !jsonObj.get("ImageBlurHashes").isJsonNull()) { + BaseItemPersonImageBlurHashes.validateJsonElement(jsonObj.get("ImageBlurHashes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemPerson.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemPerson' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemPerson.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemPerson value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemPerson read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemPerson given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemPerson + * @throws IOException if the JSON string is invalid with respect to BaseItemPerson + */ + public static BaseItemPerson fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemPerson.class); + } + + /** + * Convert an instance of BaseItemPerson to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java new file mode 100644 index 0000000000000..5be1319d77129 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java @@ -0,0 +1,633 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Gets or sets the primary image blurhash. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemPersonImageBlurHashes { + public static final String SERIALIZED_NAME_PRIMARY = "Primary"; + @SerializedName(SERIALIZED_NAME_PRIMARY) + @javax.annotation.Nullable + private Map primary = new HashMap<>(); + + public static final String SERIALIZED_NAME_ART = "Art"; + @SerializedName(SERIALIZED_NAME_ART) + @javax.annotation.Nullable + private Map art = new HashMap<>(); + + public static final String SERIALIZED_NAME_BACKDROP = "Backdrop"; + @SerializedName(SERIALIZED_NAME_BACKDROP) + @javax.annotation.Nullable + private Map backdrop = new HashMap<>(); + + public static final String SERIALIZED_NAME_BANNER = "Banner"; + @SerializedName(SERIALIZED_NAME_BANNER) + @javax.annotation.Nullable + private Map banner = new HashMap<>(); + + public static final String SERIALIZED_NAME_LOGO = "Logo"; + @SerializedName(SERIALIZED_NAME_LOGO) + @javax.annotation.Nullable + private Map logo = new HashMap<>(); + + public static final String SERIALIZED_NAME_THUMB = "Thumb"; + @SerializedName(SERIALIZED_NAME_THUMB) + @javax.annotation.Nullable + private Map thumb = new HashMap<>(); + + public static final String SERIALIZED_NAME_DISC = "Disc"; + @SerializedName(SERIALIZED_NAME_DISC) + @javax.annotation.Nullable + private Map disc = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX = "Box"; + @SerializedName(SERIALIZED_NAME_BOX) + @javax.annotation.Nullable + private Map box = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCREENSHOT = "Screenshot"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT) + @javax.annotation.Nullable + private Map screenshot = new HashMap<>(); + + public static final String SERIALIZED_NAME_MENU = "Menu"; + @SerializedName(SERIALIZED_NAME_MENU) + @javax.annotation.Nullable + private Map menu = new HashMap<>(); + + public static final String SERIALIZED_NAME_CHAPTER = "Chapter"; + @SerializedName(SERIALIZED_NAME_CHAPTER) + @javax.annotation.Nullable + private Map chapter = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX_REAR = "BoxRear"; + @SerializedName(SERIALIZED_NAME_BOX_REAR) + @javax.annotation.Nullable + private Map boxRear = new HashMap<>(); + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private Map profile = new HashMap<>(); + + public BaseItemPersonImageBlurHashes() { + } + + public BaseItemPersonImageBlurHashes primary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + return this; + } + + public BaseItemPersonImageBlurHashes putPrimaryItem(String key, String primaryItem) { + if (this.primary == null) { + this.primary = new HashMap<>(); + } + this.primary.put(key, primaryItem); + return this; + } + + /** + * Get primary + * @return primary + */ + @javax.annotation.Nullable + public Map getPrimary() { + return primary; + } + + public void setPrimary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + } + + + public BaseItemPersonImageBlurHashes art(@javax.annotation.Nullable Map art) { + this.art = art; + return this; + } + + public BaseItemPersonImageBlurHashes putArtItem(String key, String artItem) { + if (this.art == null) { + this.art = new HashMap<>(); + } + this.art.put(key, artItem); + return this; + } + + /** + * Get art + * @return art + */ + @javax.annotation.Nullable + public Map getArt() { + return art; + } + + public void setArt(@javax.annotation.Nullable Map art) { + this.art = art; + } + + + public BaseItemPersonImageBlurHashes backdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + return this; + } + + public BaseItemPersonImageBlurHashes putBackdropItem(String key, String backdropItem) { + if (this.backdrop == null) { + this.backdrop = new HashMap<>(); + } + this.backdrop.put(key, backdropItem); + return this; + } + + /** + * Get backdrop + * @return backdrop + */ + @javax.annotation.Nullable + public Map getBackdrop() { + return backdrop; + } + + public void setBackdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + } + + + public BaseItemPersonImageBlurHashes banner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + return this; + } + + public BaseItemPersonImageBlurHashes putBannerItem(String key, String bannerItem) { + if (this.banner == null) { + this.banner = new HashMap<>(); + } + this.banner.put(key, bannerItem); + return this; + } + + /** + * Get banner + * @return banner + */ + @javax.annotation.Nullable + public Map getBanner() { + return banner; + } + + public void setBanner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + } + + + public BaseItemPersonImageBlurHashes logo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + return this; + } + + public BaseItemPersonImageBlurHashes putLogoItem(String key, String logoItem) { + if (this.logo == null) { + this.logo = new HashMap<>(); + } + this.logo.put(key, logoItem); + return this; + } + + /** + * Get logo + * @return logo + */ + @javax.annotation.Nullable + public Map getLogo() { + return logo; + } + + public void setLogo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + } + + + public BaseItemPersonImageBlurHashes thumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + return this; + } + + public BaseItemPersonImageBlurHashes putThumbItem(String key, String thumbItem) { + if (this.thumb == null) { + this.thumb = new HashMap<>(); + } + this.thumb.put(key, thumbItem); + return this; + } + + /** + * Get thumb + * @return thumb + */ + @javax.annotation.Nullable + public Map getThumb() { + return thumb; + } + + public void setThumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + } + + + public BaseItemPersonImageBlurHashes disc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + return this; + } + + public BaseItemPersonImageBlurHashes putDiscItem(String key, String discItem) { + if (this.disc == null) { + this.disc = new HashMap<>(); + } + this.disc.put(key, discItem); + return this; + } + + /** + * Get disc + * @return disc + */ + @javax.annotation.Nullable + public Map getDisc() { + return disc; + } + + public void setDisc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + } + + + public BaseItemPersonImageBlurHashes box(@javax.annotation.Nullable Map box) { + this.box = box; + return this; + } + + public BaseItemPersonImageBlurHashes putBoxItem(String key, String boxItem) { + if (this.box == null) { + this.box = new HashMap<>(); + } + this.box.put(key, boxItem); + return this; + } + + /** + * Get box + * @return box + */ + @javax.annotation.Nullable + public Map getBox() { + return box; + } + + public void setBox(@javax.annotation.Nullable Map box) { + this.box = box; + } + + + public BaseItemPersonImageBlurHashes screenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + return this; + } + + public BaseItemPersonImageBlurHashes putScreenshotItem(String key, String screenshotItem) { + if (this.screenshot == null) { + this.screenshot = new HashMap<>(); + } + this.screenshot.put(key, screenshotItem); + return this; + } + + /** + * Get screenshot + * @return screenshot + */ + @javax.annotation.Nullable + public Map getScreenshot() { + return screenshot; + } + + public void setScreenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + } + + + public BaseItemPersonImageBlurHashes menu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + return this; + } + + public BaseItemPersonImageBlurHashes putMenuItem(String key, String menuItem) { + if (this.menu == null) { + this.menu = new HashMap<>(); + } + this.menu.put(key, menuItem); + return this; + } + + /** + * Get menu + * @return menu + */ + @javax.annotation.Nullable + public Map getMenu() { + return menu; + } + + public void setMenu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + } + + + public BaseItemPersonImageBlurHashes chapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + return this; + } + + public BaseItemPersonImageBlurHashes putChapterItem(String key, String chapterItem) { + if (this.chapter == null) { + this.chapter = new HashMap<>(); + } + this.chapter.put(key, chapterItem); + return this; + } + + /** + * Get chapter + * @return chapter + */ + @javax.annotation.Nullable + public Map getChapter() { + return chapter; + } + + public void setChapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + } + + + public BaseItemPersonImageBlurHashes boxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + return this; + } + + public BaseItemPersonImageBlurHashes putBoxRearItem(String key, String boxRearItem) { + if (this.boxRear == null) { + this.boxRear = new HashMap<>(); + } + this.boxRear.put(key, boxRearItem); + return this; + } + + /** + * Get boxRear + * @return boxRear + */ + @javax.annotation.Nullable + public Map getBoxRear() { + return boxRear; + } + + public void setBoxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + } + + + public BaseItemPersonImageBlurHashes profile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + return this; + } + + public BaseItemPersonImageBlurHashes putProfileItem(String key, String profileItem) { + if (this.profile == null) { + this.profile = new HashMap<>(); + } + this.profile.put(key, profileItem); + return this; + } + + /** + * Get profile + * @return profile + */ + @javax.annotation.Nullable + public Map getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemPersonImageBlurHashes baseItemPersonImageBlurHashes = (BaseItemPersonImageBlurHashes) o; + return Objects.equals(this.primary, baseItemPersonImageBlurHashes.primary) && + Objects.equals(this.art, baseItemPersonImageBlurHashes.art) && + Objects.equals(this.backdrop, baseItemPersonImageBlurHashes.backdrop) && + Objects.equals(this.banner, baseItemPersonImageBlurHashes.banner) && + Objects.equals(this.logo, baseItemPersonImageBlurHashes.logo) && + Objects.equals(this.thumb, baseItemPersonImageBlurHashes.thumb) && + Objects.equals(this.disc, baseItemPersonImageBlurHashes.disc) && + Objects.equals(this.box, baseItemPersonImageBlurHashes.box) && + Objects.equals(this.screenshot, baseItemPersonImageBlurHashes.screenshot) && + Objects.equals(this.menu, baseItemPersonImageBlurHashes.menu) && + Objects.equals(this.chapter, baseItemPersonImageBlurHashes.chapter) && + Objects.equals(this.boxRear, baseItemPersonImageBlurHashes.boxRear) && + Objects.equals(this.profile, baseItemPersonImageBlurHashes.profile); + } + + @Override + public int hashCode() { + return Objects.hash(primary, art, backdrop, banner, logo, thumb, disc, box, screenshot, menu, chapter, boxRear, profile); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemPersonImageBlurHashes {\n"); + sb.append(" primary: ").append(toIndentedString(primary)).append("\n"); + sb.append(" art: ").append(toIndentedString(art)).append("\n"); + sb.append(" backdrop: ").append(toIndentedString(backdrop)).append("\n"); + sb.append(" banner: ").append(toIndentedString(banner)).append("\n"); + sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); + sb.append(" thumb: ").append(toIndentedString(thumb)).append("\n"); + sb.append(" disc: ").append(toIndentedString(disc)).append("\n"); + sb.append(" box: ").append(toIndentedString(box)).append("\n"); + sb.append(" screenshot: ").append(toIndentedString(screenshot)).append("\n"); + sb.append(" menu: ").append(toIndentedString(menu)).append("\n"); + sb.append(" chapter: ").append(toIndentedString(chapter)).append("\n"); + sb.append(" boxRear: ").append(toIndentedString(boxRear)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Primary"); + openapiFields.add("Art"); + openapiFields.add("Backdrop"); + openapiFields.add("Banner"); + openapiFields.add("Logo"); + openapiFields.add("Thumb"); + openapiFields.add("Disc"); + openapiFields.add("Box"); + openapiFields.add("Screenshot"); + openapiFields.add("Menu"); + openapiFields.add("Chapter"); + openapiFields.add("BoxRear"); + openapiFields.add("Profile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemPersonImageBlurHashes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemPersonImageBlurHashes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemPersonImageBlurHashes is not found in the empty JSON string", BaseItemPersonImageBlurHashes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemPersonImageBlurHashes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemPersonImageBlurHashes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemPersonImageBlurHashes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemPersonImageBlurHashes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemPersonImageBlurHashes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemPersonImageBlurHashes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemPersonImageBlurHashes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemPersonImageBlurHashes given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemPersonImageBlurHashes + * @throws IOException if the JSON string is invalid with respect to BaseItemPersonImageBlurHashes + */ + public static BaseItemPersonImageBlurHashes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemPersonImageBlurHashes.class); + } + + /** + * Convert an instance of BaseItemPersonImageBlurHashes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfo.java new file mode 100644 index 0000000000000..eb28bdd77702a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfo.java @@ -0,0 +1,541 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BookInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BookInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_SERIES_NAME = "SeriesName"; + @SerializedName(SERIALIZED_NAME_SERIES_NAME) + @javax.annotation.Nullable + private String seriesName; + + public BookInfo() { + } + + public BookInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BookInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BookInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BookInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public BookInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public BookInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BookInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BookInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public BookInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BookInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BookInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BookInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public BookInfo seriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + return this; + } + + /** + * Get seriesName + * @return seriesName + */ + @javax.annotation.Nullable + public String getSeriesName() { + return seriesName; + } + + public void setSeriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BookInfo bookInfo = (BookInfo) o; + return Objects.equals(this.name, bookInfo.name) && + Objects.equals(this.originalTitle, bookInfo.originalTitle) && + Objects.equals(this.path, bookInfo.path) && + Objects.equals(this.metadataLanguage, bookInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, bookInfo.metadataCountryCode) && + Objects.equals(this.providerIds, bookInfo.providerIds) && + Objects.equals(this.year, bookInfo.year) && + Objects.equals(this.indexNumber, bookInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, bookInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, bookInfo.premiereDate) && + Objects.equals(this.isAutomated, bookInfo.isAutomated) && + Objects.equals(this.seriesName, bookInfo.seriesName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, seriesName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BookInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" seriesName: ").append(toIndentedString(seriesName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("SeriesName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BookInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BookInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BookInfo is not found in the empty JSON string", BookInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BookInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BookInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("SeriesName") != null && !jsonObj.get("SeriesName").isJsonNull()) && !jsonObj.get("SeriesName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BookInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BookInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BookInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BookInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BookInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BookInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of BookInfo + * @throws IOException if the JSON string is invalid with respect to BookInfo + */ + public static BookInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BookInfo.class); + } + + /** + * Convert an instance of BookInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..52b09aaea8dfc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BookInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BookInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BookInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private BookInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public BookInfoRemoteSearchQuery() { + } + + public BookInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable BookInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public BookInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable BookInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public BookInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public BookInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public BookInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery = (BookInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, bookInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, bookInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, bookInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, bookInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BookInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BookInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BookInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BookInfoRemoteSearchQuery is not found in the empty JSON string", BookInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BookInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BookInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + BookInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BookInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BookInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BookInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BookInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BookInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BookInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of BookInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to BookInfoRemoteSearchQuery + */ + public static BookInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BookInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of BookInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfo.java new file mode 100644 index 0000000000000..41309460e59af --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BoxSetInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BoxSetInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public BoxSetInfo() { + } + + public BoxSetInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BoxSetInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BoxSetInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BoxSetInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public BoxSetInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public BoxSetInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BoxSetInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BoxSetInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public BoxSetInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BoxSetInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BoxSetInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BoxSetInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BoxSetInfo boxSetInfo = (BoxSetInfo) o; + return Objects.equals(this.name, boxSetInfo.name) && + Objects.equals(this.originalTitle, boxSetInfo.originalTitle) && + Objects.equals(this.path, boxSetInfo.path) && + Objects.equals(this.metadataLanguage, boxSetInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, boxSetInfo.metadataCountryCode) && + Objects.equals(this.providerIds, boxSetInfo.providerIds) && + Objects.equals(this.year, boxSetInfo.year) && + Objects.equals(this.indexNumber, boxSetInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, boxSetInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, boxSetInfo.premiereDate) && + Objects.equals(this.isAutomated, boxSetInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BoxSetInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BoxSetInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BoxSetInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BoxSetInfo is not found in the empty JSON string", BoxSetInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BoxSetInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BoxSetInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BoxSetInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BoxSetInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BoxSetInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BoxSetInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BoxSetInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BoxSetInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of BoxSetInfo + * @throws IOException if the JSON string is invalid with respect to BoxSetInfo + */ + public static BoxSetInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BoxSetInfo.class); + } + + /** + * Convert an instance of BoxSetInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..40e3c440a9546 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BoxSetInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BoxSetInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BoxSetInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private BoxSetInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public BoxSetInfoRemoteSearchQuery() { + } + + public BoxSetInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable BoxSetInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public BoxSetInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable BoxSetInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public BoxSetInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public BoxSetInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public BoxSetInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery = (BoxSetInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, boxSetInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, boxSetInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, boxSetInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, boxSetInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BoxSetInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BoxSetInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BoxSetInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BoxSetInfoRemoteSearchQuery is not found in the empty JSON string", BoxSetInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BoxSetInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BoxSetInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + BoxSetInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BoxSetInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BoxSetInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BoxSetInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BoxSetInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BoxSetInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BoxSetInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of BoxSetInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to BoxSetInfoRemoteSearchQuery + */ + public static BoxSetInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BoxSetInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of BoxSetInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BrandingOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BrandingOptions.java new file mode 100644 index 0000000000000..5d87d659f85ef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BrandingOptions.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The branding options. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BrandingOptions { + public static final String SERIALIZED_NAME_LOGIN_DISCLAIMER = "LoginDisclaimer"; + @SerializedName(SERIALIZED_NAME_LOGIN_DISCLAIMER) + @javax.annotation.Nullable + private String loginDisclaimer; + + public static final String SERIALIZED_NAME_CUSTOM_CSS = "CustomCss"; + @SerializedName(SERIALIZED_NAME_CUSTOM_CSS) + @javax.annotation.Nullable + private String customCss; + + public static final String SERIALIZED_NAME_SPLASHSCREEN_ENABLED = "SplashscreenEnabled"; + @SerializedName(SERIALIZED_NAME_SPLASHSCREEN_ENABLED) + @javax.annotation.Nullable + private Boolean splashscreenEnabled; + + public BrandingOptions() { + } + + public BrandingOptions loginDisclaimer(@javax.annotation.Nullable String loginDisclaimer) { + this.loginDisclaimer = loginDisclaimer; + return this; + } + + /** + * Gets or sets the login disclaimer. + * @return loginDisclaimer + */ + @javax.annotation.Nullable + public String getLoginDisclaimer() { + return loginDisclaimer; + } + + public void setLoginDisclaimer(@javax.annotation.Nullable String loginDisclaimer) { + this.loginDisclaimer = loginDisclaimer; + } + + + public BrandingOptions customCss(@javax.annotation.Nullable String customCss) { + this.customCss = customCss; + return this; + } + + /** + * Gets or sets the custom CSS. + * @return customCss + */ + @javax.annotation.Nullable + public String getCustomCss() { + return customCss; + } + + public void setCustomCss(@javax.annotation.Nullable String customCss) { + this.customCss = customCss; + } + + + public BrandingOptions splashscreenEnabled(@javax.annotation.Nullable Boolean splashscreenEnabled) { + this.splashscreenEnabled = splashscreenEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether to enable the splashscreen. + * @return splashscreenEnabled + */ + @javax.annotation.Nullable + public Boolean getSplashscreenEnabled() { + return splashscreenEnabled; + } + + public void setSplashscreenEnabled(@javax.annotation.Nullable Boolean splashscreenEnabled) { + this.splashscreenEnabled = splashscreenEnabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BrandingOptions brandingOptions = (BrandingOptions) o; + return Objects.equals(this.loginDisclaimer, brandingOptions.loginDisclaimer) && + Objects.equals(this.customCss, brandingOptions.customCss) && + Objects.equals(this.splashscreenEnabled, brandingOptions.splashscreenEnabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(loginDisclaimer, customCss, splashscreenEnabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BrandingOptions {\n"); + sb.append(" loginDisclaimer: ").append(toIndentedString(loginDisclaimer)).append("\n"); + sb.append(" customCss: ").append(toIndentedString(customCss)).append("\n"); + sb.append(" splashscreenEnabled: ").append(toIndentedString(splashscreenEnabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LoginDisclaimer"); + openapiFields.add("CustomCss"); + openapiFields.add("SplashscreenEnabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BrandingOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BrandingOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BrandingOptions is not found in the empty JSON string", BrandingOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BrandingOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BrandingOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LoginDisclaimer") != null && !jsonObj.get("LoginDisclaimer").isJsonNull()) && !jsonObj.get("LoginDisclaimer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LoginDisclaimer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LoginDisclaimer").toString())); + } + if ((jsonObj.get("CustomCss") != null && !jsonObj.get("CustomCss").isJsonNull()) && !jsonObj.get("CustomCss").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomCss` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomCss").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BrandingOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BrandingOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BrandingOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BrandingOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BrandingOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BrandingOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of BrandingOptions + * @throws IOException if the JSON string is invalid with respect to BrandingOptions + */ + public static BrandingOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BrandingOptions.class); + } + + /** + * Convert an instance of BrandingOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BufferRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BufferRequestDto.java new file mode 100644 index 0000000000000..5048b6e220487 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/BufferRequestDto.java @@ -0,0 +1,289 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class BufferRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BufferRequestDto { + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_IS_PLAYING = "IsPlaying"; + @SerializedName(SERIALIZED_NAME_IS_PLAYING) + @javax.annotation.Nullable + private Boolean isPlaying; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public BufferRequestDto() { + } + + public BufferRequestDto when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets when the request has been made by the client. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public BufferRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public BufferRequestDto isPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + return this; + } + + /** + * Gets or sets a value indicating whether the client playback is unpaused. + * @return isPlaying + */ + @javax.annotation.Nullable + public Boolean getIsPlaying() { + return isPlaying; + } + + public void setIsPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + } + + + public BufferRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BufferRequestDto bufferRequestDto = (BufferRequestDto) o; + return Objects.equals(this.when, bufferRequestDto.when) && + Objects.equals(this.positionTicks, bufferRequestDto.positionTicks) && + Objects.equals(this.isPlaying, bufferRequestDto.isPlaying) && + Objects.equals(this.playlistItemId, bufferRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(when, positionTicks, isPlaying, playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BufferRequestDto {\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" isPlaying: ").append(toIndentedString(isPlaying)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("IsPlaying"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BufferRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BufferRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BufferRequestDto is not found in the empty JSON string", BufferRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BufferRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BufferRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BufferRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BufferRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BufferRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BufferRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BufferRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BufferRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of BufferRequestDto + * @throws IOException if the JSON string is invalid with respect to BufferRequestDto + */ + public static BufferRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BufferRequestDto.class); + } + + /** + * Convert an instance of BufferRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CastReceiverApplication.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CastReceiverApplication.java new file mode 100644 index 0000000000000..4ccdb6d5c8bd4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CastReceiverApplication.java @@ -0,0 +1,236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The cast receiver application model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CastReceiverApplication { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public CastReceiverApplication() { + } + + public CastReceiverApplication id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the cast receiver application id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public CastReceiverApplication name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the cast receiver application name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CastReceiverApplication castReceiverApplication = (CastReceiverApplication) o; + return Objects.equals(this.id, castReceiverApplication.id) && + Objects.equals(this.name, castReceiverApplication.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, name); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CastReceiverApplication {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CastReceiverApplication + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CastReceiverApplication.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CastReceiverApplication is not found in the empty JSON string", CastReceiverApplication.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CastReceiverApplication.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CastReceiverApplication` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CastReceiverApplication.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CastReceiverApplication' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CastReceiverApplication.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CastReceiverApplication value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CastReceiverApplication read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CastReceiverApplication given an JSON string + * + * @param jsonString JSON string + * @return An instance of CastReceiverApplication + * @throws IOException if the JSON string is invalid with respect to CastReceiverApplication + */ + public static CastReceiverApplication fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CastReceiverApplication.class); + } + + /** + * Convert an instance of CastReceiverApplication to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelFeatures.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelFeatures.java new file mode 100644 index 0000000000000..af0a3a8236b75 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelFeatures.java @@ -0,0 +1,560 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.ChannelItemSortField; +import org.openapitools.client.model.ChannelMediaContentType; +import org.openapitools.client.model.ChannelMediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ChannelFeatures + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChannelFeatures { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_CAN_SEARCH = "CanSearch"; + @SerializedName(SERIALIZED_NAME_CAN_SEARCH) + @javax.annotation.Nullable + private Boolean canSearch; + + public static final String SERIALIZED_NAME_MEDIA_TYPES = "MediaTypes"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPES) + @javax.annotation.Nullable + private List mediaTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTENT_TYPES = "ContentTypes"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPES) + @javax.annotation.Nullable + private List contentTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MAX_PAGE_SIZE = "MaxPageSize"; + @SerializedName(SERIALIZED_NAME_MAX_PAGE_SIZE) + @javax.annotation.Nullable + private Integer maxPageSize; + + public static final String SERIALIZED_NAME_AUTO_REFRESH_LEVELS = "AutoRefreshLevels"; + @SerializedName(SERIALIZED_NAME_AUTO_REFRESH_LEVELS) + @javax.annotation.Nullable + private Integer autoRefreshLevels; + + public static final String SERIALIZED_NAME_DEFAULT_SORT_FIELDS = "DefaultSortFields"; + @SerializedName(SERIALIZED_NAME_DEFAULT_SORT_FIELDS) + @javax.annotation.Nullable + private List defaultSortFields = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTS_SORT_ORDER_TOGGLE = "SupportsSortOrderToggle"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_SORT_ORDER_TOGGLE) + @javax.annotation.Nullable + private Boolean supportsSortOrderToggle; + + public static final String SERIALIZED_NAME_SUPPORTS_LATEST_MEDIA = "SupportsLatestMedia"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_LATEST_MEDIA) + @javax.annotation.Nullable + private Boolean supportsLatestMedia; + + public static final String SERIALIZED_NAME_CAN_FILTER = "CanFilter"; + @SerializedName(SERIALIZED_NAME_CAN_FILTER) + @javax.annotation.Nullable + private Boolean canFilter; + + public static final String SERIALIZED_NAME_SUPPORTS_CONTENT_DOWNLOADING = "SupportsContentDownloading"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_CONTENT_DOWNLOADING) + @javax.annotation.Nullable + private Boolean supportsContentDownloading; + + public ChannelFeatures() { + } + + public ChannelFeatures name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ChannelFeatures id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public ChannelFeatures canSearch(@javax.annotation.Nullable Boolean canSearch) { + this.canSearch = canSearch; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can search. + * @return canSearch + */ + @javax.annotation.Nullable + public Boolean getCanSearch() { + return canSearch; + } + + public void setCanSearch(@javax.annotation.Nullable Boolean canSearch) { + this.canSearch = canSearch; + } + + + public ChannelFeatures mediaTypes(@javax.annotation.Nullable List mediaTypes) { + this.mediaTypes = mediaTypes; + return this; + } + + public ChannelFeatures addMediaTypesItem(ChannelMediaType mediaTypesItem) { + if (this.mediaTypes == null) { + this.mediaTypes = new ArrayList<>(); + } + this.mediaTypes.add(mediaTypesItem); + return this; + } + + /** + * Gets or sets the media types. + * @return mediaTypes + */ + @javax.annotation.Nullable + public List getMediaTypes() { + return mediaTypes; + } + + public void setMediaTypes(@javax.annotation.Nullable List mediaTypes) { + this.mediaTypes = mediaTypes; + } + + + public ChannelFeatures contentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + return this; + } + + public ChannelFeatures addContentTypesItem(ChannelMediaContentType contentTypesItem) { + if (this.contentTypes == null) { + this.contentTypes = new ArrayList<>(); + } + this.contentTypes.add(contentTypesItem); + return this; + } + + /** + * Gets or sets the content types. + * @return contentTypes + */ + @javax.annotation.Nullable + public List getContentTypes() { + return contentTypes; + } + + public void setContentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + } + + + public ChannelFeatures maxPageSize(@javax.annotation.Nullable Integer maxPageSize) { + this.maxPageSize = maxPageSize; + return this; + } + + /** + * Gets or sets the maximum number of records the channel allows retrieving at a time. + * @return maxPageSize + */ + @javax.annotation.Nullable + public Integer getMaxPageSize() { + return maxPageSize; + } + + public void setMaxPageSize(@javax.annotation.Nullable Integer maxPageSize) { + this.maxPageSize = maxPageSize; + } + + + public ChannelFeatures autoRefreshLevels(@javax.annotation.Nullable Integer autoRefreshLevels) { + this.autoRefreshLevels = autoRefreshLevels; + return this; + } + + /** + * Gets or sets the automatic refresh levels. + * @return autoRefreshLevels + */ + @javax.annotation.Nullable + public Integer getAutoRefreshLevels() { + return autoRefreshLevels; + } + + public void setAutoRefreshLevels(@javax.annotation.Nullable Integer autoRefreshLevels) { + this.autoRefreshLevels = autoRefreshLevels; + } + + + public ChannelFeatures defaultSortFields(@javax.annotation.Nullable List defaultSortFields) { + this.defaultSortFields = defaultSortFields; + return this; + } + + public ChannelFeatures addDefaultSortFieldsItem(ChannelItemSortField defaultSortFieldsItem) { + if (this.defaultSortFields == null) { + this.defaultSortFields = new ArrayList<>(); + } + this.defaultSortFields.add(defaultSortFieldsItem); + return this; + } + + /** + * Gets or sets the default sort orders. + * @return defaultSortFields + */ + @javax.annotation.Nullable + public List getDefaultSortFields() { + return defaultSortFields; + } + + public void setDefaultSortFields(@javax.annotation.Nullable List defaultSortFields) { + this.defaultSortFields = defaultSortFields; + } + + + public ChannelFeatures supportsSortOrderToggle(@javax.annotation.Nullable Boolean supportsSortOrderToggle) { + this.supportsSortOrderToggle = supportsSortOrderToggle; + return this; + } + + /** + * Gets or sets a value indicating whether a sort ascending/descending toggle is supported. + * @return supportsSortOrderToggle + */ + @javax.annotation.Nullable + public Boolean getSupportsSortOrderToggle() { + return supportsSortOrderToggle; + } + + public void setSupportsSortOrderToggle(@javax.annotation.Nullable Boolean supportsSortOrderToggle) { + this.supportsSortOrderToggle = supportsSortOrderToggle; + } + + + public ChannelFeatures supportsLatestMedia(@javax.annotation.Nullable Boolean supportsLatestMedia) { + this.supportsLatestMedia = supportsLatestMedia; + return this; + } + + /** + * Gets or sets a value indicating whether [supports latest media]. + * @return supportsLatestMedia + */ + @javax.annotation.Nullable + public Boolean getSupportsLatestMedia() { + return supportsLatestMedia; + } + + public void setSupportsLatestMedia(@javax.annotation.Nullable Boolean supportsLatestMedia) { + this.supportsLatestMedia = supportsLatestMedia; + } + + + public ChannelFeatures canFilter(@javax.annotation.Nullable Boolean canFilter) { + this.canFilter = canFilter; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can filter. + * @return canFilter + */ + @javax.annotation.Nullable + public Boolean getCanFilter() { + return canFilter; + } + + public void setCanFilter(@javax.annotation.Nullable Boolean canFilter) { + this.canFilter = canFilter; + } + + + public ChannelFeatures supportsContentDownloading(@javax.annotation.Nullable Boolean supportsContentDownloading) { + this.supportsContentDownloading = supportsContentDownloading; + return this; + } + + /** + * Gets or sets a value indicating whether [supports content downloading]. + * @return supportsContentDownloading + */ + @javax.annotation.Nullable + public Boolean getSupportsContentDownloading() { + return supportsContentDownloading; + } + + public void setSupportsContentDownloading(@javax.annotation.Nullable Boolean supportsContentDownloading) { + this.supportsContentDownloading = supportsContentDownloading; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelFeatures channelFeatures = (ChannelFeatures) o; + return Objects.equals(this.name, channelFeatures.name) && + Objects.equals(this.id, channelFeatures.id) && + Objects.equals(this.canSearch, channelFeatures.canSearch) && + Objects.equals(this.mediaTypes, channelFeatures.mediaTypes) && + Objects.equals(this.contentTypes, channelFeatures.contentTypes) && + Objects.equals(this.maxPageSize, channelFeatures.maxPageSize) && + Objects.equals(this.autoRefreshLevels, channelFeatures.autoRefreshLevels) && + Objects.equals(this.defaultSortFields, channelFeatures.defaultSortFields) && + Objects.equals(this.supportsSortOrderToggle, channelFeatures.supportsSortOrderToggle) && + Objects.equals(this.supportsLatestMedia, channelFeatures.supportsLatestMedia) && + Objects.equals(this.canFilter, channelFeatures.canFilter) && + Objects.equals(this.supportsContentDownloading, channelFeatures.supportsContentDownloading); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, canSearch, mediaTypes, contentTypes, maxPageSize, autoRefreshLevels, defaultSortFields, supportsSortOrderToggle, supportsLatestMedia, canFilter, supportsContentDownloading); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelFeatures {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" canSearch: ").append(toIndentedString(canSearch)).append("\n"); + sb.append(" mediaTypes: ").append(toIndentedString(mediaTypes)).append("\n"); + sb.append(" contentTypes: ").append(toIndentedString(contentTypes)).append("\n"); + sb.append(" maxPageSize: ").append(toIndentedString(maxPageSize)).append("\n"); + sb.append(" autoRefreshLevels: ").append(toIndentedString(autoRefreshLevels)).append("\n"); + sb.append(" defaultSortFields: ").append(toIndentedString(defaultSortFields)).append("\n"); + sb.append(" supportsSortOrderToggle: ").append(toIndentedString(supportsSortOrderToggle)).append("\n"); + sb.append(" supportsLatestMedia: ").append(toIndentedString(supportsLatestMedia)).append("\n"); + sb.append(" canFilter: ").append(toIndentedString(canFilter)).append("\n"); + sb.append(" supportsContentDownloading: ").append(toIndentedString(supportsContentDownloading)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("CanSearch"); + openapiFields.add("MediaTypes"); + openapiFields.add("ContentTypes"); + openapiFields.add("MaxPageSize"); + openapiFields.add("AutoRefreshLevels"); + openapiFields.add("DefaultSortFields"); + openapiFields.add("SupportsSortOrderToggle"); + openapiFields.add("SupportsLatestMedia"); + openapiFields.add("CanFilter"); + openapiFields.add("SupportsContentDownloading"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChannelFeatures + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChannelFeatures.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChannelFeatures is not found in the empty JSON string", ChannelFeatures.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChannelFeatures.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChannelFeatures` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MediaTypes") != null && !jsonObj.get("MediaTypes").isJsonNull() && !jsonObj.get("MediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("MediaTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ContentTypes") != null && !jsonObj.get("ContentTypes").isJsonNull() && !jsonObj.get("ContentTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypes` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DefaultSortFields") != null && !jsonObj.get("DefaultSortFields").isJsonNull() && !jsonObj.get("DefaultSortFields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DefaultSortFields` to be an array in the JSON string but got `%s`", jsonObj.get("DefaultSortFields").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChannelFeatures.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChannelFeatures' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChannelFeatures.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChannelFeatures value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChannelFeatures read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChannelFeatures given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChannelFeatures + * @throws IOException if the JSON string is invalid with respect to ChannelFeatures + */ + public static ChannelFeatures fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChannelFeatures.class); + } + + /** + * Convert an instance of ChannelFeatures to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelItemSortField.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelItemSortField.java new file mode 100644 index 0000000000000..53bc8f8994ac1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelItemSortField.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelItemSortField + */ +@JsonAdapter(ChannelItemSortField.Adapter.class) +public enum ChannelItemSortField { + + NAME("Name"), + + COMMUNITY_RATING("CommunityRating"), + + PREMIERE_DATE("PremiereDate"), + + DATE_CREATED("DateCreated"), + + RUNTIME("Runtime"), + + PLAY_COUNT("PlayCount"), + + COMMUNITY_PLAY_COUNT("CommunityPlayCount"); + + private String value; + + ChannelItemSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelItemSortField fromValue(String value) { + for (ChannelItemSortField b : ChannelItemSortField.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelItemSortField enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelItemSortField read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelItemSortField.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelItemSortField.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java new file mode 100644 index 0000000000000..a77bb823abb50 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java @@ -0,0 +1,370 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameIdPair; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.TunerChannelMapping; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Channel mapping options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChannelMappingOptionsDto { + public static final String SERIALIZED_NAME_TUNER_CHANNELS = "TunerChannels"; + @SerializedName(SERIALIZED_NAME_TUNER_CHANNELS) + @javax.annotation.Nullable + private List tunerChannels = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROVIDER_CHANNELS = "ProviderChannels"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNELS) + @javax.annotation.Nullable + private List providerChannels = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MAPPINGS = "Mappings"; + @SerializedName(SERIALIZED_NAME_MAPPINGS) + @javax.annotation.Nullable + private List mappings = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public ChannelMappingOptionsDto() { + } + + public ChannelMappingOptionsDto tunerChannels(@javax.annotation.Nullable List tunerChannels) { + this.tunerChannels = tunerChannels; + return this; + } + + public ChannelMappingOptionsDto addTunerChannelsItem(TunerChannelMapping tunerChannelsItem) { + if (this.tunerChannels == null) { + this.tunerChannels = new ArrayList<>(); + } + this.tunerChannels.add(tunerChannelsItem); + return this; + } + + /** + * Gets or sets list of tuner channels. + * @return tunerChannels + */ + @javax.annotation.Nullable + public List getTunerChannels() { + return tunerChannels; + } + + public void setTunerChannels(@javax.annotation.Nullable List tunerChannels) { + this.tunerChannels = tunerChannels; + } + + + public ChannelMappingOptionsDto providerChannels(@javax.annotation.Nullable List providerChannels) { + this.providerChannels = providerChannels; + return this; + } + + public ChannelMappingOptionsDto addProviderChannelsItem(NameIdPair providerChannelsItem) { + if (this.providerChannels == null) { + this.providerChannels = new ArrayList<>(); + } + this.providerChannels.add(providerChannelsItem); + return this; + } + + /** + * Gets or sets list of provider channels. + * @return providerChannels + */ + @javax.annotation.Nullable + public List getProviderChannels() { + return providerChannels; + } + + public void setProviderChannels(@javax.annotation.Nullable List providerChannels) { + this.providerChannels = providerChannels; + } + + + public ChannelMappingOptionsDto mappings(@javax.annotation.Nullable List mappings) { + this.mappings = mappings; + return this; + } + + public ChannelMappingOptionsDto addMappingsItem(NameValuePair mappingsItem) { + if (this.mappings == null) { + this.mappings = new ArrayList<>(); + } + this.mappings.add(mappingsItem); + return this; + } + + /** + * Gets or sets list of mappings. + * @return mappings + */ + @javax.annotation.Nullable + public List getMappings() { + return mappings; + } + + public void setMappings(@javax.annotation.Nullable List mappings) { + this.mappings = mappings; + } + + + public ChannelMappingOptionsDto providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Gets or sets provider name. + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelMappingOptionsDto channelMappingOptionsDto = (ChannelMappingOptionsDto) o; + return Objects.equals(this.tunerChannels, channelMappingOptionsDto.tunerChannels) && + Objects.equals(this.providerChannels, channelMappingOptionsDto.providerChannels) && + Objects.equals(this.mappings, channelMappingOptionsDto.mappings) && + Objects.equals(this.providerName, channelMappingOptionsDto.providerName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(tunerChannels, providerChannels, mappings, providerName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelMappingOptionsDto {\n"); + sb.append(" tunerChannels: ").append(toIndentedString(tunerChannels)).append("\n"); + sb.append(" providerChannels: ").append(toIndentedString(providerChannels)).append("\n"); + sb.append(" mappings: ").append(toIndentedString(mappings)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("TunerChannels"); + openapiFields.add("ProviderChannels"); + openapiFields.add("Mappings"); + openapiFields.add("ProviderName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChannelMappingOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChannelMappingOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChannelMappingOptionsDto is not found in the empty JSON string", ChannelMappingOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChannelMappingOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChannelMappingOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("TunerChannels") != null && !jsonObj.get("TunerChannels").isJsonNull()) { + JsonArray jsonArraytunerChannels = jsonObj.getAsJsonArray("TunerChannels"); + if (jsonArraytunerChannels != null) { + // ensure the json data is an array + if (!jsonObj.get("TunerChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerChannels` to be an array in the JSON string but got `%s`", jsonObj.get("TunerChannels").toString())); + } + + // validate the optional field `TunerChannels` (array) + for (int i = 0; i < jsonArraytunerChannels.size(); i++) { + TunerChannelMapping.validateJsonElement(jsonArraytunerChannels.get(i)); + }; + } + } + if (jsonObj.get("ProviderChannels") != null && !jsonObj.get("ProviderChannels").isJsonNull()) { + JsonArray jsonArrayproviderChannels = jsonObj.getAsJsonArray("ProviderChannels"); + if (jsonArrayproviderChannels != null) { + // ensure the json data is an array + if (!jsonObj.get("ProviderChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannels` to be an array in the JSON string but got `%s`", jsonObj.get("ProviderChannels").toString())); + } + + // validate the optional field `ProviderChannels` (array) + for (int i = 0; i < jsonArrayproviderChannels.size(); i++) { + NameIdPair.validateJsonElement(jsonArrayproviderChannels.get(i)); + }; + } + } + if (jsonObj.get("Mappings") != null && !jsonObj.get("Mappings").isJsonNull()) { + JsonArray jsonArraymappings = jsonObj.getAsJsonArray("Mappings"); + if (jsonArraymappings != null) { + // ensure the json data is an array + if (!jsonObj.get("Mappings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Mappings` to be an array in the JSON string but got `%s`", jsonObj.get("Mappings").toString())); + } + + // validate the optional field `Mappings` (array) + for (int i = 0; i < jsonArraymappings.size(); i++) { + NameValuePair.validateJsonElement(jsonArraymappings.get(i)); + }; + } + } + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChannelMappingOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChannelMappingOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChannelMappingOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChannelMappingOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChannelMappingOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChannelMappingOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChannelMappingOptionsDto + * @throws IOException if the JSON string is invalid with respect to ChannelMappingOptionsDto + */ + public static ChannelMappingOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChannelMappingOptionsDto.class); + } + + /** + * Convert an instance of ChannelMappingOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java new file mode 100644 index 0000000000000..cbddc49346578 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelMediaContentType + */ +@JsonAdapter(ChannelMediaContentType.Adapter.class) +public enum ChannelMediaContentType { + + CLIP("Clip"), + + PODCAST("Podcast"), + + TRAILER("Trailer"), + + MOVIE("Movie"), + + EPISODE("Episode"), + + SONG("Song"), + + MOVIE_EXTRA("MovieExtra"), + + TV_EXTRA("TvExtra"); + + private String value; + + ChannelMediaContentType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelMediaContentType fromValue(String value) { + for (ChannelMediaContentType b : ChannelMediaContentType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelMediaContentType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelMediaContentType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelMediaContentType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelMediaContentType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaType.java new file mode 100644 index 0000000000000..e29a877fab65b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelMediaType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelMediaType + */ +@JsonAdapter(ChannelMediaType.Adapter.class) +public enum ChannelMediaType { + + AUDIO("Audio"), + + VIDEO("Video"), + + PHOTO("Photo"); + + private String value; + + ChannelMediaType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelMediaType fromValue(String value) { + for (ChannelMediaType b : ChannelMediaType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelMediaType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelMediaType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelMediaType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelMediaType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelType.java new file mode 100644 index 0000000000000..4eb9a9e087f43 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChannelType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ChannelType. + */ +@JsonAdapter(ChannelType.Adapter.class) +public enum ChannelType { + + TV("TV"), + + RADIO("Radio"); + + private String value; + + ChannelType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelType fromValue(String value) { + for (ChannelType b : ChannelType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChapterInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChapterInfo.java new file mode 100644 index 0000000000000..62a71e3df5751 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ChapterInfo.java @@ -0,0 +1,333 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ChapterInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChapterInfo { + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IMAGE_PATH = "ImagePath"; + @SerializedName(SERIALIZED_NAME_IMAGE_PATH) + @javax.annotation.Nullable + private String imagePath; + + public static final String SERIALIZED_NAME_IMAGE_DATE_MODIFIED = "ImageDateModified"; + @SerializedName(SERIALIZED_NAME_IMAGE_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime imageDateModified; + + public static final String SERIALIZED_NAME_IMAGE_TAG = "ImageTag"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAG) + @javax.annotation.Nullable + private String imageTag; + + public ChapterInfo() { + } + + public ChapterInfo startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + public ChapterInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ChapterInfo imagePath(@javax.annotation.Nullable String imagePath) { + this.imagePath = imagePath; + return this; + } + + /** + * Gets or sets the image path. + * @return imagePath + */ + @javax.annotation.Nullable + public String getImagePath() { + return imagePath; + } + + public void setImagePath(@javax.annotation.Nullable String imagePath) { + this.imagePath = imagePath; + } + + + public ChapterInfo imageDateModified(@javax.annotation.Nullable OffsetDateTime imageDateModified) { + this.imageDateModified = imageDateModified; + return this; + } + + /** + * Get imageDateModified + * @return imageDateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getImageDateModified() { + return imageDateModified; + } + + public void setImageDateModified(@javax.annotation.Nullable OffsetDateTime imageDateModified) { + this.imageDateModified = imageDateModified; + } + + + public ChapterInfo imageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + return this; + } + + /** + * Get imageTag + * @return imageTag + */ + @javax.annotation.Nullable + public String getImageTag() { + return imageTag; + } + + public void setImageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChapterInfo chapterInfo = (ChapterInfo) o; + return Objects.equals(this.startPositionTicks, chapterInfo.startPositionTicks) && + Objects.equals(this.name, chapterInfo.name) && + Objects.equals(this.imagePath, chapterInfo.imagePath) && + Objects.equals(this.imageDateModified, chapterInfo.imageDateModified) && + Objects.equals(this.imageTag, chapterInfo.imageTag); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(startPositionTicks, name, imagePath, imageDateModified, imageTag); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChapterInfo {\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" imagePath: ").append(toIndentedString(imagePath)).append("\n"); + sb.append(" imageDateModified: ").append(toIndentedString(imageDateModified)).append("\n"); + sb.append(" imageTag: ").append(toIndentedString(imageTag)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartPositionTicks"); + openapiFields.add("Name"); + openapiFields.add("ImagePath"); + openapiFields.add("ImageDateModified"); + openapiFields.add("ImageTag"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChapterInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChapterInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChapterInfo is not found in the empty JSON string", ChapterInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChapterInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChapterInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ImagePath") != null && !jsonObj.get("ImagePath").isJsonNull()) && !jsonObj.get("ImagePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImagePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImagePath").toString())); + } + if ((jsonObj.get("ImageTag") != null && !jsonObj.get("ImageTag").isJsonNull()) && !jsonObj.get("ImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageTag").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChapterInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChapterInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChapterInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChapterInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChapterInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChapterInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChapterInfo + * @throws IOException if the JSON string is invalid with respect to ChapterInfo + */ + public static ChapterInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChapterInfo.class); + } + + /** + * Convert an instance of ChapterInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java new file mode 100644 index 0000000000000..dac894b40643c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java @@ -0,0 +1,416 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.client.model.MediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Client capabilities dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ClientCapabilitiesDto { + public static final String SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES = "PlayableMediaTypes"; + @SerializedName(SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES) + @javax.annotation.Nullable + private List playableMediaTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTED_COMMANDS = "SupportedCommands"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_COMMANDS) + @javax.annotation.Nullable + private List supportedCommands = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL = "SupportsMediaControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL) + @javax.annotation.Nullable + private Boolean supportsMediaControl; + + public static final String SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER = "SupportsPersistentIdentifier"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER) + @javax.annotation.Nullable + private Boolean supportsPersistentIdentifier; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_APP_STORE_URL = "AppStoreUrl"; + @SerializedName(SERIALIZED_NAME_APP_STORE_URL) + @javax.annotation.Nullable + private String appStoreUrl; + + public static final String SERIALIZED_NAME_ICON_URL = "IconUrl"; + @SerializedName(SERIALIZED_NAME_ICON_URL) + @javax.annotation.Nullable + private String iconUrl; + + public ClientCapabilitiesDto() { + } + + public ClientCapabilitiesDto playableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + return this; + } + + public ClientCapabilitiesDto addPlayableMediaTypesItem(MediaType playableMediaTypesItem) { + if (this.playableMediaTypes == null) { + this.playableMediaTypes = new ArrayList<>(); + } + this.playableMediaTypes.add(playableMediaTypesItem); + return this; + } + + /** + * Gets or sets the list of playable media types. + * @return playableMediaTypes + */ + @javax.annotation.Nullable + public List getPlayableMediaTypes() { + return playableMediaTypes; + } + + public void setPlayableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + } + + + public ClientCapabilitiesDto supportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + return this; + } + + public ClientCapabilitiesDto addSupportedCommandsItem(GeneralCommandType supportedCommandsItem) { + if (this.supportedCommands == null) { + this.supportedCommands = new ArrayList<>(); + } + this.supportedCommands.add(supportedCommandsItem); + return this; + } + + /** + * Gets or sets the list of supported commands. + * @return supportedCommands + */ + @javax.annotation.Nullable + public List getSupportedCommands() { + return supportedCommands; + } + + public void setSupportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + } + + + public ClientCapabilitiesDto supportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + return this; + } + + /** + * Gets or sets a value indicating whether session supports media control. + * @return supportsMediaControl + */ + @javax.annotation.Nullable + public Boolean getSupportsMediaControl() { + return supportsMediaControl; + } + + public void setSupportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + } + + + public ClientCapabilitiesDto supportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + return this; + } + + /** + * Gets or sets a value indicating whether session supports a persistent identifier. + * @return supportsPersistentIdentifier + */ + @javax.annotation.Nullable + public Boolean getSupportsPersistentIdentifier() { + return supportsPersistentIdentifier; + } + + public void setSupportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + } + + + public ClientCapabilitiesDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * Gets or sets the device profile. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public ClientCapabilitiesDto appStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + return this; + } + + /** + * Gets or sets the app store url. + * @return appStoreUrl + */ + @javax.annotation.Nullable + public String getAppStoreUrl() { + return appStoreUrl; + } + + public void setAppStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + } + + + public ClientCapabilitiesDto iconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + return this; + } + + /** + * Gets or sets the icon url. + * @return iconUrl + */ + @javax.annotation.Nullable + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientCapabilitiesDto clientCapabilitiesDto = (ClientCapabilitiesDto) o; + return Objects.equals(this.playableMediaTypes, clientCapabilitiesDto.playableMediaTypes) && + Objects.equals(this.supportedCommands, clientCapabilitiesDto.supportedCommands) && + Objects.equals(this.supportsMediaControl, clientCapabilitiesDto.supportsMediaControl) && + Objects.equals(this.supportsPersistentIdentifier, clientCapabilitiesDto.supportsPersistentIdentifier) && + Objects.equals(this.deviceProfile, clientCapabilitiesDto.deviceProfile) && + Objects.equals(this.appStoreUrl, clientCapabilitiesDto.appStoreUrl) && + Objects.equals(this.iconUrl, clientCapabilitiesDto.iconUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(playableMediaTypes, supportedCommands, supportsMediaControl, supportsPersistentIdentifier, deviceProfile, appStoreUrl, iconUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClientCapabilitiesDto {\n"); + sb.append(" playableMediaTypes: ").append(toIndentedString(playableMediaTypes)).append("\n"); + sb.append(" supportedCommands: ").append(toIndentedString(supportedCommands)).append("\n"); + sb.append(" supportsMediaControl: ").append(toIndentedString(supportsMediaControl)).append("\n"); + sb.append(" supportsPersistentIdentifier: ").append(toIndentedString(supportsPersistentIdentifier)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" appStoreUrl: ").append(toIndentedString(appStoreUrl)).append("\n"); + sb.append(" iconUrl: ").append(toIndentedString(iconUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayableMediaTypes"); + openapiFields.add("SupportedCommands"); + openapiFields.add("SupportsMediaControl"); + openapiFields.add("SupportsPersistentIdentifier"); + openapiFields.add("DeviceProfile"); + openapiFields.add("AppStoreUrl"); + openapiFields.add("IconUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ClientCapabilitiesDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ClientCapabilitiesDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ClientCapabilitiesDto is not found in the empty JSON string", ClientCapabilitiesDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ClientCapabilitiesDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ClientCapabilitiesDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlayableMediaTypes") != null && !jsonObj.get("PlayableMediaTypes").isJsonNull() && !jsonObj.get("PlayableMediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayableMediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("PlayableMediaTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedCommands") != null && !jsonObj.get("SupportedCommands").isJsonNull() && !jsonObj.get("SupportedCommands").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedCommands` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedCommands").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + if ((jsonObj.get("AppStoreUrl") != null && !jsonObj.get("AppStoreUrl").isJsonNull()) && !jsonObj.get("AppStoreUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppStoreUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppStoreUrl").toString())); + } + if ((jsonObj.get("IconUrl") != null && !jsonObj.get("IconUrl").isJsonNull()) && !jsonObj.get("IconUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IconUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IconUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ClientCapabilitiesDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ClientCapabilitiesDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ClientCapabilitiesDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ClientCapabilitiesDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ClientCapabilitiesDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ClientCapabilitiesDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ClientCapabilitiesDto + * @throws IOException if the JSON string is invalid with respect to ClientCapabilitiesDto + */ + public static ClientCapabilitiesDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ClientCapabilitiesDto.class); + } + + /** + * Convert an instance of ClientCapabilitiesDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java new file mode 100644 index 0000000000000..455bd134cf645 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Client log document response dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ClientLogDocumentResponseDto { + public static final String SERIALIZED_NAME_FILE_NAME = "FileName"; + @SerializedName(SERIALIZED_NAME_FILE_NAME) + @javax.annotation.Nullable + private String fileName; + + public ClientLogDocumentResponseDto() { + } + + public ClientLogDocumentResponseDto fileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + return this; + } + + /** + * Gets the resulting filename. + * @return fileName + */ + @javax.annotation.Nullable + public String getFileName() { + return fileName; + } + + public void setFileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientLogDocumentResponseDto clientLogDocumentResponseDto = (ClientLogDocumentResponseDto) o; + return Objects.equals(this.fileName, clientLogDocumentResponseDto.fileName); + } + + @Override + public int hashCode() { + return Objects.hash(fileName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClientLogDocumentResponseDto {\n"); + sb.append(" fileName: ").append(toIndentedString(fileName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FileName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ClientLogDocumentResponseDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ClientLogDocumentResponseDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ClientLogDocumentResponseDto is not found in the empty JSON string", ClientLogDocumentResponseDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ClientLogDocumentResponseDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ClientLogDocumentResponseDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("FileName") != null && !jsonObj.get("FileName").isJsonNull()) && !jsonObj.get("FileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FileName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ClientLogDocumentResponseDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ClientLogDocumentResponseDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ClientLogDocumentResponseDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ClientLogDocumentResponseDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ClientLogDocumentResponseDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ClientLogDocumentResponseDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ClientLogDocumentResponseDto + * @throws IOException if the JSON string is invalid with respect to ClientLogDocumentResponseDto + */ + public static ClientLogDocumentResponseDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ClientLogDocumentResponseDto.class); + } + + /** + * Convert an instance of ClientLogDocumentResponseDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecProfile.java new file mode 100644 index 0000000000000..239188f799dcd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecProfile.java @@ -0,0 +1,411 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CodecType; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Dlna.CodecProfile. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CodecProfile { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private CodecType type; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_APPLY_CONDITIONS = "ApplyConditions"; + @SerializedName(SERIALIZED_NAME_APPLY_CONDITIONS) + @javax.annotation.Nullable + private List applyConditions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SUB_CONTAINER = "SubContainer"; + @SerializedName(SERIALIZED_NAME_SUB_CONTAINER) + @javax.annotation.Nullable + private String subContainer; + + public CodecProfile() { + } + + public CodecProfile type(@javax.annotation.Nullable CodecType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the MediaBrowser.Model.Dlna.CodecType which this container must meet. + * @return type + */ + @javax.annotation.Nullable + public CodecType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable CodecType type) { + this.type = type; + } + + + public CodecProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public CodecProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this profile must meet. + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public CodecProfile applyConditions(@javax.annotation.Nullable List applyConditions) { + this.applyConditions = applyConditions; + return this; + } + + public CodecProfile addApplyConditionsItem(ProfileCondition applyConditionsItem) { + if (this.applyConditions == null) { + this.applyConditions = new ArrayList<>(); + } + this.applyConditions.add(applyConditionsItem); + return this; + } + + /** + * Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition to apply if this profile is met. + * @return applyConditions + */ + @javax.annotation.Nullable + public List getApplyConditions() { + return applyConditions; + } + + public void setApplyConditions(@javax.annotation.Nullable List applyConditions) { + this.applyConditions = applyConditions; + } + + + public CodecProfile codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Gets or sets the codec(s) that this profile applies to. + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public CodecProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the container(s) which this profile will be applied to. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public CodecProfile subContainer(@javax.annotation.Nullable String subContainer) { + this.subContainer = subContainer; + return this; + } + + /** + * Gets or sets the sub-container(s) which this profile will be applied to. + * @return subContainer + */ + @javax.annotation.Nullable + public String getSubContainer() { + return subContainer; + } + + public void setSubContainer(@javax.annotation.Nullable String subContainer) { + this.subContainer = subContainer; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CodecProfile codecProfile = (CodecProfile) o; + return Objects.equals(this.type, codecProfile.type) && + Objects.equals(this.conditions, codecProfile.conditions) && + Objects.equals(this.applyConditions, codecProfile.applyConditions) && + Objects.equals(this.codec, codecProfile.codec) && + Objects.equals(this.container, codecProfile.container) && + Objects.equals(this.subContainer, codecProfile.subContainer); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, conditions, applyConditions, codec, container, subContainer); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CodecProfile {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" applyConditions: ").append(toIndentedString(applyConditions)).append("\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" subContainer: ").append(toIndentedString(subContainer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Conditions"); + openapiFields.add("ApplyConditions"); + openapiFields.add("Codec"); + openapiFields.add("Container"); + openapiFields.add("SubContainer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CodecProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CodecProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CodecProfile is not found in the empty JSON string", CodecProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CodecProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CodecProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + CodecType.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + if (jsonObj.get("ApplyConditions") != null && !jsonObj.get("ApplyConditions").isJsonNull()) { + JsonArray jsonArrayapplyConditions = jsonObj.getAsJsonArray("ApplyConditions"); + if (jsonArrayapplyConditions != null) { + // ensure the json data is an array + if (!jsonObj.get("ApplyConditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ApplyConditions` to be an array in the JSON string but got `%s`", jsonObj.get("ApplyConditions").toString())); + } + + // validate the optional field `ApplyConditions` (array) + for (int i = 0; i < jsonArrayapplyConditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayapplyConditions.get(i)); + }; + } + } + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("SubContainer") != null && !jsonObj.get("SubContainer").isJsonNull()) && !jsonObj.get("SubContainer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SubContainer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SubContainer").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CodecProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CodecProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CodecProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CodecProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CodecProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CodecProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of CodecProfile + * @throws IOException if the JSON string is invalid with respect to CodecProfile + */ + public static CodecProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CodecProfile.class); + } + + /** + * Convert an instance of CodecProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecType.java new file mode 100644 index 0000000000000..a7d7ff37d7256 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CodecType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets CodecType + */ +@JsonAdapter(CodecType.Adapter.class) +public enum CodecType { + + VIDEO("Video"), + + VIDEO_AUDIO("VideoAudio"), + + AUDIO("Audio"); + + private String value; + + CodecType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CodecType fromValue(String value) { + for (CodecType b : CodecType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CodecType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CodecType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CodecType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CodecType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionCreationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionCreationResult.java new file mode 100644 index 0000000000000..617bce5ca055b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionCreationResult.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * CollectionCreationResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CollectionCreationResult { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public CollectionCreationResult() { + } + + public CollectionCreationResult id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollectionCreationResult collectionCreationResult = (CollectionCreationResult) o; + return Objects.equals(this.id, collectionCreationResult.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CollectionCreationResult {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CollectionCreationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CollectionCreationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CollectionCreationResult is not found in the empty JSON string", CollectionCreationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CollectionCreationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CollectionCreationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CollectionCreationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CollectionCreationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CollectionCreationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CollectionCreationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CollectionCreationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CollectionCreationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of CollectionCreationResult + * @throws IOException if the JSON string is invalid with respect to CollectionCreationResult + */ + public static CollectionCreationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CollectionCreationResult.class); + } + + /** + * Convert an instance of CollectionCreationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionType.java new file mode 100644 index 0000000000000..86ae5ae3d06d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionType.java @@ -0,0 +1,100 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Collection type. + */ +@JsonAdapter(CollectionType.Adapter.class) +public enum CollectionType { + + UNKNOWN("unknown"), + + MOVIES("movies"), + + TVSHOWS("tvshows"), + + MUSIC("music"), + + MUSICVIDEOS("musicvideos"), + + TRAILERS("trailers"), + + HOMEVIDEOS("homevideos"), + + BOXSETS("boxsets"), + + BOOKS("books"), + + PHOTOS("photos"), + + LIVETV("livetv"), + + PLAYLISTS("playlists"), + + FOLDERS("folders"); + + private String value; + + CollectionType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CollectionType fromValue(String value) { + for (CollectionType b : CollectionType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CollectionType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CollectionType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CollectionType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CollectionType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java new file mode 100644 index 0000000000000..08d6628c91a54 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The collection type options. + */ +@JsonAdapter(CollectionTypeOptions.Adapter.class) +public enum CollectionTypeOptions { + + MOVIES("movies"), + + TVSHOWS("tvshows"), + + MUSIC("music"), + + MUSICVIDEOS("musicvideos"), + + HOMEVIDEOS("homevideos"), + + BOXSETS("boxsets"), + + BOOKS("books"), + + MIXED("mixed"); + + private String value; + + CollectionTypeOptions(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CollectionTypeOptions fromValue(String value) { + for (CollectionTypeOptions b : CollectionTypeOptions.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CollectionTypeOptions enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CollectionTypeOptions read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CollectionTypeOptions.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CollectionTypeOptions.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigImageTypes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigImageTypes.java new file mode 100644 index 0000000000000..7fe598a8dda7d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigImageTypes.java @@ -0,0 +1,445 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ConfigImageTypes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ConfigImageTypes { + public static final String SERIALIZED_NAME_BACKDROP_SIZES = "BackdropSizes"; + @SerializedName(SERIALIZED_NAME_BACKDROP_SIZES) + @javax.annotation.Nullable + private List backdropSizes; + + public static final String SERIALIZED_NAME_BASE_URL = "BaseUrl"; + @SerializedName(SERIALIZED_NAME_BASE_URL) + @javax.annotation.Nullable + private String baseUrl; + + public static final String SERIALIZED_NAME_LOGO_SIZES = "LogoSizes"; + @SerializedName(SERIALIZED_NAME_LOGO_SIZES) + @javax.annotation.Nullable + private List logoSizes; + + public static final String SERIALIZED_NAME_POSTER_SIZES = "PosterSizes"; + @SerializedName(SERIALIZED_NAME_POSTER_SIZES) + @javax.annotation.Nullable + private List posterSizes; + + public static final String SERIALIZED_NAME_PROFILE_SIZES = "ProfileSizes"; + @SerializedName(SERIALIZED_NAME_PROFILE_SIZES) + @javax.annotation.Nullable + private List profileSizes; + + public static final String SERIALIZED_NAME_SECURE_BASE_URL = "SecureBaseUrl"; + @SerializedName(SERIALIZED_NAME_SECURE_BASE_URL) + @javax.annotation.Nullable + private String secureBaseUrl; + + public static final String SERIALIZED_NAME_STILL_SIZES = "StillSizes"; + @SerializedName(SERIALIZED_NAME_STILL_SIZES) + @javax.annotation.Nullable + private List stillSizes; + + public ConfigImageTypes() { + } + + public ConfigImageTypes backdropSizes(@javax.annotation.Nullable List backdropSizes) { + this.backdropSizes = backdropSizes; + return this; + } + + public ConfigImageTypes addBackdropSizesItem(String backdropSizesItem) { + if (this.backdropSizes == null) { + this.backdropSizes = new ArrayList<>(); + } + this.backdropSizes.add(backdropSizesItem); + return this; + } + + /** + * Get backdropSizes + * @return backdropSizes + */ + @javax.annotation.Nullable + public List getBackdropSizes() { + return backdropSizes; + } + + public void setBackdropSizes(@javax.annotation.Nullable List backdropSizes) { + this.backdropSizes = backdropSizes; + } + + + public ConfigImageTypes baseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + /** + * Get baseUrl + * @return baseUrl + */ + @javax.annotation.Nullable + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + } + + + public ConfigImageTypes logoSizes(@javax.annotation.Nullable List logoSizes) { + this.logoSizes = logoSizes; + return this; + } + + public ConfigImageTypes addLogoSizesItem(String logoSizesItem) { + if (this.logoSizes == null) { + this.logoSizes = new ArrayList<>(); + } + this.logoSizes.add(logoSizesItem); + return this; + } + + /** + * Get logoSizes + * @return logoSizes + */ + @javax.annotation.Nullable + public List getLogoSizes() { + return logoSizes; + } + + public void setLogoSizes(@javax.annotation.Nullable List logoSizes) { + this.logoSizes = logoSizes; + } + + + public ConfigImageTypes posterSizes(@javax.annotation.Nullable List posterSizes) { + this.posterSizes = posterSizes; + return this; + } + + public ConfigImageTypes addPosterSizesItem(String posterSizesItem) { + if (this.posterSizes == null) { + this.posterSizes = new ArrayList<>(); + } + this.posterSizes.add(posterSizesItem); + return this; + } + + /** + * Get posterSizes + * @return posterSizes + */ + @javax.annotation.Nullable + public List getPosterSizes() { + return posterSizes; + } + + public void setPosterSizes(@javax.annotation.Nullable List posterSizes) { + this.posterSizes = posterSizes; + } + + + public ConfigImageTypes profileSizes(@javax.annotation.Nullable List profileSizes) { + this.profileSizes = profileSizes; + return this; + } + + public ConfigImageTypes addProfileSizesItem(String profileSizesItem) { + if (this.profileSizes == null) { + this.profileSizes = new ArrayList<>(); + } + this.profileSizes.add(profileSizesItem); + return this; + } + + /** + * Get profileSizes + * @return profileSizes + */ + @javax.annotation.Nullable + public List getProfileSizes() { + return profileSizes; + } + + public void setProfileSizes(@javax.annotation.Nullable List profileSizes) { + this.profileSizes = profileSizes; + } + + + public ConfigImageTypes secureBaseUrl(@javax.annotation.Nullable String secureBaseUrl) { + this.secureBaseUrl = secureBaseUrl; + return this; + } + + /** + * Get secureBaseUrl + * @return secureBaseUrl + */ + @javax.annotation.Nullable + public String getSecureBaseUrl() { + return secureBaseUrl; + } + + public void setSecureBaseUrl(@javax.annotation.Nullable String secureBaseUrl) { + this.secureBaseUrl = secureBaseUrl; + } + + + public ConfigImageTypes stillSizes(@javax.annotation.Nullable List stillSizes) { + this.stillSizes = stillSizes; + return this; + } + + public ConfigImageTypes addStillSizesItem(String stillSizesItem) { + if (this.stillSizes == null) { + this.stillSizes = new ArrayList<>(); + } + this.stillSizes.add(stillSizesItem); + return this; + } + + /** + * Get stillSizes + * @return stillSizes + */ + @javax.annotation.Nullable + public List getStillSizes() { + return stillSizes; + } + + public void setStillSizes(@javax.annotation.Nullable List stillSizes) { + this.stillSizes = stillSizes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConfigImageTypes configImageTypes = (ConfigImageTypes) o; + return Objects.equals(this.backdropSizes, configImageTypes.backdropSizes) && + Objects.equals(this.baseUrl, configImageTypes.baseUrl) && + Objects.equals(this.logoSizes, configImageTypes.logoSizes) && + Objects.equals(this.posterSizes, configImageTypes.posterSizes) && + Objects.equals(this.profileSizes, configImageTypes.profileSizes) && + Objects.equals(this.secureBaseUrl, configImageTypes.secureBaseUrl) && + Objects.equals(this.stillSizes, configImageTypes.stillSizes); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(backdropSizes, baseUrl, logoSizes, posterSizes, profileSizes, secureBaseUrl, stillSizes); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConfigImageTypes {\n"); + sb.append(" backdropSizes: ").append(toIndentedString(backdropSizes)).append("\n"); + sb.append(" baseUrl: ").append(toIndentedString(baseUrl)).append("\n"); + sb.append(" logoSizes: ").append(toIndentedString(logoSizes)).append("\n"); + sb.append(" posterSizes: ").append(toIndentedString(posterSizes)).append("\n"); + sb.append(" profileSizes: ").append(toIndentedString(profileSizes)).append("\n"); + sb.append(" secureBaseUrl: ").append(toIndentedString(secureBaseUrl)).append("\n"); + sb.append(" stillSizes: ").append(toIndentedString(stillSizes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("BackdropSizes"); + openapiFields.add("BaseUrl"); + openapiFields.add("LogoSizes"); + openapiFields.add("PosterSizes"); + openapiFields.add("ProfileSizes"); + openapiFields.add("SecureBaseUrl"); + openapiFields.add("StillSizes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ConfigImageTypes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ConfigImageTypes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConfigImageTypes is not found in the empty JSON string", ConfigImageTypes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ConfigImageTypes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ConfigImageTypes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("BackdropSizes") != null && !jsonObj.get("BackdropSizes").isJsonNull() && !jsonObj.get("BackdropSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropSizes` to be an array in the JSON string but got `%s`", jsonObj.get("BackdropSizes").toString())); + } + if ((jsonObj.get("BaseUrl") != null && !jsonObj.get("BaseUrl").isJsonNull()) && !jsonObj.get("BaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaseUrl").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LogoSizes") != null && !jsonObj.get("LogoSizes").isJsonNull() && !jsonObj.get("LogoSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LogoSizes` to be an array in the JSON string but got `%s`", jsonObj.get("LogoSizes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PosterSizes") != null && !jsonObj.get("PosterSizes").isJsonNull() && !jsonObj.get("PosterSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PosterSizes` to be an array in the JSON string but got `%s`", jsonObj.get("PosterSizes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ProfileSizes") != null && !jsonObj.get("ProfileSizes").isJsonNull() && !jsonObj.get("ProfileSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProfileSizes` to be an array in the JSON string but got `%s`", jsonObj.get("ProfileSizes").toString())); + } + if ((jsonObj.get("SecureBaseUrl") != null && !jsonObj.get("SecureBaseUrl").isJsonNull()) && !jsonObj.get("SecureBaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SecureBaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SecureBaseUrl").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("StillSizes") != null && !jsonObj.get("StillSizes").isJsonNull() && !jsonObj.get("StillSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `StillSizes` to be an array in the JSON string but got `%s`", jsonObj.get("StillSizes").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConfigImageTypes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConfigImageTypes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConfigImageTypes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConfigImageTypes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ConfigImageTypes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConfigImageTypes given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConfigImageTypes + * @throws IOException if the JSON string is invalid with respect to ConfigImageTypes + */ + public static ConfigImageTypes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConfigImageTypes.class); + } + + /** + * Convert an instance of ConfigImageTypes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java new file mode 100644 index 0000000000000..3594b2ab32b7d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java @@ -0,0 +1,366 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The configuration page info. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ConfigurationPageInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ENABLE_IN_MAIN_MENU = "EnableInMainMenu"; + @SerializedName(SERIALIZED_NAME_ENABLE_IN_MAIN_MENU) + @javax.annotation.Nullable + private Boolean enableInMainMenu; + + public static final String SERIALIZED_NAME_MENU_SECTION = "MenuSection"; + @SerializedName(SERIALIZED_NAME_MENU_SECTION) + @javax.annotation.Nullable + private String menuSection; + + public static final String SERIALIZED_NAME_MENU_ICON = "MenuIcon"; + @SerializedName(SERIALIZED_NAME_MENU_ICON) + @javax.annotation.Nullable + private String menuIcon; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_PLUGIN_ID = "PluginId"; + @SerializedName(SERIALIZED_NAME_PLUGIN_ID) + @javax.annotation.Nullable + private UUID pluginId; + + public ConfigurationPageInfo() { + } + + public ConfigurationPageInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ConfigurationPageInfo enableInMainMenu(@javax.annotation.Nullable Boolean enableInMainMenu) { + this.enableInMainMenu = enableInMainMenu; + return this; + } + + /** + * Gets or sets a value indicating whether the configurations page is enabled in the main menu. + * @return enableInMainMenu + */ + @javax.annotation.Nullable + public Boolean getEnableInMainMenu() { + return enableInMainMenu; + } + + public void setEnableInMainMenu(@javax.annotation.Nullable Boolean enableInMainMenu) { + this.enableInMainMenu = enableInMainMenu; + } + + + public ConfigurationPageInfo menuSection(@javax.annotation.Nullable String menuSection) { + this.menuSection = menuSection; + return this; + } + + /** + * Gets or sets the menu section. + * @return menuSection + */ + @javax.annotation.Nullable + public String getMenuSection() { + return menuSection; + } + + public void setMenuSection(@javax.annotation.Nullable String menuSection) { + this.menuSection = menuSection; + } + + + public ConfigurationPageInfo menuIcon(@javax.annotation.Nullable String menuIcon) { + this.menuIcon = menuIcon; + return this; + } + + /** + * Gets or sets the menu icon. + * @return menuIcon + */ + @javax.annotation.Nullable + public String getMenuIcon() { + return menuIcon; + } + + public void setMenuIcon(@javax.annotation.Nullable String menuIcon) { + this.menuIcon = menuIcon; + } + + + public ConfigurationPageInfo displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets or sets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public ConfigurationPageInfo pluginId(@javax.annotation.Nullable UUID pluginId) { + this.pluginId = pluginId; + return this; + } + + /** + * Gets or sets the plugin id. + * @return pluginId + */ + @javax.annotation.Nullable + public UUID getPluginId() { + return pluginId; + } + + public void setPluginId(@javax.annotation.Nullable UUID pluginId) { + this.pluginId = pluginId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConfigurationPageInfo configurationPageInfo = (ConfigurationPageInfo) o; + return Objects.equals(this.name, configurationPageInfo.name) && + Objects.equals(this.enableInMainMenu, configurationPageInfo.enableInMainMenu) && + Objects.equals(this.menuSection, configurationPageInfo.menuSection) && + Objects.equals(this.menuIcon, configurationPageInfo.menuIcon) && + Objects.equals(this.displayName, configurationPageInfo.displayName) && + Objects.equals(this.pluginId, configurationPageInfo.pluginId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, enableInMainMenu, menuSection, menuIcon, displayName, pluginId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConfigurationPageInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enableInMainMenu: ").append(toIndentedString(enableInMainMenu)).append("\n"); + sb.append(" menuSection: ").append(toIndentedString(menuSection)).append("\n"); + sb.append(" menuIcon: ").append(toIndentedString(menuIcon)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" pluginId: ").append(toIndentedString(pluginId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("EnableInMainMenu"); + openapiFields.add("MenuSection"); + openapiFields.add("MenuIcon"); + openapiFields.add("DisplayName"); + openapiFields.add("PluginId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ConfigurationPageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ConfigurationPageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConfigurationPageInfo is not found in the empty JSON string", ConfigurationPageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ConfigurationPageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ConfigurationPageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("MenuSection") != null && !jsonObj.get("MenuSection").isJsonNull()) && !jsonObj.get("MenuSection").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MenuSection` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MenuSection").toString())); + } + if ((jsonObj.get("MenuIcon") != null && !jsonObj.get("MenuIcon").isJsonNull()) && !jsonObj.get("MenuIcon").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MenuIcon` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MenuIcon").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("PluginId") != null && !jsonObj.get("PluginId").isJsonNull()) && !jsonObj.get("PluginId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PluginId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PluginId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConfigurationPageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConfigurationPageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConfigurationPageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConfigurationPageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ConfigurationPageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConfigurationPageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConfigurationPageInfo + * @throws IOException if the JSON string is invalid with respect to ConfigurationPageInfo + */ + public static ConfigurationPageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConfigurationPageInfo.class); + } + + /** + * Convert an instance of ConfigurationPageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ContainerProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ContainerProfile.java new file mode 100644 index 0000000000000..6d0aac622d89f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ContainerProfile.java @@ -0,0 +1,332 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Dlna.ContainerProfile. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ContainerProfile { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SUB_CONTAINER = "SubContainer"; + @SerializedName(SERIALIZED_NAME_SUB_CONTAINER) + @javax.annotation.Nullable + private String subContainer; + + public ContainerProfile() { + } + + public ContainerProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the MediaBrowser.Model.Dlna.DlnaProfileType which this container must meet. + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + public ContainerProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public ContainerProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this container will be applied to. + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public ContainerProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the container(s) which this container must meet. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public ContainerProfile subContainer(@javax.annotation.Nullable String subContainer) { + this.subContainer = subContainer; + return this; + } + + /** + * Gets or sets the sub container(s) which this container must meet. + * @return subContainer + */ + @javax.annotation.Nullable + public String getSubContainer() { + return subContainer; + } + + public void setSubContainer(@javax.annotation.Nullable String subContainer) { + this.subContainer = subContainer; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContainerProfile containerProfile = (ContainerProfile) o; + return Objects.equals(this.type, containerProfile.type) && + Objects.equals(this.conditions, containerProfile.conditions) && + Objects.equals(this.container, containerProfile.container) && + Objects.equals(this.subContainer, containerProfile.subContainer); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, conditions, container, subContainer); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContainerProfile {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" subContainer: ").append(toIndentedString(subContainer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Conditions"); + openapiFields.add("Container"); + openapiFields.add("SubContainer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ContainerProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ContainerProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ContainerProfile is not found in the empty JSON string", ContainerProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ContainerProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ContainerProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("SubContainer") != null && !jsonObj.get("SubContainer").isJsonNull()) && !jsonObj.get("SubContainer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SubContainer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SubContainer").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ContainerProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ContainerProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ContainerProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ContainerProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ContainerProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ContainerProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of ContainerProfile + * @throws IOException if the JSON string is invalid with respect to ContainerProfile + */ + public static ContainerProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ContainerProfile.class); + } + + /** + * Convert an instance of ContainerProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CountryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CountryInfo.java new file mode 100644 index 0000000000000..4f386d6ce0358 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CountryInfo.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class CountryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CountryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_TWO_LETTER_I_S_O_REGION_NAME = "TwoLetterISORegionName"; + @SerializedName(SERIALIZED_NAME_TWO_LETTER_I_S_O_REGION_NAME) + @javax.annotation.Nullable + private String twoLetterISORegionName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_REGION_NAME = "ThreeLetterISORegionName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_REGION_NAME) + @javax.annotation.Nullable + private String threeLetterISORegionName; + + public CountryInfo() { + } + + public CountryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CountryInfo displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets or sets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public CountryInfo twoLetterISORegionName(@javax.annotation.Nullable String twoLetterISORegionName) { + this.twoLetterISORegionName = twoLetterISORegionName; + return this; + } + + /** + * Gets or sets the name of the two letter ISO region. + * @return twoLetterISORegionName + */ + @javax.annotation.Nullable + public String getTwoLetterISORegionName() { + return twoLetterISORegionName; + } + + public void setTwoLetterISORegionName(@javax.annotation.Nullable String twoLetterISORegionName) { + this.twoLetterISORegionName = twoLetterISORegionName; + } + + + public CountryInfo threeLetterISORegionName(@javax.annotation.Nullable String threeLetterISORegionName) { + this.threeLetterISORegionName = threeLetterISORegionName; + return this; + } + + /** + * Gets or sets the name of the three letter ISO region. + * @return threeLetterISORegionName + */ + @javax.annotation.Nullable + public String getThreeLetterISORegionName() { + return threeLetterISORegionName; + } + + public void setThreeLetterISORegionName(@javax.annotation.Nullable String threeLetterISORegionName) { + this.threeLetterISORegionName = threeLetterISORegionName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CountryInfo countryInfo = (CountryInfo) o; + return Objects.equals(this.name, countryInfo.name) && + Objects.equals(this.displayName, countryInfo.displayName) && + Objects.equals(this.twoLetterISORegionName, countryInfo.twoLetterISORegionName) && + Objects.equals(this.threeLetterISORegionName, countryInfo.threeLetterISORegionName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, displayName, twoLetterISORegionName, threeLetterISORegionName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CountryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" twoLetterISORegionName: ").append(toIndentedString(twoLetterISORegionName)).append("\n"); + sb.append(" threeLetterISORegionName: ").append(toIndentedString(threeLetterISORegionName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DisplayName"); + openapiFields.add("TwoLetterISORegionName"); + openapiFields.add("ThreeLetterISORegionName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CountryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CountryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CountryInfo is not found in the empty JSON string", CountryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CountryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CountryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("TwoLetterISORegionName") != null && !jsonObj.get("TwoLetterISORegionName").isJsonNull()) && !jsonObj.get("TwoLetterISORegionName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TwoLetterISORegionName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TwoLetterISORegionName").toString())); + } + if ((jsonObj.get("ThreeLetterISORegionName") != null && !jsonObj.get("ThreeLetterISORegionName").isJsonNull()) && !jsonObj.get("ThreeLetterISORegionName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISORegionName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISORegionName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CountryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CountryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CountryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CountryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CountryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CountryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of CountryInfo + * @throws IOException if the JSON string is invalid with respect to CountryInfo + */ + public static CountryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CountryInfo.class); + } + + /** + * Convert an instance of CountryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java new file mode 100644 index 0000000000000..674b842e027eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java @@ -0,0 +1,399 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.PlaylistUserPermissions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Create new playlist dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CreatePlaylistDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IDS = "Ids"; + @SerializedName(SERIALIZED_NAME_IDS) + @javax.annotation.Nullable + private List ids = new ArrayList<>(); + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private MediaType mediaType; + + public static final String SERIALIZED_NAME_USERS = "Users"; + @SerializedName(SERIALIZED_NAME_USERS) + @javax.annotation.Nullable + private List users = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_PUBLIC = "IsPublic"; + @SerializedName(SERIALIZED_NAME_IS_PUBLIC) + @javax.annotation.Nullable + private Boolean isPublic; + + public CreatePlaylistDto() { + } + + public CreatePlaylistDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the new playlist. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CreatePlaylistDto ids(@javax.annotation.Nullable List ids) { + this.ids = ids; + return this; + } + + public CreatePlaylistDto addIdsItem(UUID idsItem) { + if (this.ids == null) { + this.ids = new ArrayList<>(); + } + this.ids.add(idsItem); + return this; + } + + /** + * Gets or sets item ids to add to the playlist. + * @return ids + */ + @javax.annotation.Nullable + public List getIds() { + return ids; + } + + public void setIds(@javax.annotation.Nullable List ids) { + this.ids = ids; + } + + + public CreatePlaylistDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public CreatePlaylistDto mediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Gets or sets the media type. + * @return mediaType + */ + @javax.annotation.Nullable + public MediaType getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + } + + + public CreatePlaylistDto users(@javax.annotation.Nullable List users) { + this.users = users; + return this; + } + + public CreatePlaylistDto addUsersItem(PlaylistUserPermissions usersItem) { + if (this.users == null) { + this.users = new ArrayList<>(); + } + this.users.add(usersItem); + return this; + } + + /** + * Gets or sets the playlist users. + * @return users + */ + @javax.annotation.Nullable + public List getUsers() { + return users; + } + + public void setUsers(@javax.annotation.Nullable List users) { + this.users = users; + } + + + public CreatePlaylistDto isPublic(@javax.annotation.Nullable Boolean isPublic) { + this.isPublic = isPublic; + return this; + } + + /** + * Gets or sets a value indicating whether the playlist is public. + * @return isPublic + */ + @javax.annotation.Nullable + public Boolean getIsPublic() { + return isPublic; + } + + public void setIsPublic(@javax.annotation.Nullable Boolean isPublic) { + this.isPublic = isPublic; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreatePlaylistDto createPlaylistDto = (CreatePlaylistDto) o; + return Objects.equals(this.name, createPlaylistDto.name) && + Objects.equals(this.ids, createPlaylistDto.ids) && + Objects.equals(this.userId, createPlaylistDto.userId) && + Objects.equals(this.mediaType, createPlaylistDto.mediaType) && + Objects.equals(this.users, createPlaylistDto.users) && + Objects.equals(this.isPublic, createPlaylistDto.isPublic); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, ids, userId, mediaType, users, isPublic); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreatePlaylistDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" ids: ").append(toIndentedString(ids)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append(" users: ").append(toIndentedString(users)).append("\n"); + sb.append(" isPublic: ").append(toIndentedString(isPublic)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Ids"); + openapiFields.add("UserId"); + openapiFields.add("MediaType"); + openapiFields.add("Users"); + openapiFields.add("IsPublic"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreatePlaylistDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreatePlaylistDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreatePlaylistDto is not found in the empty JSON string", CreatePlaylistDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreatePlaylistDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreatePlaylistDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Ids") != null && !jsonObj.get("Ids").isJsonNull() && !jsonObj.get("Ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Ids` to be an array in the JSON string but got `%s`", jsonObj.get("Ids").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + // validate the optional field `MediaType` + if (jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) { + MediaType.validateJsonElement(jsonObj.get("MediaType")); + } + if (jsonObj.get("Users") != null && !jsonObj.get("Users").isJsonNull()) { + JsonArray jsonArrayusers = jsonObj.getAsJsonArray("Users"); + if (jsonArrayusers != null) { + // ensure the json data is an array + if (!jsonObj.get("Users").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Users` to be an array in the JSON string but got `%s`", jsonObj.get("Users").toString())); + } + + // validate the optional field `Users` (array) + for (int i = 0; i < jsonArrayusers.size(); i++) { + PlaylistUserPermissions.validateJsonElement(jsonArrayusers.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreatePlaylistDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreatePlaylistDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreatePlaylistDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreatePlaylistDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreatePlaylistDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreatePlaylistDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreatePlaylistDto + * @throws IOException if the JSON string is invalid with respect to CreatePlaylistDto + */ + public static CreatePlaylistDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreatePlaylistDto.class); + } + + /** + * Convert an instance of CreatePlaylistDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreateUserByName.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreateUserByName.java new file mode 100644 index 0000000000000..f0334bec6976d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CreateUserByName.java @@ -0,0 +1,256 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The create user by name request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CreateUserByName { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public CreateUserByName() { + } + + public CreateUserByName name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the username. + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public CreateUserByName password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Gets or sets the password. + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateUserByName createUserByName = (CreateUserByName) o; + return Objects.equals(this.name, createUserByName.name) && + Objects.equals(this.password, createUserByName.password); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, password); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateUserByName {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Password"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Name"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateUserByName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateUserByName.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateUserByName is not found in the empty JSON string", CreateUserByName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateUserByName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateUserByName` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CreateUserByName.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateUserByName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateUserByName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateUserByName.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateUserByName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateUserByName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateUserByName given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateUserByName + * @throws IOException if the JSON string is invalid with respect to CreateUserByName + */ + public static CreateUserByName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateUserByName.class); + } + + /** + * Convert an instance of CreateUserByName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CultureDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CultureDto.java new file mode 100644 index 0000000000000..a92b05e76abc8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/CultureDto.java @@ -0,0 +1,348 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class CultureDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CultureDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_TWO_LETTER_I_S_O_LANGUAGE_NAME = "TwoLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_TWO_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String twoLetterISOLanguageName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME = "ThreeLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String threeLetterISOLanguageName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAMES = "ThreeLetterISOLanguageNames"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAMES) + @javax.annotation.Nullable + private List threeLetterISOLanguageNames = new ArrayList<>(); + + public CultureDto() { + } + + public CultureDto( + String threeLetterISOLanguageName + ) { + this(); + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + } + + public CultureDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CultureDto displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public CultureDto twoLetterISOLanguageName(@javax.annotation.Nullable String twoLetterISOLanguageName) { + this.twoLetterISOLanguageName = twoLetterISOLanguageName; + return this; + } + + /** + * Gets the name of the two letter ISO language. + * @return twoLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getTwoLetterISOLanguageName() { + return twoLetterISOLanguageName; + } + + public void setTwoLetterISOLanguageName(@javax.annotation.Nullable String twoLetterISOLanguageName) { + this.twoLetterISOLanguageName = twoLetterISOLanguageName; + } + + + /** + * Gets the name of the three letter ISO language. + * @return threeLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getThreeLetterISOLanguageName() { + return threeLetterISOLanguageName; + } + + + + public CultureDto threeLetterISOLanguageNames(@javax.annotation.Nullable List threeLetterISOLanguageNames) { + this.threeLetterISOLanguageNames = threeLetterISOLanguageNames; + return this; + } + + public CultureDto addThreeLetterISOLanguageNamesItem(String threeLetterISOLanguageNamesItem) { + if (this.threeLetterISOLanguageNames == null) { + this.threeLetterISOLanguageNames = new ArrayList<>(); + } + this.threeLetterISOLanguageNames.add(threeLetterISOLanguageNamesItem); + return this; + } + + /** + * Get threeLetterISOLanguageNames + * @return threeLetterISOLanguageNames + */ + @javax.annotation.Nullable + public List getThreeLetterISOLanguageNames() { + return threeLetterISOLanguageNames; + } + + public void setThreeLetterISOLanguageNames(@javax.annotation.Nullable List threeLetterISOLanguageNames) { + this.threeLetterISOLanguageNames = threeLetterISOLanguageNames; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CultureDto cultureDto = (CultureDto) o; + return Objects.equals(this.name, cultureDto.name) && + Objects.equals(this.displayName, cultureDto.displayName) && + Objects.equals(this.twoLetterISOLanguageName, cultureDto.twoLetterISOLanguageName) && + Objects.equals(this.threeLetterISOLanguageName, cultureDto.threeLetterISOLanguageName) && + Objects.equals(this.threeLetterISOLanguageNames, cultureDto.threeLetterISOLanguageNames); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, displayName, twoLetterISOLanguageName, threeLetterISOLanguageName, threeLetterISOLanguageNames); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CultureDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" twoLetterISOLanguageName: ").append(toIndentedString(twoLetterISOLanguageName)).append("\n"); + sb.append(" threeLetterISOLanguageName: ").append(toIndentedString(threeLetterISOLanguageName)).append("\n"); + sb.append(" threeLetterISOLanguageNames: ").append(toIndentedString(threeLetterISOLanguageNames)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DisplayName"); + openapiFields.add("TwoLetterISOLanguageName"); + openapiFields.add("ThreeLetterISOLanguageName"); + openapiFields.add("ThreeLetterISOLanguageNames"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CultureDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CultureDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CultureDto is not found in the empty JSON string", CultureDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CultureDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CultureDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("TwoLetterISOLanguageName") != null && !jsonObj.get("TwoLetterISOLanguageName").isJsonNull()) && !jsonObj.get("TwoLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TwoLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TwoLetterISOLanguageName").toString())); + } + if ((jsonObj.get("ThreeLetterISOLanguageName") != null && !jsonObj.get("ThreeLetterISOLanguageName").isJsonNull()) && !jsonObj.get("ThreeLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageName").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ThreeLetterISOLanguageNames") != null && !jsonObj.get("ThreeLetterISOLanguageNames").isJsonNull() && !jsonObj.get("ThreeLetterISOLanguageNames").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageNames` to be an array in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageNames").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CultureDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CultureDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CultureDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CultureDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CultureDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CultureDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of CultureDto + * @throws IOException if the JSON string is invalid with respect to CultureDto + */ + public static CultureDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CultureDto.class); + } + + /** + * Convert an instance of CultureDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayOfWeek.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayOfWeek.java new file mode 100644 index 0000000000000..c0f519e020361 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayOfWeek.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DayOfWeek + */ +@JsonAdapter(DayOfWeek.Adapter.class) +public enum DayOfWeek { + + SUNDAY("Sunday"), + + MONDAY("Monday"), + + TUESDAY("Tuesday"), + + WEDNESDAY("Wednesday"), + + THURSDAY("Thursday"), + + FRIDAY("Friday"), + + SATURDAY("Saturday"); + + private String value; + + DayOfWeek(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DayOfWeek fromValue(String value) { + for (DayOfWeek b : DayOfWeek.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DayOfWeek enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DayOfWeek read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DayOfWeek.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DayOfWeek.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayPattern.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayPattern.java new file mode 100644 index 0000000000000..327fb5763daca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DayPattern.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DayPattern + */ +@JsonAdapter(DayPattern.Adapter.class) +public enum DayPattern { + + DAILY("Daily"), + + WEEKDAYS("Weekdays"), + + WEEKENDS("Weekends"); + + private String value; + + DayPattern(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DayPattern fromValue(String value) { + for (DayPattern b : DayPattern.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DayPattern enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DayPattern read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DayPattern.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DayPattern.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java new file mode 100644 index 0000000000000..0437966290d18 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java @@ -0,0 +1,218 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Default directory browser info. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DefaultDirectoryBrowserInfoDto { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public DefaultDirectoryBrowserInfoDto() { + } + + public DefaultDirectoryBrowserInfoDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DefaultDirectoryBrowserInfoDto defaultDirectoryBrowserInfoDto = (DefaultDirectoryBrowserInfoDto) o; + return Objects.equals(this.path, defaultDirectoryBrowserInfoDto.path); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(path); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DefaultDirectoryBrowserInfoDto {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DefaultDirectoryBrowserInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DefaultDirectoryBrowserInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DefaultDirectoryBrowserInfoDto is not found in the empty JSON string", DefaultDirectoryBrowserInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DefaultDirectoryBrowserInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DefaultDirectoryBrowserInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DefaultDirectoryBrowserInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DefaultDirectoryBrowserInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DefaultDirectoryBrowserInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DefaultDirectoryBrowserInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DefaultDirectoryBrowserInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DefaultDirectoryBrowserInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DefaultDirectoryBrowserInfoDto + * @throws IOException if the JSON string is invalid with respect to DefaultDirectoryBrowserInfoDto + */ + public static DefaultDirectoryBrowserInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DefaultDirectoryBrowserInfoDto.class); + } + + /** + * Convert an instance of DefaultDirectoryBrowserInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeinterlaceMethod.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeinterlaceMethod.java new file mode 100644 index 0000000000000..6732cc0231b91 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeinterlaceMethod.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing deinterlace methods. + */ +@JsonAdapter(DeinterlaceMethod.Adapter.class) +public enum DeinterlaceMethod { + + YADIF("yadif"), + + BWDIF("bwdif"); + + private String value; + + DeinterlaceMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DeinterlaceMethod fromValue(String value) { + for (DeinterlaceMethod b : DeinterlaceMethod.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DeinterlaceMethod enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DeinterlaceMethod read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DeinterlaceMethod.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DeinterlaceMethod.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDto.java new file mode 100644 index 0000000000000..95dbcab20562f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDto.java @@ -0,0 +1,519 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.ClientCapabilitiesDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A DTO representing device information. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceInfoDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_CUSTOM_NAME = "CustomName"; + @SerializedName(SERIALIZED_NAME_CUSTOM_NAME) + @javax.annotation.Nullable + private String customName; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_LAST_USER_NAME = "LastUserName"; + @SerializedName(SERIALIZED_NAME_LAST_USER_NAME) + @javax.annotation.Nullable + private String lastUserName; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_LAST_USER_ID = "LastUserId"; + @SerializedName(SERIALIZED_NAME_LAST_USER_ID) + @javax.annotation.Nullable + private UUID lastUserId; + + public static final String SERIALIZED_NAME_DATE_LAST_ACTIVITY = "DateLastActivity"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_ACTIVITY) + @javax.annotation.Nullable + private OffsetDateTime dateLastActivity; + + public static final String SERIALIZED_NAME_CAPABILITIES = "Capabilities"; + @SerializedName(SERIALIZED_NAME_CAPABILITIES) + @javax.annotation.Nullable + private ClientCapabilitiesDto capabilities; + + public static final String SERIALIZED_NAME_ICON_URL = "IconUrl"; + @SerializedName(SERIALIZED_NAME_ICON_URL) + @javax.annotation.Nullable + private String iconUrl; + + public DeviceInfoDto() { + } + + public DeviceInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public DeviceInfoDto customName(@javax.annotation.Nullable String customName) { + this.customName = customName; + return this; + } + + /** + * Gets or sets the custom name. + * @return customName + */ + @javax.annotation.Nullable + public String getCustomName() { + return customName; + } + + public void setCustomName(@javax.annotation.Nullable String customName) { + this.customName = customName; + } + + + public DeviceInfoDto accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Gets or sets the access token. + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public DeviceInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DeviceInfoDto lastUserName(@javax.annotation.Nullable String lastUserName) { + this.lastUserName = lastUserName; + return this; + } + + /** + * Gets or sets the last name of the user. + * @return lastUserName + */ + @javax.annotation.Nullable + public String getLastUserName() { + return lastUserName; + } + + public void setLastUserName(@javax.annotation.Nullable String lastUserName) { + this.lastUserName = lastUserName; + } + + + public DeviceInfoDto appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets or sets the name of the application. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public DeviceInfoDto appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public DeviceInfoDto lastUserId(@javax.annotation.Nullable UUID lastUserId) { + this.lastUserId = lastUserId; + return this; + } + + /** + * Gets or sets the last user identifier. + * @return lastUserId + */ + @javax.annotation.Nullable + public UUID getLastUserId() { + return lastUserId; + } + + public void setLastUserId(@javax.annotation.Nullable UUID lastUserId) { + this.lastUserId = lastUserId; + } + + + public DeviceInfoDto dateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + return this; + } + + /** + * Gets or sets the date last modified. + * @return dateLastActivity + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastActivity() { + return dateLastActivity; + } + + public void setDateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + } + + + public DeviceInfoDto capabilities(@javax.annotation.Nullable ClientCapabilitiesDto capabilities) { + this.capabilities = capabilities; + return this; + } + + /** + * Gets or sets the capabilities. + * @return capabilities + */ + @javax.annotation.Nullable + public ClientCapabilitiesDto getCapabilities() { + return capabilities; + } + + public void setCapabilities(@javax.annotation.Nullable ClientCapabilitiesDto capabilities) { + this.capabilities = capabilities; + } + + + public DeviceInfoDto iconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + return this; + } + + /** + * Gets or sets the icon URL. + * @return iconUrl + */ + @javax.annotation.Nullable + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceInfoDto deviceInfoDto = (DeviceInfoDto) o; + return Objects.equals(this.name, deviceInfoDto.name) && + Objects.equals(this.customName, deviceInfoDto.customName) && + Objects.equals(this.accessToken, deviceInfoDto.accessToken) && + Objects.equals(this.id, deviceInfoDto.id) && + Objects.equals(this.lastUserName, deviceInfoDto.lastUserName) && + Objects.equals(this.appName, deviceInfoDto.appName) && + Objects.equals(this.appVersion, deviceInfoDto.appVersion) && + Objects.equals(this.lastUserId, deviceInfoDto.lastUserId) && + Objects.equals(this.dateLastActivity, deviceInfoDto.dateLastActivity) && + Objects.equals(this.capabilities, deviceInfoDto.capabilities) && + Objects.equals(this.iconUrl, deviceInfoDto.iconUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, customName, accessToken, id, lastUserName, appName, appVersion, lastUserId, dateLastActivity, capabilities, iconUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceInfoDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" customName: ").append(toIndentedString(customName)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" lastUserName: ").append(toIndentedString(lastUserName)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" lastUserId: ").append(toIndentedString(lastUserId)).append("\n"); + sb.append(" dateLastActivity: ").append(toIndentedString(dateLastActivity)).append("\n"); + sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n"); + sb.append(" iconUrl: ").append(toIndentedString(iconUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("CustomName"); + openapiFields.add("AccessToken"); + openapiFields.add("Id"); + openapiFields.add("LastUserName"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("LastUserId"); + openapiFields.add("DateLastActivity"); + openapiFields.add("Capabilities"); + openapiFields.add("IconUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceInfoDto is not found in the empty JSON string", DeviceInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("CustomName") != null && !jsonObj.get("CustomName").isJsonNull()) && !jsonObj.get("CustomName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomName").toString())); + } + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("LastUserName") != null && !jsonObj.get("LastUserName").isJsonNull()) && !jsonObj.get("LastUserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LastUserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LastUserName").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + if ((jsonObj.get("LastUserId") != null && !jsonObj.get("LastUserId").isJsonNull()) && !jsonObj.get("LastUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LastUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LastUserId").toString())); + } + // validate the optional field `Capabilities` + if (jsonObj.get("Capabilities") != null && !jsonObj.get("Capabilities").isJsonNull()) { + ClientCapabilitiesDto.validateJsonElement(jsonObj.get("Capabilities")); + } + if ((jsonObj.get("IconUrl") != null && !jsonObj.get("IconUrl").isJsonNull()) && !jsonObj.get("IconUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IconUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IconUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceInfoDto + * @throws IOException if the JSON string is invalid with respect to DeviceInfoDto + */ + public static DeviceInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceInfoDto.class); + } + + /** + * Convert an instance of DeviceInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDtoQueryResult.java new file mode 100644 index 0000000000000..575abb7be8436 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceInfoDtoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeviceInfoDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceInfoDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public DeviceInfoDtoQueryResult() { + } + + public DeviceInfoDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public DeviceInfoDtoQueryResult addItemsItem(DeviceInfoDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public DeviceInfoDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public DeviceInfoDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceInfoDtoQueryResult deviceInfoDtoQueryResult = (DeviceInfoDtoQueryResult) o; + return Objects.equals(this.items, deviceInfoDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, deviceInfoDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, deviceInfoDtoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceInfoDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceInfoDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceInfoDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceInfoDtoQueryResult is not found in the empty JSON string", DeviceInfoDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceInfoDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceInfoDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + DeviceInfoDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceInfoDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceInfoDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceInfoDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceInfoDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceInfoDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceInfoDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceInfoDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to DeviceInfoDtoQueryResult + */ + public static DeviceInfoDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceInfoDtoQueryResult.class); + } + + /** + * Convert an instance of DeviceInfoDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java new file mode 100644 index 0000000000000..71e3b511245a0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A dto representing custom options for a device. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceOptionsDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Integer id; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_CUSTOM_NAME = "CustomName"; + @SerializedName(SERIALIZED_NAME_CUSTOM_NAME) + @javax.annotation.Nullable + private String customName; + + public DeviceOptionsDto() { + } + + public DeviceOptionsDto id(@javax.annotation.Nullable Integer id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public Integer getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Integer id) { + this.id = id; + } + + + public DeviceOptionsDto deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public DeviceOptionsDto customName(@javax.annotation.Nullable String customName) { + this.customName = customName; + return this; + } + + /** + * Gets or sets the custom name. + * @return customName + */ + @javax.annotation.Nullable + public String getCustomName() { + return customName; + } + + public void setCustomName(@javax.annotation.Nullable String customName) { + this.customName = customName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceOptionsDto deviceOptionsDto = (DeviceOptionsDto) o; + return Objects.equals(this.id, deviceOptionsDto.id) && + Objects.equals(this.deviceId, deviceOptionsDto.deviceId) && + Objects.equals(this.customName, deviceOptionsDto.customName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, deviceId, customName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceOptionsDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" customName: ").append(toIndentedString(customName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("DeviceId"); + openapiFields.add("CustomName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceOptionsDto is not found in the empty JSON string", DeviceOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("CustomName") != null && !jsonObj.get("CustomName").isJsonNull()) && !jsonObj.get("CustomName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceOptionsDto + * @throws IOException if the JSON string is invalid with respect to DeviceOptionsDto + */ + public static DeviceOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceOptionsDto.class); + } + + /** + * Convert an instance of DeviceOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceProfile.java new file mode 100644 index 0000000000000..7c0df21abfb77 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DeviceProfile.java @@ -0,0 +1,609 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.CodecProfile; +import org.openapitools.client.model.ContainerProfile; +import org.openapitools.client.model.DirectPlayProfile; +import org.openapitools.client.model.SubtitleProfile; +import org.openapitools.client.model.TranscodingProfile; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceProfile { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_MAX_STATIC_BITRATE = "MaxStaticBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STATIC_BITRATE) + @javax.annotation.Nullable + private Integer maxStaticBitrate; + + public static final String SERIALIZED_NAME_MUSIC_STREAMING_TRANSCODING_BITRATE = "MusicStreamingTranscodingBitrate"; + @SerializedName(SERIALIZED_NAME_MUSIC_STREAMING_TRANSCODING_BITRATE) + @javax.annotation.Nullable + private Integer musicStreamingTranscodingBitrate; + + public static final String SERIALIZED_NAME_MAX_STATIC_MUSIC_BITRATE = "MaxStaticMusicBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STATIC_MUSIC_BITRATE) + @javax.annotation.Nullable + private Integer maxStaticMusicBitrate; + + public static final String SERIALIZED_NAME_DIRECT_PLAY_PROFILES = "DirectPlayProfiles"; + @SerializedName(SERIALIZED_NAME_DIRECT_PLAY_PROFILES) + @javax.annotation.Nullable + private List directPlayProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TRANSCODING_PROFILES = "TranscodingProfiles"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_PROFILES) + @javax.annotation.Nullable + private List transcodingProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTAINER_PROFILES = "ContainerProfiles"; + @SerializedName(SERIALIZED_NAME_CONTAINER_PROFILES) + @javax.annotation.Nullable + private List containerProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CODEC_PROFILES = "CodecProfiles"; + @SerializedName(SERIALIZED_NAME_CODEC_PROFILES) + @javax.annotation.Nullable + private List codecProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_PROFILES = "SubtitleProfiles"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_PROFILES) + @javax.annotation.Nullable + private List subtitleProfiles = new ArrayList<>(); + + public DeviceProfile() { + } + + public DeviceProfile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of this device profile. User profiles must have a unique name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public DeviceProfile id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the unique internal identifier. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public DeviceProfile maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for all streamed content. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public DeviceProfile maxStaticBitrate(@javax.annotation.Nullable Integer maxStaticBitrate) { + this.maxStaticBitrate = maxStaticBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). + * @return maxStaticBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStaticBitrate() { + return maxStaticBitrate; + } + + public void setMaxStaticBitrate(@javax.annotation.Nullable Integer maxStaticBitrate) { + this.maxStaticBitrate = maxStaticBitrate; + } + + + public DeviceProfile musicStreamingTranscodingBitrate(@javax.annotation.Nullable Integer musicStreamingTranscodingBitrate) { + this.musicStreamingTranscodingBitrate = musicStreamingTranscodingBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for transcoded music streams. + * @return musicStreamingTranscodingBitrate + */ + @javax.annotation.Nullable + public Integer getMusicStreamingTranscodingBitrate() { + return musicStreamingTranscodingBitrate; + } + + public void setMusicStreamingTranscodingBitrate(@javax.annotation.Nullable Integer musicStreamingTranscodingBitrate) { + this.musicStreamingTranscodingBitrate = musicStreamingTranscodingBitrate; + } + + + public DeviceProfile maxStaticMusicBitrate(@javax.annotation.Nullable Integer maxStaticMusicBitrate) { + this.maxStaticMusicBitrate = maxStaticMusicBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. + * @return maxStaticMusicBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStaticMusicBitrate() { + return maxStaticMusicBitrate; + } + + public void setMaxStaticMusicBitrate(@javax.annotation.Nullable Integer maxStaticMusicBitrate) { + this.maxStaticMusicBitrate = maxStaticMusicBitrate; + } + + + public DeviceProfile directPlayProfiles(@javax.annotation.Nullable List directPlayProfiles) { + this.directPlayProfiles = directPlayProfiles; + return this; + } + + public DeviceProfile addDirectPlayProfilesItem(DirectPlayProfile directPlayProfilesItem) { + if (this.directPlayProfiles == null) { + this.directPlayProfiles = new ArrayList<>(); + } + this.directPlayProfiles.add(directPlayProfilesItem); + return this; + } + + /** + * Gets or sets the direct play profiles. + * @return directPlayProfiles + */ + @javax.annotation.Nullable + public List getDirectPlayProfiles() { + return directPlayProfiles; + } + + public void setDirectPlayProfiles(@javax.annotation.Nullable List directPlayProfiles) { + this.directPlayProfiles = directPlayProfiles; + } + + + public DeviceProfile transcodingProfiles(@javax.annotation.Nullable List transcodingProfiles) { + this.transcodingProfiles = transcodingProfiles; + return this; + } + + public DeviceProfile addTranscodingProfilesItem(TranscodingProfile transcodingProfilesItem) { + if (this.transcodingProfiles == null) { + this.transcodingProfiles = new ArrayList<>(); + } + this.transcodingProfiles.add(transcodingProfilesItem); + return this; + } + + /** + * Gets or sets the transcoding profiles. + * @return transcodingProfiles + */ + @javax.annotation.Nullable + public List getTranscodingProfiles() { + return transcodingProfiles; + } + + public void setTranscodingProfiles(@javax.annotation.Nullable List transcodingProfiles) { + this.transcodingProfiles = transcodingProfiles; + } + + + public DeviceProfile containerProfiles(@javax.annotation.Nullable List containerProfiles) { + this.containerProfiles = containerProfiles; + return this; + } + + public DeviceProfile addContainerProfilesItem(ContainerProfile containerProfilesItem) { + if (this.containerProfiles == null) { + this.containerProfiles = new ArrayList<>(); + } + this.containerProfiles.add(containerProfilesItem); + return this; + } + + /** + * Gets or sets the container profiles. Failing to meet these optional conditions causes transcoding to occur. + * @return containerProfiles + */ + @javax.annotation.Nullable + public List getContainerProfiles() { + return containerProfiles; + } + + public void setContainerProfiles(@javax.annotation.Nullable List containerProfiles) { + this.containerProfiles = containerProfiles; + } + + + public DeviceProfile codecProfiles(@javax.annotation.Nullable List codecProfiles) { + this.codecProfiles = codecProfiles; + return this; + } + + public DeviceProfile addCodecProfilesItem(CodecProfile codecProfilesItem) { + if (this.codecProfiles == null) { + this.codecProfiles = new ArrayList<>(); + } + this.codecProfiles.add(codecProfilesItem); + return this; + } + + /** + * Gets or sets the codec profiles. + * @return codecProfiles + */ + @javax.annotation.Nullable + public List getCodecProfiles() { + return codecProfiles; + } + + public void setCodecProfiles(@javax.annotation.Nullable List codecProfiles) { + this.codecProfiles = codecProfiles; + } + + + public DeviceProfile subtitleProfiles(@javax.annotation.Nullable List subtitleProfiles) { + this.subtitleProfiles = subtitleProfiles; + return this; + } + + public DeviceProfile addSubtitleProfilesItem(SubtitleProfile subtitleProfilesItem) { + if (this.subtitleProfiles == null) { + this.subtitleProfiles = new ArrayList<>(); + } + this.subtitleProfiles.add(subtitleProfilesItem); + return this; + } + + /** + * Gets or sets the subtitle profiles. + * @return subtitleProfiles + */ + @javax.annotation.Nullable + public List getSubtitleProfiles() { + return subtitleProfiles; + } + + public void setSubtitleProfiles(@javax.annotation.Nullable List subtitleProfiles) { + this.subtitleProfiles = subtitleProfiles; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceProfile deviceProfile = (DeviceProfile) o; + return Objects.equals(this.name, deviceProfile.name) && + Objects.equals(this.id, deviceProfile.id) && + Objects.equals(this.maxStreamingBitrate, deviceProfile.maxStreamingBitrate) && + Objects.equals(this.maxStaticBitrate, deviceProfile.maxStaticBitrate) && + Objects.equals(this.musicStreamingTranscodingBitrate, deviceProfile.musicStreamingTranscodingBitrate) && + Objects.equals(this.maxStaticMusicBitrate, deviceProfile.maxStaticMusicBitrate) && + Objects.equals(this.directPlayProfiles, deviceProfile.directPlayProfiles) && + Objects.equals(this.transcodingProfiles, deviceProfile.transcodingProfiles) && + Objects.equals(this.containerProfiles, deviceProfile.containerProfiles) && + Objects.equals(this.codecProfiles, deviceProfile.codecProfiles) && + Objects.equals(this.subtitleProfiles, deviceProfile.subtitleProfiles); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, maxStreamingBitrate, maxStaticBitrate, musicStreamingTranscodingBitrate, maxStaticMusicBitrate, directPlayProfiles, transcodingProfiles, containerProfiles, codecProfiles, subtitleProfiles); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceProfile {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" maxStaticBitrate: ").append(toIndentedString(maxStaticBitrate)).append("\n"); + sb.append(" musicStreamingTranscodingBitrate: ").append(toIndentedString(musicStreamingTranscodingBitrate)).append("\n"); + sb.append(" maxStaticMusicBitrate: ").append(toIndentedString(maxStaticMusicBitrate)).append("\n"); + sb.append(" directPlayProfiles: ").append(toIndentedString(directPlayProfiles)).append("\n"); + sb.append(" transcodingProfiles: ").append(toIndentedString(transcodingProfiles)).append("\n"); + sb.append(" containerProfiles: ").append(toIndentedString(containerProfiles)).append("\n"); + sb.append(" codecProfiles: ").append(toIndentedString(codecProfiles)).append("\n"); + sb.append(" subtitleProfiles: ").append(toIndentedString(subtitleProfiles)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("MaxStaticBitrate"); + openapiFields.add("MusicStreamingTranscodingBitrate"); + openapiFields.add("MaxStaticMusicBitrate"); + openapiFields.add("DirectPlayProfiles"); + openapiFields.add("TranscodingProfiles"); + openapiFields.add("ContainerProfiles"); + openapiFields.add("CodecProfiles"); + openapiFields.add("SubtitleProfiles"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceProfile is not found in the empty JSON string", DeviceProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if (jsonObj.get("DirectPlayProfiles") != null && !jsonObj.get("DirectPlayProfiles").isJsonNull()) { + JsonArray jsonArraydirectPlayProfiles = jsonObj.getAsJsonArray("DirectPlayProfiles"); + if (jsonArraydirectPlayProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("DirectPlayProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DirectPlayProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("DirectPlayProfiles").toString())); + } + + // validate the optional field `DirectPlayProfiles` (array) + for (int i = 0; i < jsonArraydirectPlayProfiles.size(); i++) { + DirectPlayProfile.validateJsonElement(jsonArraydirectPlayProfiles.get(i)); + }; + } + } + if (jsonObj.get("TranscodingProfiles") != null && !jsonObj.get("TranscodingProfiles").isJsonNull()) { + JsonArray jsonArraytranscodingProfiles = jsonObj.getAsJsonArray("TranscodingProfiles"); + if (jsonArraytranscodingProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("TranscodingProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("TranscodingProfiles").toString())); + } + + // validate the optional field `TranscodingProfiles` (array) + for (int i = 0; i < jsonArraytranscodingProfiles.size(); i++) { + TranscodingProfile.validateJsonElement(jsonArraytranscodingProfiles.get(i)); + }; + } + } + if (jsonObj.get("ContainerProfiles") != null && !jsonObj.get("ContainerProfiles").isJsonNull()) { + JsonArray jsonArraycontainerProfiles = jsonObj.getAsJsonArray("ContainerProfiles"); + if (jsonArraycontainerProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("ContainerProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContainerProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("ContainerProfiles").toString())); + } + + // validate the optional field `ContainerProfiles` (array) + for (int i = 0; i < jsonArraycontainerProfiles.size(); i++) { + ContainerProfile.validateJsonElement(jsonArraycontainerProfiles.get(i)); + }; + } + } + if (jsonObj.get("CodecProfiles") != null && !jsonObj.get("CodecProfiles").isJsonNull()) { + JsonArray jsonArraycodecProfiles = jsonObj.getAsJsonArray("CodecProfiles"); + if (jsonArraycodecProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("CodecProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("CodecProfiles").toString())); + } + + // validate the optional field `CodecProfiles` (array) + for (int i = 0; i < jsonArraycodecProfiles.size(); i++) { + CodecProfile.validateJsonElement(jsonArraycodecProfiles.get(i)); + }; + } + } + if (jsonObj.get("SubtitleProfiles") != null && !jsonObj.get("SubtitleProfiles").isJsonNull()) { + JsonArray jsonArraysubtitleProfiles = jsonObj.getAsJsonArray("SubtitleProfiles"); + if (jsonArraysubtitleProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("SubtitleProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleProfiles").toString())); + } + + // validate the optional field `SubtitleProfiles` (array) + for (int i = 0; i < jsonArraysubtitleProfiles.size(); i++) { + SubtitleProfile.validateJsonElement(jsonArraysubtitleProfiles.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceProfile + * @throws IOException if the JSON string is invalid with respect to DeviceProfile + */ + public static DeviceProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceProfile.class); + } + + /** + * Convert an instance of DeviceProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DirectPlayProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DirectPlayProfile.java new file mode 100644 index 0000000000000..3d024e2e8dfe3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DirectPlayProfile.java @@ -0,0 +1,310 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Dlna.DirectPlayProfile. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DirectPlayProfile { + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public DirectPlayProfile() { + } + + public DirectPlayProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the container. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public DirectPlayProfile audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Gets or sets the audio codec. + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public DirectPlayProfile videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Gets or sets the video codec. + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public DirectPlayProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the Dlna profile type. + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectPlayProfile directPlayProfile = (DirectPlayProfile) o; + return Objects.equals(this.container, directPlayProfile.container) && + Objects.equals(this.audioCodec, directPlayProfile.audioCodec) && + Objects.equals(this.videoCodec, directPlayProfile.videoCodec) && + Objects.equals(this.type, directPlayProfile.type); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(container, audioCodec, videoCodec, type); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DirectPlayProfile {\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Container"); + openapiFields.add("AudioCodec"); + openapiFields.add("VideoCodec"); + openapiFields.add("Type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DirectPlayProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DirectPlayProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DirectPlayProfile is not found in the empty JSON string", DirectPlayProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DirectPlayProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DirectPlayProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DirectPlayProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DirectPlayProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DirectPlayProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DirectPlayProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DirectPlayProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DirectPlayProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of DirectPlayProfile + * @throws IOException if the JSON string is invalid with respect to DirectPlayProfile + */ + public static DirectPlayProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DirectPlayProfile.class); + } + + /** + * Convert an instance of DirectPlayProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java new file mode 100644 index 0000000000000..96eec379011e1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java @@ -0,0 +1,601 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.client.model.ScrollDirection; +import org.openapitools.client.model.SortOrder; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the display preferences for any item that supports them (usually Folders). + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DisplayPreferencesDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_VIEW_TYPE = "ViewType"; + @SerializedName(SERIALIZED_NAME_VIEW_TYPE) + @javax.annotation.Nullable + private String viewType; + + public static final String SERIALIZED_NAME_SORT_BY = "SortBy"; + @SerializedName(SERIALIZED_NAME_SORT_BY) + @javax.annotation.Nullable + private String sortBy; + + public static final String SERIALIZED_NAME_INDEX_BY = "IndexBy"; + @SerializedName(SERIALIZED_NAME_INDEX_BY) + @javax.annotation.Nullable + private String indexBy; + + public static final String SERIALIZED_NAME_REMEMBER_INDEXING = "RememberIndexing"; + @SerializedName(SERIALIZED_NAME_REMEMBER_INDEXING) + @javax.annotation.Nullable + private Boolean rememberIndexing; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_HEIGHT = "PrimaryImageHeight"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_HEIGHT) + @javax.annotation.Nullable + private Integer primaryImageHeight; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_WIDTH = "PrimaryImageWidth"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_WIDTH) + @javax.annotation.Nullable + private Integer primaryImageWidth; + + public static final String SERIALIZED_NAME_CUSTOM_PREFS = "CustomPrefs"; + @SerializedName(SERIALIZED_NAME_CUSTOM_PREFS) + @javax.annotation.Nullable + private Map customPrefs = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCROLL_DIRECTION = "ScrollDirection"; + @SerializedName(SERIALIZED_NAME_SCROLL_DIRECTION) + @javax.annotation.Nullable + private ScrollDirection scrollDirection; + + public static final String SERIALIZED_NAME_SHOW_BACKDROP = "ShowBackdrop"; + @SerializedName(SERIALIZED_NAME_SHOW_BACKDROP) + @javax.annotation.Nullable + private Boolean showBackdrop; + + public static final String SERIALIZED_NAME_REMEMBER_SORTING = "RememberSorting"; + @SerializedName(SERIALIZED_NAME_REMEMBER_SORTING) + @javax.annotation.Nullable + private Boolean rememberSorting; + + public static final String SERIALIZED_NAME_SORT_ORDER = "SortOrder"; + @SerializedName(SERIALIZED_NAME_SORT_ORDER) + @javax.annotation.Nullable + private SortOrder sortOrder; + + public static final String SERIALIZED_NAME_SHOW_SIDEBAR = "ShowSidebar"; + @SerializedName(SERIALIZED_NAME_SHOW_SIDEBAR) + @javax.annotation.Nullable + private Boolean showSidebar; + + public static final String SERIALIZED_NAME_CLIENT = "Client"; + @SerializedName(SERIALIZED_NAME_CLIENT) + @javax.annotation.Nullable + private String client; + + public DisplayPreferencesDto() { + } + + public DisplayPreferencesDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the user id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DisplayPreferencesDto viewType(@javax.annotation.Nullable String viewType) { + this.viewType = viewType; + return this; + } + + /** + * Gets or sets the type of the view. + * @return viewType + */ + @javax.annotation.Nullable + public String getViewType() { + return viewType; + } + + public void setViewType(@javax.annotation.Nullable String viewType) { + this.viewType = viewType; + } + + + public DisplayPreferencesDto sortBy(@javax.annotation.Nullable String sortBy) { + this.sortBy = sortBy; + return this; + } + + /** + * Gets or sets the sort by. + * @return sortBy + */ + @javax.annotation.Nullable + public String getSortBy() { + return sortBy; + } + + public void setSortBy(@javax.annotation.Nullable String sortBy) { + this.sortBy = sortBy; + } + + + public DisplayPreferencesDto indexBy(@javax.annotation.Nullable String indexBy) { + this.indexBy = indexBy; + return this; + } + + /** + * Gets or sets the index by. + * @return indexBy + */ + @javax.annotation.Nullable + public String getIndexBy() { + return indexBy; + } + + public void setIndexBy(@javax.annotation.Nullable String indexBy) { + this.indexBy = indexBy; + } + + + public DisplayPreferencesDto rememberIndexing(@javax.annotation.Nullable Boolean rememberIndexing) { + this.rememberIndexing = rememberIndexing; + return this; + } + + /** + * Gets or sets a value indicating whether [remember indexing]. + * @return rememberIndexing + */ + @javax.annotation.Nullable + public Boolean getRememberIndexing() { + return rememberIndexing; + } + + public void setRememberIndexing(@javax.annotation.Nullable Boolean rememberIndexing) { + this.rememberIndexing = rememberIndexing; + } + + + public DisplayPreferencesDto primaryImageHeight(@javax.annotation.Nullable Integer primaryImageHeight) { + this.primaryImageHeight = primaryImageHeight; + return this; + } + + /** + * Gets or sets the height of the primary image. + * @return primaryImageHeight + */ + @javax.annotation.Nullable + public Integer getPrimaryImageHeight() { + return primaryImageHeight; + } + + public void setPrimaryImageHeight(@javax.annotation.Nullable Integer primaryImageHeight) { + this.primaryImageHeight = primaryImageHeight; + } + + + public DisplayPreferencesDto primaryImageWidth(@javax.annotation.Nullable Integer primaryImageWidth) { + this.primaryImageWidth = primaryImageWidth; + return this; + } + + /** + * Gets or sets the width of the primary image. + * @return primaryImageWidth + */ + @javax.annotation.Nullable + public Integer getPrimaryImageWidth() { + return primaryImageWidth; + } + + public void setPrimaryImageWidth(@javax.annotation.Nullable Integer primaryImageWidth) { + this.primaryImageWidth = primaryImageWidth; + } + + + public DisplayPreferencesDto customPrefs(@javax.annotation.Nullable Map customPrefs) { + this.customPrefs = customPrefs; + return this; + } + + public DisplayPreferencesDto putCustomPrefsItem(String key, String customPrefsItem) { + if (this.customPrefs == null) { + this.customPrefs = new HashMap<>(); + } + this.customPrefs.put(key, customPrefsItem); + return this; + } + + /** + * Gets or sets the custom prefs. + * @return customPrefs + */ + @javax.annotation.Nullable + public Map getCustomPrefs() { + return customPrefs; + } + + public void setCustomPrefs(@javax.annotation.Nullable Map customPrefs) { + this.customPrefs = customPrefs; + } + + + public DisplayPreferencesDto scrollDirection(@javax.annotation.Nullable ScrollDirection scrollDirection) { + this.scrollDirection = scrollDirection; + return this; + } + + /** + * An enum representing the axis that should be scrolled. + * @return scrollDirection + */ + @javax.annotation.Nullable + public ScrollDirection getScrollDirection() { + return scrollDirection; + } + + public void setScrollDirection(@javax.annotation.Nullable ScrollDirection scrollDirection) { + this.scrollDirection = scrollDirection; + } + + + public DisplayPreferencesDto showBackdrop(@javax.annotation.Nullable Boolean showBackdrop) { + this.showBackdrop = showBackdrop; + return this; + } + + /** + * Gets or sets a value indicating whether to show backdrops on this item. + * @return showBackdrop + */ + @javax.annotation.Nullable + public Boolean getShowBackdrop() { + return showBackdrop; + } + + public void setShowBackdrop(@javax.annotation.Nullable Boolean showBackdrop) { + this.showBackdrop = showBackdrop; + } + + + public DisplayPreferencesDto rememberSorting(@javax.annotation.Nullable Boolean rememberSorting) { + this.rememberSorting = rememberSorting; + return this; + } + + /** + * Gets or sets a value indicating whether [remember sorting]. + * @return rememberSorting + */ + @javax.annotation.Nullable + public Boolean getRememberSorting() { + return rememberSorting; + } + + public void setRememberSorting(@javax.annotation.Nullable Boolean rememberSorting) { + this.rememberSorting = rememberSorting; + } + + + public DisplayPreferencesDto sortOrder(@javax.annotation.Nullable SortOrder sortOrder) { + this.sortOrder = sortOrder; + return this; + } + + /** + * An enum representing the sorting order. + * @return sortOrder + */ + @javax.annotation.Nullable + public SortOrder getSortOrder() { + return sortOrder; + } + + public void setSortOrder(@javax.annotation.Nullable SortOrder sortOrder) { + this.sortOrder = sortOrder; + } + + + public DisplayPreferencesDto showSidebar(@javax.annotation.Nullable Boolean showSidebar) { + this.showSidebar = showSidebar; + return this; + } + + /** + * Gets or sets a value indicating whether [show sidebar]. + * @return showSidebar + */ + @javax.annotation.Nullable + public Boolean getShowSidebar() { + return showSidebar; + } + + public void setShowSidebar(@javax.annotation.Nullable Boolean showSidebar) { + this.showSidebar = showSidebar; + } + + + public DisplayPreferencesDto client(@javax.annotation.Nullable String client) { + this.client = client; + return this; + } + + /** + * Gets or sets the client. + * @return client + */ + @javax.annotation.Nullable + public String getClient() { + return client; + } + + public void setClient(@javax.annotation.Nullable String client) { + this.client = client; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DisplayPreferencesDto displayPreferencesDto = (DisplayPreferencesDto) o; + return Objects.equals(this.id, displayPreferencesDto.id) && + Objects.equals(this.viewType, displayPreferencesDto.viewType) && + Objects.equals(this.sortBy, displayPreferencesDto.sortBy) && + Objects.equals(this.indexBy, displayPreferencesDto.indexBy) && + Objects.equals(this.rememberIndexing, displayPreferencesDto.rememberIndexing) && + Objects.equals(this.primaryImageHeight, displayPreferencesDto.primaryImageHeight) && + Objects.equals(this.primaryImageWidth, displayPreferencesDto.primaryImageWidth) && + Objects.equals(this.customPrefs, displayPreferencesDto.customPrefs) && + Objects.equals(this.scrollDirection, displayPreferencesDto.scrollDirection) && + Objects.equals(this.showBackdrop, displayPreferencesDto.showBackdrop) && + Objects.equals(this.rememberSorting, displayPreferencesDto.rememberSorting) && + Objects.equals(this.sortOrder, displayPreferencesDto.sortOrder) && + Objects.equals(this.showSidebar, displayPreferencesDto.showSidebar) && + Objects.equals(this.client, displayPreferencesDto.client); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, viewType, sortBy, indexBy, rememberIndexing, primaryImageHeight, primaryImageWidth, customPrefs, scrollDirection, showBackdrop, rememberSorting, sortOrder, showSidebar, client); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DisplayPreferencesDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" viewType: ").append(toIndentedString(viewType)).append("\n"); + sb.append(" sortBy: ").append(toIndentedString(sortBy)).append("\n"); + sb.append(" indexBy: ").append(toIndentedString(indexBy)).append("\n"); + sb.append(" rememberIndexing: ").append(toIndentedString(rememberIndexing)).append("\n"); + sb.append(" primaryImageHeight: ").append(toIndentedString(primaryImageHeight)).append("\n"); + sb.append(" primaryImageWidth: ").append(toIndentedString(primaryImageWidth)).append("\n"); + sb.append(" customPrefs: ").append(toIndentedString(customPrefs)).append("\n"); + sb.append(" scrollDirection: ").append(toIndentedString(scrollDirection)).append("\n"); + sb.append(" showBackdrop: ").append(toIndentedString(showBackdrop)).append("\n"); + sb.append(" rememberSorting: ").append(toIndentedString(rememberSorting)).append("\n"); + sb.append(" sortOrder: ").append(toIndentedString(sortOrder)).append("\n"); + sb.append(" showSidebar: ").append(toIndentedString(showSidebar)).append("\n"); + sb.append(" client: ").append(toIndentedString(client)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ViewType"); + openapiFields.add("SortBy"); + openapiFields.add("IndexBy"); + openapiFields.add("RememberIndexing"); + openapiFields.add("PrimaryImageHeight"); + openapiFields.add("PrimaryImageWidth"); + openapiFields.add("CustomPrefs"); + openapiFields.add("ScrollDirection"); + openapiFields.add("ShowBackdrop"); + openapiFields.add("RememberSorting"); + openapiFields.add("SortOrder"); + openapiFields.add("ShowSidebar"); + openapiFields.add("Client"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DisplayPreferencesDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DisplayPreferencesDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DisplayPreferencesDto is not found in the empty JSON string", DisplayPreferencesDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DisplayPreferencesDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DisplayPreferencesDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ViewType") != null && !jsonObj.get("ViewType").isJsonNull()) && !jsonObj.get("ViewType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ViewType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ViewType").toString())); + } + if ((jsonObj.get("SortBy") != null && !jsonObj.get("SortBy").isJsonNull()) && !jsonObj.get("SortBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SortBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SortBy").toString())); + } + if ((jsonObj.get("IndexBy") != null && !jsonObj.get("IndexBy").isJsonNull()) && !jsonObj.get("IndexBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IndexBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IndexBy").toString())); + } + // validate the optional field `ScrollDirection` + if (jsonObj.get("ScrollDirection") != null && !jsonObj.get("ScrollDirection").isJsonNull()) { + ScrollDirection.validateJsonElement(jsonObj.get("ScrollDirection")); + } + // validate the optional field `SortOrder` + if (jsonObj.get("SortOrder") != null && !jsonObj.get("SortOrder").isJsonNull()) { + SortOrder.validateJsonElement(jsonObj.get("SortOrder")); + } + if ((jsonObj.get("Client") != null && !jsonObj.get("Client").isJsonNull()) && !jsonObj.get("Client").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Client` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Client").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DisplayPreferencesDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DisplayPreferencesDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DisplayPreferencesDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DisplayPreferencesDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DisplayPreferencesDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DisplayPreferencesDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DisplayPreferencesDto + * @throws IOException if the JSON string is invalid with respect to DisplayPreferencesDto + */ + public static DisplayPreferencesDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DisplayPreferencesDto.class); + } + + /** + * Convert an instance of DisplayPreferencesDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DlnaProfileType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DlnaProfileType.java new file mode 100644 index 0000000000000..15a3e598adbd5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DlnaProfileType.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DlnaProfileType + */ +@JsonAdapter(DlnaProfileType.Adapter.class) +public enum DlnaProfileType { + + AUDIO("Audio"), + + VIDEO("Video"), + + PHOTO("Photo"), + + SUBTITLE("Subtitle"), + + LYRIC("Lyric"); + + private String value; + + DlnaProfileType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DlnaProfileType fromValue(String value) { + for (DlnaProfileType b : DlnaProfileType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DlnaProfileType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DlnaProfileType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DlnaProfileType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DlnaProfileType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DownMixStereoAlgorithms.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DownMixStereoAlgorithms.java new file mode 100644 index 0000000000000..683af5619d3e0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DownMixStereoAlgorithms.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing an algorithm to downmix surround sound to stereo. + */ +@JsonAdapter(DownMixStereoAlgorithms.Adapter.class) +public enum DownMixStereoAlgorithms { + + NONE("None"), + + DAVE750("Dave750"), + + NIGHTMODE_DIALOGUE("NightmodeDialogue"), + + RFC7845("Rfc7845"), + + AC4("Ac4"); + + private String value; + + DownMixStereoAlgorithms(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DownMixStereoAlgorithms fromValue(String value) { + for (DownMixStereoAlgorithms b : DownMixStereoAlgorithms.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DownMixStereoAlgorithms enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DownMixStereoAlgorithms read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DownMixStereoAlgorithms.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DownMixStereoAlgorithms.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java new file mode 100644 index 0000000000000..a6988e3a747b2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java @@ -0,0 +1,94 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum that represents a day of the week, weekdays, weekends, or all days. + */ +@JsonAdapter(DynamicDayOfWeek.Adapter.class) +public enum DynamicDayOfWeek { + + SUNDAY("Sunday"), + + MONDAY("Monday"), + + TUESDAY("Tuesday"), + + WEDNESDAY("Wednesday"), + + THURSDAY("Thursday"), + + FRIDAY("Friday"), + + SATURDAY("Saturday"), + + EVERYDAY("Everyday"), + + WEEKDAY("Weekday"), + + WEEKEND("Weekend"); + + private String value; + + DynamicDayOfWeek(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DynamicDayOfWeek fromValue(String value) { + for (DynamicDayOfWeek b : DynamicDayOfWeek.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DynamicDayOfWeek enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DynamicDayOfWeek read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DynamicDayOfWeek.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DynamicDayOfWeek.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java new file mode 100644 index 0000000000000..67238a5c61c31 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the options to disable embedded subs. + */ +@JsonAdapter(EmbeddedSubtitleOptions.Adapter.class) +public enum EmbeddedSubtitleOptions { + + ALLOW_ALL("AllowAll"), + + ALLOW_TEXT("AllowText"), + + ALLOW_IMAGE("AllowImage"), + + ALLOW_NONE("AllowNone"); + + private String value; + + EmbeddedSubtitleOptions(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EmbeddedSubtitleOptions fromValue(String value) { + for (EmbeddedSubtitleOptions b : EmbeddedSubtitleOptions.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EmbeddedSubtitleOptions enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EmbeddedSubtitleOptions read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EmbeddedSubtitleOptions.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EmbeddedSubtitleOptions.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncoderPreset.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncoderPreset.java new file mode 100644 index 0000000000000..900b8bfaedbda --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncoderPreset.java @@ -0,0 +1,96 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing encoder presets. + */ +@JsonAdapter(EncoderPreset.Adapter.class) +public enum EncoderPreset { + + AUTO("auto"), + + PLACEBO("placebo"), + + VERYSLOW("veryslow"), + + SLOWER("slower"), + + SLOW("slow"), + + MEDIUM("medium"), + + FAST("fast"), + + FASTER("faster"), + + VERYFAST("veryfast"), + + SUPERFAST("superfast"), + + ULTRAFAST("ultrafast"); + + private String value; + + EncoderPreset(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EncoderPreset fromValue(String value) { + for (EncoderPreset b : EncoderPreset.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EncoderPreset enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EncoderPreset read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EncoderPreset.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EncoderPreset.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingContext.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingContext.java new file mode 100644 index 0000000000000..d81c57e5e9c40 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingContext.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets EncodingContext + */ +@JsonAdapter(EncodingContext.Adapter.class) +public enum EncodingContext { + + STREAMING("Streaming"), + + STATIC("Static"); + + private String value; + + EncodingContext(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EncodingContext fromValue(String value) { + for (EncodingContext b : EncodingContext.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EncodingContext enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EncodingContext read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EncodingContext.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EncodingContext.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingOptions.java new file mode 100644 index 0000000000000..eb6d51a49b0e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EncodingOptions.java @@ -0,0 +1,1536 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeinterlaceMethod; +import org.openapitools.client.model.DownMixStereoAlgorithms; +import org.openapitools.client.model.EncoderPreset; +import org.openapitools.client.model.HardwareAccelerationType; +import org.openapitools.client.model.TonemappingAlgorithm; +import org.openapitools.client.model.TonemappingMode; +import org.openapitools.client.model.TonemappingRange; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class EncodingOptions. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class EncodingOptions { + public static final String SERIALIZED_NAME_ENCODING_THREAD_COUNT = "EncodingThreadCount"; + @SerializedName(SERIALIZED_NAME_ENCODING_THREAD_COUNT) + @javax.annotation.Nullable + private Integer encodingThreadCount; + + public static final String SERIALIZED_NAME_TRANSCODING_TEMP_PATH = "TranscodingTempPath"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_TEMP_PATH) + @javax.annotation.Nullable + private String transcodingTempPath; + + public static final String SERIALIZED_NAME_FALLBACK_FONT_PATH = "FallbackFontPath"; + @SerializedName(SERIALIZED_NAME_FALLBACK_FONT_PATH) + @javax.annotation.Nullable + private String fallbackFontPath; + + public static final String SERIALIZED_NAME_ENABLE_FALLBACK_FONT = "EnableFallbackFont"; + @SerializedName(SERIALIZED_NAME_ENABLE_FALLBACK_FONT) + @javax.annotation.Nullable + private Boolean enableFallbackFont; + + public static final String SERIALIZED_NAME_ENABLE_AUDIO_VBR = "EnableAudioVbr"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUDIO_VBR) + @javax.annotation.Nullable + private Boolean enableAudioVbr; + + public static final String SERIALIZED_NAME_DOWN_MIX_AUDIO_BOOST = "DownMixAudioBoost"; + @SerializedName(SERIALIZED_NAME_DOWN_MIX_AUDIO_BOOST) + @javax.annotation.Nullable + private Double downMixAudioBoost; + + public static final String SERIALIZED_NAME_DOWN_MIX_STEREO_ALGORITHM = "DownMixStereoAlgorithm"; + @SerializedName(SERIALIZED_NAME_DOWN_MIX_STEREO_ALGORITHM) + @javax.annotation.Nullable + private DownMixStereoAlgorithms downMixStereoAlgorithm; + + public static final String SERIALIZED_NAME_MAX_MUXING_QUEUE_SIZE = "MaxMuxingQueueSize"; + @SerializedName(SERIALIZED_NAME_MAX_MUXING_QUEUE_SIZE) + @javax.annotation.Nullable + private Integer maxMuxingQueueSize; + + public static final String SERIALIZED_NAME_ENABLE_THROTTLING = "EnableThrottling"; + @SerializedName(SERIALIZED_NAME_ENABLE_THROTTLING) + @javax.annotation.Nullable + private Boolean enableThrottling; + + public static final String SERIALIZED_NAME_THROTTLE_DELAY_SECONDS = "ThrottleDelaySeconds"; + @SerializedName(SERIALIZED_NAME_THROTTLE_DELAY_SECONDS) + @javax.annotation.Nullable + private Integer throttleDelaySeconds; + + public static final String SERIALIZED_NAME_ENABLE_SEGMENT_DELETION = "EnableSegmentDeletion"; + @SerializedName(SERIALIZED_NAME_ENABLE_SEGMENT_DELETION) + @javax.annotation.Nullable + private Boolean enableSegmentDeletion; + + public static final String SERIALIZED_NAME_SEGMENT_KEEP_SECONDS = "SegmentKeepSeconds"; + @SerializedName(SERIALIZED_NAME_SEGMENT_KEEP_SECONDS) + @javax.annotation.Nullable + private Integer segmentKeepSeconds; + + public static final String SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE = "HardwareAccelerationType"; + @SerializedName(SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE) + @javax.annotation.Nullable + private HardwareAccelerationType hardwareAccelerationType; + + public static final String SERIALIZED_NAME_ENCODER_APP_PATH = "EncoderAppPath"; + @SerializedName(SERIALIZED_NAME_ENCODER_APP_PATH) + @javax.annotation.Nullable + private String encoderAppPath; + + public static final String SERIALIZED_NAME_ENCODER_APP_PATH_DISPLAY = "EncoderAppPathDisplay"; + @SerializedName(SERIALIZED_NAME_ENCODER_APP_PATH_DISPLAY) + @javax.annotation.Nullable + private String encoderAppPathDisplay; + + public static final String SERIALIZED_NAME_VAAPI_DEVICE = "VaapiDevice"; + @SerializedName(SERIALIZED_NAME_VAAPI_DEVICE) + @javax.annotation.Nullable + private String vaapiDevice; + + public static final String SERIALIZED_NAME_QSV_DEVICE = "QsvDevice"; + @SerializedName(SERIALIZED_NAME_QSV_DEVICE) + @javax.annotation.Nullable + private String qsvDevice; + + public static final String SERIALIZED_NAME_ENABLE_TONEMAPPING = "EnableTonemapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_TONEMAPPING) + @javax.annotation.Nullable + private Boolean enableTonemapping; + + public static final String SERIALIZED_NAME_ENABLE_VPP_TONEMAPPING = "EnableVppTonemapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_VPP_TONEMAPPING) + @javax.annotation.Nullable + private Boolean enableVppTonemapping; + + public static final String SERIALIZED_NAME_ENABLE_VIDEO_TOOLBOX_TONEMAPPING = "EnableVideoToolboxTonemapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_VIDEO_TOOLBOX_TONEMAPPING) + @javax.annotation.Nullable + private Boolean enableVideoToolboxTonemapping; + + public static final String SERIALIZED_NAME_TONEMAPPING_ALGORITHM = "TonemappingAlgorithm"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_ALGORITHM) + @javax.annotation.Nullable + private TonemappingAlgorithm tonemappingAlgorithm; + + public static final String SERIALIZED_NAME_TONEMAPPING_MODE = "TonemappingMode"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_MODE) + @javax.annotation.Nullable + private TonemappingMode tonemappingMode; + + public static final String SERIALIZED_NAME_TONEMAPPING_RANGE = "TonemappingRange"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_RANGE) + @javax.annotation.Nullable + private TonemappingRange tonemappingRange; + + public static final String SERIALIZED_NAME_TONEMAPPING_DESAT = "TonemappingDesat"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_DESAT) + @javax.annotation.Nullable + private Double tonemappingDesat; + + public static final String SERIALIZED_NAME_TONEMAPPING_PEAK = "TonemappingPeak"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_PEAK) + @javax.annotation.Nullable + private Double tonemappingPeak; + + public static final String SERIALIZED_NAME_TONEMAPPING_PARAM = "TonemappingParam"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_PARAM) + @javax.annotation.Nullable + private Double tonemappingParam; + + public static final String SERIALIZED_NAME_VPP_TONEMAPPING_BRIGHTNESS = "VppTonemappingBrightness"; + @SerializedName(SERIALIZED_NAME_VPP_TONEMAPPING_BRIGHTNESS) + @javax.annotation.Nullable + private Double vppTonemappingBrightness; + + public static final String SERIALIZED_NAME_VPP_TONEMAPPING_CONTRAST = "VppTonemappingContrast"; + @SerializedName(SERIALIZED_NAME_VPP_TONEMAPPING_CONTRAST) + @javax.annotation.Nullable + private Double vppTonemappingContrast; + + public static final String SERIALIZED_NAME_H264_CRF = "H264Crf"; + @SerializedName(SERIALIZED_NAME_H264_CRF) + @javax.annotation.Nullable + private Integer h264Crf; + + public static final String SERIALIZED_NAME_H265_CRF = "H265Crf"; + @SerializedName(SERIALIZED_NAME_H265_CRF) + @javax.annotation.Nullable + private Integer h265Crf; + + public static final String SERIALIZED_NAME_ENCODER_PRESET = "EncoderPreset"; + @SerializedName(SERIALIZED_NAME_ENCODER_PRESET) + @javax.annotation.Nullable + private EncoderPreset encoderPreset; + + public static final String SERIALIZED_NAME_DEINTERLACE_DOUBLE_RATE = "DeinterlaceDoubleRate"; + @SerializedName(SERIALIZED_NAME_DEINTERLACE_DOUBLE_RATE) + @javax.annotation.Nullable + private Boolean deinterlaceDoubleRate; + + public static final String SERIALIZED_NAME_DEINTERLACE_METHOD = "DeinterlaceMethod"; + @SerializedName(SERIALIZED_NAME_DEINTERLACE_METHOD) + @javax.annotation.Nullable + private DeinterlaceMethod deinterlaceMethod; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC = "EnableDecodingColorDepth10Hevc"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth10Hevc; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_VP9 = "EnableDecodingColorDepth10Vp9"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_VP9) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth10Vp9; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC_REXT = "EnableDecodingColorDepth10HevcRext"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC_REXT) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth10HevcRext; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH12_HEVC_REXT = "EnableDecodingColorDepth12HevcRext"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH12_HEVC_REXT) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth12HevcRext; + + public static final String SERIALIZED_NAME_ENABLE_ENHANCED_NVDEC_DECODER = "EnableEnhancedNvdecDecoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_ENHANCED_NVDEC_DECODER) + @javax.annotation.Nullable + private Boolean enableEnhancedNvdecDecoder; + + public static final String SERIALIZED_NAME_PREFER_SYSTEM_NATIVE_HW_DECODER = "PreferSystemNativeHwDecoder"; + @SerializedName(SERIALIZED_NAME_PREFER_SYSTEM_NATIVE_HW_DECODER) + @javax.annotation.Nullable + private Boolean preferSystemNativeHwDecoder; + + public static final String SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_H264_HW_ENCODER = "EnableIntelLowPowerH264HwEncoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_H264_HW_ENCODER) + @javax.annotation.Nullable + private Boolean enableIntelLowPowerH264HwEncoder; + + public static final String SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_HEVC_HW_ENCODER = "EnableIntelLowPowerHevcHwEncoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_HEVC_HW_ENCODER) + @javax.annotation.Nullable + private Boolean enableIntelLowPowerHevcHwEncoder; + + public static final String SERIALIZED_NAME_ENABLE_HARDWARE_ENCODING = "EnableHardwareEncoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_HARDWARE_ENCODING) + @javax.annotation.Nullable + private Boolean enableHardwareEncoding; + + public static final String SERIALIZED_NAME_ALLOW_HEVC_ENCODING = "AllowHevcEncoding"; + @SerializedName(SERIALIZED_NAME_ALLOW_HEVC_ENCODING) + @javax.annotation.Nullable + private Boolean allowHevcEncoding; + + public static final String SERIALIZED_NAME_ALLOW_AV1_ENCODING = "AllowAv1Encoding"; + @SerializedName(SERIALIZED_NAME_ALLOW_AV1_ENCODING) + @javax.annotation.Nullable + private Boolean allowAv1Encoding; + + public static final String SERIALIZED_NAME_ENABLE_SUBTITLE_EXTRACTION = "EnableSubtitleExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_SUBTITLE_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableSubtitleExtraction; + + public static final String SERIALIZED_NAME_HARDWARE_DECODING_CODECS = "HardwareDecodingCodecs"; + @SerializedName(SERIALIZED_NAME_HARDWARE_DECODING_CODECS) + @javax.annotation.Nullable + private List hardwareDecodingCodecs; + + public static final String SERIALIZED_NAME_ALLOW_ON_DEMAND_METADATA_BASED_KEYFRAME_EXTRACTION_FOR_EXTENSIONS = "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions"; + @SerializedName(SERIALIZED_NAME_ALLOW_ON_DEMAND_METADATA_BASED_KEYFRAME_EXTRACTION_FOR_EXTENSIONS) + @javax.annotation.Nullable + private List allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + + public EncodingOptions() { + } + + public EncodingOptions encodingThreadCount(@javax.annotation.Nullable Integer encodingThreadCount) { + this.encodingThreadCount = encodingThreadCount; + return this; + } + + /** + * Gets or sets the thread count used for encoding. + * @return encodingThreadCount + */ + @javax.annotation.Nullable + public Integer getEncodingThreadCount() { + return encodingThreadCount; + } + + public void setEncodingThreadCount(@javax.annotation.Nullable Integer encodingThreadCount) { + this.encodingThreadCount = encodingThreadCount; + } + + + public EncodingOptions transcodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + return this; + } + + /** + * Gets or sets the temporary transcoding path. + * @return transcodingTempPath + */ + @javax.annotation.Nullable + public String getTranscodingTempPath() { + return transcodingTempPath; + } + + public void setTranscodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + } + + + public EncodingOptions fallbackFontPath(@javax.annotation.Nullable String fallbackFontPath) { + this.fallbackFontPath = fallbackFontPath; + return this; + } + + /** + * Gets or sets the path to the fallback font. + * @return fallbackFontPath + */ + @javax.annotation.Nullable + public String getFallbackFontPath() { + return fallbackFontPath; + } + + public void setFallbackFontPath(@javax.annotation.Nullable String fallbackFontPath) { + this.fallbackFontPath = fallbackFontPath; + } + + + public EncodingOptions enableFallbackFont(@javax.annotation.Nullable Boolean enableFallbackFont) { + this.enableFallbackFont = enableFallbackFont; + return this; + } + + /** + * Gets or sets a value indicating whether to use the fallback font. + * @return enableFallbackFont + */ + @javax.annotation.Nullable + public Boolean getEnableFallbackFont() { + return enableFallbackFont; + } + + public void setEnableFallbackFont(@javax.annotation.Nullable Boolean enableFallbackFont) { + this.enableFallbackFont = enableFallbackFont; + } + + + public EncodingOptions enableAudioVbr(@javax.annotation.Nullable Boolean enableAudioVbr) { + this.enableAudioVbr = enableAudioVbr; + return this; + } + + /** + * Gets or sets a value indicating whether audio VBR is enabled. + * @return enableAudioVbr + */ + @javax.annotation.Nullable + public Boolean getEnableAudioVbr() { + return enableAudioVbr; + } + + public void setEnableAudioVbr(@javax.annotation.Nullable Boolean enableAudioVbr) { + this.enableAudioVbr = enableAudioVbr; + } + + + public EncodingOptions downMixAudioBoost(@javax.annotation.Nullable Double downMixAudioBoost) { + this.downMixAudioBoost = downMixAudioBoost; + return this; + } + + /** + * Gets or sets the audio boost applied when downmixing audio. + * @return downMixAudioBoost + */ + @javax.annotation.Nullable + public Double getDownMixAudioBoost() { + return downMixAudioBoost; + } + + public void setDownMixAudioBoost(@javax.annotation.Nullable Double downMixAudioBoost) { + this.downMixAudioBoost = downMixAudioBoost; + } + + + public EncodingOptions downMixStereoAlgorithm(@javax.annotation.Nullable DownMixStereoAlgorithms downMixStereoAlgorithm) { + this.downMixStereoAlgorithm = downMixStereoAlgorithm; + return this; + } + + /** + * Gets or sets the algorithm used for downmixing audio to stereo. + * @return downMixStereoAlgorithm + */ + @javax.annotation.Nullable + public DownMixStereoAlgorithms getDownMixStereoAlgorithm() { + return downMixStereoAlgorithm; + } + + public void setDownMixStereoAlgorithm(@javax.annotation.Nullable DownMixStereoAlgorithms downMixStereoAlgorithm) { + this.downMixStereoAlgorithm = downMixStereoAlgorithm; + } + + + public EncodingOptions maxMuxingQueueSize(@javax.annotation.Nullable Integer maxMuxingQueueSize) { + this.maxMuxingQueueSize = maxMuxingQueueSize; + return this; + } + + /** + * Gets or sets the maximum size of the muxing queue. + * @return maxMuxingQueueSize + */ + @javax.annotation.Nullable + public Integer getMaxMuxingQueueSize() { + return maxMuxingQueueSize; + } + + public void setMaxMuxingQueueSize(@javax.annotation.Nullable Integer maxMuxingQueueSize) { + this.maxMuxingQueueSize = maxMuxingQueueSize; + } + + + public EncodingOptions enableThrottling(@javax.annotation.Nullable Boolean enableThrottling) { + this.enableThrottling = enableThrottling; + return this; + } + + /** + * Gets or sets a value indicating whether throttling is enabled. + * @return enableThrottling + */ + @javax.annotation.Nullable + public Boolean getEnableThrottling() { + return enableThrottling; + } + + public void setEnableThrottling(@javax.annotation.Nullable Boolean enableThrottling) { + this.enableThrottling = enableThrottling; + } + + + public EncodingOptions throttleDelaySeconds(@javax.annotation.Nullable Integer throttleDelaySeconds) { + this.throttleDelaySeconds = throttleDelaySeconds; + return this; + } + + /** + * Gets or sets the delay after which throttling happens. + * @return throttleDelaySeconds + */ + @javax.annotation.Nullable + public Integer getThrottleDelaySeconds() { + return throttleDelaySeconds; + } + + public void setThrottleDelaySeconds(@javax.annotation.Nullable Integer throttleDelaySeconds) { + this.throttleDelaySeconds = throttleDelaySeconds; + } + + + public EncodingOptions enableSegmentDeletion(@javax.annotation.Nullable Boolean enableSegmentDeletion) { + this.enableSegmentDeletion = enableSegmentDeletion; + return this; + } + + /** + * Gets or sets a value indicating whether segment deletion is enabled. + * @return enableSegmentDeletion + */ + @javax.annotation.Nullable + public Boolean getEnableSegmentDeletion() { + return enableSegmentDeletion; + } + + public void setEnableSegmentDeletion(@javax.annotation.Nullable Boolean enableSegmentDeletion) { + this.enableSegmentDeletion = enableSegmentDeletion; + } + + + public EncodingOptions segmentKeepSeconds(@javax.annotation.Nullable Integer segmentKeepSeconds) { + this.segmentKeepSeconds = segmentKeepSeconds; + return this; + } + + /** + * Gets or sets seconds for which segments should be kept before being deleted. + * @return segmentKeepSeconds + */ + @javax.annotation.Nullable + public Integer getSegmentKeepSeconds() { + return segmentKeepSeconds; + } + + public void setSegmentKeepSeconds(@javax.annotation.Nullable Integer segmentKeepSeconds) { + this.segmentKeepSeconds = segmentKeepSeconds; + } + + + public EncodingOptions hardwareAccelerationType(@javax.annotation.Nullable HardwareAccelerationType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + return this; + } + + /** + * Gets or sets the hardware acceleration type. + * @return hardwareAccelerationType + */ + @javax.annotation.Nullable + public HardwareAccelerationType getHardwareAccelerationType() { + return hardwareAccelerationType; + } + + public void setHardwareAccelerationType(@javax.annotation.Nullable HardwareAccelerationType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + } + + + public EncodingOptions encoderAppPath(@javax.annotation.Nullable String encoderAppPath) { + this.encoderAppPath = encoderAppPath; + return this; + } + + /** + * Gets or sets the FFmpeg path as set by the user via the UI. + * @return encoderAppPath + */ + @javax.annotation.Nullable + public String getEncoderAppPath() { + return encoderAppPath; + } + + public void setEncoderAppPath(@javax.annotation.Nullable String encoderAppPath) { + this.encoderAppPath = encoderAppPath; + } + + + public EncodingOptions encoderAppPathDisplay(@javax.annotation.Nullable String encoderAppPathDisplay) { + this.encoderAppPathDisplay = encoderAppPathDisplay; + return this; + } + + /** + * Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. + * @return encoderAppPathDisplay + */ + @javax.annotation.Nullable + public String getEncoderAppPathDisplay() { + return encoderAppPathDisplay; + } + + public void setEncoderAppPathDisplay(@javax.annotation.Nullable String encoderAppPathDisplay) { + this.encoderAppPathDisplay = encoderAppPathDisplay; + } + + + public EncodingOptions vaapiDevice(@javax.annotation.Nullable String vaapiDevice) { + this.vaapiDevice = vaapiDevice; + return this; + } + + /** + * Gets or sets the VA-API device. + * @return vaapiDevice + */ + @javax.annotation.Nullable + public String getVaapiDevice() { + return vaapiDevice; + } + + public void setVaapiDevice(@javax.annotation.Nullable String vaapiDevice) { + this.vaapiDevice = vaapiDevice; + } + + + public EncodingOptions qsvDevice(@javax.annotation.Nullable String qsvDevice) { + this.qsvDevice = qsvDevice; + return this; + } + + /** + * Gets or sets the QSV device. + * @return qsvDevice + */ + @javax.annotation.Nullable + public String getQsvDevice() { + return qsvDevice; + } + + public void setQsvDevice(@javax.annotation.Nullable String qsvDevice) { + this.qsvDevice = qsvDevice; + } + + + public EncodingOptions enableTonemapping(@javax.annotation.Nullable Boolean enableTonemapping) { + this.enableTonemapping = enableTonemapping; + return this; + } + + /** + * Gets or sets a value indicating whether tonemapping is enabled. + * @return enableTonemapping + */ + @javax.annotation.Nullable + public Boolean getEnableTonemapping() { + return enableTonemapping; + } + + public void setEnableTonemapping(@javax.annotation.Nullable Boolean enableTonemapping) { + this.enableTonemapping = enableTonemapping; + } + + + public EncodingOptions enableVppTonemapping(@javax.annotation.Nullable Boolean enableVppTonemapping) { + this.enableVppTonemapping = enableVppTonemapping; + return this; + } + + /** + * Gets or sets a value indicating whether VPP tonemapping is enabled. + * @return enableVppTonemapping + */ + @javax.annotation.Nullable + public Boolean getEnableVppTonemapping() { + return enableVppTonemapping; + } + + public void setEnableVppTonemapping(@javax.annotation.Nullable Boolean enableVppTonemapping) { + this.enableVppTonemapping = enableVppTonemapping; + } + + + public EncodingOptions enableVideoToolboxTonemapping(@javax.annotation.Nullable Boolean enableVideoToolboxTonemapping) { + this.enableVideoToolboxTonemapping = enableVideoToolboxTonemapping; + return this; + } + + /** + * Gets or sets a value indicating whether videotoolbox tonemapping is enabled. + * @return enableVideoToolboxTonemapping + */ + @javax.annotation.Nullable + public Boolean getEnableVideoToolboxTonemapping() { + return enableVideoToolboxTonemapping; + } + + public void setEnableVideoToolboxTonemapping(@javax.annotation.Nullable Boolean enableVideoToolboxTonemapping) { + this.enableVideoToolboxTonemapping = enableVideoToolboxTonemapping; + } + + + public EncodingOptions tonemappingAlgorithm(@javax.annotation.Nullable TonemappingAlgorithm tonemappingAlgorithm) { + this.tonemappingAlgorithm = tonemappingAlgorithm; + return this; + } + + /** + * Gets or sets the tone-mapping algorithm. + * @return tonemappingAlgorithm + */ + @javax.annotation.Nullable + public TonemappingAlgorithm getTonemappingAlgorithm() { + return tonemappingAlgorithm; + } + + public void setTonemappingAlgorithm(@javax.annotation.Nullable TonemappingAlgorithm tonemappingAlgorithm) { + this.tonemappingAlgorithm = tonemappingAlgorithm; + } + + + public EncodingOptions tonemappingMode(@javax.annotation.Nullable TonemappingMode tonemappingMode) { + this.tonemappingMode = tonemappingMode; + return this; + } + + /** + * Gets or sets the tone-mapping mode. + * @return tonemappingMode + */ + @javax.annotation.Nullable + public TonemappingMode getTonemappingMode() { + return tonemappingMode; + } + + public void setTonemappingMode(@javax.annotation.Nullable TonemappingMode tonemappingMode) { + this.tonemappingMode = tonemappingMode; + } + + + public EncodingOptions tonemappingRange(@javax.annotation.Nullable TonemappingRange tonemappingRange) { + this.tonemappingRange = tonemappingRange; + return this; + } + + /** + * Gets or sets the tone-mapping range. + * @return tonemappingRange + */ + @javax.annotation.Nullable + public TonemappingRange getTonemappingRange() { + return tonemappingRange; + } + + public void setTonemappingRange(@javax.annotation.Nullable TonemappingRange tonemappingRange) { + this.tonemappingRange = tonemappingRange; + } + + + public EncodingOptions tonemappingDesat(@javax.annotation.Nullable Double tonemappingDesat) { + this.tonemappingDesat = tonemappingDesat; + return this; + } + + /** + * Gets or sets the tone-mapping desaturation. + * @return tonemappingDesat + */ + @javax.annotation.Nullable + public Double getTonemappingDesat() { + return tonemappingDesat; + } + + public void setTonemappingDesat(@javax.annotation.Nullable Double tonemappingDesat) { + this.tonemappingDesat = tonemappingDesat; + } + + + public EncodingOptions tonemappingPeak(@javax.annotation.Nullable Double tonemappingPeak) { + this.tonemappingPeak = tonemappingPeak; + return this; + } + + /** + * Gets or sets the tone-mapping peak. + * @return tonemappingPeak + */ + @javax.annotation.Nullable + public Double getTonemappingPeak() { + return tonemappingPeak; + } + + public void setTonemappingPeak(@javax.annotation.Nullable Double tonemappingPeak) { + this.tonemappingPeak = tonemappingPeak; + } + + + public EncodingOptions tonemappingParam(@javax.annotation.Nullable Double tonemappingParam) { + this.tonemappingParam = tonemappingParam; + return this; + } + + /** + * Gets or sets the tone-mapping parameters. + * @return tonemappingParam + */ + @javax.annotation.Nullable + public Double getTonemappingParam() { + return tonemappingParam; + } + + public void setTonemappingParam(@javax.annotation.Nullable Double tonemappingParam) { + this.tonemappingParam = tonemappingParam; + } + + + public EncodingOptions vppTonemappingBrightness(@javax.annotation.Nullable Double vppTonemappingBrightness) { + this.vppTonemappingBrightness = vppTonemappingBrightness; + return this; + } + + /** + * Gets or sets the VPP tone-mapping brightness. + * @return vppTonemappingBrightness + */ + @javax.annotation.Nullable + public Double getVppTonemappingBrightness() { + return vppTonemappingBrightness; + } + + public void setVppTonemappingBrightness(@javax.annotation.Nullable Double vppTonemappingBrightness) { + this.vppTonemappingBrightness = vppTonemappingBrightness; + } + + + public EncodingOptions vppTonemappingContrast(@javax.annotation.Nullable Double vppTonemappingContrast) { + this.vppTonemappingContrast = vppTonemappingContrast; + return this; + } + + /** + * Gets or sets the VPP tone-mapping contrast. + * @return vppTonemappingContrast + */ + @javax.annotation.Nullable + public Double getVppTonemappingContrast() { + return vppTonemappingContrast; + } + + public void setVppTonemappingContrast(@javax.annotation.Nullable Double vppTonemappingContrast) { + this.vppTonemappingContrast = vppTonemappingContrast; + } + + + public EncodingOptions h264Crf(@javax.annotation.Nullable Integer h264Crf) { + this.h264Crf = h264Crf; + return this; + } + + /** + * Gets or sets the H264 CRF. + * @return h264Crf + */ + @javax.annotation.Nullable + public Integer getH264Crf() { + return h264Crf; + } + + public void setH264Crf(@javax.annotation.Nullable Integer h264Crf) { + this.h264Crf = h264Crf; + } + + + public EncodingOptions h265Crf(@javax.annotation.Nullable Integer h265Crf) { + this.h265Crf = h265Crf; + return this; + } + + /** + * Gets or sets the H265 CRF. + * @return h265Crf + */ + @javax.annotation.Nullable + public Integer getH265Crf() { + return h265Crf; + } + + public void setH265Crf(@javax.annotation.Nullable Integer h265Crf) { + this.h265Crf = h265Crf; + } + + + public EncodingOptions encoderPreset(@javax.annotation.Nullable EncoderPreset encoderPreset) { + this.encoderPreset = encoderPreset; + return this; + } + + /** + * Gets or sets the encoder preset. + * @return encoderPreset + */ + @javax.annotation.Nullable + public EncoderPreset getEncoderPreset() { + return encoderPreset; + } + + public void setEncoderPreset(@javax.annotation.Nullable EncoderPreset encoderPreset) { + this.encoderPreset = encoderPreset; + } + + + public EncodingOptions deinterlaceDoubleRate(@javax.annotation.Nullable Boolean deinterlaceDoubleRate) { + this.deinterlaceDoubleRate = deinterlaceDoubleRate; + return this; + } + + /** + * Gets or sets a value indicating whether the framerate is doubled when deinterlacing. + * @return deinterlaceDoubleRate + */ + @javax.annotation.Nullable + public Boolean getDeinterlaceDoubleRate() { + return deinterlaceDoubleRate; + } + + public void setDeinterlaceDoubleRate(@javax.annotation.Nullable Boolean deinterlaceDoubleRate) { + this.deinterlaceDoubleRate = deinterlaceDoubleRate; + } + + + public EncodingOptions deinterlaceMethod(@javax.annotation.Nullable DeinterlaceMethod deinterlaceMethod) { + this.deinterlaceMethod = deinterlaceMethod; + return this; + } + + /** + * Gets or sets the deinterlace method. + * @return deinterlaceMethod + */ + @javax.annotation.Nullable + public DeinterlaceMethod getDeinterlaceMethod() { + return deinterlaceMethod; + } + + public void setDeinterlaceMethod(@javax.annotation.Nullable DeinterlaceMethod deinterlaceMethod) { + this.deinterlaceMethod = deinterlaceMethod; + } + + + public EncodingOptions enableDecodingColorDepth10Hevc(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Hevc) { + this.enableDecodingColorDepth10Hevc = enableDecodingColorDepth10Hevc; + return this; + } + + /** + * Gets or sets a value indicating whether 10bit HEVC decoding is enabled. + * @return enableDecodingColorDepth10Hevc + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth10Hevc() { + return enableDecodingColorDepth10Hevc; + } + + public void setEnableDecodingColorDepth10Hevc(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Hevc) { + this.enableDecodingColorDepth10Hevc = enableDecodingColorDepth10Hevc; + } + + + public EncodingOptions enableDecodingColorDepth10Vp9(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Vp9) { + this.enableDecodingColorDepth10Vp9 = enableDecodingColorDepth10Vp9; + return this; + } + + /** + * Gets or sets a value indicating whether 10bit VP9 decoding is enabled. + * @return enableDecodingColorDepth10Vp9 + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth10Vp9() { + return enableDecodingColorDepth10Vp9; + } + + public void setEnableDecodingColorDepth10Vp9(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Vp9) { + this.enableDecodingColorDepth10Vp9 = enableDecodingColorDepth10Vp9; + } + + + public EncodingOptions enableDecodingColorDepth10HevcRext(@javax.annotation.Nullable Boolean enableDecodingColorDepth10HevcRext) { + this.enableDecodingColorDepth10HevcRext = enableDecodingColorDepth10HevcRext; + return this; + } + + /** + * Gets or sets a value indicating whether 8/10bit HEVC RExt decoding is enabled. + * @return enableDecodingColorDepth10HevcRext + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth10HevcRext() { + return enableDecodingColorDepth10HevcRext; + } + + public void setEnableDecodingColorDepth10HevcRext(@javax.annotation.Nullable Boolean enableDecodingColorDepth10HevcRext) { + this.enableDecodingColorDepth10HevcRext = enableDecodingColorDepth10HevcRext; + } + + + public EncodingOptions enableDecodingColorDepth12HevcRext(@javax.annotation.Nullable Boolean enableDecodingColorDepth12HevcRext) { + this.enableDecodingColorDepth12HevcRext = enableDecodingColorDepth12HevcRext; + return this; + } + + /** + * Gets or sets a value indicating whether 12bit HEVC RExt decoding is enabled. + * @return enableDecodingColorDepth12HevcRext + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth12HevcRext() { + return enableDecodingColorDepth12HevcRext; + } + + public void setEnableDecodingColorDepth12HevcRext(@javax.annotation.Nullable Boolean enableDecodingColorDepth12HevcRext) { + this.enableDecodingColorDepth12HevcRext = enableDecodingColorDepth12HevcRext; + } + + + public EncodingOptions enableEnhancedNvdecDecoder(@javax.annotation.Nullable Boolean enableEnhancedNvdecDecoder) { + this.enableEnhancedNvdecDecoder = enableEnhancedNvdecDecoder; + return this; + } + + /** + * Gets or sets a value indicating whether the enhanced NVDEC is enabled. + * @return enableEnhancedNvdecDecoder + */ + @javax.annotation.Nullable + public Boolean getEnableEnhancedNvdecDecoder() { + return enableEnhancedNvdecDecoder; + } + + public void setEnableEnhancedNvdecDecoder(@javax.annotation.Nullable Boolean enableEnhancedNvdecDecoder) { + this.enableEnhancedNvdecDecoder = enableEnhancedNvdecDecoder; + } + + + public EncodingOptions preferSystemNativeHwDecoder(@javax.annotation.Nullable Boolean preferSystemNativeHwDecoder) { + this.preferSystemNativeHwDecoder = preferSystemNativeHwDecoder; + return this; + } + + /** + * Gets or sets a value indicating whether the system native hardware decoder should be used. + * @return preferSystemNativeHwDecoder + */ + @javax.annotation.Nullable + public Boolean getPreferSystemNativeHwDecoder() { + return preferSystemNativeHwDecoder; + } + + public void setPreferSystemNativeHwDecoder(@javax.annotation.Nullable Boolean preferSystemNativeHwDecoder) { + this.preferSystemNativeHwDecoder = preferSystemNativeHwDecoder; + } + + + public EncodingOptions enableIntelLowPowerH264HwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerH264HwEncoder) { + this.enableIntelLowPowerH264HwEncoder = enableIntelLowPowerH264HwEncoder; + return this; + } + + /** + * Gets or sets a value indicating whether the Intel H264 low-power hardware encoder should be used. + * @return enableIntelLowPowerH264HwEncoder + */ + @javax.annotation.Nullable + public Boolean getEnableIntelLowPowerH264HwEncoder() { + return enableIntelLowPowerH264HwEncoder; + } + + public void setEnableIntelLowPowerH264HwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerH264HwEncoder) { + this.enableIntelLowPowerH264HwEncoder = enableIntelLowPowerH264HwEncoder; + } + + + public EncodingOptions enableIntelLowPowerHevcHwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerHevcHwEncoder) { + this.enableIntelLowPowerHevcHwEncoder = enableIntelLowPowerHevcHwEncoder; + return this; + } + + /** + * Gets or sets a value indicating whether the Intel HEVC low-power hardware encoder should be used. + * @return enableIntelLowPowerHevcHwEncoder + */ + @javax.annotation.Nullable + public Boolean getEnableIntelLowPowerHevcHwEncoder() { + return enableIntelLowPowerHevcHwEncoder; + } + + public void setEnableIntelLowPowerHevcHwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerHevcHwEncoder) { + this.enableIntelLowPowerHevcHwEncoder = enableIntelLowPowerHevcHwEncoder; + } + + + public EncodingOptions enableHardwareEncoding(@javax.annotation.Nullable Boolean enableHardwareEncoding) { + this.enableHardwareEncoding = enableHardwareEncoding; + return this; + } + + /** + * Gets or sets a value indicating whether hardware encoding is enabled. + * @return enableHardwareEncoding + */ + @javax.annotation.Nullable + public Boolean getEnableHardwareEncoding() { + return enableHardwareEncoding; + } + + public void setEnableHardwareEncoding(@javax.annotation.Nullable Boolean enableHardwareEncoding) { + this.enableHardwareEncoding = enableHardwareEncoding; + } + + + public EncodingOptions allowHevcEncoding(@javax.annotation.Nullable Boolean allowHevcEncoding) { + this.allowHevcEncoding = allowHevcEncoding; + return this; + } + + /** + * Gets or sets a value indicating whether HEVC encoding is enabled. + * @return allowHevcEncoding + */ + @javax.annotation.Nullable + public Boolean getAllowHevcEncoding() { + return allowHevcEncoding; + } + + public void setAllowHevcEncoding(@javax.annotation.Nullable Boolean allowHevcEncoding) { + this.allowHevcEncoding = allowHevcEncoding; + } + + + public EncodingOptions allowAv1Encoding(@javax.annotation.Nullable Boolean allowAv1Encoding) { + this.allowAv1Encoding = allowAv1Encoding; + return this; + } + + /** + * Gets or sets a value indicating whether AV1 encoding is enabled. + * @return allowAv1Encoding + */ + @javax.annotation.Nullable + public Boolean getAllowAv1Encoding() { + return allowAv1Encoding; + } + + public void setAllowAv1Encoding(@javax.annotation.Nullable Boolean allowAv1Encoding) { + this.allowAv1Encoding = allowAv1Encoding; + } + + + public EncodingOptions enableSubtitleExtraction(@javax.annotation.Nullable Boolean enableSubtitleExtraction) { + this.enableSubtitleExtraction = enableSubtitleExtraction; + return this; + } + + /** + * Gets or sets a value indicating whether subtitle extraction is enabled. + * @return enableSubtitleExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableSubtitleExtraction() { + return enableSubtitleExtraction; + } + + public void setEnableSubtitleExtraction(@javax.annotation.Nullable Boolean enableSubtitleExtraction) { + this.enableSubtitleExtraction = enableSubtitleExtraction; + } + + + public EncodingOptions hardwareDecodingCodecs(@javax.annotation.Nullable List hardwareDecodingCodecs) { + this.hardwareDecodingCodecs = hardwareDecodingCodecs; + return this; + } + + public EncodingOptions addHardwareDecodingCodecsItem(String hardwareDecodingCodecsItem) { + if (this.hardwareDecodingCodecs == null) { + this.hardwareDecodingCodecs = new ArrayList<>(); + } + this.hardwareDecodingCodecs.add(hardwareDecodingCodecsItem); + return this; + } + + /** + * Gets or sets the codecs hardware encoding is used for. + * @return hardwareDecodingCodecs + */ + @javax.annotation.Nullable + public List getHardwareDecodingCodecs() { + return hardwareDecodingCodecs; + } + + public void setHardwareDecodingCodecs(@javax.annotation.Nullable List hardwareDecodingCodecs) { + this.hardwareDecodingCodecs = hardwareDecodingCodecs; + } + + + public EncodingOptions allowOnDemandMetadataBasedKeyframeExtractionForExtensions(@javax.annotation.Nullable List allowOnDemandMetadataBasedKeyframeExtractionForExtensions) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + return this; + } + + public EncodingOptions addAllowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem(String allowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem) { + if (this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions == null) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = new ArrayList<>(); + } + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions.add(allowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem); + return this; + } + + /** + * Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for. + * @return allowOnDemandMetadataBasedKeyframeExtractionForExtensions + */ + @javax.annotation.Nullable + public List getAllowOnDemandMetadataBasedKeyframeExtractionForExtensions() { + return allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + } + + public void setAllowOnDemandMetadataBasedKeyframeExtractionForExtensions(@javax.annotation.Nullable List allowOnDemandMetadataBasedKeyframeExtractionForExtensions) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EncodingOptions encodingOptions = (EncodingOptions) o; + return Objects.equals(this.encodingThreadCount, encodingOptions.encodingThreadCount) && + Objects.equals(this.transcodingTempPath, encodingOptions.transcodingTempPath) && + Objects.equals(this.fallbackFontPath, encodingOptions.fallbackFontPath) && + Objects.equals(this.enableFallbackFont, encodingOptions.enableFallbackFont) && + Objects.equals(this.enableAudioVbr, encodingOptions.enableAudioVbr) && + Objects.equals(this.downMixAudioBoost, encodingOptions.downMixAudioBoost) && + Objects.equals(this.downMixStereoAlgorithm, encodingOptions.downMixStereoAlgorithm) && + Objects.equals(this.maxMuxingQueueSize, encodingOptions.maxMuxingQueueSize) && + Objects.equals(this.enableThrottling, encodingOptions.enableThrottling) && + Objects.equals(this.throttleDelaySeconds, encodingOptions.throttleDelaySeconds) && + Objects.equals(this.enableSegmentDeletion, encodingOptions.enableSegmentDeletion) && + Objects.equals(this.segmentKeepSeconds, encodingOptions.segmentKeepSeconds) && + Objects.equals(this.hardwareAccelerationType, encodingOptions.hardwareAccelerationType) && + Objects.equals(this.encoderAppPath, encodingOptions.encoderAppPath) && + Objects.equals(this.encoderAppPathDisplay, encodingOptions.encoderAppPathDisplay) && + Objects.equals(this.vaapiDevice, encodingOptions.vaapiDevice) && + Objects.equals(this.qsvDevice, encodingOptions.qsvDevice) && + Objects.equals(this.enableTonemapping, encodingOptions.enableTonemapping) && + Objects.equals(this.enableVppTonemapping, encodingOptions.enableVppTonemapping) && + Objects.equals(this.enableVideoToolboxTonemapping, encodingOptions.enableVideoToolboxTonemapping) && + Objects.equals(this.tonemappingAlgorithm, encodingOptions.tonemappingAlgorithm) && + Objects.equals(this.tonemappingMode, encodingOptions.tonemappingMode) && + Objects.equals(this.tonemappingRange, encodingOptions.tonemappingRange) && + Objects.equals(this.tonemappingDesat, encodingOptions.tonemappingDesat) && + Objects.equals(this.tonemappingPeak, encodingOptions.tonemappingPeak) && + Objects.equals(this.tonemappingParam, encodingOptions.tonemappingParam) && + Objects.equals(this.vppTonemappingBrightness, encodingOptions.vppTonemappingBrightness) && + Objects.equals(this.vppTonemappingContrast, encodingOptions.vppTonemappingContrast) && + Objects.equals(this.h264Crf, encodingOptions.h264Crf) && + Objects.equals(this.h265Crf, encodingOptions.h265Crf) && + Objects.equals(this.encoderPreset, encodingOptions.encoderPreset) && + Objects.equals(this.deinterlaceDoubleRate, encodingOptions.deinterlaceDoubleRate) && + Objects.equals(this.deinterlaceMethod, encodingOptions.deinterlaceMethod) && + Objects.equals(this.enableDecodingColorDepth10Hevc, encodingOptions.enableDecodingColorDepth10Hevc) && + Objects.equals(this.enableDecodingColorDepth10Vp9, encodingOptions.enableDecodingColorDepth10Vp9) && + Objects.equals(this.enableDecodingColorDepth10HevcRext, encodingOptions.enableDecodingColorDepth10HevcRext) && + Objects.equals(this.enableDecodingColorDepth12HevcRext, encodingOptions.enableDecodingColorDepth12HevcRext) && + Objects.equals(this.enableEnhancedNvdecDecoder, encodingOptions.enableEnhancedNvdecDecoder) && + Objects.equals(this.preferSystemNativeHwDecoder, encodingOptions.preferSystemNativeHwDecoder) && + Objects.equals(this.enableIntelLowPowerH264HwEncoder, encodingOptions.enableIntelLowPowerH264HwEncoder) && + Objects.equals(this.enableIntelLowPowerHevcHwEncoder, encodingOptions.enableIntelLowPowerHevcHwEncoder) && + Objects.equals(this.enableHardwareEncoding, encodingOptions.enableHardwareEncoding) && + Objects.equals(this.allowHevcEncoding, encodingOptions.allowHevcEncoding) && + Objects.equals(this.allowAv1Encoding, encodingOptions.allowAv1Encoding) && + Objects.equals(this.enableSubtitleExtraction, encodingOptions.enableSubtitleExtraction) && + Objects.equals(this.hardwareDecodingCodecs, encodingOptions.hardwareDecodingCodecs) && + Objects.equals(this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions, encodingOptions.allowOnDemandMetadataBasedKeyframeExtractionForExtensions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(encodingThreadCount, transcodingTempPath, fallbackFontPath, enableFallbackFont, enableAudioVbr, downMixAudioBoost, downMixStereoAlgorithm, maxMuxingQueueSize, enableThrottling, throttleDelaySeconds, enableSegmentDeletion, segmentKeepSeconds, hardwareAccelerationType, encoderAppPath, encoderAppPathDisplay, vaapiDevice, qsvDevice, enableTonemapping, enableVppTonemapping, enableVideoToolboxTonemapping, tonemappingAlgorithm, tonemappingMode, tonemappingRange, tonemappingDesat, tonemappingPeak, tonemappingParam, vppTonemappingBrightness, vppTonemappingContrast, h264Crf, h265Crf, encoderPreset, deinterlaceDoubleRate, deinterlaceMethod, enableDecodingColorDepth10Hevc, enableDecodingColorDepth10Vp9, enableDecodingColorDepth10HevcRext, enableDecodingColorDepth12HevcRext, enableEnhancedNvdecDecoder, preferSystemNativeHwDecoder, enableIntelLowPowerH264HwEncoder, enableIntelLowPowerHevcHwEncoder, enableHardwareEncoding, allowHevcEncoding, allowAv1Encoding, enableSubtitleExtraction, hardwareDecodingCodecs, allowOnDemandMetadataBasedKeyframeExtractionForExtensions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EncodingOptions {\n"); + sb.append(" encodingThreadCount: ").append(toIndentedString(encodingThreadCount)).append("\n"); + sb.append(" transcodingTempPath: ").append(toIndentedString(transcodingTempPath)).append("\n"); + sb.append(" fallbackFontPath: ").append(toIndentedString(fallbackFontPath)).append("\n"); + sb.append(" enableFallbackFont: ").append(toIndentedString(enableFallbackFont)).append("\n"); + sb.append(" enableAudioVbr: ").append(toIndentedString(enableAudioVbr)).append("\n"); + sb.append(" downMixAudioBoost: ").append(toIndentedString(downMixAudioBoost)).append("\n"); + sb.append(" downMixStereoAlgorithm: ").append(toIndentedString(downMixStereoAlgorithm)).append("\n"); + sb.append(" maxMuxingQueueSize: ").append(toIndentedString(maxMuxingQueueSize)).append("\n"); + sb.append(" enableThrottling: ").append(toIndentedString(enableThrottling)).append("\n"); + sb.append(" throttleDelaySeconds: ").append(toIndentedString(throttleDelaySeconds)).append("\n"); + sb.append(" enableSegmentDeletion: ").append(toIndentedString(enableSegmentDeletion)).append("\n"); + sb.append(" segmentKeepSeconds: ").append(toIndentedString(segmentKeepSeconds)).append("\n"); + sb.append(" hardwareAccelerationType: ").append(toIndentedString(hardwareAccelerationType)).append("\n"); + sb.append(" encoderAppPath: ").append(toIndentedString(encoderAppPath)).append("\n"); + sb.append(" encoderAppPathDisplay: ").append(toIndentedString(encoderAppPathDisplay)).append("\n"); + sb.append(" vaapiDevice: ").append(toIndentedString(vaapiDevice)).append("\n"); + sb.append(" qsvDevice: ").append(toIndentedString(qsvDevice)).append("\n"); + sb.append(" enableTonemapping: ").append(toIndentedString(enableTonemapping)).append("\n"); + sb.append(" enableVppTonemapping: ").append(toIndentedString(enableVppTonemapping)).append("\n"); + sb.append(" enableVideoToolboxTonemapping: ").append(toIndentedString(enableVideoToolboxTonemapping)).append("\n"); + sb.append(" tonemappingAlgorithm: ").append(toIndentedString(tonemappingAlgorithm)).append("\n"); + sb.append(" tonemappingMode: ").append(toIndentedString(tonemappingMode)).append("\n"); + sb.append(" tonemappingRange: ").append(toIndentedString(tonemappingRange)).append("\n"); + sb.append(" tonemappingDesat: ").append(toIndentedString(tonemappingDesat)).append("\n"); + sb.append(" tonemappingPeak: ").append(toIndentedString(tonemappingPeak)).append("\n"); + sb.append(" tonemappingParam: ").append(toIndentedString(tonemappingParam)).append("\n"); + sb.append(" vppTonemappingBrightness: ").append(toIndentedString(vppTonemappingBrightness)).append("\n"); + sb.append(" vppTonemappingContrast: ").append(toIndentedString(vppTonemappingContrast)).append("\n"); + sb.append(" h264Crf: ").append(toIndentedString(h264Crf)).append("\n"); + sb.append(" h265Crf: ").append(toIndentedString(h265Crf)).append("\n"); + sb.append(" encoderPreset: ").append(toIndentedString(encoderPreset)).append("\n"); + sb.append(" deinterlaceDoubleRate: ").append(toIndentedString(deinterlaceDoubleRate)).append("\n"); + sb.append(" deinterlaceMethod: ").append(toIndentedString(deinterlaceMethod)).append("\n"); + sb.append(" enableDecodingColorDepth10Hevc: ").append(toIndentedString(enableDecodingColorDepth10Hevc)).append("\n"); + sb.append(" enableDecodingColorDepth10Vp9: ").append(toIndentedString(enableDecodingColorDepth10Vp9)).append("\n"); + sb.append(" enableDecodingColorDepth10HevcRext: ").append(toIndentedString(enableDecodingColorDepth10HevcRext)).append("\n"); + sb.append(" enableDecodingColorDepth12HevcRext: ").append(toIndentedString(enableDecodingColorDepth12HevcRext)).append("\n"); + sb.append(" enableEnhancedNvdecDecoder: ").append(toIndentedString(enableEnhancedNvdecDecoder)).append("\n"); + sb.append(" preferSystemNativeHwDecoder: ").append(toIndentedString(preferSystemNativeHwDecoder)).append("\n"); + sb.append(" enableIntelLowPowerH264HwEncoder: ").append(toIndentedString(enableIntelLowPowerH264HwEncoder)).append("\n"); + sb.append(" enableIntelLowPowerHevcHwEncoder: ").append(toIndentedString(enableIntelLowPowerHevcHwEncoder)).append("\n"); + sb.append(" enableHardwareEncoding: ").append(toIndentedString(enableHardwareEncoding)).append("\n"); + sb.append(" allowHevcEncoding: ").append(toIndentedString(allowHevcEncoding)).append("\n"); + sb.append(" allowAv1Encoding: ").append(toIndentedString(allowAv1Encoding)).append("\n"); + sb.append(" enableSubtitleExtraction: ").append(toIndentedString(enableSubtitleExtraction)).append("\n"); + sb.append(" hardwareDecodingCodecs: ").append(toIndentedString(hardwareDecodingCodecs)).append("\n"); + sb.append(" allowOnDemandMetadataBasedKeyframeExtractionForExtensions: ").append(toIndentedString(allowOnDemandMetadataBasedKeyframeExtractionForExtensions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EncodingThreadCount"); + openapiFields.add("TranscodingTempPath"); + openapiFields.add("FallbackFontPath"); + openapiFields.add("EnableFallbackFont"); + openapiFields.add("EnableAudioVbr"); + openapiFields.add("DownMixAudioBoost"); + openapiFields.add("DownMixStereoAlgorithm"); + openapiFields.add("MaxMuxingQueueSize"); + openapiFields.add("EnableThrottling"); + openapiFields.add("ThrottleDelaySeconds"); + openapiFields.add("EnableSegmentDeletion"); + openapiFields.add("SegmentKeepSeconds"); + openapiFields.add("HardwareAccelerationType"); + openapiFields.add("EncoderAppPath"); + openapiFields.add("EncoderAppPathDisplay"); + openapiFields.add("VaapiDevice"); + openapiFields.add("QsvDevice"); + openapiFields.add("EnableTonemapping"); + openapiFields.add("EnableVppTonemapping"); + openapiFields.add("EnableVideoToolboxTonemapping"); + openapiFields.add("TonemappingAlgorithm"); + openapiFields.add("TonemappingMode"); + openapiFields.add("TonemappingRange"); + openapiFields.add("TonemappingDesat"); + openapiFields.add("TonemappingPeak"); + openapiFields.add("TonemappingParam"); + openapiFields.add("VppTonemappingBrightness"); + openapiFields.add("VppTonemappingContrast"); + openapiFields.add("H264Crf"); + openapiFields.add("H265Crf"); + openapiFields.add("EncoderPreset"); + openapiFields.add("DeinterlaceDoubleRate"); + openapiFields.add("DeinterlaceMethod"); + openapiFields.add("EnableDecodingColorDepth10Hevc"); + openapiFields.add("EnableDecodingColorDepth10Vp9"); + openapiFields.add("EnableDecodingColorDepth10HevcRext"); + openapiFields.add("EnableDecodingColorDepth12HevcRext"); + openapiFields.add("EnableEnhancedNvdecDecoder"); + openapiFields.add("PreferSystemNativeHwDecoder"); + openapiFields.add("EnableIntelLowPowerH264HwEncoder"); + openapiFields.add("EnableIntelLowPowerHevcHwEncoder"); + openapiFields.add("EnableHardwareEncoding"); + openapiFields.add("AllowHevcEncoding"); + openapiFields.add("AllowAv1Encoding"); + openapiFields.add("EnableSubtitleExtraction"); + openapiFields.add("HardwareDecodingCodecs"); + openapiFields.add("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EncodingOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EncodingOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in EncodingOptions is not found in the empty JSON string", EncodingOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EncodingOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `EncodingOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("TranscodingTempPath") != null && !jsonObj.get("TranscodingTempPath").isJsonNull()) && !jsonObj.get("TranscodingTempPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingTempPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingTempPath").toString())); + } + if ((jsonObj.get("FallbackFontPath") != null && !jsonObj.get("FallbackFontPath").isJsonNull()) && !jsonObj.get("FallbackFontPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FallbackFontPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FallbackFontPath").toString())); + } + // validate the optional field `DownMixStereoAlgorithm` + if (jsonObj.get("DownMixStereoAlgorithm") != null && !jsonObj.get("DownMixStereoAlgorithm").isJsonNull()) { + DownMixStereoAlgorithms.validateJsonElement(jsonObj.get("DownMixStereoAlgorithm")); + } + // validate the optional field `HardwareAccelerationType` + if (jsonObj.get("HardwareAccelerationType") != null && !jsonObj.get("HardwareAccelerationType").isJsonNull()) { + HardwareAccelerationType.validateJsonElement(jsonObj.get("HardwareAccelerationType")); + } + if ((jsonObj.get("EncoderAppPath") != null && !jsonObj.get("EncoderAppPath").isJsonNull()) && !jsonObj.get("EncoderAppPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderAppPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderAppPath").toString())); + } + if ((jsonObj.get("EncoderAppPathDisplay") != null && !jsonObj.get("EncoderAppPathDisplay").isJsonNull()) && !jsonObj.get("EncoderAppPathDisplay").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderAppPathDisplay` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderAppPathDisplay").toString())); + } + if ((jsonObj.get("VaapiDevice") != null && !jsonObj.get("VaapiDevice").isJsonNull()) && !jsonObj.get("VaapiDevice").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VaapiDevice` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VaapiDevice").toString())); + } + if ((jsonObj.get("QsvDevice") != null && !jsonObj.get("QsvDevice").isJsonNull()) && !jsonObj.get("QsvDevice").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `QsvDevice` to be a primitive type in the JSON string but got `%s`", jsonObj.get("QsvDevice").toString())); + } + // validate the optional field `TonemappingAlgorithm` + if (jsonObj.get("TonemappingAlgorithm") != null && !jsonObj.get("TonemappingAlgorithm").isJsonNull()) { + TonemappingAlgorithm.validateJsonElement(jsonObj.get("TonemappingAlgorithm")); + } + // validate the optional field `TonemappingMode` + if (jsonObj.get("TonemappingMode") != null && !jsonObj.get("TonemappingMode").isJsonNull()) { + TonemappingMode.validateJsonElement(jsonObj.get("TonemappingMode")); + } + // validate the optional field `TonemappingRange` + if (jsonObj.get("TonemappingRange") != null && !jsonObj.get("TonemappingRange").isJsonNull()) { + TonemappingRange.validateJsonElement(jsonObj.get("TonemappingRange")); + } + // validate the optional field `EncoderPreset` + if (jsonObj.get("EncoderPreset") != null && !jsonObj.get("EncoderPreset").isJsonNull()) { + EncoderPreset.validateJsonElement(jsonObj.get("EncoderPreset")); + } + // validate the optional field `DeinterlaceMethod` + if (jsonObj.get("DeinterlaceMethod") != null && !jsonObj.get("DeinterlaceMethod").isJsonNull()) { + DeinterlaceMethod.validateJsonElement(jsonObj.get("DeinterlaceMethod")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("HardwareDecodingCodecs") != null && !jsonObj.get("HardwareDecodingCodecs").isJsonNull() && !jsonObj.get("HardwareDecodingCodecs").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `HardwareDecodingCodecs` to be an array in the JSON string but got `%s`", jsonObj.get("HardwareDecodingCodecs").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions") != null && !jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").isJsonNull() && !jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AllowOnDemandMetadataBasedKeyframeExtractionForExtensions` to be an array in the JSON string but got `%s`", jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EncodingOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EncodingOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(EncodingOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, EncodingOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EncodingOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of EncodingOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of EncodingOptions + * @throws IOException if the JSON string is invalid with respect to EncodingOptions + */ + public static EncodingOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EncodingOptions.class); + } + + /** + * Convert an instance of EncodingOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EndPointInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EndPointInfo.java new file mode 100644 index 0000000000000..28b4972471831 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/EndPointInfo.java @@ -0,0 +1,230 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * EndPointInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class EndPointInfo { + public static final String SERIALIZED_NAME_IS_LOCAL = "IsLocal"; + @SerializedName(SERIALIZED_NAME_IS_LOCAL) + @javax.annotation.Nullable + private Boolean isLocal; + + public static final String SERIALIZED_NAME_IS_IN_NETWORK = "IsInNetwork"; + @SerializedName(SERIALIZED_NAME_IS_IN_NETWORK) + @javax.annotation.Nullable + private Boolean isInNetwork; + + public EndPointInfo() { + } + + public EndPointInfo isLocal(@javax.annotation.Nullable Boolean isLocal) { + this.isLocal = isLocal; + return this; + } + + /** + * Get isLocal + * @return isLocal + */ + @javax.annotation.Nullable + public Boolean getIsLocal() { + return isLocal; + } + + public void setIsLocal(@javax.annotation.Nullable Boolean isLocal) { + this.isLocal = isLocal; + } + + + public EndPointInfo isInNetwork(@javax.annotation.Nullable Boolean isInNetwork) { + this.isInNetwork = isInNetwork; + return this; + } + + /** + * Get isInNetwork + * @return isInNetwork + */ + @javax.annotation.Nullable + public Boolean getIsInNetwork() { + return isInNetwork; + } + + public void setIsInNetwork(@javax.annotation.Nullable Boolean isInNetwork) { + this.isInNetwork = isInNetwork; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EndPointInfo endPointInfo = (EndPointInfo) o; + return Objects.equals(this.isLocal, endPointInfo.isLocal) && + Objects.equals(this.isInNetwork, endPointInfo.isInNetwork); + } + + @Override + public int hashCode() { + return Objects.hash(isLocal, isInNetwork); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EndPointInfo {\n"); + sb.append(" isLocal: ").append(toIndentedString(isLocal)).append("\n"); + sb.append(" isInNetwork: ").append(toIndentedString(isInNetwork)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IsLocal"); + openapiFields.add("IsInNetwork"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EndPointInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EndPointInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in EndPointInfo is not found in the empty JSON string", EndPointInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EndPointInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `EndPointInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EndPointInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EndPointInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(EndPointInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, EndPointInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EndPointInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of EndPointInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of EndPointInfo + * @throws IOException if the JSON string is invalid with respect to EndPointInfo + */ + public static EndPointInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EndPointInfo.class); + } + + /** + * Convert an instance of EndPointInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdInfo.java new file mode 100644 index 0000000000000..9864340ae5fd5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdInfo.java @@ -0,0 +1,315 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ExternalIdMediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Represents the external id information for serialization to the client. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ExternalIdInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ExternalIdMediaType type; + + public static final String SERIALIZED_NAME_URL_FORMAT_STRING = "UrlFormatString"; + @Deprecated + @SerializedName(SERIALIZED_NAME_URL_FORMAT_STRING) + @javax.annotation.Nullable + private String urlFormatString; + + public ExternalIdInfo() { + } + + public ExternalIdInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc). + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ExternalIdInfo key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the unique key for this id. This key should be unique across all providers. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public ExternalIdInfo type(@javax.annotation.Nullable ExternalIdMediaType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the specific media type for this id. This is used to distinguish between the different external id types for providers with multiple ids. A null value indicates there is no specific media type associated with the external id, or this is the default id for the external provider so there is no need to specify a type. + * @return type + */ + @javax.annotation.Nullable + public ExternalIdMediaType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ExternalIdMediaType type) { + this.type = type; + } + + + @Deprecated + public ExternalIdInfo urlFormatString(@javax.annotation.Nullable String urlFormatString) { + this.urlFormatString = urlFormatString; + return this; + } + + /** + * Gets or sets the URL format string. + * @return urlFormatString + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getUrlFormatString() { + return urlFormatString; + } + + @Deprecated + public void setUrlFormatString(@javax.annotation.Nullable String urlFormatString) { + this.urlFormatString = urlFormatString; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalIdInfo externalIdInfo = (ExternalIdInfo) o; + return Objects.equals(this.name, externalIdInfo.name) && + Objects.equals(this.key, externalIdInfo.key) && + Objects.equals(this.type, externalIdInfo.type) && + Objects.equals(this.urlFormatString, externalIdInfo.urlFormatString); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, key, type, urlFormatString); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalIdInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" urlFormatString: ").append(toIndentedString(urlFormatString)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Key"); + openapiFields.add("Type"); + openapiFields.add("UrlFormatString"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ExternalIdInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ExternalIdInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ExternalIdInfo is not found in the empty JSON string", ExternalIdInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ExternalIdInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ExternalIdInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ExternalIdMediaType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("UrlFormatString") != null && !jsonObj.get("UrlFormatString").isJsonNull()) && !jsonObj.get("UrlFormatString").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UrlFormatString` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UrlFormatString").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ExternalIdInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ExternalIdInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ExternalIdInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ExternalIdInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ExternalIdInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ExternalIdInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ExternalIdInfo + * @throws IOException if the JSON string is invalid with respect to ExternalIdInfo + */ + public static ExternalIdInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ExternalIdInfo.class); + } + + /** + * Convert an instance of ExternalIdInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java new file mode 100644 index 0000000000000..e0ce460b059c3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java @@ -0,0 +1,100 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo. + */ +@JsonAdapter(ExternalIdMediaType.Adapter.class) +public enum ExternalIdMediaType { + + ALBUM("Album"), + + ALBUM_ARTIST("AlbumArtist"), + + ARTIST("Artist"), + + BOX_SET("BoxSet"), + + EPISODE("Episode"), + + MOVIE("Movie"), + + OTHER_ARTIST("OtherArtist"), + + PERSON("Person"), + + RELEASE_GROUP("ReleaseGroup"), + + SEASON("Season"), + + SERIES("Series"), + + TRACK("Track"), + + BOOK("Book"); + + private String value; + + ExternalIdMediaType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ExternalIdMediaType fromValue(String value) { + for (ExternalIdMediaType b : ExternalIdMediaType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ExternalIdMediaType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ExternalIdMediaType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ExternalIdMediaType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ExternalIdMediaType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalUrl.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalUrl.java new file mode 100644 index 0000000000000..ba457de0a87a8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExternalUrl.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ExternalUrl + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ExternalUrl { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public ExternalUrl() { + } + + public ExternalUrl name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ExternalUrl url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the type of the item. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalUrl externalUrl = (ExternalUrl) o; + return Objects.equals(this.name, externalUrl.name) && + Objects.equals(this.url, externalUrl.url); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, url); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalUrl {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ExternalUrl + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ExternalUrl.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ExternalUrl is not found in the empty JSON string", ExternalUrl.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ExternalUrl.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ExternalUrl` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ExternalUrl.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ExternalUrl' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ExternalUrl.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ExternalUrl value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ExternalUrl read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ExternalUrl given an JSON string + * + * @param jsonString JSON string + * @return An instance of ExternalUrl + * @throws IOException if the JSON string is invalid with respect to ExternalUrl + */ + public static ExternalUrl fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ExternalUrl.class); + } + + /** + * Convert an instance of ExternalUrl to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExtraType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExtraType.java new file mode 100644 index 0000000000000..e51fd1ac3a604 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ExtraType.java @@ -0,0 +1,98 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ExtraType + */ +@JsonAdapter(ExtraType.Adapter.class) +public enum ExtraType { + + UNKNOWN("Unknown"), + + CLIP("Clip"), + + TRAILER("Trailer"), + + BEHIND_THE_SCENES("BehindTheScenes"), + + DELETED_SCENE("DeletedScene"), + + INTERVIEW("Interview"), + + SCENE("Scene"), + + SAMPLE("Sample"), + + THEME_SONG("ThemeSong"), + + THEME_VIDEO("ThemeVideo"), + + FEATURETTE("Featurette"), + + SHORT("Short"); + + private String value; + + ExtraType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ExtraType fromValue(String value) { + for (ExtraType b : ExtraType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ExtraType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ExtraType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ExtraType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ExtraType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java new file mode 100644 index 0000000000000..083360652ec74 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java @@ -0,0 +1,268 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.FileSystemEntryType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class FileSystemEntryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class FileSystemEntryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private FileSystemEntryType type; + + public FileSystemEntryInfo() { + } + + public FileSystemEntryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public FileSystemEntryInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public FileSystemEntryInfo type(@javax.annotation.Nullable FileSystemEntryType type) { + this.type = type; + return this; + } + + /** + * Gets the type. + * @return type + */ + @javax.annotation.Nullable + public FileSystemEntryType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable FileSystemEntryType type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileSystemEntryInfo fileSystemEntryInfo = (FileSystemEntryInfo) o; + return Objects.equals(this.name, fileSystemEntryInfo.name) && + Objects.equals(this.path, fileSystemEntryInfo.path) && + Objects.equals(this.type, fileSystemEntryInfo.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, path, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FileSystemEntryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Path"); + openapiFields.add("Type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FileSystemEntryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FileSystemEntryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in FileSystemEntryInfo is not found in the empty JSON string", FileSystemEntryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FileSystemEntryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `FileSystemEntryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + FileSystemEntryType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FileSystemEntryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FileSystemEntryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(FileSystemEntryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, FileSystemEntryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FileSystemEntryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of FileSystemEntryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of FileSystemEntryInfo + * @throws IOException if the JSON string is invalid with respect to FileSystemEntryInfo + */ + public static FileSystemEntryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FileSystemEntryInfo.class); + } + + /** + * Convert an instance of FileSystemEntryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryType.java new file mode 100644 index 0000000000000..92aa87560e4b0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FileSystemEntryType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum FileSystemEntryType. + */ +@JsonAdapter(FileSystemEntryType.Adapter.class) +public enum FileSystemEntryType { + + FILE("File"), + + DIRECTORY("Directory"), + + NETWORK_COMPUTER("NetworkComputer"), + + NETWORK_SHARE("NetworkShare"); + + private String value; + + FileSystemEntryType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FileSystemEntryType fromValue(String value) { + for (FileSystemEntryType b : FileSystemEntryType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FileSystemEntryType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FileSystemEntryType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FileSystemEntryType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FileSystemEntryType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FontFile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FontFile.java new file mode 100644 index 0000000000000..767d5d71a3139 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/FontFile.java @@ -0,0 +1,300 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class FontFile. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class FontFile { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_MODIFIED = "DateModified"; + @SerializedName(SERIALIZED_NAME_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime dateModified; + + public FontFile() { + } + + public FontFile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public FontFile size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public FontFile dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public FontFile dateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + return this; + } + + /** + * Gets or sets the date modified. + * @return dateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getDateModified() { + return dateModified; + } + + public void setDateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FontFile fontFile = (FontFile) o; + return Objects.equals(this.name, fontFile.name) && + Objects.equals(this.size, fontFile.size) && + Objects.equals(this.dateCreated, fontFile.dateCreated) && + Objects.equals(this.dateModified, fontFile.dateModified); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, size, dateCreated, dateModified); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FontFile {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateModified: ").append(toIndentedString(dateModified)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Size"); + openapiFields.add("DateCreated"); + openapiFields.add("DateModified"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FontFile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FontFile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in FontFile is not found in the empty JSON string", FontFile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FontFile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `FontFile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FontFile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FontFile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(FontFile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, FontFile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FontFile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of FontFile given an JSON string + * + * @param jsonString JSON string + * @return An instance of FontFile + * @throws IOException if the JSON string is invalid with respect to FontFile + */ + public static FontFile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FontFile.class); + } + + /** + * Convert an instance of FontFile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForceKeepAliveMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForceKeepAliveMessage.java new file mode 100644 index 0000000000000..692d6468265b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForceKeepAliveMessage.java @@ -0,0 +1,265 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Force keep alive websocket messages. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForceKeepAliveMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private Integer data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.FORCE_KEEP_ALIVE; + + public ForceKeepAliveMessage() { + } + + public ForceKeepAliveMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ForceKeepAliveMessage data(@javax.annotation.Nullable Integer data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public Integer getData() { + return data; + } + + public void setData(@javax.annotation.Nullable Integer data) { + this.data = data; + } + + + public ForceKeepAliveMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForceKeepAliveMessage forceKeepAliveMessage = (ForceKeepAliveMessage) o; + return Objects.equals(this.data, forceKeepAliveMessage.data) && + Objects.equals(this.messageId, forceKeepAliveMessage.messageId) && + Objects.equals(this.messageType, forceKeepAliveMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForceKeepAliveMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForceKeepAliveMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForceKeepAliveMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForceKeepAliveMessage is not found in the empty JSON string", ForceKeepAliveMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForceKeepAliveMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForceKeepAliveMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForceKeepAliveMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForceKeepAliveMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForceKeepAliveMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForceKeepAliveMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForceKeepAliveMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForceKeepAliveMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForceKeepAliveMessage + * @throws IOException if the JSON string is invalid with respect to ForceKeepAliveMessage + */ + public static ForceKeepAliveMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForceKeepAliveMessage.class); + } + + /** + * Convert an instance of ForceKeepAliveMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java new file mode 100644 index 0000000000000..605d4e2aca6f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ForgotPasswordAction + */ +@JsonAdapter(ForgotPasswordAction.Adapter.class) +public enum ForgotPasswordAction { + + CONTACT_ADMIN("ContactAdmin"), + + PIN_CODE("PinCode"), + + IN_NETWORK_REQUIRED("InNetworkRequired"); + + private String value; + + ForgotPasswordAction(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ForgotPasswordAction fromValue(String value) { + for (ForgotPasswordAction b : ForgotPasswordAction.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ForgotPasswordAction enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ForgotPasswordAction read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ForgotPasswordAction.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ForgotPasswordAction.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java new file mode 100644 index 0000000000000..f0d1d3bbbaa4f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Forgot Password request body DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordDto { + public static final String SERIALIZED_NAME_ENTERED_USERNAME = "EnteredUsername"; + @SerializedName(SERIALIZED_NAME_ENTERED_USERNAME) + @javax.annotation.Nonnull + private String enteredUsername; + + public ForgotPasswordDto() { + } + + public ForgotPasswordDto enteredUsername(@javax.annotation.Nonnull String enteredUsername) { + this.enteredUsername = enteredUsername; + return this; + } + + /** + * Gets or sets the entered username to have its password reset. + * @return enteredUsername + */ + @javax.annotation.Nonnull + public String getEnteredUsername() { + return enteredUsername; + } + + public void setEnteredUsername(@javax.annotation.Nonnull String enteredUsername) { + this.enteredUsername = enteredUsername; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordDto forgotPasswordDto = (ForgotPasswordDto) o; + return Objects.equals(this.enteredUsername, forgotPasswordDto.enteredUsername); + } + + @Override + public int hashCode() { + return Objects.hash(enteredUsername); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordDto {\n"); + sb.append(" enteredUsername: ").append(toIndentedString(enteredUsername)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnteredUsername"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EnteredUsername"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordDto is not found in the empty JSON string", ForgotPasswordDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ForgotPasswordDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("EnteredUsername").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EnteredUsername` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EnteredUsername").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordDto + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordDto + */ + public static ForgotPasswordDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordDto.class); + } + + /** + * Convert an instance of ForgotPasswordDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java new file mode 100644 index 0000000000000..c108b6f1770c9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Forgot Password Pin enter request body DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordPinDto { + public static final String SERIALIZED_NAME_PIN = "Pin"; + @SerializedName(SERIALIZED_NAME_PIN) + @javax.annotation.Nonnull + private String pin; + + public ForgotPasswordPinDto() { + } + + public ForgotPasswordPinDto pin(@javax.annotation.Nonnull String pin) { + this.pin = pin; + return this; + } + + /** + * Gets or sets the entered pin to have the password reset. + * @return pin + */ + @javax.annotation.Nonnull + public String getPin() { + return pin; + } + + public void setPin(@javax.annotation.Nonnull String pin) { + this.pin = pin; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordPinDto forgotPasswordPinDto = (ForgotPasswordPinDto) o; + return Objects.equals(this.pin, forgotPasswordPinDto.pin); + } + + @Override + public int hashCode() { + return Objects.hash(pin); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordPinDto {\n"); + sb.append(" pin: ").append(toIndentedString(pin)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Pin"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Pin"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordPinDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordPinDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordPinDto is not found in the empty JSON string", ForgotPasswordPinDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordPinDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordPinDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ForgotPasswordPinDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Pin").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Pin` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Pin").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordPinDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordPinDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordPinDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordPinDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordPinDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordPinDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordPinDto + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordPinDto + */ + public static ForgotPasswordPinDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordPinDto.class); + } + + /** + * Convert an instance of ForgotPasswordPinDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java new file mode 100644 index 0000000000000..87261190ddfe1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java @@ -0,0 +1,278 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.client.model.ForgotPasswordAction; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ForgotPasswordResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordResult { + public static final String SERIALIZED_NAME_ACTION = "Action"; + @SerializedName(SERIALIZED_NAME_ACTION) + @javax.annotation.Nullable + private ForgotPasswordAction action; + + public static final String SERIALIZED_NAME_PIN_FILE = "PinFile"; + @SerializedName(SERIALIZED_NAME_PIN_FILE) + @javax.annotation.Nullable + private String pinFile; + + public static final String SERIALIZED_NAME_PIN_EXPIRATION_DATE = "PinExpirationDate"; + @SerializedName(SERIALIZED_NAME_PIN_EXPIRATION_DATE) + @javax.annotation.Nullable + private OffsetDateTime pinExpirationDate; + + public ForgotPasswordResult() { + } + + public ForgotPasswordResult action(@javax.annotation.Nullable ForgotPasswordAction action) { + this.action = action; + return this; + } + + /** + * Gets or sets the action. + * @return action + */ + @javax.annotation.Nullable + public ForgotPasswordAction getAction() { + return action; + } + + public void setAction(@javax.annotation.Nullable ForgotPasswordAction action) { + this.action = action; + } + + + public ForgotPasswordResult pinFile(@javax.annotation.Nullable String pinFile) { + this.pinFile = pinFile; + return this; + } + + /** + * Gets or sets the pin file. + * @return pinFile + */ + @javax.annotation.Nullable + public String getPinFile() { + return pinFile; + } + + public void setPinFile(@javax.annotation.Nullable String pinFile) { + this.pinFile = pinFile; + } + + + public ForgotPasswordResult pinExpirationDate(@javax.annotation.Nullable OffsetDateTime pinExpirationDate) { + this.pinExpirationDate = pinExpirationDate; + return this; + } + + /** + * Gets or sets the pin expiration date. + * @return pinExpirationDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPinExpirationDate() { + return pinExpirationDate; + } + + public void setPinExpirationDate(@javax.annotation.Nullable OffsetDateTime pinExpirationDate) { + this.pinExpirationDate = pinExpirationDate; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordResult forgotPasswordResult = (ForgotPasswordResult) o; + return Objects.equals(this.action, forgotPasswordResult.action) && + Objects.equals(this.pinFile, forgotPasswordResult.pinFile) && + Objects.equals(this.pinExpirationDate, forgotPasswordResult.pinExpirationDate); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(action, pinFile, pinExpirationDate); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordResult {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" pinFile: ").append(toIndentedString(pinFile)).append("\n"); + sb.append(" pinExpirationDate: ").append(toIndentedString(pinExpirationDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Action"); + openapiFields.add("PinFile"); + openapiFields.add("PinExpirationDate"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordResult is not found in the empty JSON string", ForgotPasswordResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Action` + if (jsonObj.get("Action") != null && !jsonObj.get("Action").isJsonNull()) { + ForgotPasswordAction.validateJsonElement(jsonObj.get("Action")); + } + if ((jsonObj.get("PinFile") != null && !jsonObj.get("PinFile").isJsonNull()) && !jsonObj.get("PinFile").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PinFile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PinFile").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordResult + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordResult + */ + public static ForgotPasswordResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordResult.class); + } + + /** + * Convert an instance of ForgotPasswordResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommand.java new file mode 100644 index 0000000000000..4ddd251a2a7a9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommand.java @@ -0,0 +1,276 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.GeneralCommandType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * GeneralCommand + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GeneralCommand { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private GeneralCommandType name; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private UUID controllingUserId; + + public static final String SERIALIZED_NAME_ARGUMENTS = "Arguments"; + @SerializedName(SERIALIZED_NAME_ARGUMENTS) + @javax.annotation.Nullable + private Map arguments = new HashMap<>(); + + public GeneralCommand() { + } + + public GeneralCommand name(@javax.annotation.Nullable GeneralCommandType name) { + this.name = name; + return this; + } + + /** + * This exists simply to identify a set of known commands. + * @return name + */ + @javax.annotation.Nullable + public GeneralCommandType getName() { + return name; + } + + public void setName(@javax.annotation.Nullable GeneralCommandType name) { + this.name = name; + } + + + public GeneralCommand controllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Get controllingUserId + * @return controllingUserId + */ + @javax.annotation.Nullable + public UUID getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + public GeneralCommand arguments(@javax.annotation.Nullable Map arguments) { + this.arguments = arguments; + return this; + } + + public GeneralCommand putArgumentsItem(String key, String argumentsItem) { + if (this.arguments == null) { + this.arguments = new HashMap<>(); + } + this.arguments.put(key, argumentsItem); + return this; + } + + /** + * Get arguments + * @return arguments + */ + @javax.annotation.Nullable + public Map getArguments() { + return arguments; + } + + public void setArguments(@javax.annotation.Nullable Map arguments) { + this.arguments = arguments; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeneralCommand generalCommand = (GeneralCommand) o; + return Objects.equals(this.name, generalCommand.name) && + Objects.equals(this.controllingUserId, generalCommand.controllingUserId) && + Objects.equals(this.arguments, generalCommand.arguments); + } + + @Override + public int hashCode() { + return Objects.hash(name, controllingUserId, arguments); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeneralCommand {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append(" arguments: ").append(toIndentedString(arguments)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ControllingUserId"); + openapiFields.add("Arguments"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GeneralCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GeneralCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GeneralCommand is not found in the empty JSON string", GeneralCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GeneralCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GeneralCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Name` + if (jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) { + GeneralCommandType.validateJsonElement(jsonObj.get("Name")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GeneralCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GeneralCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GeneralCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GeneralCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GeneralCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GeneralCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of GeneralCommand + * @throws IOException if the JSON string is invalid with respect to GeneralCommand + */ + public static GeneralCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GeneralCommand.class); + } + + /** + * Convert an instance of GeneralCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandMessage.java new file mode 100644 index 0000000000000..b6b707c50434c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GeneralCommand; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * General command websocket message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GeneralCommandMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private GeneralCommand data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.GENERAL_COMMAND; + + public GeneralCommandMessage() { + } + + public GeneralCommandMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public GeneralCommandMessage data(@javax.annotation.Nullable GeneralCommand data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public GeneralCommand getData() { + return data; + } + + public void setData(@javax.annotation.Nullable GeneralCommand data) { + this.data = data; + } + + + public GeneralCommandMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeneralCommandMessage generalCommandMessage = (GeneralCommandMessage) o; + return Objects.equals(this.data, generalCommandMessage.data) && + Objects.equals(this.messageId, generalCommandMessage.messageId) && + Objects.equals(this.messageType, generalCommandMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeneralCommandMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GeneralCommandMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GeneralCommandMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GeneralCommandMessage is not found in the empty JSON string", GeneralCommandMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GeneralCommandMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GeneralCommandMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + GeneralCommand.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GeneralCommandMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GeneralCommandMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GeneralCommandMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GeneralCommandMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GeneralCommandMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GeneralCommandMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of GeneralCommandMessage + * @throws IOException if the JSON string is invalid with respect to GeneralCommandMessage + */ + public static GeneralCommandMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GeneralCommandMessage.class); + } + + /** + * Convert an instance of GeneralCommandMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandType.java new file mode 100644 index 0000000000000..ed7e5ebe63678 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GeneralCommandType.java @@ -0,0 +1,160 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * This exists simply to identify a set of known commands. + */ +@JsonAdapter(GeneralCommandType.Adapter.class) +public enum GeneralCommandType { + + MOVE_UP("MoveUp"), + + MOVE_DOWN("MoveDown"), + + MOVE_LEFT("MoveLeft"), + + MOVE_RIGHT("MoveRight"), + + PAGE_UP("PageUp"), + + PAGE_DOWN("PageDown"), + + PREVIOUS_LETTER("PreviousLetter"), + + NEXT_LETTER("NextLetter"), + + TOGGLE_OSD("ToggleOsd"), + + TOGGLE_CONTEXT_MENU("ToggleContextMenu"), + + SELECT("Select"), + + BACK("Back"), + + TAKE_SCREENSHOT("TakeScreenshot"), + + SEND_KEY("SendKey"), + + SEND_STRING("SendString"), + + GO_HOME("GoHome"), + + GO_TO_SETTINGS("GoToSettings"), + + VOLUME_UP("VolumeUp"), + + VOLUME_DOWN("VolumeDown"), + + MUTE("Mute"), + + UNMUTE("Unmute"), + + TOGGLE_MUTE("ToggleMute"), + + SET_VOLUME("SetVolume"), + + SET_AUDIO_STREAM_INDEX("SetAudioStreamIndex"), + + SET_SUBTITLE_STREAM_INDEX("SetSubtitleStreamIndex"), + + TOGGLE_FULLSCREEN("ToggleFullscreen"), + + DISPLAY_CONTENT("DisplayContent"), + + GO_TO_SEARCH("GoToSearch"), + + DISPLAY_MESSAGE("DisplayMessage"), + + SET_REPEAT_MODE("SetRepeatMode"), + + CHANNEL_UP("ChannelUp"), + + CHANNEL_DOWN("ChannelDown"), + + GUIDE("Guide"), + + TOGGLE_STATS("ToggleStats"), + + PLAY_MEDIA_SOURCE("PlayMediaSource"), + + PLAY_TRAILERS("PlayTrailers"), + + SET_SHUFFLE_QUEUE("SetShuffleQueue"), + + PLAY_STATE("PlayState"), + + PLAY_NEXT("PlayNext"), + + TOGGLE_OSD_MENU("ToggleOsdMenu"), + + PLAY("Play"), + + SET_MAX_STREAMING_BITRATE("SetMaxStreamingBitrate"), + + SET_PLAYBACK_ORDER("SetPlaybackOrder"); + + private String value; + + GeneralCommandType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GeneralCommandType fromValue(String value) { + for (GeneralCommandType b : GeneralCommandType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GeneralCommandType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GeneralCommandType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GeneralCommandType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GeneralCommandType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GetProgramsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GetProgramsDto.java new file mode 100644 index 0000000000000..af6889e9b84ac --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GetProgramsDto.java @@ -0,0 +1,1018 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemSortBy; +import org.openapitools.client.model.SortOrder; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Get programs dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GetProgramsDto { + public static final String SERIALIZED_NAME_CHANNEL_IDS = "ChannelIds"; + @SerializedName(SERIALIZED_NAME_CHANNEL_IDS) + @javax.annotation.Nullable + private List channelIds; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MIN_START_DATE = "MinStartDate"; + @SerializedName(SERIALIZED_NAME_MIN_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime minStartDate; + + public static final String SERIALIZED_NAME_HAS_AIRED = "HasAired"; + @SerializedName(SERIALIZED_NAME_HAS_AIRED) + @javax.annotation.Nullable + private Boolean hasAired; + + public static final String SERIALIZED_NAME_IS_AIRING = "IsAiring"; + @SerializedName(SERIALIZED_NAME_IS_AIRING) + @javax.annotation.Nullable + private Boolean isAiring; + + public static final String SERIALIZED_NAME_MAX_START_DATE = "MaxStartDate"; + @SerializedName(SERIALIZED_NAME_MAX_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime maxStartDate; + + public static final String SERIALIZED_NAME_MIN_END_DATE = "MinEndDate"; + @SerializedName(SERIALIZED_NAME_MIN_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime minEndDate; + + public static final String SERIALIZED_NAME_MAX_END_DATE = "MaxEndDate"; + @SerializedName(SERIALIZED_NAME_MAX_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime maxEndDate; + + public static final String SERIALIZED_NAME_IS_MOVIE = "IsMovie"; + @SerializedName(SERIALIZED_NAME_IS_MOVIE) + @javax.annotation.Nullable + private Boolean isMovie; + + public static final String SERIALIZED_NAME_IS_SERIES = "IsSeries"; + @SerializedName(SERIALIZED_NAME_IS_SERIES) + @javax.annotation.Nullable + private Boolean isSeries; + + public static final String SERIALIZED_NAME_IS_NEWS = "IsNews"; + @SerializedName(SERIALIZED_NAME_IS_NEWS) + @javax.annotation.Nullable + private Boolean isNews; + + public static final String SERIALIZED_NAME_IS_KIDS = "IsKids"; + @SerializedName(SERIALIZED_NAME_IS_KIDS) + @javax.annotation.Nullable + private Boolean isKids; + + public static final String SERIALIZED_NAME_IS_SPORTS = "IsSports"; + @SerializedName(SERIALIZED_NAME_IS_SPORTS) + @javax.annotation.Nullable + private Boolean isSports; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public static final String SERIALIZED_NAME_LIMIT = "Limit"; + @SerializedName(SERIALIZED_NAME_LIMIT) + @javax.annotation.Nullable + private Integer limit; + + public static final String SERIALIZED_NAME_SORT_BY = "SortBy"; + @SerializedName(SERIALIZED_NAME_SORT_BY) + @javax.annotation.Nullable + private List sortBy; + + public static final String SERIALIZED_NAME_SORT_ORDER = "SortOrder"; + @SerializedName(SERIALIZED_NAME_SORT_ORDER) + @javax.annotation.Nullable + private List sortOrder; + + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_GENRE_IDS = "GenreIds"; + @SerializedName(SERIALIZED_NAME_GENRE_IDS) + @javax.annotation.Nullable + private List genreIds; + + public static final String SERIALIZED_NAME_ENABLE_IMAGES = "EnableImages"; + @SerializedName(SERIALIZED_NAME_ENABLE_IMAGES) + @javax.annotation.Nullable + private Boolean enableImages; + + public static final String SERIALIZED_NAME_ENABLE_TOTAL_RECORD_COUNT = "EnableTotalRecordCount"; + @SerializedName(SERIALIZED_NAME_ENABLE_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Boolean enableTotalRecordCount = true; + + public static final String SERIALIZED_NAME_IMAGE_TYPE_LIMIT = "ImageTypeLimit"; + @SerializedName(SERIALIZED_NAME_IMAGE_TYPE_LIMIT) + @javax.annotation.Nullable + private Integer imageTypeLimit; + + public static final String SERIALIZED_NAME_ENABLE_IMAGE_TYPES = "EnableImageTypes"; + @SerializedName(SERIALIZED_NAME_ENABLE_IMAGE_TYPES) + @javax.annotation.Nullable + private List enableImageTypes; + + public static final String SERIALIZED_NAME_ENABLE_USER_DATA = "EnableUserData"; + @SerializedName(SERIALIZED_NAME_ENABLE_USER_DATA) + @javax.annotation.Nullable + private Boolean enableUserData; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_LIBRARY_SERIES_ID = "LibrarySeriesId"; + @SerializedName(SERIALIZED_NAME_LIBRARY_SERIES_ID) + @javax.annotation.Nullable + private UUID librarySeriesId; + + public static final String SERIALIZED_NAME_FIELDS = "Fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @javax.annotation.Nullable + private List fields; + + public GetProgramsDto() { + } + + public GetProgramsDto channelIds(@javax.annotation.Nullable List channelIds) { + this.channelIds = channelIds; + return this; + } + + public GetProgramsDto addChannelIdsItem(UUID channelIdsItem) { + if (this.channelIds == null) { + this.channelIds = new ArrayList<>(); + } + this.channelIds.add(channelIdsItem); + return this; + } + + /** + * Gets or sets the channels to return guide information for. + * @return channelIds + */ + @javax.annotation.Nullable + public List getChannelIds() { + return channelIds; + } + + public void setChannelIds(@javax.annotation.Nullable List channelIds) { + this.channelIds = channelIds; + } + + + public GetProgramsDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets optional. Filter by user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public GetProgramsDto minStartDate(@javax.annotation.Nullable OffsetDateTime minStartDate) { + this.minStartDate = minStartDate; + return this; + } + + /** + * Gets or sets the minimum premiere start date. + * @return minStartDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMinStartDate() { + return minStartDate; + } + + public void setMinStartDate(@javax.annotation.Nullable OffsetDateTime minStartDate) { + this.minStartDate = minStartDate; + } + + + public GetProgramsDto hasAired(@javax.annotation.Nullable Boolean hasAired) { + this.hasAired = hasAired; + return this; + } + + /** + * Gets or sets filter by programs that have completed airing, or not. + * @return hasAired + */ + @javax.annotation.Nullable + public Boolean getHasAired() { + return hasAired; + } + + public void setHasAired(@javax.annotation.Nullable Boolean hasAired) { + this.hasAired = hasAired; + } + + + public GetProgramsDto isAiring(@javax.annotation.Nullable Boolean isAiring) { + this.isAiring = isAiring; + return this; + } + + /** + * Gets or sets filter by programs that are currently airing, or not. + * @return isAiring + */ + @javax.annotation.Nullable + public Boolean getIsAiring() { + return isAiring; + } + + public void setIsAiring(@javax.annotation.Nullable Boolean isAiring) { + this.isAiring = isAiring; + } + + + public GetProgramsDto maxStartDate(@javax.annotation.Nullable OffsetDateTime maxStartDate) { + this.maxStartDate = maxStartDate; + return this; + } + + /** + * Gets or sets the maximum premiere start date. + * @return maxStartDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMaxStartDate() { + return maxStartDate; + } + + public void setMaxStartDate(@javax.annotation.Nullable OffsetDateTime maxStartDate) { + this.maxStartDate = maxStartDate; + } + + + public GetProgramsDto minEndDate(@javax.annotation.Nullable OffsetDateTime minEndDate) { + this.minEndDate = minEndDate; + return this; + } + + /** + * Gets or sets the minimum premiere end date. + * @return minEndDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMinEndDate() { + return minEndDate; + } + + public void setMinEndDate(@javax.annotation.Nullable OffsetDateTime minEndDate) { + this.minEndDate = minEndDate; + } + + + public GetProgramsDto maxEndDate(@javax.annotation.Nullable OffsetDateTime maxEndDate) { + this.maxEndDate = maxEndDate; + return this; + } + + /** + * Gets or sets the maximum premiere end date. + * @return maxEndDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMaxEndDate() { + return maxEndDate; + } + + public void setMaxEndDate(@javax.annotation.Nullable OffsetDateTime maxEndDate) { + this.maxEndDate = maxEndDate; + } + + + public GetProgramsDto isMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + return this; + } + + /** + * Gets or sets filter for movies. + * @return isMovie + */ + @javax.annotation.Nullable + public Boolean getIsMovie() { + return isMovie; + } + + public void setIsMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + } + + + public GetProgramsDto isSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + return this; + } + + /** + * Gets or sets filter for series. + * @return isSeries + */ + @javax.annotation.Nullable + public Boolean getIsSeries() { + return isSeries; + } + + public void setIsSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + } + + + public GetProgramsDto isNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + return this; + } + + /** + * Gets or sets filter for news. + * @return isNews + */ + @javax.annotation.Nullable + public Boolean getIsNews() { + return isNews; + } + + public void setIsNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + } + + + public GetProgramsDto isKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + return this; + } + + /** + * Gets or sets filter for kids. + * @return isKids + */ + @javax.annotation.Nullable + public Boolean getIsKids() { + return isKids; + } + + public void setIsKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + } + + + public GetProgramsDto isSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + return this; + } + + /** + * Gets or sets filter for sports. + * @return isSports + */ + @javax.annotation.Nullable + public Boolean getIsSports() { + return isSports; + } + + public void setIsSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + } + + + public GetProgramsDto startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the record index to start at. All items with a lower index will be dropped from the results. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + public GetProgramsDto limit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + return this; + } + + /** + * Gets or sets the maximum number of records to return. + * @return limit + */ + @javax.annotation.Nullable + public Integer getLimit() { + return limit; + } + + public void setLimit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + } + + + public GetProgramsDto sortBy(@javax.annotation.Nullable List sortBy) { + this.sortBy = sortBy; + return this; + } + + public GetProgramsDto addSortByItem(ItemSortBy sortByItem) { + if (this.sortBy == null) { + this.sortBy = new ArrayList<>(); + } + this.sortBy.add(sortByItem); + return this; + } + + /** + * Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate. + * @return sortBy + */ + @javax.annotation.Nullable + public List getSortBy() { + return sortBy; + } + + public void setSortBy(@javax.annotation.Nullable List sortBy) { + this.sortBy = sortBy; + } + + + public GetProgramsDto sortOrder(@javax.annotation.Nullable List sortOrder) { + this.sortOrder = sortOrder; + return this; + } + + public GetProgramsDto addSortOrderItem(SortOrder sortOrderItem) { + if (this.sortOrder == null) { + this.sortOrder = new ArrayList<>(); + } + this.sortOrder.add(sortOrderItem); + return this; + } + + /** + * Gets or sets sort order. + * @return sortOrder + */ + @javax.annotation.Nullable + public List getSortOrder() { + return sortOrder; + } + + public void setSortOrder(@javax.annotation.Nullable List sortOrder) { + this.sortOrder = sortOrder; + } + + + public GetProgramsDto genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public GetProgramsDto addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Gets or sets the genres to return guide information for. + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public GetProgramsDto genreIds(@javax.annotation.Nullable List genreIds) { + this.genreIds = genreIds; + return this; + } + + public GetProgramsDto addGenreIdsItem(UUID genreIdsItem) { + if (this.genreIds == null) { + this.genreIds = new ArrayList<>(); + } + this.genreIds.add(genreIdsItem); + return this; + } + + /** + * Gets or sets the genre ids to return guide information for. + * @return genreIds + */ + @javax.annotation.Nullable + public List getGenreIds() { + return genreIds; + } + + public void setGenreIds(@javax.annotation.Nullable List genreIds) { + this.genreIds = genreIds; + } + + + public GetProgramsDto enableImages(@javax.annotation.Nullable Boolean enableImages) { + this.enableImages = enableImages; + return this; + } + + /** + * Gets or sets include image information in output. + * @return enableImages + */ + @javax.annotation.Nullable + public Boolean getEnableImages() { + return enableImages; + } + + public void setEnableImages(@javax.annotation.Nullable Boolean enableImages) { + this.enableImages = enableImages; + } + + + public GetProgramsDto enableTotalRecordCount(@javax.annotation.Nullable Boolean enableTotalRecordCount) { + this.enableTotalRecordCount = enableTotalRecordCount; + return this; + } + + /** + * Gets or sets a value indicating whether retrieve total record count. + * @return enableTotalRecordCount + */ + @javax.annotation.Nullable + public Boolean getEnableTotalRecordCount() { + return enableTotalRecordCount; + } + + public void setEnableTotalRecordCount(@javax.annotation.Nullable Boolean enableTotalRecordCount) { + this.enableTotalRecordCount = enableTotalRecordCount; + } + + + public GetProgramsDto imageTypeLimit(@javax.annotation.Nullable Integer imageTypeLimit) { + this.imageTypeLimit = imageTypeLimit; + return this; + } + + /** + * Gets or sets the max number of images to return, per image type. + * @return imageTypeLimit + */ + @javax.annotation.Nullable + public Integer getImageTypeLimit() { + return imageTypeLimit; + } + + public void setImageTypeLimit(@javax.annotation.Nullable Integer imageTypeLimit) { + this.imageTypeLimit = imageTypeLimit; + } + + + public GetProgramsDto enableImageTypes(@javax.annotation.Nullable List enableImageTypes) { + this.enableImageTypes = enableImageTypes; + return this; + } + + public GetProgramsDto addEnableImageTypesItem(ImageType enableImageTypesItem) { + if (this.enableImageTypes == null) { + this.enableImageTypes = new ArrayList<>(); + } + this.enableImageTypes.add(enableImageTypesItem); + return this; + } + + /** + * Gets or sets the image types to include in the output. + * @return enableImageTypes + */ + @javax.annotation.Nullable + public List getEnableImageTypes() { + return enableImageTypes; + } + + public void setEnableImageTypes(@javax.annotation.Nullable List enableImageTypes) { + this.enableImageTypes = enableImageTypes; + } + + + public GetProgramsDto enableUserData(@javax.annotation.Nullable Boolean enableUserData) { + this.enableUserData = enableUserData; + return this; + } + + /** + * Gets or sets include user data. + * @return enableUserData + */ + @javax.annotation.Nullable + public Boolean getEnableUserData() { + return enableUserData; + } + + public void setEnableUserData(@javax.annotation.Nullable Boolean enableUserData) { + this.enableUserData = enableUserData; + } + + + public GetProgramsDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets filter by series timer id. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public GetProgramsDto librarySeriesId(@javax.annotation.Nullable UUID librarySeriesId) { + this.librarySeriesId = librarySeriesId; + return this; + } + + /** + * Gets or sets filter by library series id. + * @return librarySeriesId + */ + @javax.annotation.Nullable + public UUID getLibrarySeriesId() { + return librarySeriesId; + } + + public void setLibrarySeriesId(@javax.annotation.Nullable UUID librarySeriesId) { + this.librarySeriesId = librarySeriesId; + } + + + public GetProgramsDto fields(@javax.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public GetProgramsDto addFieldsItem(ItemFields fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Gets or sets specify additional fields of information to return in the output. + * @return fields + */ + @javax.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@javax.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetProgramsDto getProgramsDto = (GetProgramsDto) o; + return Objects.equals(this.channelIds, getProgramsDto.channelIds) && + Objects.equals(this.userId, getProgramsDto.userId) && + Objects.equals(this.minStartDate, getProgramsDto.minStartDate) && + Objects.equals(this.hasAired, getProgramsDto.hasAired) && + Objects.equals(this.isAiring, getProgramsDto.isAiring) && + Objects.equals(this.maxStartDate, getProgramsDto.maxStartDate) && + Objects.equals(this.minEndDate, getProgramsDto.minEndDate) && + Objects.equals(this.maxEndDate, getProgramsDto.maxEndDate) && + Objects.equals(this.isMovie, getProgramsDto.isMovie) && + Objects.equals(this.isSeries, getProgramsDto.isSeries) && + Objects.equals(this.isNews, getProgramsDto.isNews) && + Objects.equals(this.isKids, getProgramsDto.isKids) && + Objects.equals(this.isSports, getProgramsDto.isSports) && + Objects.equals(this.startIndex, getProgramsDto.startIndex) && + Objects.equals(this.limit, getProgramsDto.limit) && + Objects.equals(this.sortBy, getProgramsDto.sortBy) && + Objects.equals(this.sortOrder, getProgramsDto.sortOrder) && + Objects.equals(this.genres, getProgramsDto.genres) && + Objects.equals(this.genreIds, getProgramsDto.genreIds) && + Objects.equals(this.enableImages, getProgramsDto.enableImages) && + Objects.equals(this.enableTotalRecordCount, getProgramsDto.enableTotalRecordCount) && + Objects.equals(this.imageTypeLimit, getProgramsDto.imageTypeLimit) && + Objects.equals(this.enableImageTypes, getProgramsDto.enableImageTypes) && + Objects.equals(this.enableUserData, getProgramsDto.enableUserData) && + Objects.equals(this.seriesTimerId, getProgramsDto.seriesTimerId) && + Objects.equals(this.librarySeriesId, getProgramsDto.librarySeriesId) && + Objects.equals(this.fields, getProgramsDto.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, enableTotalRecordCount, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetProgramsDto {\n"); + sb.append(" channelIds: ").append(toIndentedString(channelIds)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" minStartDate: ").append(toIndentedString(minStartDate)).append("\n"); + sb.append(" hasAired: ").append(toIndentedString(hasAired)).append("\n"); + sb.append(" isAiring: ").append(toIndentedString(isAiring)).append("\n"); + sb.append(" maxStartDate: ").append(toIndentedString(maxStartDate)).append("\n"); + sb.append(" minEndDate: ").append(toIndentedString(minEndDate)).append("\n"); + sb.append(" maxEndDate: ").append(toIndentedString(maxEndDate)).append("\n"); + sb.append(" isMovie: ").append(toIndentedString(isMovie)).append("\n"); + sb.append(" isSeries: ").append(toIndentedString(isSeries)).append("\n"); + sb.append(" isNews: ").append(toIndentedString(isNews)).append("\n"); + sb.append(" isKids: ").append(toIndentedString(isKids)).append("\n"); + sb.append(" isSports: ").append(toIndentedString(isSports)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" sortBy: ").append(toIndentedString(sortBy)).append("\n"); + sb.append(" sortOrder: ").append(toIndentedString(sortOrder)).append("\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" genreIds: ").append(toIndentedString(genreIds)).append("\n"); + sb.append(" enableImages: ").append(toIndentedString(enableImages)).append("\n"); + sb.append(" enableTotalRecordCount: ").append(toIndentedString(enableTotalRecordCount)).append("\n"); + sb.append(" imageTypeLimit: ").append(toIndentedString(imageTypeLimit)).append("\n"); + sb.append(" enableImageTypes: ").append(toIndentedString(enableImageTypes)).append("\n"); + sb.append(" enableUserData: ").append(toIndentedString(enableUserData)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" librarySeriesId: ").append(toIndentedString(librarySeriesId)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ChannelIds"); + openapiFields.add("UserId"); + openapiFields.add("MinStartDate"); + openapiFields.add("HasAired"); + openapiFields.add("IsAiring"); + openapiFields.add("MaxStartDate"); + openapiFields.add("MinEndDate"); + openapiFields.add("MaxEndDate"); + openapiFields.add("IsMovie"); + openapiFields.add("IsSeries"); + openapiFields.add("IsNews"); + openapiFields.add("IsKids"); + openapiFields.add("IsSports"); + openapiFields.add("StartIndex"); + openapiFields.add("Limit"); + openapiFields.add("SortBy"); + openapiFields.add("SortOrder"); + openapiFields.add("Genres"); + openapiFields.add("GenreIds"); + openapiFields.add("EnableImages"); + openapiFields.add("EnableTotalRecordCount"); + openapiFields.add("ImageTypeLimit"); + openapiFields.add("EnableImageTypes"); + openapiFields.add("EnableUserData"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("LibrarySeriesId"); + openapiFields.add("Fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetProgramsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetProgramsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetProgramsDto is not found in the empty JSON string", GetProgramsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetProgramsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetProgramsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ChannelIds") != null && !jsonObj.get("ChannelIds").isJsonNull() && !jsonObj.get("ChannelIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelIds` to be an array in the JSON string but got `%s`", jsonObj.get("ChannelIds").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortBy") != null && !jsonObj.get("SortBy").isJsonNull() && !jsonObj.get("SortBy").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortBy` to be an array in the JSON string but got `%s`", jsonObj.get("SortBy").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortOrder") != null && !jsonObj.get("SortOrder").isJsonNull() && !jsonObj.get("SortOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortOrder` to be an array in the JSON string but got `%s`", jsonObj.get("SortOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("GenreIds") != null && !jsonObj.get("GenreIds").isJsonNull() && !jsonObj.get("GenreIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GenreIds` to be an array in the JSON string but got `%s`", jsonObj.get("GenreIds").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnableImageTypes") != null && !jsonObj.get("EnableImageTypes").isJsonNull() && !jsonObj.get("EnableImageTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnableImageTypes` to be an array in the JSON string but got `%s`", jsonObj.get("EnableImageTypes").toString())); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("LibrarySeriesId") != null && !jsonObj.get("LibrarySeriesId").isJsonNull()) && !jsonObj.get("LibrarySeriesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LibrarySeriesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LibrarySeriesId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Fields") != null && !jsonObj.get("Fields").isJsonNull() && !jsonObj.get("Fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Fields` to be an array in the JSON string but got `%s`", jsonObj.get("Fields").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetProgramsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetProgramsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetProgramsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetProgramsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetProgramsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetProgramsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetProgramsDto + * @throws IOException if the JSON string is invalid with respect to GetProgramsDto + */ + public static GetProgramsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetProgramsDto.class); + } + + /** + * Convert an instance of GetProgramsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDto.java new file mode 100644 index 0000000000000..a2e0aafde0993 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDto.java @@ -0,0 +1,338 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.GroupStateType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupInfoDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupInfoDto { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_GROUP_NAME = "GroupName"; + @SerializedName(SERIALIZED_NAME_GROUP_NAME) + @javax.annotation.Nullable + private String groupName; + + public static final String SERIALIZED_NAME_STATE = "State"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private GroupStateType state; + + public static final String SERIALIZED_NAME_PARTICIPANTS = "Participants"; + @SerializedName(SERIALIZED_NAME_PARTICIPANTS) + @javax.annotation.Nullable + private List participants = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LAST_UPDATED_AT = "LastUpdatedAt"; + @SerializedName(SERIALIZED_NAME_LAST_UPDATED_AT) + @javax.annotation.Nullable + private OffsetDateTime lastUpdatedAt; + + public GroupInfoDto() { + } + + public GroupInfoDto groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + public GroupInfoDto groupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + return this; + } + + /** + * Gets the group name. + * @return groupName + */ + @javax.annotation.Nullable + public String getGroupName() { + return groupName; + } + + public void setGroupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + } + + + public GroupInfoDto state(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + return this; + } + + /** + * Gets the group state. + * @return state + */ + @javax.annotation.Nullable + public GroupStateType getState() { + return state; + } + + public void setState(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + } + + + public GroupInfoDto participants(@javax.annotation.Nullable List participants) { + this.participants = participants; + return this; + } + + public GroupInfoDto addParticipantsItem(String participantsItem) { + if (this.participants == null) { + this.participants = new ArrayList<>(); + } + this.participants.add(participantsItem); + return this; + } + + /** + * Gets the participants. + * @return participants + */ + @javax.annotation.Nullable + public List getParticipants() { + return participants; + } + + public void setParticipants(@javax.annotation.Nullable List participants) { + this.participants = participants; + } + + + public GroupInfoDto lastUpdatedAt(@javax.annotation.Nullable OffsetDateTime lastUpdatedAt) { + this.lastUpdatedAt = lastUpdatedAt; + return this; + } + + /** + * Gets the date when this DTO has been created. + * @return lastUpdatedAt + */ + @javax.annotation.Nullable + public OffsetDateTime getLastUpdatedAt() { + return lastUpdatedAt; + } + + public void setLastUpdatedAt(@javax.annotation.Nullable OffsetDateTime lastUpdatedAt) { + this.lastUpdatedAt = lastUpdatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupInfoDto groupInfoDto = (GroupInfoDto) o; + return Objects.equals(this.groupId, groupInfoDto.groupId) && + Objects.equals(this.groupName, groupInfoDto.groupName) && + Objects.equals(this.state, groupInfoDto.state) && + Objects.equals(this.participants, groupInfoDto.participants) && + Objects.equals(this.lastUpdatedAt, groupInfoDto.lastUpdatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, groupName, state, participants, lastUpdatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupInfoDto {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" groupName: ").append(toIndentedString(groupName)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" participants: ").append(toIndentedString(participants)).append("\n"); + sb.append(" lastUpdatedAt: ").append(toIndentedString(lastUpdatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("GroupName"); + openapiFields.add("State"); + openapiFields.add("Participants"); + openapiFields.add("LastUpdatedAt"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GroupInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GroupInfoDto is not found in the empty JSON string", GroupInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GroupInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GroupInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + if ((jsonObj.get("GroupName") != null && !jsonObj.get("GroupName").isJsonNull()) && !jsonObj.get("GroupName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupName").toString())); + } + // validate the optional field `State` + if (jsonObj.get("State") != null && !jsonObj.get("State").isJsonNull()) { + GroupStateType.validateJsonElement(jsonObj.get("State")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Participants") != null && !jsonObj.get("Participants").isJsonNull() && !jsonObj.get("Participants").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Participants` to be an array in the JSON string but got `%s`", jsonObj.get("Participants").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GroupInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GroupInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GroupInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupInfoDto + * @throws IOException if the JSON string is invalid with respect to GroupInfoDto + */ + public static GroupInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupInfoDto.class); + } + + /** + * Convert an instance of GroupInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDtoGroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDtoGroupUpdate.java new file mode 100644 index 0000000000000..cb9317887086a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupInfoDtoGroupUpdate.java @@ -0,0 +1,270 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupInfoDto; +import org.openapitools.client.model.GroupUpdateType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupInfoDtoGroupUpdate { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private GroupUpdateType type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private GroupInfoDto data; + + public GroupInfoDtoGroupUpdate() { + } + + public GroupInfoDtoGroupUpdate( + UUID groupId + ) { + this(); + this.groupId = groupId; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + + + public GroupInfoDtoGroupUpdate type(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + return this; + } + + /** + * Gets the update type. + * @return type + */ + @javax.annotation.Nullable + public GroupUpdateType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + } + + + public GroupInfoDtoGroupUpdate data(@javax.annotation.Nullable GroupInfoDto data) { + this.data = data; + return this; + } + + /** + * Gets the update data. + * @return data + */ + @javax.annotation.Nullable + public GroupInfoDto getData() { + return data; + } + + public void setData(@javax.annotation.Nullable GroupInfoDto data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupInfoDtoGroupUpdate groupInfoDtoGroupUpdate = (GroupInfoDtoGroupUpdate) o; + return Objects.equals(this.groupId, groupInfoDtoGroupUpdate.groupId) && + Objects.equals(this.type, groupInfoDtoGroupUpdate.type) && + Objects.equals(this.data, groupInfoDtoGroupUpdate.data); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupInfoDtoGroupUpdate {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupInfoDtoGroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GroupInfoDtoGroupUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GroupInfoDtoGroupUpdate is not found in the empty JSON string", GroupInfoDtoGroupUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GroupInfoDtoGroupUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GroupInfoDtoGroupUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + GroupUpdateType.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + GroupInfoDto.validateJsonElement(jsonObj.get("Data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupInfoDtoGroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupInfoDtoGroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GroupInfoDtoGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupInfoDtoGroupUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GroupInfoDtoGroupUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GroupInfoDtoGroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupInfoDtoGroupUpdate + * @throws IOException if the JSON string is invalid with respect to GroupInfoDtoGroupUpdate + */ + public static GroupInfoDtoGroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupInfoDtoGroupUpdate.class); + } + + /** + * Convert an instance of GroupInfoDtoGroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupQueueMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupQueueMode.java new file mode 100644 index 0000000000000..8b32b7d463f6d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupQueueMode.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupQueueMode. + */ +@JsonAdapter(GroupQueueMode.Adapter.class) +public enum GroupQueueMode { + + QUEUE("Queue"), + + QUEUE_NEXT("QueueNext"); + + private String value; + + GroupQueueMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupQueueMode fromValue(String value) { + for (GroupQueueMode b : GroupQueueMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupQueueMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupQueueMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupQueueMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupQueueMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupRepeatMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupRepeatMode.java new file mode 100644 index 0000000000000..1f1ffb9e3899a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupRepeatMode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupRepeatMode. + */ +@JsonAdapter(GroupRepeatMode.Adapter.class) +public enum GroupRepeatMode { + + REPEAT_ONE("RepeatOne"), + + REPEAT_ALL("RepeatAll"), + + REPEAT_NONE("RepeatNone"); + + private String value; + + GroupRepeatMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupRepeatMode fromValue(String value) { + for (GroupRepeatMode b : GroupRepeatMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupRepeatMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupRepeatMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupRepeatMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupRepeatMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupShuffleMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupShuffleMode.java new file mode 100644 index 0000000000000..01a889f86a51b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupShuffleMode.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupShuffleMode. + */ +@JsonAdapter(GroupShuffleMode.Adapter.class) +public enum GroupShuffleMode { + + SORTED("Sorted"), + + SHUFFLE("Shuffle"); + + private String value; + + GroupShuffleMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupShuffleMode fromValue(String value) { + for (GroupShuffleMode b : GroupShuffleMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupShuffleMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupShuffleMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupShuffleMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupShuffleMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateType.java new file mode 100644 index 0000000000000..6c6bff1fbb3d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupState. + */ +@JsonAdapter(GroupStateType.Adapter.class) +public enum GroupStateType { + + IDLE("Idle"), + + WAITING("Waiting"), + + PAUSED("Paused"), + + PLAYING("Playing"); + + private String value; + + GroupStateType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupStateType fromValue(String value) { + for (GroupStateType b : GroupStateType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupStateType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupStateType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupStateType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupStateType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdate.java new file mode 100644 index 0000000000000..10781190278ba --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdate.java @@ -0,0 +1,240 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.GroupStateType; +import org.openapitools.client.model.PlaybackRequestType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupStateUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupStateUpdate { + public static final String SERIALIZED_NAME_STATE = "State"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private GroupStateType state; + + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + @javax.annotation.Nullable + private PlaybackRequestType reason; + + public GroupStateUpdate() { + } + + public GroupStateUpdate state(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + return this; + } + + /** + * Gets the state of the group. + * @return state + */ + @javax.annotation.Nullable + public GroupStateType getState() { + return state; + } + + public void setState(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + } + + + public GroupStateUpdate reason(@javax.annotation.Nullable PlaybackRequestType reason) { + this.reason = reason; + return this; + } + + /** + * Gets the reason of the state change. + * @return reason + */ + @javax.annotation.Nullable + public PlaybackRequestType getReason() { + return reason; + } + + public void setReason(@javax.annotation.Nullable PlaybackRequestType reason) { + this.reason = reason; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupStateUpdate groupStateUpdate = (GroupStateUpdate) o; + return Objects.equals(this.state, groupStateUpdate.state) && + Objects.equals(this.reason, groupStateUpdate.reason); + } + + @Override + public int hashCode() { + return Objects.hash(state, reason); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupStateUpdate {\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("State"); + openapiFields.add("Reason"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupStateUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GroupStateUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GroupStateUpdate is not found in the empty JSON string", GroupStateUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GroupStateUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GroupStateUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `State` + if (jsonObj.get("State") != null && !jsonObj.get("State").isJsonNull()) { + GroupStateType.validateJsonElement(jsonObj.get("State")); + } + // validate the optional field `Reason` + if (jsonObj.get("Reason") != null && !jsonObj.get("Reason").isJsonNull()) { + PlaybackRequestType.validateJsonElement(jsonObj.get("Reason")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupStateUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupStateUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GroupStateUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupStateUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GroupStateUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GroupStateUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupStateUpdate + * @throws IOException if the JSON string is invalid with respect to GroupStateUpdate + */ + public static GroupStateUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupStateUpdate.class); + } + + /** + * Convert an instance of GroupStateUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdateGroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdateGroupUpdate.java new file mode 100644 index 0000000000000..9a3f7db02e73b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupStateUpdateGroupUpdate.java @@ -0,0 +1,270 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupStateUpdate; +import org.openapitools.client.model.GroupUpdateType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupStateUpdateGroupUpdate { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private GroupUpdateType type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private GroupStateUpdate data; + + public GroupStateUpdateGroupUpdate() { + } + + public GroupStateUpdateGroupUpdate( + UUID groupId + ) { + this(); + this.groupId = groupId; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + + + public GroupStateUpdateGroupUpdate type(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + return this; + } + + /** + * Gets the update type. + * @return type + */ + @javax.annotation.Nullable + public GroupUpdateType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + } + + + public GroupStateUpdateGroupUpdate data(@javax.annotation.Nullable GroupStateUpdate data) { + this.data = data; + return this; + } + + /** + * Gets the update data. + * @return data + */ + @javax.annotation.Nullable + public GroupStateUpdate getData() { + return data; + } + + public void setData(@javax.annotation.Nullable GroupStateUpdate data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupStateUpdateGroupUpdate groupStateUpdateGroupUpdate = (GroupStateUpdateGroupUpdate) o; + return Objects.equals(this.groupId, groupStateUpdateGroupUpdate.groupId) && + Objects.equals(this.type, groupStateUpdateGroupUpdate.type) && + Objects.equals(this.data, groupStateUpdateGroupUpdate.data); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupStateUpdateGroupUpdate {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupStateUpdateGroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GroupStateUpdateGroupUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GroupStateUpdateGroupUpdate is not found in the empty JSON string", GroupStateUpdateGroupUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GroupStateUpdateGroupUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GroupStateUpdateGroupUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + GroupUpdateType.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + GroupStateUpdate.validateJsonElement(jsonObj.get("Data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupStateUpdateGroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupStateUpdateGroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GroupStateUpdateGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupStateUpdateGroupUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GroupStateUpdateGroupUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GroupStateUpdateGroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupStateUpdateGroupUpdate + * @throws IOException if the JSON string is invalid with respect to GroupStateUpdateGroupUpdate + */ + public static GroupStateUpdateGroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupStateUpdateGroupUpdate.class); + } + + /** + * Convert an instance of GroupStateUpdateGroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdate.java new file mode 100644 index 0000000000000..0bfe579dbb6cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdate.java @@ -0,0 +1,368 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupInfoDtoGroupUpdate; +import org.openapitools.client.model.GroupStateUpdateGroupUpdate; +import org.openapitools.client.model.GroupUpdateType; +import org.openapitools.client.model.PlayQueueUpdate; +import org.openapitools.client.model.PlayQueueUpdateGroupUpdate; +import org.openapitools.client.model.StringGroupUpdate; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import org.openapitools.client.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupUpdate extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(GroupUpdate.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGroupInfoDtoGroupUpdate = gson.getDelegateAdapter(this, TypeToken.get(GroupInfoDtoGroupUpdate.class)); + final TypeAdapter adapterGroupStateUpdateGroupUpdate = gson.getDelegateAdapter(this, TypeToken.get(GroupStateUpdateGroupUpdate.class)); + final TypeAdapter adapterStringGroupUpdate = gson.getDelegateAdapter(this, TypeToken.get(StringGroupUpdate.class)); + final TypeAdapter adapterPlayQueueUpdateGroupUpdate = gson.getDelegateAdapter(this, TypeToken.get(PlayQueueUpdateGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupUpdate value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GroupInfoDtoGroupUpdate` + if (value.getActualInstance() instanceof GroupInfoDtoGroupUpdate) { + JsonElement element = adapterGroupInfoDtoGroupUpdate.toJsonTree((GroupInfoDtoGroupUpdate)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GroupStateUpdateGroupUpdate` + if (value.getActualInstance() instanceof GroupStateUpdateGroupUpdate) { + JsonElement element = adapterGroupStateUpdateGroupUpdate.toJsonTree((GroupStateUpdateGroupUpdate)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `StringGroupUpdate` + if (value.getActualInstance() instanceof StringGroupUpdate) { + JsonElement element = adapterStringGroupUpdate.toJsonTree((StringGroupUpdate)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PlayQueueUpdateGroupUpdate` + if (value.getActualInstance() instanceof PlayQueueUpdateGroupUpdate) { + JsonElement element = adapterPlayQueueUpdateGroupUpdate.toJsonTree((PlayQueueUpdateGroupUpdate)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate"); + } + + @Override + public GroupUpdate read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GroupInfoDtoGroupUpdate + try { + // validate the JSON object to see if any exception is thrown + GroupInfoDtoGroupUpdate.validateJsonElement(jsonElement); + actualAdapter = adapterGroupInfoDtoGroupUpdate; + match++; + log.log(Level.FINER, "Input data matches schema 'GroupInfoDtoGroupUpdate'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GroupInfoDtoGroupUpdate failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GroupInfoDtoGroupUpdate'", e); + } + // deserialize GroupStateUpdateGroupUpdate + try { + // validate the JSON object to see if any exception is thrown + GroupStateUpdateGroupUpdate.validateJsonElement(jsonElement); + actualAdapter = adapterGroupStateUpdateGroupUpdate; + match++; + log.log(Level.FINER, "Input data matches schema 'GroupStateUpdateGroupUpdate'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GroupStateUpdateGroupUpdate failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GroupStateUpdateGroupUpdate'", e); + } + // deserialize StringGroupUpdate + try { + // validate the JSON object to see if any exception is thrown + StringGroupUpdate.validateJsonElement(jsonElement); + actualAdapter = adapterStringGroupUpdate; + match++; + log.log(Level.FINER, "Input data matches schema 'StringGroupUpdate'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for StringGroupUpdate failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'StringGroupUpdate'", e); + } + // deserialize PlayQueueUpdateGroupUpdate + try { + // validate the JSON object to see if any exception is thrown + PlayQueueUpdateGroupUpdate.validateJsonElement(jsonElement); + actualAdapter = adapterPlayQueueUpdateGroupUpdate; + match++; + log.log(Level.FINER, "Input data matches schema 'PlayQueueUpdateGroupUpdate'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PlayQueueUpdateGroupUpdate failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PlayQueueUpdateGroupUpdate'", e); + } + + if (match == 1) { + GroupUpdate ret = new GroupUpdate(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for GroupUpdate: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public GroupUpdate() { + super("oneOf", Boolean.FALSE); + } + + public GroupUpdate(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("GroupInfoDtoGroupUpdate", GroupInfoDtoGroupUpdate.class); + schemas.put("GroupStateUpdateGroupUpdate", GroupStateUpdateGroupUpdate.class); + schemas.put("StringGroupUpdate", StringGroupUpdate.class); + schemas.put("PlayQueueUpdateGroupUpdate", PlayQueueUpdateGroupUpdate.class); + } + + @Override + public Map> getSchemas() { + return GroupUpdate.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GroupInfoDtoGroupUpdate) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof GroupStateUpdateGroupUpdate) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof StringGroupUpdate) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PlayQueueUpdateGroupUpdate) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate"); + } + + /** + * Get the actual instance, which can be the following: + * GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate + * + * @return The actual instance (GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `GroupInfoDtoGroupUpdate`. If the actual instance is not `GroupInfoDtoGroupUpdate`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GroupInfoDtoGroupUpdate` + * @throws ClassCastException if the instance is not `GroupInfoDtoGroupUpdate` + */ + public GroupInfoDtoGroupUpdate getGroupInfoDtoGroupUpdate() throws ClassCastException { + return (GroupInfoDtoGroupUpdate)super.getActualInstance(); + } + + /** + * Get the actual instance of `GroupStateUpdateGroupUpdate`. If the actual instance is not `GroupStateUpdateGroupUpdate`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GroupStateUpdateGroupUpdate` + * @throws ClassCastException if the instance is not `GroupStateUpdateGroupUpdate` + */ + public GroupStateUpdateGroupUpdate getGroupStateUpdateGroupUpdate() throws ClassCastException { + return (GroupStateUpdateGroupUpdate)super.getActualInstance(); + } + + /** + * Get the actual instance of `StringGroupUpdate`. If the actual instance is not `StringGroupUpdate`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `StringGroupUpdate` + * @throws ClassCastException if the instance is not `StringGroupUpdate` + */ + public StringGroupUpdate getStringGroupUpdate() throws ClassCastException { + return (StringGroupUpdate)super.getActualInstance(); + } + + /** + * Get the actual instance of `PlayQueueUpdateGroupUpdate`. If the actual instance is not `PlayQueueUpdateGroupUpdate`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PlayQueueUpdateGroupUpdate` + * @throws ClassCastException if the instance is not `PlayQueueUpdateGroupUpdate` + */ + public PlayQueueUpdateGroupUpdate getPlayQueueUpdateGroupUpdate() throws ClassCastException { + return (PlayQueueUpdateGroupUpdate)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GroupInfoDtoGroupUpdate + try { + GroupInfoDtoGroupUpdate.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GroupInfoDtoGroupUpdate failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with GroupStateUpdateGroupUpdate + try { + GroupStateUpdateGroupUpdate.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GroupStateUpdateGroupUpdate failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with StringGroupUpdate + try { + StringGroupUpdate.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for StringGroupUpdate failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PlayQueueUpdateGroupUpdate + try { + PlayQueueUpdateGroupUpdate.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PlayQueueUpdateGroupUpdate failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for GroupUpdate with oneOf schemas: GroupInfoDtoGroupUpdate, GroupStateUpdateGroupUpdate, PlayQueueUpdateGroupUpdate, StringGroupUpdate. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of GroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupUpdate + * @throws IOException if the JSON string is invalid with respect to GroupUpdate + */ + public static GroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupUpdate.class); + } + + /** + * Convert an instance of GroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdateType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdateType.java new file mode 100644 index 0000000000000..8e60d1cc05c3c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GroupUpdateType.java @@ -0,0 +1,96 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupUpdateType. + */ +@JsonAdapter(GroupUpdateType.Adapter.class) +public enum GroupUpdateType { + + USER_JOINED("UserJoined"), + + USER_LEFT("UserLeft"), + + GROUP_JOINED("GroupJoined"), + + GROUP_LEFT("GroupLeft"), + + STATE_UPDATE("StateUpdate"), + + PLAY_QUEUE("PlayQueue"), + + NOT_IN_GROUP("NotInGroup"), + + GROUP_DOES_NOT_EXIST("GroupDoesNotExist"), + + CREATE_GROUP_DENIED("CreateGroupDenied"), + + JOIN_GROUP_DENIED("JoinGroupDenied"), + + LIBRARY_ACCESS_DENIED("LibraryAccessDenied"); + + private String value; + + GroupUpdateType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupUpdateType fromValue(String value) { + for (GroupUpdateType b : GroupUpdateType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupUpdateType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupUpdateType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupUpdateType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupUpdateType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GuideInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GuideInfo.java new file mode 100644 index 0000000000000..7598e7e1bdb9d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/GuideInfo.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * GuideInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GuideInfo { + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public GuideInfo() { + } + + public GuideInfo startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public GuideInfo endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GuideInfo guideInfo = (GuideInfo) o; + return Objects.equals(this.startDate, guideInfo.startDate) && + Objects.equals(this.endDate, guideInfo.endDate); + } + + @Override + public int hashCode() { + return Objects.hash(startDate, endDate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GuideInfo {\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GuideInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GuideInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GuideInfo is not found in the empty JSON string", GuideInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GuideInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GuideInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GuideInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GuideInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GuideInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GuideInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GuideInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GuideInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of GuideInfo + * @throws IOException if the JSON string is invalid with respect to GuideInfo + */ + public static GuideInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GuideInfo.class); + } + + /** + * Convert an instance of GuideInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/HardwareAccelerationType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/HardwareAccelerationType.java new file mode 100644 index 0000000000000..40828d2fa04a4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/HardwareAccelerationType.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing hardware acceleration types. + */ +@JsonAdapter(HardwareAccelerationType.Adapter.class) +public enum HardwareAccelerationType { + + NONE("none"), + + AMF("amf"), + + QSV("qsv"), + + NVENC("nvenc"), + + V4L2M2M("v4l2m2m"), + + VAAPI("vaapi"), + + VIDEOTOOLBOX("videotoolbox"), + + RKMPP("rkmpp"); + + private String value; + + HardwareAccelerationType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static HardwareAccelerationType fromValue(String value) { + for (HardwareAccelerationType b : HardwareAccelerationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final HardwareAccelerationType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public HardwareAccelerationType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return HardwareAccelerationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + HardwareAccelerationType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IPlugin.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IPlugin.java new file mode 100644 index 0000000000000..145072670b0f7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IPlugin.java @@ -0,0 +1,359 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Common.Plugins.IPlugin. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class IPlugin { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_ASSEMBLY_FILE_PATH = "AssemblyFilePath"; + @SerializedName(SERIALIZED_NAME_ASSEMBLY_FILE_PATH) + @javax.annotation.Nullable + private String assemblyFilePath; + + public static final String SERIALIZED_NAME_CAN_UNINSTALL = "CanUninstall"; + @SerializedName(SERIALIZED_NAME_CAN_UNINSTALL) + @javax.annotation.Nullable + private Boolean canUninstall; + + public static final String SERIALIZED_NAME_DATA_FOLDER_PATH = "DataFolderPath"; + @SerializedName(SERIALIZED_NAME_DATA_FOLDER_PATH) + @javax.annotation.Nullable + private String dataFolderPath; + + public IPlugin() { + } + + public IPlugin( + String name, + String description, + UUID id, + String version, + String assemblyFilePath, + Boolean canUninstall, + String dataFolderPath + ) { + this(); + this.name = name; + this.description = description; + this.id = id; + this.version = version; + this.assemblyFilePath = assemblyFilePath; + this.canUninstall = canUninstall; + this.dataFolderPath = dataFolderPath; + } + + /** + * Gets the name of the plugin. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + + + /** + * Gets the Description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + + + /** + * Gets the unique id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + + + /** + * Gets the plugin version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + + + /** + * Gets the path to the assembly file. + * @return assemblyFilePath + */ + @javax.annotation.Nullable + public String getAssemblyFilePath() { + return assemblyFilePath; + } + + + + /** + * Gets a value indicating whether the plugin can be uninstalled. + * @return canUninstall + */ + @javax.annotation.Nullable + public Boolean getCanUninstall() { + return canUninstall; + } + + + + /** + * Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. + * @return dataFolderPath + */ + @javax.annotation.Nullable + public String getDataFolderPath() { + return dataFolderPath; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IPlugin iplugin = (IPlugin) o; + return Objects.equals(this.name, iplugin.name) && + Objects.equals(this.description, iplugin.description) && + Objects.equals(this.id, iplugin.id) && + Objects.equals(this.version, iplugin.version) && + Objects.equals(this.assemblyFilePath, iplugin.assemblyFilePath) && + Objects.equals(this.canUninstall, iplugin.canUninstall) && + Objects.equals(this.dataFolderPath, iplugin.dataFolderPath); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, id, version, assemblyFilePath, canUninstall, dataFolderPath); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IPlugin {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" assemblyFilePath: ").append(toIndentedString(assemblyFilePath)).append("\n"); + sb.append(" canUninstall: ").append(toIndentedString(canUninstall)).append("\n"); + sb.append(" dataFolderPath: ").append(toIndentedString(dataFolderPath)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Description"); + openapiFields.add("Id"); + openapiFields.add("Version"); + openapiFields.add("AssemblyFilePath"); + openapiFields.add("CanUninstall"); + openapiFields.add("DataFolderPath"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IPlugin + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IPlugin.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IPlugin is not found in the empty JSON string", IPlugin.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IPlugin.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IPlugin` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("AssemblyFilePath") != null && !jsonObj.get("AssemblyFilePath").isJsonNull()) && !jsonObj.get("AssemblyFilePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AssemblyFilePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AssemblyFilePath").toString())); + } + if ((jsonObj.get("DataFolderPath") != null && !jsonObj.get("DataFolderPath").isJsonNull()) && !jsonObj.get("DataFolderPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DataFolderPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DataFolderPath").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IPlugin.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IPlugin' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IPlugin.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IPlugin value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IPlugin read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IPlugin given an JSON string + * + * @param jsonString JSON string + * @return An instance of IPlugin + * @throws IOException if the JSON string is invalid with respect to IPlugin + */ + public static IPlugin fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IPlugin.class); + } + + /** + * Convert an instance of IPlugin to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java new file mode 100644 index 0000000000000..4a626abc6db80 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class IgnoreWaitRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class IgnoreWaitRequestDto { + public static final String SERIALIZED_NAME_IGNORE_WAIT = "IgnoreWait"; + @SerializedName(SERIALIZED_NAME_IGNORE_WAIT) + @javax.annotation.Nullable + private Boolean ignoreWait; + + public IgnoreWaitRequestDto() { + } + + public IgnoreWaitRequestDto ignoreWait(@javax.annotation.Nullable Boolean ignoreWait) { + this.ignoreWait = ignoreWait; + return this; + } + + /** + * Gets or sets a value indicating whether the client should be ignored. + * @return ignoreWait + */ + @javax.annotation.Nullable + public Boolean getIgnoreWait() { + return ignoreWait; + } + + public void setIgnoreWait(@javax.annotation.Nullable Boolean ignoreWait) { + this.ignoreWait = ignoreWait; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IgnoreWaitRequestDto ignoreWaitRequestDto = (IgnoreWaitRequestDto) o; + return Objects.equals(this.ignoreWait, ignoreWaitRequestDto.ignoreWait); + } + + @Override + public int hashCode() { + return Objects.hash(ignoreWait); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IgnoreWaitRequestDto {\n"); + sb.append(" ignoreWait: ").append(toIndentedString(ignoreWait)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IgnoreWait"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IgnoreWaitRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IgnoreWaitRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IgnoreWaitRequestDto is not found in the empty JSON string", IgnoreWaitRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IgnoreWaitRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IgnoreWaitRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IgnoreWaitRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IgnoreWaitRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IgnoreWaitRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IgnoreWaitRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IgnoreWaitRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IgnoreWaitRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of IgnoreWaitRequestDto + * @throws IOException if the JSON string is invalid with respect to IgnoreWaitRequestDto + */ + public static IgnoreWaitRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IgnoreWaitRequestDto.class); + } + + /** + * Convert an instance of IgnoreWaitRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageFormat.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageFormat.java new file mode 100644 index 0000000000000..b5d62ab510b76 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageFormat.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ImageOutputFormat. + */ +@JsonAdapter(ImageFormat.Adapter.class) +public enum ImageFormat { + + BMP("Bmp"), + + GIF("Gif"), + + JPG("Jpg"), + + PNG("Png"), + + WEBP("Webp"), + + SVG("Svg"); + + private String value; + + ImageFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageFormat fromValue(String value) { + for (ImageFormat b : ImageFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageFormat.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageInfo.java new file mode 100644 index 0000000000000..2b8358e43b0f4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageInfo.java @@ -0,0 +1,418 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ImageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageInfo { + public static final String SERIALIZED_NAME_IMAGE_TYPE = "ImageType"; + @SerializedName(SERIALIZED_NAME_IMAGE_TYPE) + @javax.annotation.Nullable + private ImageType imageType; + + public static final String SERIALIZED_NAME_IMAGE_INDEX = "ImageIndex"; + @SerializedName(SERIALIZED_NAME_IMAGE_INDEX) + @javax.annotation.Nullable + private Integer imageIndex; + + public static final String SERIALIZED_NAME_IMAGE_TAG = "ImageTag"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAG) + @javax.annotation.Nullable + private String imageTag; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_BLUR_HASH = "BlurHash"; + @SerializedName(SERIALIZED_NAME_BLUR_HASH) + @javax.annotation.Nullable + private String blurHash; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public ImageInfo() { + } + + public ImageInfo imageType(@javax.annotation.Nullable ImageType imageType) { + this.imageType = imageType; + return this; + } + + /** + * Gets or sets the type of the image. + * @return imageType + */ + @javax.annotation.Nullable + public ImageType getImageType() { + return imageType; + } + + public void setImageType(@javax.annotation.Nullable ImageType imageType) { + this.imageType = imageType; + } + + + public ImageInfo imageIndex(@javax.annotation.Nullable Integer imageIndex) { + this.imageIndex = imageIndex; + return this; + } + + /** + * Gets or sets the index of the image. + * @return imageIndex + */ + @javax.annotation.Nullable + public Integer getImageIndex() { + return imageIndex; + } + + public void setImageIndex(@javax.annotation.Nullable Integer imageIndex) { + this.imageIndex = imageIndex; + } + + + public ImageInfo imageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + return this; + } + + /** + * Gets or sets the image tag. + * @return imageTag + */ + @javax.annotation.Nullable + public String getImageTag() { + return imageTag; + } + + public void setImageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + } + + + public ImageInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ImageInfo blurHash(@javax.annotation.Nullable String blurHash) { + this.blurHash = blurHash; + return this; + } + + /** + * Gets or sets the blurhash. + * @return blurHash + */ + @javax.annotation.Nullable + public String getBlurHash() { + return blurHash; + } + + public void setBlurHash(@javax.annotation.Nullable String blurHash) { + this.blurHash = blurHash; + } + + + public ImageInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public ImageInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public ImageInfo size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageInfo imageInfo = (ImageInfo) o; + return Objects.equals(this.imageType, imageInfo.imageType) && + Objects.equals(this.imageIndex, imageInfo.imageIndex) && + Objects.equals(this.imageTag, imageInfo.imageTag) && + Objects.equals(this.path, imageInfo.path) && + Objects.equals(this.blurHash, imageInfo.blurHash) && + Objects.equals(this.height, imageInfo.height) && + Objects.equals(this.width, imageInfo.width) && + Objects.equals(this.size, imageInfo.size); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(imageType, imageIndex, imageTag, path, blurHash, height, width, size); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageInfo {\n"); + sb.append(" imageType: ").append(toIndentedString(imageType)).append("\n"); + sb.append(" imageIndex: ").append(toIndentedString(imageIndex)).append("\n"); + sb.append(" imageTag: ").append(toIndentedString(imageTag)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" blurHash: ").append(toIndentedString(blurHash)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ImageType"); + openapiFields.add("ImageIndex"); + openapiFields.add("ImageTag"); + openapiFields.add("Path"); + openapiFields.add("BlurHash"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("Size"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageInfo is not found in the empty JSON string", ImageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ImageType` + if (jsonObj.get("ImageType") != null && !jsonObj.get("ImageType").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("ImageType")); + } + if ((jsonObj.get("ImageTag") != null && !jsonObj.get("ImageTag").isJsonNull()) && !jsonObj.get("ImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageTag").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("BlurHash") != null && !jsonObj.get("BlurHash").isJsonNull()) && !jsonObj.get("BlurHash").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BlurHash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BlurHash").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageInfo + * @throws IOException if the JSON string is invalid with respect to ImageInfo + */ + public static ImageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageInfo.class); + } + + /** + * Convert an instance of ImageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOption.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOption.java new file mode 100644 index 0000000000000..8d11843492362 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOption.java @@ -0,0 +1,262 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ImageOption + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageOption { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ImageType type; + + public static final String SERIALIZED_NAME_LIMIT = "Limit"; + @SerializedName(SERIALIZED_NAME_LIMIT) + @javax.annotation.Nullable + private Integer limit; + + public static final String SERIALIZED_NAME_MIN_WIDTH = "MinWidth"; + @SerializedName(SERIALIZED_NAME_MIN_WIDTH) + @javax.annotation.Nullable + private Integer minWidth; + + public ImageOption() { + } + + public ImageOption type(@javax.annotation.Nullable ImageType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public ImageType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ImageType type) { + this.type = type; + } + + + public ImageOption limit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + return this; + } + + /** + * Gets or sets the limit. + * @return limit + */ + @javax.annotation.Nullable + public Integer getLimit() { + return limit; + } + + public void setLimit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + } + + + public ImageOption minWidth(@javax.annotation.Nullable Integer minWidth) { + this.minWidth = minWidth; + return this; + } + + /** + * Gets or sets the minimum width. + * @return minWidth + */ + @javax.annotation.Nullable + public Integer getMinWidth() { + return minWidth; + } + + public void setMinWidth(@javax.annotation.Nullable Integer minWidth) { + this.minWidth = minWidth; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageOption imageOption = (ImageOption) o; + return Objects.equals(this.type, imageOption.type) && + Objects.equals(this.limit, imageOption.limit) && + Objects.equals(this.minWidth, imageOption.minWidth); + } + + @Override + public int hashCode() { + return Objects.hash(type, limit, minWidth); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageOption {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" minWidth: ").append(toIndentedString(minWidth)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Limit"); + openapiFields.add("MinWidth"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageOption + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageOption.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageOption is not found in the empty JSON string", ImageOption.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageOption.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageOption` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageOption.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageOption' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageOption.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageOption value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageOption read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageOption given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageOption + * @throws IOException if the JSON string is invalid with respect to ImageOption + */ + public static ImageOption fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageOption.class); + } + + /** + * Convert an instance of ImageOption to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOrientation.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOrientation.java new file mode 100644 index 0000000000000..560e7512b4fe1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageOrientation.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ImageOrientation + */ +@JsonAdapter(ImageOrientation.Adapter.class) +public enum ImageOrientation { + + TOP_LEFT("TopLeft"), + + TOP_RIGHT("TopRight"), + + BOTTOM_RIGHT("BottomRight"), + + BOTTOM_LEFT("BottomLeft"), + + LEFT_TOP("LeftTop"), + + RIGHT_TOP("RightTop"), + + RIGHT_BOTTOM("RightBottom"), + + LEFT_BOTTOM("LeftBottom"); + + private String value; + + ImageOrientation(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageOrientation fromValue(String value) { + for (ImageOrientation b : ImageOrientation.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageOrientation enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageOrientation read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageOrientation.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageOrientation.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageProviderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageProviderInfo.java new file mode 100644 index 0000000000000..caabed78d6c7e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageProviderInfo.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ImageProviderInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageProviderInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SUPPORTED_IMAGES = "SupportedImages"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_IMAGES) + @javax.annotation.Nullable + private List supportedImages = new ArrayList<>(); + + public ImageProviderInfo() { + } + + public ImageProviderInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ImageProviderInfo supportedImages(@javax.annotation.Nullable List supportedImages) { + this.supportedImages = supportedImages; + return this; + } + + public ImageProviderInfo addSupportedImagesItem(ImageType supportedImagesItem) { + if (this.supportedImages == null) { + this.supportedImages = new ArrayList<>(); + } + this.supportedImages.add(supportedImagesItem); + return this; + } + + /** + * Gets the supported image types. + * @return supportedImages + */ + @javax.annotation.Nullable + public List getSupportedImages() { + return supportedImages; + } + + public void setSupportedImages(@javax.annotation.Nullable List supportedImages) { + this.supportedImages = supportedImages; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageProviderInfo imageProviderInfo = (ImageProviderInfo) o; + return Objects.equals(this.name, imageProviderInfo.name) && + Objects.equals(this.supportedImages, imageProviderInfo.supportedImages); + } + + @Override + public int hashCode() { + return Objects.hash(name, supportedImages); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageProviderInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" supportedImages: ").append(toIndentedString(supportedImages)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("SupportedImages"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageProviderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageProviderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageProviderInfo is not found in the empty JSON string", ImageProviderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageProviderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageProviderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedImages") != null && !jsonObj.get("SupportedImages").isJsonNull() && !jsonObj.get("SupportedImages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedImages` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedImages").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageProviderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageProviderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageProviderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageProviderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageProviderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageProviderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageProviderInfo + * @throws IOException if the JSON string is invalid with respect to ImageProviderInfo + */ + public static ImageProviderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageProviderInfo.class); + } + + /** + * Convert an instance of ImageProviderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageResolution.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageResolution.java new file mode 100644 index 0000000000000..207847229d490 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageResolution.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ImageResolution. + */ +@JsonAdapter(ImageResolution.Adapter.class) +public enum ImageResolution { + + MATCH_SOURCE("MatchSource"), + + P144("P144"), + + P240("P240"), + + P360("P360"), + + P480("P480"), + + P720("P720"), + + P1080("P1080"), + + P1440("P1440"), + + P2160("P2160"); + + private String value; + + ImageResolution(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageResolution fromValue(String value) { + for (ImageResolution b : ImageResolution.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageResolution enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageResolution read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageResolution.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageResolution.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageSavingConvention.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageSavingConvention.java new file mode 100644 index 0000000000000..03a22f21ca573 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageSavingConvention.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ImageSavingConvention + */ +@JsonAdapter(ImageSavingConvention.Adapter.class) +public enum ImageSavingConvention { + + LEGACY("Legacy"), + + COMPATIBLE("Compatible"); + + private String value; + + ImageSavingConvention(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageSavingConvention fromValue(String value) { + for (ImageSavingConvention b : ImageSavingConvention.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageSavingConvention enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageSavingConvention read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageSavingConvention.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageSavingConvention.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageType.java new file mode 100644 index 0000000000000..0fd53a553df8c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ImageType.java @@ -0,0 +1,100 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ImageType. + */ +@JsonAdapter(ImageType.Adapter.class) +public enum ImageType { + + PRIMARY("Primary"), + + ART("Art"), + + BACKDROP("Backdrop"), + + BANNER("Banner"), + + LOGO("Logo"), + + THUMB("Thumb"), + + DISC("Disc"), + + BOX("Box"), + + SCREENSHOT("Screenshot"), + + MENU("Menu"), + + CHAPTER("Chapter"), + + BOX_REAR("BoxRear"), + + PROFILE("Profile"); + + private String value; + + ImageType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageType fromValue(String value) { + for (ImageType b : ImageType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundKeepAliveMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundKeepAliveMessage.java new file mode 100644 index 0000000000000..95032febf0ca9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundKeepAliveMessage.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Keep alive websocket messages. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class InboundKeepAliveMessage { + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.KEEP_ALIVE; + + public InboundKeepAliveMessage() { + } + + public InboundKeepAliveMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InboundKeepAliveMessage inboundKeepAliveMessage = (InboundKeepAliveMessage) o; + return Objects.equals(this.messageType, inboundKeepAliveMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InboundKeepAliveMessage {\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InboundKeepAliveMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InboundKeepAliveMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InboundKeepAliveMessage is not found in the empty JSON string", InboundKeepAliveMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InboundKeepAliveMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InboundKeepAliveMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InboundKeepAliveMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InboundKeepAliveMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InboundKeepAliveMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InboundKeepAliveMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InboundKeepAliveMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InboundKeepAliveMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of InboundKeepAliveMessage + * @throws IOException if the JSON string is invalid with respect to InboundKeepAliveMessage + */ + public static InboundKeepAliveMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InboundKeepAliveMessage.class); + } + + /** + * Convert an instance of InboundKeepAliveMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundWebSocketMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundWebSocketMessage.java new file mode 100644 index 0000000000000..4038a5cdafc8b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InboundWebSocketMessage.java @@ -0,0 +1,502 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ActivityLogEntryStartMessage; +import org.openapitools.client.model.ActivityLogEntryStopMessage; +import org.openapitools.client.model.InboundKeepAliveMessage; +import org.openapitools.client.model.ScheduledTasksInfoStartMessage; +import org.openapitools.client.model.ScheduledTasksInfoStopMessage; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.SessionsStartMessage; +import org.openapitools.client.model.SessionsStopMessage; +import org.openapitools.jackson.nullable.JsonNullable; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import org.openapitools.client.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class InboundWebSocketMessage extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(InboundWebSocketMessage.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InboundWebSocketMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InboundWebSocketMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterActivityLogEntryStartMessage = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryStartMessage.class)); + final TypeAdapter adapterActivityLogEntryStopMessage = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryStopMessage.class)); + final TypeAdapter adapterInboundKeepAliveMessage = gson.getDelegateAdapter(this, TypeToken.get(InboundKeepAliveMessage.class)); + final TypeAdapter adapterScheduledTasksInfoStartMessage = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoStartMessage.class)); + final TypeAdapter adapterScheduledTasksInfoStopMessage = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoStopMessage.class)); + final TypeAdapter adapterSessionsStartMessage = gson.getDelegateAdapter(this, TypeToken.get(SessionsStartMessage.class)); + final TypeAdapter adapterSessionsStopMessage = gson.getDelegateAdapter(this, TypeToken.get(SessionsStopMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InboundWebSocketMessage value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ActivityLogEntryStartMessage` + if (value.getActualInstance() instanceof ActivityLogEntryStartMessage) { + JsonElement element = adapterActivityLogEntryStartMessage.toJsonTree((ActivityLogEntryStartMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ActivityLogEntryStopMessage` + if (value.getActualInstance() instanceof ActivityLogEntryStopMessage) { + JsonElement element = adapterActivityLogEntryStopMessage.toJsonTree((ActivityLogEntryStopMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InboundKeepAliveMessage` + if (value.getActualInstance() instanceof InboundKeepAliveMessage) { + JsonElement element = adapterInboundKeepAliveMessage.toJsonTree((InboundKeepAliveMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ScheduledTasksInfoStartMessage` + if (value.getActualInstance() instanceof ScheduledTasksInfoStartMessage) { + JsonElement element = adapterScheduledTasksInfoStartMessage.toJsonTree((ScheduledTasksInfoStartMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ScheduledTasksInfoStopMessage` + if (value.getActualInstance() instanceof ScheduledTasksInfoStopMessage) { + JsonElement element = adapterScheduledTasksInfoStopMessage.toJsonTree((ScheduledTasksInfoStopMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SessionsStartMessage` + if (value.getActualInstance() instanceof SessionsStartMessage) { + JsonElement element = adapterSessionsStartMessage.toJsonTree((SessionsStartMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SessionsStopMessage` + if (value.getActualInstance() instanceof SessionsStopMessage) { + JsonElement element = adapterSessionsStopMessage.toJsonTree((SessionsStopMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage"); + } + + @Override + public InboundWebSocketMessage read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ActivityLogEntryStartMessage + try { + // validate the JSON object to see if any exception is thrown + ActivityLogEntryStartMessage.validateJsonElement(jsonElement); + actualAdapter = adapterActivityLogEntryStartMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ActivityLogEntryStartMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ActivityLogEntryStartMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ActivityLogEntryStartMessage'", e); + } + // deserialize ActivityLogEntryStopMessage + try { + // validate the JSON object to see if any exception is thrown + ActivityLogEntryStopMessage.validateJsonElement(jsonElement); + actualAdapter = adapterActivityLogEntryStopMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ActivityLogEntryStopMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ActivityLogEntryStopMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ActivityLogEntryStopMessage'", e); + } + // deserialize InboundKeepAliveMessage + try { + // validate the JSON object to see if any exception is thrown + InboundKeepAliveMessage.validateJsonElement(jsonElement); + actualAdapter = adapterInboundKeepAliveMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'InboundKeepAliveMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InboundKeepAliveMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InboundKeepAliveMessage'", e); + } + // deserialize ScheduledTasksInfoStartMessage + try { + // validate the JSON object to see if any exception is thrown + ScheduledTasksInfoStartMessage.validateJsonElement(jsonElement); + actualAdapter = adapterScheduledTasksInfoStartMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ScheduledTasksInfoStartMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoStartMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ScheduledTasksInfoStartMessage'", e); + } + // deserialize ScheduledTasksInfoStopMessage + try { + // validate the JSON object to see if any exception is thrown + ScheduledTasksInfoStopMessage.validateJsonElement(jsonElement); + actualAdapter = adapterScheduledTasksInfoStopMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ScheduledTasksInfoStopMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoStopMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ScheduledTasksInfoStopMessage'", e); + } + // deserialize SessionsStartMessage + try { + // validate the JSON object to see if any exception is thrown + SessionsStartMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSessionsStartMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SessionsStartMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SessionsStartMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SessionsStartMessage'", e); + } + // deserialize SessionsStopMessage + try { + // validate the JSON object to see if any exception is thrown + SessionsStopMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSessionsStopMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SessionsStopMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SessionsStopMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SessionsStopMessage'", e); + } + + if (match == 1) { + InboundWebSocketMessage ret = new InboundWebSocketMessage(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for InboundWebSocketMessage: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public InboundWebSocketMessage() { + super("oneOf", Boolean.FALSE); + } + + public InboundWebSocketMessage(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ActivityLogEntryStartMessage", ActivityLogEntryStartMessage.class); + schemas.put("ActivityLogEntryStopMessage", ActivityLogEntryStopMessage.class); + schemas.put("InboundKeepAliveMessage", InboundKeepAliveMessage.class); + schemas.put("ScheduledTasksInfoStartMessage", ScheduledTasksInfoStartMessage.class); + schemas.put("ScheduledTasksInfoStopMessage", ScheduledTasksInfoStopMessage.class); + schemas.put("SessionsStartMessage", SessionsStartMessage.class); + schemas.put("SessionsStopMessage", SessionsStopMessage.class); + } + + @Override + public Map> getSchemas() { + return InboundWebSocketMessage.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ActivityLogEntryStartMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ActivityLogEntryStopMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InboundKeepAliveMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ScheduledTasksInfoStartMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ScheduledTasksInfoStopMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SessionsStartMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SessionsStopMessage) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage"); + } + + /** + * Get the actual instance, which can be the following: + * ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage + * + * @return The actual instance (ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ActivityLogEntryStartMessage`. If the actual instance is not `ActivityLogEntryStartMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ActivityLogEntryStartMessage` + * @throws ClassCastException if the instance is not `ActivityLogEntryStartMessage` + */ + public ActivityLogEntryStartMessage getActivityLogEntryStartMessage() throws ClassCastException { + return (ActivityLogEntryStartMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ActivityLogEntryStopMessage`. If the actual instance is not `ActivityLogEntryStopMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ActivityLogEntryStopMessage` + * @throws ClassCastException if the instance is not `ActivityLogEntryStopMessage` + */ + public ActivityLogEntryStopMessage getActivityLogEntryStopMessage() throws ClassCastException { + return (ActivityLogEntryStopMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `InboundKeepAliveMessage`. If the actual instance is not `InboundKeepAliveMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InboundKeepAliveMessage` + * @throws ClassCastException if the instance is not `InboundKeepAliveMessage` + */ + public InboundKeepAliveMessage getInboundKeepAliveMessage() throws ClassCastException { + return (InboundKeepAliveMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ScheduledTasksInfoStartMessage`. If the actual instance is not `ScheduledTasksInfoStartMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ScheduledTasksInfoStartMessage` + * @throws ClassCastException if the instance is not `ScheduledTasksInfoStartMessage` + */ + public ScheduledTasksInfoStartMessage getScheduledTasksInfoStartMessage() throws ClassCastException { + return (ScheduledTasksInfoStartMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ScheduledTasksInfoStopMessage`. If the actual instance is not `ScheduledTasksInfoStopMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ScheduledTasksInfoStopMessage` + * @throws ClassCastException if the instance is not `ScheduledTasksInfoStopMessage` + */ + public ScheduledTasksInfoStopMessage getScheduledTasksInfoStopMessage() throws ClassCastException { + return (ScheduledTasksInfoStopMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SessionsStartMessage`. If the actual instance is not `SessionsStartMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SessionsStartMessage` + * @throws ClassCastException if the instance is not `SessionsStartMessage` + */ + public SessionsStartMessage getSessionsStartMessage() throws ClassCastException { + return (SessionsStartMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SessionsStopMessage`. If the actual instance is not `SessionsStopMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SessionsStopMessage` + * @throws ClassCastException if the instance is not `SessionsStopMessage` + */ + public SessionsStopMessage getSessionsStopMessage() throws ClassCastException { + return (SessionsStopMessage)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InboundWebSocketMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ActivityLogEntryStartMessage + try { + ActivityLogEntryStartMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ActivityLogEntryStartMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ActivityLogEntryStopMessage + try { + ActivityLogEntryStopMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ActivityLogEntryStopMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with InboundKeepAliveMessage + try { + InboundKeepAliveMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InboundKeepAliveMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ScheduledTasksInfoStartMessage + try { + ScheduledTasksInfoStartMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoStartMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ScheduledTasksInfoStopMessage + try { + ScheduledTasksInfoStopMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoStopMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SessionsStartMessage + try { + SessionsStartMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SessionsStartMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SessionsStopMessage + try { + SessionsStopMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SessionsStopMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for InboundWebSocketMessage with oneOf schemas: ActivityLogEntryStartMessage, ActivityLogEntryStopMessage, InboundKeepAliveMessage, ScheduledTasksInfoStartMessage, ScheduledTasksInfoStopMessage, SessionsStartMessage, SessionsStopMessage. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of InboundWebSocketMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of InboundWebSocketMessage + * @throws IOException if the JSON string is invalid with respect to InboundWebSocketMessage + */ + public static InboundWebSocketMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InboundWebSocketMessage.class); + } + + /** + * Convert an instance of InboundWebSocketMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InstallationInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InstallationInfo.java new file mode 100644 index 0000000000000..588cdb0483c55 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/InstallationInfo.java @@ -0,0 +1,401 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PackageInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class InstallationInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class InstallationInfo { + public static final String SERIALIZED_NAME_GUID = "Guid"; + @SerializedName(SERIALIZED_NAME_GUID) + @javax.annotation.Nullable + private UUID guid; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_CHANGELOG = "Changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + @javax.annotation.Nullable + private String changelog; + + public static final String SERIALIZED_NAME_SOURCE_URL = "SourceUrl"; + @SerializedName(SERIALIZED_NAME_SOURCE_URL) + @javax.annotation.Nullable + private String sourceUrl; + + public static final String SERIALIZED_NAME_CHECKSUM = "Checksum"; + @SerializedName(SERIALIZED_NAME_CHECKSUM) + @javax.annotation.Nullable + private String checksum; + + public static final String SERIALIZED_NAME_PACKAGE_INFO = "PackageInfo"; + @SerializedName(SERIALIZED_NAME_PACKAGE_INFO) + @javax.annotation.Nullable + private PackageInfo packageInfo; + + public InstallationInfo() { + } + + public InstallationInfo guid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + return this; + } + + /** + * Gets or sets the Id. + * @return guid + */ + @javax.annotation.Nullable + public UUID getGuid() { + return guid; + } + + public void setGuid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + } + + + public InstallationInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public InstallationInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public InstallationInfo changelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + return this; + } + + /** + * Gets or sets the changelog for this version. + * @return changelog + */ + @javax.annotation.Nullable + public String getChangelog() { + return changelog; + } + + public void setChangelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + } + + + public InstallationInfo sourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + return this; + } + + /** + * Gets or sets the source URL. + * @return sourceUrl + */ + @javax.annotation.Nullable + public String getSourceUrl() { + return sourceUrl; + } + + public void setSourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + } + + + public InstallationInfo checksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + return this; + } + + /** + * Gets or sets a checksum for the binary. + * @return checksum + */ + @javax.annotation.Nullable + public String getChecksum() { + return checksum; + } + + public void setChecksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + } + + + public InstallationInfo packageInfo(@javax.annotation.Nullable PackageInfo packageInfo) { + this.packageInfo = packageInfo; + return this; + } + + /** + * Gets or sets package information for the installation. + * @return packageInfo + */ + @javax.annotation.Nullable + public PackageInfo getPackageInfo() { + return packageInfo; + } + + public void setPackageInfo(@javax.annotation.Nullable PackageInfo packageInfo) { + this.packageInfo = packageInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InstallationInfo installationInfo = (InstallationInfo) o; + return Objects.equals(this.guid, installationInfo.guid) && + Objects.equals(this.name, installationInfo.name) && + Objects.equals(this.version, installationInfo.version) && + Objects.equals(this.changelog, installationInfo.changelog) && + Objects.equals(this.sourceUrl, installationInfo.sourceUrl) && + Objects.equals(this.checksum, installationInfo.checksum) && + Objects.equals(this.packageInfo, installationInfo.packageInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(guid, name, version, changelog, sourceUrl, checksum, packageInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InstallationInfo {\n"); + sb.append(" guid: ").append(toIndentedString(guid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" sourceUrl: ").append(toIndentedString(sourceUrl)).append("\n"); + sb.append(" checksum: ").append(toIndentedString(checksum)).append("\n"); + sb.append(" packageInfo: ").append(toIndentedString(packageInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Guid"); + openapiFields.add("Name"); + openapiFields.add("Version"); + openapiFields.add("Changelog"); + openapiFields.add("SourceUrl"); + openapiFields.add("Checksum"); + openapiFields.add("PackageInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InstallationInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InstallationInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InstallationInfo is not found in the empty JSON string", InstallationInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InstallationInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InstallationInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Guid") != null && !jsonObj.get("Guid").isJsonNull()) && !jsonObj.get("Guid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Guid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Guid").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("Changelog") != null && !jsonObj.get("Changelog").isJsonNull()) && !jsonObj.get("Changelog").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Changelog` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Changelog").toString())); + } + if ((jsonObj.get("SourceUrl") != null && !jsonObj.get("SourceUrl").isJsonNull()) && !jsonObj.get("SourceUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SourceUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SourceUrl").toString())); + } + if ((jsonObj.get("Checksum") != null && !jsonObj.get("Checksum").isJsonNull()) && !jsonObj.get("Checksum").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Checksum` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Checksum").toString())); + } + // validate the optional field `PackageInfo` + if (jsonObj.get("PackageInfo") != null && !jsonObj.get("PackageInfo").isJsonNull()) { + PackageInfo.validateJsonElement(jsonObj.get("PackageInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InstallationInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InstallationInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InstallationInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InstallationInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InstallationInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InstallationInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of InstallationInfo + * @throws IOException if the JSON string is invalid with respect to InstallationInfo + */ + public static InstallationInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InstallationInfo.class); + } + + /** + * Convert an instance of InstallationInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IsoType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IsoType.java new file mode 100644 index 0000000000000..0bde5dff6f2b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/IsoType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum IsoType. + */ +@JsonAdapter(IsoType.Adapter.class) +public enum IsoType { + + DVD("Dvd"), + + BLU_RAY("BluRay"); + + private String value; + + IsoType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IsoType fromValue(String value) { + for (IsoType b : IsoType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IsoType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IsoType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IsoType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IsoType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemCounts.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemCounts.java new file mode 100644 index 0000000000000..d012b43a9d6ab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemCounts.java @@ -0,0 +1,500 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class LibrarySummary. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ItemCounts { + public static final String SERIALIZED_NAME_MOVIE_COUNT = "MovieCount"; + @SerializedName(SERIALIZED_NAME_MOVIE_COUNT) + @javax.annotation.Nullable + private Integer movieCount; + + public static final String SERIALIZED_NAME_SERIES_COUNT = "SeriesCount"; + @SerializedName(SERIALIZED_NAME_SERIES_COUNT) + @javax.annotation.Nullable + private Integer seriesCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_ARTIST_COUNT = "ArtistCount"; + @SerializedName(SERIALIZED_NAME_ARTIST_COUNT) + @javax.annotation.Nullable + private Integer artistCount; + + public static final String SERIALIZED_NAME_PROGRAM_COUNT = "ProgramCount"; + @SerializedName(SERIALIZED_NAME_PROGRAM_COUNT) + @javax.annotation.Nullable + private Integer programCount; + + public static final String SERIALIZED_NAME_TRAILER_COUNT = "TrailerCount"; + @SerializedName(SERIALIZED_NAME_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer trailerCount; + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_ALBUM_COUNT = "AlbumCount"; + @SerializedName(SERIALIZED_NAME_ALBUM_COUNT) + @javax.annotation.Nullable + private Integer albumCount; + + public static final String SERIALIZED_NAME_MUSIC_VIDEO_COUNT = "MusicVideoCount"; + @SerializedName(SERIALIZED_NAME_MUSIC_VIDEO_COUNT) + @javax.annotation.Nullable + private Integer musicVideoCount; + + public static final String SERIALIZED_NAME_BOX_SET_COUNT = "BoxSetCount"; + @SerializedName(SERIALIZED_NAME_BOX_SET_COUNT) + @javax.annotation.Nullable + private Integer boxSetCount; + + public static final String SERIALIZED_NAME_BOOK_COUNT = "BookCount"; + @SerializedName(SERIALIZED_NAME_BOOK_COUNT) + @javax.annotation.Nullable + private Integer bookCount; + + public static final String SERIALIZED_NAME_ITEM_COUNT = "ItemCount"; + @SerializedName(SERIALIZED_NAME_ITEM_COUNT) + @javax.annotation.Nullable + private Integer itemCount; + + public ItemCounts() { + } + + public ItemCounts movieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + return this; + } + + /** + * Gets or sets the movie count. + * @return movieCount + */ + @javax.annotation.Nullable + public Integer getMovieCount() { + return movieCount; + } + + public void setMovieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + } + + + public ItemCounts seriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + return this; + } + + /** + * Gets or sets the series count. + * @return seriesCount + */ + @javax.annotation.Nullable + public Integer getSeriesCount() { + return seriesCount; + } + + public void setSeriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + } + + + public ItemCounts episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public ItemCounts artistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + return this; + } + + /** + * Gets or sets the artist count. + * @return artistCount + */ + @javax.annotation.Nullable + public Integer getArtistCount() { + return artistCount; + } + + public void setArtistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + } + + + public ItemCounts programCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + return this; + } + + /** + * Gets or sets the program count. + * @return programCount + */ + @javax.annotation.Nullable + public Integer getProgramCount() { + return programCount; + } + + public void setProgramCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + } + + + public ItemCounts trailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + return this; + } + + /** + * Gets or sets the trailer count. + * @return trailerCount + */ + @javax.annotation.Nullable + public Integer getTrailerCount() { + return trailerCount; + } + + public void setTrailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + } + + + public ItemCounts songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public ItemCounts albumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + return this; + } + + /** + * Gets or sets the album count. + * @return albumCount + */ + @javax.annotation.Nullable + public Integer getAlbumCount() { + return albumCount; + } + + public void setAlbumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + } + + + public ItemCounts musicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + return this; + } + + /** + * Gets or sets the music video count. + * @return musicVideoCount + */ + @javax.annotation.Nullable + public Integer getMusicVideoCount() { + return musicVideoCount; + } + + public void setMusicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + } + + + public ItemCounts boxSetCount(@javax.annotation.Nullable Integer boxSetCount) { + this.boxSetCount = boxSetCount; + return this; + } + + /** + * Gets or sets the box set count. + * @return boxSetCount + */ + @javax.annotation.Nullable + public Integer getBoxSetCount() { + return boxSetCount; + } + + public void setBoxSetCount(@javax.annotation.Nullable Integer boxSetCount) { + this.boxSetCount = boxSetCount; + } + + + public ItemCounts bookCount(@javax.annotation.Nullable Integer bookCount) { + this.bookCount = bookCount; + return this; + } + + /** + * Gets or sets the book count. + * @return bookCount + */ + @javax.annotation.Nullable + public Integer getBookCount() { + return bookCount; + } + + public void setBookCount(@javax.annotation.Nullable Integer bookCount) { + this.bookCount = bookCount; + } + + + public ItemCounts itemCount(@javax.annotation.Nullable Integer itemCount) { + this.itemCount = itemCount; + return this; + } + + /** + * Gets or sets the item count. + * @return itemCount + */ + @javax.annotation.Nullable + public Integer getItemCount() { + return itemCount; + } + + public void setItemCount(@javax.annotation.Nullable Integer itemCount) { + this.itemCount = itemCount; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ItemCounts itemCounts = (ItemCounts) o; + return Objects.equals(this.movieCount, itemCounts.movieCount) && + Objects.equals(this.seriesCount, itemCounts.seriesCount) && + Objects.equals(this.episodeCount, itemCounts.episodeCount) && + Objects.equals(this.artistCount, itemCounts.artistCount) && + Objects.equals(this.programCount, itemCounts.programCount) && + Objects.equals(this.trailerCount, itemCounts.trailerCount) && + Objects.equals(this.songCount, itemCounts.songCount) && + Objects.equals(this.albumCount, itemCounts.albumCount) && + Objects.equals(this.musicVideoCount, itemCounts.musicVideoCount) && + Objects.equals(this.boxSetCount, itemCounts.boxSetCount) && + Objects.equals(this.bookCount, itemCounts.bookCount) && + Objects.equals(this.itemCount, itemCounts.itemCount); + } + + @Override + public int hashCode() { + return Objects.hash(movieCount, seriesCount, episodeCount, artistCount, programCount, trailerCount, songCount, albumCount, musicVideoCount, boxSetCount, bookCount, itemCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ItemCounts {\n"); + sb.append(" movieCount: ").append(toIndentedString(movieCount)).append("\n"); + sb.append(" seriesCount: ").append(toIndentedString(seriesCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" artistCount: ").append(toIndentedString(artistCount)).append("\n"); + sb.append(" programCount: ").append(toIndentedString(programCount)).append("\n"); + sb.append(" trailerCount: ").append(toIndentedString(trailerCount)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" albumCount: ").append(toIndentedString(albumCount)).append("\n"); + sb.append(" musicVideoCount: ").append(toIndentedString(musicVideoCount)).append("\n"); + sb.append(" boxSetCount: ").append(toIndentedString(boxSetCount)).append("\n"); + sb.append(" bookCount: ").append(toIndentedString(bookCount)).append("\n"); + sb.append(" itemCount: ").append(toIndentedString(itemCount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MovieCount"); + openapiFields.add("SeriesCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("ArtistCount"); + openapiFields.add("ProgramCount"); + openapiFields.add("TrailerCount"); + openapiFields.add("SongCount"); + openapiFields.add("AlbumCount"); + openapiFields.add("MusicVideoCount"); + openapiFields.add("BoxSetCount"); + openapiFields.add("BookCount"); + openapiFields.add("ItemCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ItemCounts + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ItemCounts.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ItemCounts is not found in the empty JSON string", ItemCounts.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ItemCounts.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ItemCounts` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ItemCounts.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ItemCounts' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ItemCounts.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ItemCounts value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ItemCounts read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ItemCounts given an JSON string + * + * @param jsonString JSON string + * @return An instance of ItemCounts + * @throws IOException if the JSON string is invalid with respect to ItemCounts + */ + public static ItemCounts fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ItemCounts.class); + } + + /** + * Convert an instance of ItemCounts to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFields.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFields.java new file mode 100644 index 0000000000000..e8a9a4fdd9663 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFields.java @@ -0,0 +1,194 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Used to control the data that gets attached to DtoBaseItems. + */ +@JsonAdapter(ItemFields.Adapter.class) +public enum ItemFields { + + AIR_TIME("AirTime"), + + CAN_DELETE("CanDelete"), + + CAN_DOWNLOAD("CanDownload"), + + CHANNEL_INFO("ChannelInfo"), + + CHAPTERS("Chapters"), + + TRICKPLAY("Trickplay"), + + CHILD_COUNT("ChildCount"), + + CUMULATIVE_RUN_TIME_TICKS("CumulativeRunTimeTicks"), + + CUSTOM_RATING("CustomRating"), + + DATE_CREATED("DateCreated"), + + DATE_LAST_MEDIA_ADDED("DateLastMediaAdded"), + + DISPLAY_PREFERENCES_ID("DisplayPreferencesId"), + + ETAG("Etag"), + + EXTERNAL_URLS("ExternalUrls"), + + GENRES("Genres"), + + HOME_PAGE_URL("HomePageUrl"), + + ITEM_COUNTS("ItemCounts"), + + MEDIA_SOURCE_COUNT("MediaSourceCount"), + + MEDIA_SOURCES("MediaSources"), + + ORIGINAL_TITLE("OriginalTitle"), + + OVERVIEW("Overview"), + + PARENT_ID("ParentId"), + + PATH("Path"), + + PEOPLE("People"), + + PLAY_ACCESS("PlayAccess"), + + PRODUCTION_LOCATIONS("ProductionLocations"), + + PROVIDER_IDS("ProviderIds"), + + PRIMARY_IMAGE_ASPECT_RATIO("PrimaryImageAspectRatio"), + + RECURSIVE_ITEM_COUNT("RecursiveItemCount"), + + SETTINGS("Settings"), + + SCREENSHOT_IMAGE_TAGS("ScreenshotImageTags"), + + SERIES_PRIMARY_IMAGE("SeriesPrimaryImage"), + + SERIES_STUDIO("SeriesStudio"), + + SORT_NAME("SortName"), + + SPECIAL_EPISODE_NUMBERS("SpecialEpisodeNumbers"), + + STUDIOS("Studios"), + + TAGLINES("Taglines"), + + TAGS("Tags"), + + REMOTE_TRAILERS("RemoteTrailers"), + + MEDIA_STREAMS("MediaStreams"), + + SEASON_USER_DATA("SeasonUserData"), + + SERVICE_NAME("ServiceName"), + + THEME_SONG_IDS("ThemeSongIds"), + + THEME_VIDEO_IDS("ThemeVideoIds"), + + EXTERNAL_ETAG("ExternalEtag"), + + PRESENTATION_UNIQUE_KEY("PresentationUniqueKey"), + + INHERITED_PARENTAL_RATING_VALUE("InheritedParentalRatingValue"), + + EXTERNAL_SERIES_ID("ExternalSeriesId"), + + SERIES_PRESENTATION_UNIQUE_KEY("SeriesPresentationUniqueKey"), + + DATE_LAST_REFRESHED("DateLastRefreshed"), + + DATE_LAST_SAVED("DateLastSaved"), + + REFRESH_STATE("RefreshState"), + + CHANNEL_IMAGE("ChannelImage"), + + ENABLE_MEDIA_SOURCE_DISPLAY("EnableMediaSourceDisplay"), + + WIDTH("Width"), + + HEIGHT("Height"), + + EXTRA_IDS("ExtraIds"), + + LOCAL_TRAILER_COUNT("LocalTrailerCount"), + + IS_HD("IsHD"), + + SPECIAL_FEATURE_COUNT("SpecialFeatureCount"); + + private String value; + + ItemFields(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ItemFields fromValue(String value) { + for (ItemFields b : ItemFields.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ItemFields enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ItemFields read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ItemFields.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ItemFields.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFilter.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFilter.java new file mode 100644 index 0000000000000..5f473a2b3d5a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemFilter.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ItemFilter. + */ +@JsonAdapter(ItemFilter.Adapter.class) +public enum ItemFilter { + + IS_FOLDER("IsFolder"), + + IS_NOT_FOLDER("IsNotFolder"), + + IS_UNPLAYED("IsUnplayed"), + + IS_PLAYED("IsPlayed"), + + IS_FAVORITE("IsFavorite"), + + IS_RESUMABLE("IsResumable"), + + LIKES("Likes"), + + DISLIKES("Dislikes"), + + IS_FAVORITE_OR_LIKES("IsFavoriteOrLikes"); + + private String value; + + ItemFilter(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ItemFilter fromValue(String value) { + for (ItemFilter b : ItemFilter.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ItemFilter enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ItemFilter read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ItemFilter.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ItemFilter.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemSortBy.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemSortBy.java new file mode 100644 index 0000000000000..c6bc6b809288e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ItemSortBy.java @@ -0,0 +1,138 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * These represent sort orders. + */ +@JsonAdapter(ItemSortBy.Adapter.class) +public enum ItemSortBy { + + DEFAULT("Default"), + + AIRED_EPISODE_ORDER("AiredEpisodeOrder"), + + ALBUM("Album"), + + ALBUM_ARTIST("AlbumArtist"), + + ARTIST("Artist"), + + DATE_CREATED("DateCreated"), + + OFFICIAL_RATING("OfficialRating"), + + DATE_PLAYED("DatePlayed"), + + PREMIERE_DATE("PremiereDate"), + + START_DATE("StartDate"), + + SORT_NAME("SortName"), + + NAME("Name"), + + RANDOM("Random"), + + RUNTIME("Runtime"), + + COMMUNITY_RATING("CommunityRating"), + + PRODUCTION_YEAR("ProductionYear"), + + PLAY_COUNT("PlayCount"), + + CRITIC_RATING("CriticRating"), + + IS_FOLDER("IsFolder"), + + IS_UNPLAYED("IsUnplayed"), + + IS_PLAYED("IsPlayed"), + + SERIES_SORT_NAME("SeriesSortName"), + + VIDEO_BIT_RATE("VideoBitRate"), + + AIR_TIME("AirTime"), + + STUDIO("Studio"), + + IS_FAVORITE_OR_LIKED("IsFavoriteOrLiked"), + + DATE_LAST_CONTENT_ADDED("DateLastContentAdded"), + + SERIES_DATE_PLAYED("SeriesDatePlayed"), + + PARENT_INDEX_NUMBER("ParentIndexNumber"), + + INDEX_NUMBER("IndexNumber"), + + SIMILARITY_SCORE("SimilarityScore"), + + SEARCH_SCORE("SearchScore"); + + private String value; + + ItemSortBy(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ItemSortBy fromValue(String value) { + for (ItemSortBy b : ItemSortBy.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ItemSortBy enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ItemSortBy read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ItemSortBy.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ItemSortBy.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java new file mode 100644 index 0000000000000..fa0320ca967ef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class JoinGroupRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class JoinGroupRequestDto { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public JoinGroupRequestDto() { + } + + public JoinGroupRequestDto groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets or sets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JoinGroupRequestDto joinGroupRequestDto = (JoinGroupRequestDto) o; + return Objects.equals(this.groupId, joinGroupRequestDto.groupId); + } + + @Override + public int hashCode() { + return Objects.hash(groupId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JoinGroupRequestDto {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to JoinGroupRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!JoinGroupRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in JoinGroupRequestDto is not found in the empty JSON string", JoinGroupRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!JoinGroupRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `JoinGroupRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!JoinGroupRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'JoinGroupRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(JoinGroupRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, JoinGroupRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public JoinGroupRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of JoinGroupRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of JoinGroupRequestDto + * @throws IOException if the JSON string is invalid with respect to JoinGroupRequestDto + */ + public static JoinGroupRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, JoinGroupRequestDto.class); + } + + /** + * Convert an instance of JoinGroupRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/KeepUntil.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/KeepUntil.java new file mode 100644 index 0000000000000..ec3111de3ab55 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/KeepUntil.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets KeepUntil + */ +@JsonAdapter(KeepUntil.Adapter.class) +public enum KeepUntil { + + UNTIL_DELETED("UntilDeleted"), + + UNTIL_SPACE_NEEDED("UntilSpaceNeeded"), + + UNTIL_WATCHED("UntilWatched"), + + UNTIL_DATE("UntilDate"); + + private String value; + + KeepUntil(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static KeepUntil fromValue(String value) { + for (KeepUntil b : KeepUntil.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final KeepUntil enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public KeepUntil read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return KeepUntil.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + KeepUntil.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryChangedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryChangedMessage.java new file mode 100644 index 0000000000000..98584895c046f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryChangedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.LibraryUpdateInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library changed message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryChangedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private LibraryUpdateInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.LIBRARY_CHANGED; + + public LibraryChangedMessage() { + } + + public LibraryChangedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public LibraryChangedMessage data(@javax.annotation.Nullable LibraryUpdateInfo data) { + this.data = data; + return this; + } + + /** + * Class LibraryUpdateInfo. + * @return data + */ + @javax.annotation.Nullable + public LibraryUpdateInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable LibraryUpdateInfo data) { + this.data = data; + } + + + public LibraryChangedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryChangedMessage libraryChangedMessage = (LibraryChangedMessage) o; + return Objects.equals(this.data, libraryChangedMessage.data) && + Objects.equals(this.messageId, libraryChangedMessage.messageId) && + Objects.equals(this.messageType, libraryChangedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryChangedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryChangedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryChangedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryChangedMessage is not found in the empty JSON string", LibraryChangedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryChangedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryChangedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + LibraryUpdateInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryChangedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryChangedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryChangedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryChangedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryChangedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryChangedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryChangedMessage + * @throws IOException if the JSON string is invalid with respect to LibraryChangedMessage + */ + public static LibraryChangedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryChangedMessage.class); + } + + /** + * Convert an instance of LibraryChangedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java new file mode 100644 index 0000000000000..63dfb28f2e9b9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library option info dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptionInfoDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DEFAULT_ENABLED = "DefaultEnabled"; + @SerializedName(SERIALIZED_NAME_DEFAULT_ENABLED) + @javax.annotation.Nullable + private Boolean defaultEnabled; + + public LibraryOptionInfoDto() { + } + + public LibraryOptionInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LibraryOptionInfoDto defaultEnabled(@javax.annotation.Nullable Boolean defaultEnabled) { + this.defaultEnabled = defaultEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether default enabled. + * @return defaultEnabled + */ + @javax.annotation.Nullable + public Boolean getDefaultEnabled() { + return defaultEnabled; + } + + public void setDefaultEnabled(@javax.annotation.Nullable Boolean defaultEnabled) { + this.defaultEnabled = defaultEnabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptionInfoDto libraryOptionInfoDto = (LibraryOptionInfoDto) o; + return Objects.equals(this.name, libraryOptionInfoDto.name) && + Objects.equals(this.defaultEnabled, libraryOptionInfoDto.defaultEnabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, defaultEnabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptionInfoDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" defaultEnabled: ").append(toIndentedString(defaultEnabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DefaultEnabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptionInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptionInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptionInfoDto is not found in the empty JSON string", LibraryOptionInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptionInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptionInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptionInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptionInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptionInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptionInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptionInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptionInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptionInfoDto + * @throws IOException if the JSON string is invalid with respect to LibraryOptionInfoDto + */ + public static LibraryOptionInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptionInfoDto.class); + } + + /** + * Convert an instance of LibraryOptionInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptions.java new file mode 100644 index 0000000000000..d39bbfd1d579c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptions.java @@ -0,0 +1,1533 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.EmbeddedSubtitleOptions; +import org.openapitools.client.model.MediaPathInfo; +import org.openapitools.client.model.TypeOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LibraryOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptions { + public static final String SERIALIZED_NAME_ENABLED = "Enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_ENABLE_PHOTOS = "EnablePhotos"; + @SerializedName(SERIALIZED_NAME_ENABLE_PHOTOS) + @javax.annotation.Nullable + private Boolean enablePhotos; + + public static final String SERIALIZED_NAME_ENABLE_REALTIME_MONITOR = "EnableRealtimeMonitor"; + @SerializedName(SERIALIZED_NAME_ENABLE_REALTIME_MONITOR) + @javax.annotation.Nullable + private Boolean enableRealtimeMonitor; + + public static final String SERIALIZED_NAME_ENABLE_L_U_F_S_SCAN = "EnableLUFSScan"; + @SerializedName(SERIALIZED_NAME_ENABLE_L_U_F_S_SCAN) + @javax.annotation.Nullable + private Boolean enableLUFSScan; + + public static final String SERIALIZED_NAME_ENABLE_CHAPTER_IMAGE_EXTRACTION = "EnableChapterImageExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_CHAPTER_IMAGE_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableChapterImageExtraction; + + public static final String SERIALIZED_NAME_EXTRACT_CHAPTER_IMAGES_DURING_LIBRARY_SCAN = "ExtractChapterImagesDuringLibraryScan"; + @SerializedName(SERIALIZED_NAME_EXTRACT_CHAPTER_IMAGES_DURING_LIBRARY_SCAN) + @javax.annotation.Nullable + private Boolean extractChapterImagesDuringLibraryScan; + + public static final String SERIALIZED_NAME_ENABLE_TRICKPLAY_IMAGE_EXTRACTION = "EnableTrickplayImageExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_TRICKPLAY_IMAGE_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableTrickplayImageExtraction; + + public static final String SERIALIZED_NAME_EXTRACT_TRICKPLAY_IMAGES_DURING_LIBRARY_SCAN = "ExtractTrickplayImagesDuringLibraryScan"; + @SerializedName(SERIALIZED_NAME_EXTRACT_TRICKPLAY_IMAGES_DURING_LIBRARY_SCAN) + @javax.annotation.Nullable + private Boolean extractTrickplayImagesDuringLibraryScan; + + public static final String SERIALIZED_NAME_PATH_INFOS = "PathInfos"; + @SerializedName(SERIALIZED_NAME_PATH_INFOS) + @javax.annotation.Nullable + private List pathInfos = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SAVE_LOCAL_METADATA = "SaveLocalMetadata"; + @SerializedName(SERIALIZED_NAME_SAVE_LOCAL_METADATA) + @javax.annotation.Nullable + private Boolean saveLocalMetadata; + + public static final String SERIALIZED_NAME_ENABLE_INTERNET_PROVIDERS = "EnableInternetProviders"; + @Deprecated + @SerializedName(SERIALIZED_NAME_ENABLE_INTERNET_PROVIDERS) + @javax.annotation.Nullable + private Boolean enableInternetProviders; + + public static final String SERIALIZED_NAME_ENABLE_AUTOMATIC_SERIES_GROUPING = "EnableAutomaticSeriesGrouping"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTOMATIC_SERIES_GROUPING) + @javax.annotation.Nullable + private Boolean enableAutomaticSeriesGrouping; + + public static final String SERIALIZED_NAME_ENABLE_EMBEDDED_TITLES = "EnableEmbeddedTitles"; + @SerializedName(SERIALIZED_NAME_ENABLE_EMBEDDED_TITLES) + @javax.annotation.Nullable + private Boolean enableEmbeddedTitles; + + public static final String SERIALIZED_NAME_ENABLE_EMBEDDED_EXTRAS_TITLES = "EnableEmbeddedExtrasTitles"; + @SerializedName(SERIALIZED_NAME_ENABLE_EMBEDDED_EXTRAS_TITLES) + @javax.annotation.Nullable + private Boolean enableEmbeddedExtrasTitles; + + public static final String SERIALIZED_NAME_ENABLE_EMBEDDED_EPISODE_INFOS = "EnableEmbeddedEpisodeInfos"; + @SerializedName(SERIALIZED_NAME_ENABLE_EMBEDDED_EPISODE_INFOS) + @javax.annotation.Nullable + private Boolean enableEmbeddedEpisodeInfos; + + public static final String SERIALIZED_NAME_AUTOMATIC_REFRESH_INTERVAL_DAYS = "AutomaticRefreshIntervalDays"; + @SerializedName(SERIALIZED_NAME_AUTOMATIC_REFRESH_INTERVAL_DAYS) + @javax.annotation.Nullable + private Integer automaticRefreshIntervalDays; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_SEASON_ZERO_DISPLAY_NAME = "SeasonZeroDisplayName"; + @SerializedName(SERIALIZED_NAME_SEASON_ZERO_DISPLAY_NAME) + @javax.annotation.Nullable + private String seasonZeroDisplayName; + + public static final String SERIALIZED_NAME_METADATA_SAVERS = "MetadataSavers"; + @SerializedName(SERIALIZED_NAME_METADATA_SAVERS) + @javax.annotation.Nullable + private List metadataSavers; + + public static final String SERIALIZED_NAME_DISABLED_LOCAL_METADATA_READERS = "DisabledLocalMetadataReaders"; + @SerializedName(SERIALIZED_NAME_DISABLED_LOCAL_METADATA_READERS) + @javax.annotation.Nullable + private List disabledLocalMetadataReaders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER = "LocalMetadataReaderOrder"; + @SerializedName(SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER) + @javax.annotation.Nullable + private List localMetadataReaderOrder; + + public static final String SERIALIZED_NAME_DISABLED_SUBTITLE_FETCHERS = "DisabledSubtitleFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_SUBTITLE_FETCHERS) + @javax.annotation.Nullable + private List disabledSubtitleFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_FETCHER_ORDER = "SubtitleFetcherOrder"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_FETCHER_ORDER) + @javax.annotation.Nullable + private List subtitleFetcherOrder = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DISABLED_MEDIA_SEGMENT_PROVIDERS = "DisabledMediaSegmentProviders"; + @SerializedName(SERIALIZED_NAME_DISABLED_MEDIA_SEGMENT_PROVIDERS) + @javax.annotation.Nullable + private List disabledMediaSegmentProviders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MEDIA_SEGMENT_PROVIDE_ORDER = "MediaSegmentProvideOrder"; + @SerializedName(SERIALIZED_NAME_MEDIA_SEGMENT_PROVIDE_ORDER) + @javax.annotation.Nullable + private List mediaSegmentProvideOrder = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SKIP_SUBTITLES_IF_EMBEDDED_SUBTITLES_PRESENT = "SkipSubtitlesIfEmbeddedSubtitlesPresent"; + @SerializedName(SERIALIZED_NAME_SKIP_SUBTITLES_IF_EMBEDDED_SUBTITLES_PRESENT) + @javax.annotation.Nullable + private Boolean skipSubtitlesIfEmbeddedSubtitlesPresent; + + public static final String SERIALIZED_NAME_SKIP_SUBTITLES_IF_AUDIO_TRACK_MATCHES = "SkipSubtitlesIfAudioTrackMatches"; + @SerializedName(SERIALIZED_NAME_SKIP_SUBTITLES_IF_AUDIO_TRACK_MATCHES) + @javax.annotation.Nullable + private Boolean skipSubtitlesIfAudioTrackMatches; + + public static final String SERIALIZED_NAME_SUBTITLE_DOWNLOAD_LANGUAGES = "SubtitleDownloadLanguages"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_DOWNLOAD_LANGUAGES) + @javax.annotation.Nullable + private List subtitleDownloadLanguages; + + public static final String SERIALIZED_NAME_REQUIRE_PERFECT_SUBTITLE_MATCH = "RequirePerfectSubtitleMatch"; + @SerializedName(SERIALIZED_NAME_REQUIRE_PERFECT_SUBTITLE_MATCH) + @javax.annotation.Nullable + private Boolean requirePerfectSubtitleMatch; + + public static final String SERIALIZED_NAME_SAVE_SUBTITLES_WITH_MEDIA = "SaveSubtitlesWithMedia"; + @SerializedName(SERIALIZED_NAME_SAVE_SUBTITLES_WITH_MEDIA) + @javax.annotation.Nullable + private Boolean saveSubtitlesWithMedia; + + public static final String SERIALIZED_NAME_SAVE_LYRICS_WITH_MEDIA = "SaveLyricsWithMedia"; + @SerializedName(SERIALIZED_NAME_SAVE_LYRICS_WITH_MEDIA) + @javax.annotation.Nullable + private Boolean saveLyricsWithMedia = false; + + public static final String SERIALIZED_NAME_SAVE_TRICKPLAY_WITH_MEDIA = "SaveTrickplayWithMedia"; + @SerializedName(SERIALIZED_NAME_SAVE_TRICKPLAY_WITH_MEDIA) + @javax.annotation.Nullable + private Boolean saveTrickplayWithMedia = false; + + public static final String SERIALIZED_NAME_DISABLED_LYRIC_FETCHERS = "DisabledLyricFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_LYRIC_FETCHERS) + @javax.annotation.Nullable + private List disabledLyricFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LYRIC_FETCHER_ORDER = "LyricFetcherOrder"; + @SerializedName(SERIALIZED_NAME_LYRIC_FETCHER_ORDER) + @javax.annotation.Nullable + private List lyricFetcherOrder = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PREFER_NONSTANDARD_ARTISTS_TAG = "PreferNonstandardArtistsTag"; + @SerializedName(SERIALIZED_NAME_PREFER_NONSTANDARD_ARTISTS_TAG) + @javax.annotation.Nullable + private Boolean preferNonstandardArtistsTag = false; + + public static final String SERIALIZED_NAME_USE_CUSTOM_TAG_DELIMITERS = "UseCustomTagDelimiters"; + @SerializedName(SERIALIZED_NAME_USE_CUSTOM_TAG_DELIMITERS) + @javax.annotation.Nullable + private Boolean useCustomTagDelimiters = false; + + public static final String SERIALIZED_NAME_CUSTOM_TAG_DELIMITERS = "CustomTagDelimiters"; + @SerializedName(SERIALIZED_NAME_CUSTOM_TAG_DELIMITERS) + @javax.annotation.Nullable + private List customTagDelimiters = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DELIMITER_WHITELIST = "DelimiterWhitelist"; + @SerializedName(SERIALIZED_NAME_DELIMITER_WHITELIST) + @javax.annotation.Nullable + private List delimiterWhitelist = new ArrayList<>(); + + public static final String SERIALIZED_NAME_AUTOMATICALLY_ADD_TO_COLLECTION = "AutomaticallyAddToCollection"; + @SerializedName(SERIALIZED_NAME_AUTOMATICALLY_ADD_TO_COLLECTION) + @javax.annotation.Nullable + private Boolean automaticallyAddToCollection; + + public static final String SERIALIZED_NAME_ALLOW_EMBEDDED_SUBTITLES = "AllowEmbeddedSubtitles"; + @SerializedName(SERIALIZED_NAME_ALLOW_EMBEDDED_SUBTITLES) + @javax.annotation.Nullable + private EmbeddedSubtitleOptions allowEmbeddedSubtitles; + + public static final String SERIALIZED_NAME_TYPE_OPTIONS = "TypeOptions"; + @SerializedName(SERIALIZED_NAME_TYPE_OPTIONS) + @javax.annotation.Nullable + private List typeOptions = new ArrayList<>(); + + public LibraryOptions() { + } + + public LibraryOptions enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Get enabled + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public LibraryOptions enablePhotos(@javax.annotation.Nullable Boolean enablePhotos) { + this.enablePhotos = enablePhotos; + return this; + } + + /** + * Get enablePhotos + * @return enablePhotos + */ + @javax.annotation.Nullable + public Boolean getEnablePhotos() { + return enablePhotos; + } + + public void setEnablePhotos(@javax.annotation.Nullable Boolean enablePhotos) { + this.enablePhotos = enablePhotos; + } + + + public LibraryOptions enableRealtimeMonitor(@javax.annotation.Nullable Boolean enableRealtimeMonitor) { + this.enableRealtimeMonitor = enableRealtimeMonitor; + return this; + } + + /** + * Get enableRealtimeMonitor + * @return enableRealtimeMonitor + */ + @javax.annotation.Nullable + public Boolean getEnableRealtimeMonitor() { + return enableRealtimeMonitor; + } + + public void setEnableRealtimeMonitor(@javax.annotation.Nullable Boolean enableRealtimeMonitor) { + this.enableRealtimeMonitor = enableRealtimeMonitor; + } + + + public LibraryOptions enableLUFSScan(@javax.annotation.Nullable Boolean enableLUFSScan) { + this.enableLUFSScan = enableLUFSScan; + return this; + } + + /** + * Get enableLUFSScan + * @return enableLUFSScan + */ + @javax.annotation.Nullable + public Boolean getEnableLUFSScan() { + return enableLUFSScan; + } + + public void setEnableLUFSScan(@javax.annotation.Nullable Boolean enableLUFSScan) { + this.enableLUFSScan = enableLUFSScan; + } + + + public LibraryOptions enableChapterImageExtraction(@javax.annotation.Nullable Boolean enableChapterImageExtraction) { + this.enableChapterImageExtraction = enableChapterImageExtraction; + return this; + } + + /** + * Get enableChapterImageExtraction + * @return enableChapterImageExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableChapterImageExtraction() { + return enableChapterImageExtraction; + } + + public void setEnableChapterImageExtraction(@javax.annotation.Nullable Boolean enableChapterImageExtraction) { + this.enableChapterImageExtraction = enableChapterImageExtraction; + } + + + public LibraryOptions extractChapterImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractChapterImagesDuringLibraryScan) { + this.extractChapterImagesDuringLibraryScan = extractChapterImagesDuringLibraryScan; + return this; + } + + /** + * Get extractChapterImagesDuringLibraryScan + * @return extractChapterImagesDuringLibraryScan + */ + @javax.annotation.Nullable + public Boolean getExtractChapterImagesDuringLibraryScan() { + return extractChapterImagesDuringLibraryScan; + } + + public void setExtractChapterImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractChapterImagesDuringLibraryScan) { + this.extractChapterImagesDuringLibraryScan = extractChapterImagesDuringLibraryScan; + } + + + public LibraryOptions enableTrickplayImageExtraction(@javax.annotation.Nullable Boolean enableTrickplayImageExtraction) { + this.enableTrickplayImageExtraction = enableTrickplayImageExtraction; + return this; + } + + /** + * Get enableTrickplayImageExtraction + * @return enableTrickplayImageExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableTrickplayImageExtraction() { + return enableTrickplayImageExtraction; + } + + public void setEnableTrickplayImageExtraction(@javax.annotation.Nullable Boolean enableTrickplayImageExtraction) { + this.enableTrickplayImageExtraction = enableTrickplayImageExtraction; + } + + + public LibraryOptions extractTrickplayImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractTrickplayImagesDuringLibraryScan) { + this.extractTrickplayImagesDuringLibraryScan = extractTrickplayImagesDuringLibraryScan; + return this; + } + + /** + * Get extractTrickplayImagesDuringLibraryScan + * @return extractTrickplayImagesDuringLibraryScan + */ + @javax.annotation.Nullable + public Boolean getExtractTrickplayImagesDuringLibraryScan() { + return extractTrickplayImagesDuringLibraryScan; + } + + public void setExtractTrickplayImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractTrickplayImagesDuringLibraryScan) { + this.extractTrickplayImagesDuringLibraryScan = extractTrickplayImagesDuringLibraryScan; + } + + + public LibraryOptions pathInfos(@javax.annotation.Nullable List pathInfos) { + this.pathInfos = pathInfos; + return this; + } + + public LibraryOptions addPathInfosItem(MediaPathInfo pathInfosItem) { + if (this.pathInfos == null) { + this.pathInfos = new ArrayList<>(); + } + this.pathInfos.add(pathInfosItem); + return this; + } + + /** + * Get pathInfos + * @return pathInfos + */ + @javax.annotation.Nullable + public List getPathInfos() { + return pathInfos; + } + + public void setPathInfos(@javax.annotation.Nullable List pathInfos) { + this.pathInfos = pathInfos; + } + + + public LibraryOptions saveLocalMetadata(@javax.annotation.Nullable Boolean saveLocalMetadata) { + this.saveLocalMetadata = saveLocalMetadata; + return this; + } + + /** + * Get saveLocalMetadata + * @return saveLocalMetadata + */ + @javax.annotation.Nullable + public Boolean getSaveLocalMetadata() { + return saveLocalMetadata; + } + + public void setSaveLocalMetadata(@javax.annotation.Nullable Boolean saveLocalMetadata) { + this.saveLocalMetadata = saveLocalMetadata; + } + + + @Deprecated + public LibraryOptions enableInternetProviders(@javax.annotation.Nullable Boolean enableInternetProviders) { + this.enableInternetProviders = enableInternetProviders; + return this; + } + + /** + * Get enableInternetProviders + * @return enableInternetProviders + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getEnableInternetProviders() { + return enableInternetProviders; + } + + @Deprecated + public void setEnableInternetProviders(@javax.annotation.Nullable Boolean enableInternetProviders) { + this.enableInternetProviders = enableInternetProviders; + } + + + public LibraryOptions enableAutomaticSeriesGrouping(@javax.annotation.Nullable Boolean enableAutomaticSeriesGrouping) { + this.enableAutomaticSeriesGrouping = enableAutomaticSeriesGrouping; + return this; + } + + /** + * Get enableAutomaticSeriesGrouping + * @return enableAutomaticSeriesGrouping + */ + @javax.annotation.Nullable + public Boolean getEnableAutomaticSeriesGrouping() { + return enableAutomaticSeriesGrouping; + } + + public void setEnableAutomaticSeriesGrouping(@javax.annotation.Nullable Boolean enableAutomaticSeriesGrouping) { + this.enableAutomaticSeriesGrouping = enableAutomaticSeriesGrouping; + } + + + public LibraryOptions enableEmbeddedTitles(@javax.annotation.Nullable Boolean enableEmbeddedTitles) { + this.enableEmbeddedTitles = enableEmbeddedTitles; + return this; + } + + /** + * Get enableEmbeddedTitles + * @return enableEmbeddedTitles + */ + @javax.annotation.Nullable + public Boolean getEnableEmbeddedTitles() { + return enableEmbeddedTitles; + } + + public void setEnableEmbeddedTitles(@javax.annotation.Nullable Boolean enableEmbeddedTitles) { + this.enableEmbeddedTitles = enableEmbeddedTitles; + } + + + public LibraryOptions enableEmbeddedExtrasTitles(@javax.annotation.Nullable Boolean enableEmbeddedExtrasTitles) { + this.enableEmbeddedExtrasTitles = enableEmbeddedExtrasTitles; + return this; + } + + /** + * Get enableEmbeddedExtrasTitles + * @return enableEmbeddedExtrasTitles + */ + @javax.annotation.Nullable + public Boolean getEnableEmbeddedExtrasTitles() { + return enableEmbeddedExtrasTitles; + } + + public void setEnableEmbeddedExtrasTitles(@javax.annotation.Nullable Boolean enableEmbeddedExtrasTitles) { + this.enableEmbeddedExtrasTitles = enableEmbeddedExtrasTitles; + } + + + public LibraryOptions enableEmbeddedEpisodeInfos(@javax.annotation.Nullable Boolean enableEmbeddedEpisodeInfos) { + this.enableEmbeddedEpisodeInfos = enableEmbeddedEpisodeInfos; + return this; + } + + /** + * Get enableEmbeddedEpisodeInfos + * @return enableEmbeddedEpisodeInfos + */ + @javax.annotation.Nullable + public Boolean getEnableEmbeddedEpisodeInfos() { + return enableEmbeddedEpisodeInfos; + } + + public void setEnableEmbeddedEpisodeInfos(@javax.annotation.Nullable Boolean enableEmbeddedEpisodeInfos) { + this.enableEmbeddedEpisodeInfos = enableEmbeddedEpisodeInfos; + } + + + public LibraryOptions automaticRefreshIntervalDays(@javax.annotation.Nullable Integer automaticRefreshIntervalDays) { + this.automaticRefreshIntervalDays = automaticRefreshIntervalDays; + return this; + } + + /** + * Get automaticRefreshIntervalDays + * @return automaticRefreshIntervalDays + */ + @javax.annotation.Nullable + public Integer getAutomaticRefreshIntervalDays() { + return automaticRefreshIntervalDays; + } + + public void setAutomaticRefreshIntervalDays(@javax.annotation.Nullable Integer automaticRefreshIntervalDays) { + this.automaticRefreshIntervalDays = automaticRefreshIntervalDays; + } + + + public LibraryOptions preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred metadata language. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public LibraryOptions metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public LibraryOptions seasonZeroDisplayName(@javax.annotation.Nullable String seasonZeroDisplayName) { + this.seasonZeroDisplayName = seasonZeroDisplayName; + return this; + } + + /** + * Get seasonZeroDisplayName + * @return seasonZeroDisplayName + */ + @javax.annotation.Nullable + public String getSeasonZeroDisplayName() { + return seasonZeroDisplayName; + } + + public void setSeasonZeroDisplayName(@javax.annotation.Nullable String seasonZeroDisplayName) { + this.seasonZeroDisplayName = seasonZeroDisplayName; + } + + + public LibraryOptions metadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + return this; + } + + public LibraryOptions addMetadataSaversItem(String metadataSaversItem) { + if (this.metadataSavers == null) { + this.metadataSavers = new ArrayList<>(); + } + this.metadataSavers.add(metadataSaversItem); + return this; + } + + /** + * Get metadataSavers + * @return metadataSavers + */ + @javax.annotation.Nullable + public List getMetadataSavers() { + return metadataSavers; + } + + public void setMetadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + } + + + public LibraryOptions disabledLocalMetadataReaders(@javax.annotation.Nullable List disabledLocalMetadataReaders) { + this.disabledLocalMetadataReaders = disabledLocalMetadataReaders; + return this; + } + + public LibraryOptions addDisabledLocalMetadataReadersItem(String disabledLocalMetadataReadersItem) { + if (this.disabledLocalMetadataReaders == null) { + this.disabledLocalMetadataReaders = new ArrayList<>(); + } + this.disabledLocalMetadataReaders.add(disabledLocalMetadataReadersItem); + return this; + } + + /** + * Get disabledLocalMetadataReaders + * @return disabledLocalMetadataReaders + */ + @javax.annotation.Nullable + public List getDisabledLocalMetadataReaders() { + return disabledLocalMetadataReaders; + } + + public void setDisabledLocalMetadataReaders(@javax.annotation.Nullable List disabledLocalMetadataReaders) { + this.disabledLocalMetadataReaders = disabledLocalMetadataReaders; + } + + + public LibraryOptions localMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + return this; + } + + public LibraryOptions addLocalMetadataReaderOrderItem(String localMetadataReaderOrderItem) { + if (this.localMetadataReaderOrder == null) { + this.localMetadataReaderOrder = new ArrayList<>(); + } + this.localMetadataReaderOrder.add(localMetadataReaderOrderItem); + return this; + } + + /** + * Get localMetadataReaderOrder + * @return localMetadataReaderOrder + */ + @javax.annotation.Nullable + public List getLocalMetadataReaderOrder() { + return localMetadataReaderOrder; + } + + public void setLocalMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + } + + + public LibraryOptions disabledSubtitleFetchers(@javax.annotation.Nullable List disabledSubtitleFetchers) { + this.disabledSubtitleFetchers = disabledSubtitleFetchers; + return this; + } + + public LibraryOptions addDisabledSubtitleFetchersItem(String disabledSubtitleFetchersItem) { + if (this.disabledSubtitleFetchers == null) { + this.disabledSubtitleFetchers = new ArrayList<>(); + } + this.disabledSubtitleFetchers.add(disabledSubtitleFetchersItem); + return this; + } + + /** + * Get disabledSubtitleFetchers + * @return disabledSubtitleFetchers + */ + @javax.annotation.Nullable + public List getDisabledSubtitleFetchers() { + return disabledSubtitleFetchers; + } + + public void setDisabledSubtitleFetchers(@javax.annotation.Nullable List disabledSubtitleFetchers) { + this.disabledSubtitleFetchers = disabledSubtitleFetchers; + } + + + public LibraryOptions subtitleFetcherOrder(@javax.annotation.Nullable List subtitleFetcherOrder) { + this.subtitleFetcherOrder = subtitleFetcherOrder; + return this; + } + + public LibraryOptions addSubtitleFetcherOrderItem(String subtitleFetcherOrderItem) { + if (this.subtitleFetcherOrder == null) { + this.subtitleFetcherOrder = new ArrayList<>(); + } + this.subtitleFetcherOrder.add(subtitleFetcherOrderItem); + return this; + } + + /** + * Get subtitleFetcherOrder + * @return subtitleFetcherOrder + */ + @javax.annotation.Nullable + public List getSubtitleFetcherOrder() { + return subtitleFetcherOrder; + } + + public void setSubtitleFetcherOrder(@javax.annotation.Nullable List subtitleFetcherOrder) { + this.subtitleFetcherOrder = subtitleFetcherOrder; + } + + + public LibraryOptions disabledMediaSegmentProviders(@javax.annotation.Nullable List disabledMediaSegmentProviders) { + this.disabledMediaSegmentProviders = disabledMediaSegmentProviders; + return this; + } + + public LibraryOptions addDisabledMediaSegmentProvidersItem(String disabledMediaSegmentProvidersItem) { + if (this.disabledMediaSegmentProviders == null) { + this.disabledMediaSegmentProviders = new ArrayList<>(); + } + this.disabledMediaSegmentProviders.add(disabledMediaSegmentProvidersItem); + return this; + } + + /** + * Get disabledMediaSegmentProviders + * @return disabledMediaSegmentProviders + */ + @javax.annotation.Nullable + public List getDisabledMediaSegmentProviders() { + return disabledMediaSegmentProviders; + } + + public void setDisabledMediaSegmentProviders(@javax.annotation.Nullable List disabledMediaSegmentProviders) { + this.disabledMediaSegmentProviders = disabledMediaSegmentProviders; + } + + + public LibraryOptions mediaSegmentProvideOrder(@javax.annotation.Nullable List mediaSegmentProvideOrder) { + this.mediaSegmentProvideOrder = mediaSegmentProvideOrder; + return this; + } + + public LibraryOptions addMediaSegmentProvideOrderItem(String mediaSegmentProvideOrderItem) { + if (this.mediaSegmentProvideOrder == null) { + this.mediaSegmentProvideOrder = new ArrayList<>(); + } + this.mediaSegmentProvideOrder.add(mediaSegmentProvideOrderItem); + return this; + } + + /** + * Get mediaSegmentProvideOrder + * @return mediaSegmentProvideOrder + */ + @javax.annotation.Nullable + public List getMediaSegmentProvideOrder() { + return mediaSegmentProvideOrder; + } + + public void setMediaSegmentProvideOrder(@javax.annotation.Nullable List mediaSegmentProvideOrder) { + this.mediaSegmentProvideOrder = mediaSegmentProvideOrder; + } + + + public LibraryOptions skipSubtitlesIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipSubtitlesIfEmbeddedSubtitlesPresent) { + this.skipSubtitlesIfEmbeddedSubtitlesPresent = skipSubtitlesIfEmbeddedSubtitlesPresent; + return this; + } + + /** + * Get skipSubtitlesIfEmbeddedSubtitlesPresent + * @return skipSubtitlesIfEmbeddedSubtitlesPresent + */ + @javax.annotation.Nullable + public Boolean getSkipSubtitlesIfEmbeddedSubtitlesPresent() { + return skipSubtitlesIfEmbeddedSubtitlesPresent; + } + + public void setSkipSubtitlesIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipSubtitlesIfEmbeddedSubtitlesPresent) { + this.skipSubtitlesIfEmbeddedSubtitlesPresent = skipSubtitlesIfEmbeddedSubtitlesPresent; + } + + + public LibraryOptions skipSubtitlesIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipSubtitlesIfAudioTrackMatches) { + this.skipSubtitlesIfAudioTrackMatches = skipSubtitlesIfAudioTrackMatches; + return this; + } + + /** + * Get skipSubtitlesIfAudioTrackMatches + * @return skipSubtitlesIfAudioTrackMatches + */ + @javax.annotation.Nullable + public Boolean getSkipSubtitlesIfAudioTrackMatches() { + return skipSubtitlesIfAudioTrackMatches; + } + + public void setSkipSubtitlesIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipSubtitlesIfAudioTrackMatches) { + this.skipSubtitlesIfAudioTrackMatches = skipSubtitlesIfAudioTrackMatches; + } + + + public LibraryOptions subtitleDownloadLanguages(@javax.annotation.Nullable List subtitleDownloadLanguages) { + this.subtitleDownloadLanguages = subtitleDownloadLanguages; + return this; + } + + public LibraryOptions addSubtitleDownloadLanguagesItem(String subtitleDownloadLanguagesItem) { + if (this.subtitleDownloadLanguages == null) { + this.subtitleDownloadLanguages = new ArrayList<>(); + } + this.subtitleDownloadLanguages.add(subtitleDownloadLanguagesItem); + return this; + } + + /** + * Get subtitleDownloadLanguages + * @return subtitleDownloadLanguages + */ + @javax.annotation.Nullable + public List getSubtitleDownloadLanguages() { + return subtitleDownloadLanguages; + } + + public void setSubtitleDownloadLanguages(@javax.annotation.Nullable List subtitleDownloadLanguages) { + this.subtitleDownloadLanguages = subtitleDownloadLanguages; + } + + + public LibraryOptions requirePerfectSubtitleMatch(@javax.annotation.Nullable Boolean requirePerfectSubtitleMatch) { + this.requirePerfectSubtitleMatch = requirePerfectSubtitleMatch; + return this; + } + + /** + * Get requirePerfectSubtitleMatch + * @return requirePerfectSubtitleMatch + */ + @javax.annotation.Nullable + public Boolean getRequirePerfectSubtitleMatch() { + return requirePerfectSubtitleMatch; + } + + public void setRequirePerfectSubtitleMatch(@javax.annotation.Nullable Boolean requirePerfectSubtitleMatch) { + this.requirePerfectSubtitleMatch = requirePerfectSubtitleMatch; + } + + + public LibraryOptions saveSubtitlesWithMedia(@javax.annotation.Nullable Boolean saveSubtitlesWithMedia) { + this.saveSubtitlesWithMedia = saveSubtitlesWithMedia; + return this; + } + + /** + * Get saveSubtitlesWithMedia + * @return saveSubtitlesWithMedia + */ + @javax.annotation.Nullable + public Boolean getSaveSubtitlesWithMedia() { + return saveSubtitlesWithMedia; + } + + public void setSaveSubtitlesWithMedia(@javax.annotation.Nullable Boolean saveSubtitlesWithMedia) { + this.saveSubtitlesWithMedia = saveSubtitlesWithMedia; + } + + + public LibraryOptions saveLyricsWithMedia(@javax.annotation.Nullable Boolean saveLyricsWithMedia) { + this.saveLyricsWithMedia = saveLyricsWithMedia; + return this; + } + + /** + * Get saveLyricsWithMedia + * @return saveLyricsWithMedia + */ + @javax.annotation.Nullable + public Boolean getSaveLyricsWithMedia() { + return saveLyricsWithMedia; + } + + public void setSaveLyricsWithMedia(@javax.annotation.Nullable Boolean saveLyricsWithMedia) { + this.saveLyricsWithMedia = saveLyricsWithMedia; + } + + + public LibraryOptions saveTrickplayWithMedia(@javax.annotation.Nullable Boolean saveTrickplayWithMedia) { + this.saveTrickplayWithMedia = saveTrickplayWithMedia; + return this; + } + + /** + * Get saveTrickplayWithMedia + * @return saveTrickplayWithMedia + */ + @javax.annotation.Nullable + public Boolean getSaveTrickplayWithMedia() { + return saveTrickplayWithMedia; + } + + public void setSaveTrickplayWithMedia(@javax.annotation.Nullable Boolean saveTrickplayWithMedia) { + this.saveTrickplayWithMedia = saveTrickplayWithMedia; + } + + + public LibraryOptions disabledLyricFetchers(@javax.annotation.Nullable List disabledLyricFetchers) { + this.disabledLyricFetchers = disabledLyricFetchers; + return this; + } + + public LibraryOptions addDisabledLyricFetchersItem(String disabledLyricFetchersItem) { + if (this.disabledLyricFetchers == null) { + this.disabledLyricFetchers = new ArrayList<>(); + } + this.disabledLyricFetchers.add(disabledLyricFetchersItem); + return this; + } + + /** + * Get disabledLyricFetchers + * @return disabledLyricFetchers + */ + @javax.annotation.Nullable + public List getDisabledLyricFetchers() { + return disabledLyricFetchers; + } + + public void setDisabledLyricFetchers(@javax.annotation.Nullable List disabledLyricFetchers) { + this.disabledLyricFetchers = disabledLyricFetchers; + } + + + public LibraryOptions lyricFetcherOrder(@javax.annotation.Nullable List lyricFetcherOrder) { + this.lyricFetcherOrder = lyricFetcherOrder; + return this; + } + + public LibraryOptions addLyricFetcherOrderItem(String lyricFetcherOrderItem) { + if (this.lyricFetcherOrder == null) { + this.lyricFetcherOrder = new ArrayList<>(); + } + this.lyricFetcherOrder.add(lyricFetcherOrderItem); + return this; + } + + /** + * Get lyricFetcherOrder + * @return lyricFetcherOrder + */ + @javax.annotation.Nullable + public List getLyricFetcherOrder() { + return lyricFetcherOrder; + } + + public void setLyricFetcherOrder(@javax.annotation.Nullable List lyricFetcherOrder) { + this.lyricFetcherOrder = lyricFetcherOrder; + } + + + public LibraryOptions preferNonstandardArtistsTag(@javax.annotation.Nullable Boolean preferNonstandardArtistsTag) { + this.preferNonstandardArtistsTag = preferNonstandardArtistsTag; + return this; + } + + /** + * Get preferNonstandardArtistsTag + * @return preferNonstandardArtistsTag + */ + @javax.annotation.Nullable + public Boolean getPreferNonstandardArtistsTag() { + return preferNonstandardArtistsTag; + } + + public void setPreferNonstandardArtistsTag(@javax.annotation.Nullable Boolean preferNonstandardArtistsTag) { + this.preferNonstandardArtistsTag = preferNonstandardArtistsTag; + } + + + public LibraryOptions useCustomTagDelimiters(@javax.annotation.Nullable Boolean useCustomTagDelimiters) { + this.useCustomTagDelimiters = useCustomTagDelimiters; + return this; + } + + /** + * Get useCustomTagDelimiters + * @return useCustomTagDelimiters + */ + @javax.annotation.Nullable + public Boolean getUseCustomTagDelimiters() { + return useCustomTagDelimiters; + } + + public void setUseCustomTagDelimiters(@javax.annotation.Nullable Boolean useCustomTagDelimiters) { + this.useCustomTagDelimiters = useCustomTagDelimiters; + } + + + public LibraryOptions customTagDelimiters(@javax.annotation.Nullable List customTagDelimiters) { + this.customTagDelimiters = customTagDelimiters; + return this; + } + + public LibraryOptions addCustomTagDelimitersItem(String customTagDelimitersItem) { + if (this.customTagDelimiters == null) { + this.customTagDelimiters = new ArrayList<>(); + } + this.customTagDelimiters.add(customTagDelimitersItem); + return this; + } + + /** + * Get customTagDelimiters + * @return customTagDelimiters + */ + @javax.annotation.Nullable + public List getCustomTagDelimiters() { + return customTagDelimiters; + } + + public void setCustomTagDelimiters(@javax.annotation.Nullable List customTagDelimiters) { + this.customTagDelimiters = customTagDelimiters; + } + + + public LibraryOptions delimiterWhitelist(@javax.annotation.Nullable List delimiterWhitelist) { + this.delimiterWhitelist = delimiterWhitelist; + return this; + } + + public LibraryOptions addDelimiterWhitelistItem(String delimiterWhitelistItem) { + if (this.delimiterWhitelist == null) { + this.delimiterWhitelist = new ArrayList<>(); + } + this.delimiterWhitelist.add(delimiterWhitelistItem); + return this; + } + + /** + * Get delimiterWhitelist + * @return delimiterWhitelist + */ + @javax.annotation.Nullable + public List getDelimiterWhitelist() { + return delimiterWhitelist; + } + + public void setDelimiterWhitelist(@javax.annotation.Nullable List delimiterWhitelist) { + this.delimiterWhitelist = delimiterWhitelist; + } + + + public LibraryOptions automaticallyAddToCollection(@javax.annotation.Nullable Boolean automaticallyAddToCollection) { + this.automaticallyAddToCollection = automaticallyAddToCollection; + return this; + } + + /** + * Get automaticallyAddToCollection + * @return automaticallyAddToCollection + */ + @javax.annotation.Nullable + public Boolean getAutomaticallyAddToCollection() { + return automaticallyAddToCollection; + } + + public void setAutomaticallyAddToCollection(@javax.annotation.Nullable Boolean automaticallyAddToCollection) { + this.automaticallyAddToCollection = automaticallyAddToCollection; + } + + + public LibraryOptions allowEmbeddedSubtitles(@javax.annotation.Nullable EmbeddedSubtitleOptions allowEmbeddedSubtitles) { + this.allowEmbeddedSubtitles = allowEmbeddedSubtitles; + return this; + } + + /** + * An enum representing the options to disable embedded subs. + * @return allowEmbeddedSubtitles + */ + @javax.annotation.Nullable + public EmbeddedSubtitleOptions getAllowEmbeddedSubtitles() { + return allowEmbeddedSubtitles; + } + + public void setAllowEmbeddedSubtitles(@javax.annotation.Nullable EmbeddedSubtitleOptions allowEmbeddedSubtitles) { + this.allowEmbeddedSubtitles = allowEmbeddedSubtitles; + } + + + public LibraryOptions typeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + return this; + } + + public LibraryOptions addTypeOptionsItem(TypeOptions typeOptionsItem) { + if (this.typeOptions == null) { + this.typeOptions = new ArrayList<>(); + } + this.typeOptions.add(typeOptionsItem); + return this; + } + + /** + * Get typeOptions + * @return typeOptions + */ + @javax.annotation.Nullable + public List getTypeOptions() { + return typeOptions; + } + + public void setTypeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptions libraryOptions = (LibraryOptions) o; + return Objects.equals(this.enabled, libraryOptions.enabled) && + Objects.equals(this.enablePhotos, libraryOptions.enablePhotos) && + Objects.equals(this.enableRealtimeMonitor, libraryOptions.enableRealtimeMonitor) && + Objects.equals(this.enableLUFSScan, libraryOptions.enableLUFSScan) && + Objects.equals(this.enableChapterImageExtraction, libraryOptions.enableChapterImageExtraction) && + Objects.equals(this.extractChapterImagesDuringLibraryScan, libraryOptions.extractChapterImagesDuringLibraryScan) && + Objects.equals(this.enableTrickplayImageExtraction, libraryOptions.enableTrickplayImageExtraction) && + Objects.equals(this.extractTrickplayImagesDuringLibraryScan, libraryOptions.extractTrickplayImagesDuringLibraryScan) && + Objects.equals(this.pathInfos, libraryOptions.pathInfos) && + Objects.equals(this.saveLocalMetadata, libraryOptions.saveLocalMetadata) && + Objects.equals(this.enableInternetProviders, libraryOptions.enableInternetProviders) && + Objects.equals(this.enableAutomaticSeriesGrouping, libraryOptions.enableAutomaticSeriesGrouping) && + Objects.equals(this.enableEmbeddedTitles, libraryOptions.enableEmbeddedTitles) && + Objects.equals(this.enableEmbeddedExtrasTitles, libraryOptions.enableEmbeddedExtrasTitles) && + Objects.equals(this.enableEmbeddedEpisodeInfos, libraryOptions.enableEmbeddedEpisodeInfos) && + Objects.equals(this.automaticRefreshIntervalDays, libraryOptions.automaticRefreshIntervalDays) && + Objects.equals(this.preferredMetadataLanguage, libraryOptions.preferredMetadataLanguage) && + Objects.equals(this.metadataCountryCode, libraryOptions.metadataCountryCode) && + Objects.equals(this.seasonZeroDisplayName, libraryOptions.seasonZeroDisplayName) && + Objects.equals(this.metadataSavers, libraryOptions.metadataSavers) && + Objects.equals(this.disabledLocalMetadataReaders, libraryOptions.disabledLocalMetadataReaders) && + Objects.equals(this.localMetadataReaderOrder, libraryOptions.localMetadataReaderOrder) && + Objects.equals(this.disabledSubtitleFetchers, libraryOptions.disabledSubtitleFetchers) && + Objects.equals(this.subtitleFetcherOrder, libraryOptions.subtitleFetcherOrder) && + Objects.equals(this.disabledMediaSegmentProviders, libraryOptions.disabledMediaSegmentProviders) && + Objects.equals(this.mediaSegmentProvideOrder, libraryOptions.mediaSegmentProvideOrder) && + Objects.equals(this.skipSubtitlesIfEmbeddedSubtitlesPresent, libraryOptions.skipSubtitlesIfEmbeddedSubtitlesPresent) && + Objects.equals(this.skipSubtitlesIfAudioTrackMatches, libraryOptions.skipSubtitlesIfAudioTrackMatches) && + Objects.equals(this.subtitleDownloadLanguages, libraryOptions.subtitleDownloadLanguages) && + Objects.equals(this.requirePerfectSubtitleMatch, libraryOptions.requirePerfectSubtitleMatch) && + Objects.equals(this.saveSubtitlesWithMedia, libraryOptions.saveSubtitlesWithMedia) && + Objects.equals(this.saveLyricsWithMedia, libraryOptions.saveLyricsWithMedia) && + Objects.equals(this.saveTrickplayWithMedia, libraryOptions.saveTrickplayWithMedia) && + Objects.equals(this.disabledLyricFetchers, libraryOptions.disabledLyricFetchers) && + Objects.equals(this.lyricFetcherOrder, libraryOptions.lyricFetcherOrder) && + Objects.equals(this.preferNonstandardArtistsTag, libraryOptions.preferNonstandardArtistsTag) && + Objects.equals(this.useCustomTagDelimiters, libraryOptions.useCustomTagDelimiters) && + Objects.equals(this.customTagDelimiters, libraryOptions.customTagDelimiters) && + Objects.equals(this.delimiterWhitelist, libraryOptions.delimiterWhitelist) && + Objects.equals(this.automaticallyAddToCollection, libraryOptions.automaticallyAddToCollection) && + Objects.equals(this.allowEmbeddedSubtitles, libraryOptions.allowEmbeddedSubtitles) && + Objects.equals(this.typeOptions, libraryOptions.typeOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(enabled, enablePhotos, enableRealtimeMonitor, enableLUFSScan, enableChapterImageExtraction, extractChapterImagesDuringLibraryScan, enableTrickplayImageExtraction, extractTrickplayImagesDuringLibraryScan, pathInfos, saveLocalMetadata, enableInternetProviders, enableAutomaticSeriesGrouping, enableEmbeddedTitles, enableEmbeddedExtrasTitles, enableEmbeddedEpisodeInfos, automaticRefreshIntervalDays, preferredMetadataLanguage, metadataCountryCode, seasonZeroDisplayName, metadataSavers, disabledLocalMetadataReaders, localMetadataReaderOrder, disabledSubtitleFetchers, subtitleFetcherOrder, disabledMediaSegmentProviders, mediaSegmentProvideOrder, skipSubtitlesIfEmbeddedSubtitlesPresent, skipSubtitlesIfAudioTrackMatches, subtitleDownloadLanguages, requirePerfectSubtitleMatch, saveSubtitlesWithMedia, saveLyricsWithMedia, saveTrickplayWithMedia, disabledLyricFetchers, lyricFetcherOrder, preferNonstandardArtistsTag, useCustomTagDelimiters, customTagDelimiters, delimiterWhitelist, automaticallyAddToCollection, allowEmbeddedSubtitles, typeOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptions {\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" enablePhotos: ").append(toIndentedString(enablePhotos)).append("\n"); + sb.append(" enableRealtimeMonitor: ").append(toIndentedString(enableRealtimeMonitor)).append("\n"); + sb.append(" enableLUFSScan: ").append(toIndentedString(enableLUFSScan)).append("\n"); + sb.append(" enableChapterImageExtraction: ").append(toIndentedString(enableChapterImageExtraction)).append("\n"); + sb.append(" extractChapterImagesDuringLibraryScan: ").append(toIndentedString(extractChapterImagesDuringLibraryScan)).append("\n"); + sb.append(" enableTrickplayImageExtraction: ").append(toIndentedString(enableTrickplayImageExtraction)).append("\n"); + sb.append(" extractTrickplayImagesDuringLibraryScan: ").append(toIndentedString(extractTrickplayImagesDuringLibraryScan)).append("\n"); + sb.append(" pathInfos: ").append(toIndentedString(pathInfos)).append("\n"); + sb.append(" saveLocalMetadata: ").append(toIndentedString(saveLocalMetadata)).append("\n"); + sb.append(" enableInternetProviders: ").append(toIndentedString(enableInternetProviders)).append("\n"); + sb.append(" enableAutomaticSeriesGrouping: ").append(toIndentedString(enableAutomaticSeriesGrouping)).append("\n"); + sb.append(" enableEmbeddedTitles: ").append(toIndentedString(enableEmbeddedTitles)).append("\n"); + sb.append(" enableEmbeddedExtrasTitles: ").append(toIndentedString(enableEmbeddedExtrasTitles)).append("\n"); + sb.append(" enableEmbeddedEpisodeInfos: ").append(toIndentedString(enableEmbeddedEpisodeInfos)).append("\n"); + sb.append(" automaticRefreshIntervalDays: ").append(toIndentedString(automaticRefreshIntervalDays)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" seasonZeroDisplayName: ").append(toIndentedString(seasonZeroDisplayName)).append("\n"); + sb.append(" metadataSavers: ").append(toIndentedString(metadataSavers)).append("\n"); + sb.append(" disabledLocalMetadataReaders: ").append(toIndentedString(disabledLocalMetadataReaders)).append("\n"); + sb.append(" localMetadataReaderOrder: ").append(toIndentedString(localMetadataReaderOrder)).append("\n"); + sb.append(" disabledSubtitleFetchers: ").append(toIndentedString(disabledSubtitleFetchers)).append("\n"); + sb.append(" subtitleFetcherOrder: ").append(toIndentedString(subtitleFetcherOrder)).append("\n"); + sb.append(" disabledMediaSegmentProviders: ").append(toIndentedString(disabledMediaSegmentProviders)).append("\n"); + sb.append(" mediaSegmentProvideOrder: ").append(toIndentedString(mediaSegmentProvideOrder)).append("\n"); + sb.append(" skipSubtitlesIfEmbeddedSubtitlesPresent: ").append(toIndentedString(skipSubtitlesIfEmbeddedSubtitlesPresent)).append("\n"); + sb.append(" skipSubtitlesIfAudioTrackMatches: ").append(toIndentedString(skipSubtitlesIfAudioTrackMatches)).append("\n"); + sb.append(" subtitleDownloadLanguages: ").append(toIndentedString(subtitleDownloadLanguages)).append("\n"); + sb.append(" requirePerfectSubtitleMatch: ").append(toIndentedString(requirePerfectSubtitleMatch)).append("\n"); + sb.append(" saveSubtitlesWithMedia: ").append(toIndentedString(saveSubtitlesWithMedia)).append("\n"); + sb.append(" saveLyricsWithMedia: ").append(toIndentedString(saveLyricsWithMedia)).append("\n"); + sb.append(" saveTrickplayWithMedia: ").append(toIndentedString(saveTrickplayWithMedia)).append("\n"); + sb.append(" disabledLyricFetchers: ").append(toIndentedString(disabledLyricFetchers)).append("\n"); + sb.append(" lyricFetcherOrder: ").append(toIndentedString(lyricFetcherOrder)).append("\n"); + sb.append(" preferNonstandardArtistsTag: ").append(toIndentedString(preferNonstandardArtistsTag)).append("\n"); + sb.append(" useCustomTagDelimiters: ").append(toIndentedString(useCustomTagDelimiters)).append("\n"); + sb.append(" customTagDelimiters: ").append(toIndentedString(customTagDelimiters)).append("\n"); + sb.append(" delimiterWhitelist: ").append(toIndentedString(delimiterWhitelist)).append("\n"); + sb.append(" automaticallyAddToCollection: ").append(toIndentedString(automaticallyAddToCollection)).append("\n"); + sb.append(" allowEmbeddedSubtitles: ").append(toIndentedString(allowEmbeddedSubtitles)).append("\n"); + sb.append(" typeOptions: ").append(toIndentedString(typeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Enabled"); + openapiFields.add("EnablePhotos"); + openapiFields.add("EnableRealtimeMonitor"); + openapiFields.add("EnableLUFSScan"); + openapiFields.add("EnableChapterImageExtraction"); + openapiFields.add("ExtractChapterImagesDuringLibraryScan"); + openapiFields.add("EnableTrickplayImageExtraction"); + openapiFields.add("ExtractTrickplayImagesDuringLibraryScan"); + openapiFields.add("PathInfos"); + openapiFields.add("SaveLocalMetadata"); + openapiFields.add("EnableInternetProviders"); + openapiFields.add("EnableAutomaticSeriesGrouping"); + openapiFields.add("EnableEmbeddedTitles"); + openapiFields.add("EnableEmbeddedExtrasTitles"); + openapiFields.add("EnableEmbeddedEpisodeInfos"); + openapiFields.add("AutomaticRefreshIntervalDays"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("SeasonZeroDisplayName"); + openapiFields.add("MetadataSavers"); + openapiFields.add("DisabledLocalMetadataReaders"); + openapiFields.add("LocalMetadataReaderOrder"); + openapiFields.add("DisabledSubtitleFetchers"); + openapiFields.add("SubtitleFetcherOrder"); + openapiFields.add("DisabledMediaSegmentProviders"); + openapiFields.add("MediaSegmentProvideOrder"); + openapiFields.add("SkipSubtitlesIfEmbeddedSubtitlesPresent"); + openapiFields.add("SkipSubtitlesIfAudioTrackMatches"); + openapiFields.add("SubtitleDownloadLanguages"); + openapiFields.add("RequirePerfectSubtitleMatch"); + openapiFields.add("SaveSubtitlesWithMedia"); + openapiFields.add("SaveLyricsWithMedia"); + openapiFields.add("SaveTrickplayWithMedia"); + openapiFields.add("DisabledLyricFetchers"); + openapiFields.add("LyricFetcherOrder"); + openapiFields.add("PreferNonstandardArtistsTag"); + openapiFields.add("UseCustomTagDelimiters"); + openapiFields.add("CustomTagDelimiters"); + openapiFields.add("DelimiterWhitelist"); + openapiFields.add("AutomaticallyAddToCollection"); + openapiFields.add("AllowEmbeddedSubtitles"); + openapiFields.add("TypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptions is not found in the empty JSON string", LibraryOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("PathInfos") != null && !jsonObj.get("PathInfos").isJsonNull()) { + JsonArray jsonArraypathInfos = jsonObj.getAsJsonArray("PathInfos"); + if (jsonArraypathInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("PathInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PathInfos` to be an array in the JSON string but got `%s`", jsonObj.get("PathInfos").toString())); + } + + // validate the optional field `PathInfos` (array) + for (int i = 0; i < jsonArraypathInfos.size(); i++) { + MediaPathInfo.validateJsonElement(jsonArraypathInfos.get(i)); + }; + } + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("SeasonZeroDisplayName") != null && !jsonObj.get("SeasonZeroDisplayName").isJsonNull()) && !jsonObj.get("SeasonZeroDisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonZeroDisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonZeroDisplayName").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataSavers") != null && !jsonObj.get("MetadataSavers").isJsonNull() && !jsonObj.get("MetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataSavers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledLocalMetadataReaders") != null && !jsonObj.get("DisabledLocalMetadataReaders").isJsonNull() && !jsonObj.get("DisabledLocalMetadataReaders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledLocalMetadataReaders` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledLocalMetadataReaders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalMetadataReaderOrder") != null && !jsonObj.get("LocalMetadataReaderOrder").isJsonNull() && !jsonObj.get("LocalMetadataReaderOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalMetadataReaderOrder` to be an array in the JSON string but got `%s`", jsonObj.get("LocalMetadataReaderOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledSubtitleFetchers") != null && !jsonObj.get("DisabledSubtitleFetchers").isJsonNull() && !jsonObj.get("DisabledSubtitleFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledSubtitleFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledSubtitleFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SubtitleFetcherOrder") != null && !jsonObj.get("SubtitleFetcherOrder").isJsonNull() && !jsonObj.get("SubtitleFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMediaSegmentProviders") != null && !jsonObj.get("DisabledMediaSegmentProviders").isJsonNull() && !jsonObj.get("DisabledMediaSegmentProviders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMediaSegmentProviders` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMediaSegmentProviders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MediaSegmentProvideOrder") != null && !jsonObj.get("MediaSegmentProvideOrder").isJsonNull() && !jsonObj.get("MediaSegmentProvideOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSegmentProvideOrder` to be an array in the JSON string but got `%s`", jsonObj.get("MediaSegmentProvideOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SubtitleDownloadLanguages") != null && !jsonObj.get("SubtitleDownloadLanguages").isJsonNull() && !jsonObj.get("SubtitleDownloadLanguages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleDownloadLanguages` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleDownloadLanguages").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledLyricFetchers") != null && !jsonObj.get("DisabledLyricFetchers").isJsonNull() && !jsonObj.get("DisabledLyricFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledLyricFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledLyricFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LyricFetcherOrder") != null && !jsonObj.get("LyricFetcherOrder").isJsonNull() && !jsonObj.get("LyricFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LyricFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("LyricFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("CustomTagDelimiters") != null && !jsonObj.get("CustomTagDelimiters").isJsonNull() && !jsonObj.get("CustomTagDelimiters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomTagDelimiters` to be an array in the JSON string but got `%s`", jsonObj.get("CustomTagDelimiters").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DelimiterWhitelist") != null && !jsonObj.get("DelimiterWhitelist").isJsonNull() && !jsonObj.get("DelimiterWhitelist").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DelimiterWhitelist` to be an array in the JSON string but got `%s`", jsonObj.get("DelimiterWhitelist").toString())); + } + // validate the optional field `AllowEmbeddedSubtitles` + if (jsonObj.get("AllowEmbeddedSubtitles") != null && !jsonObj.get("AllowEmbeddedSubtitles").isJsonNull()) { + EmbeddedSubtitleOptions.validateJsonElement(jsonObj.get("AllowEmbeddedSubtitles")); + } + if (jsonObj.get("TypeOptions") != null && !jsonObj.get("TypeOptions").isJsonNull()) { + JsonArray jsonArraytypeOptions = jsonObj.getAsJsonArray("TypeOptions"); + if (jsonArraytypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("TypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("TypeOptions").toString())); + } + + // validate the optional field `TypeOptions` (array) + for (int i = 0; i < jsonArraytypeOptions.size(); i++) { + TypeOptions.validateJsonElement(jsonArraytypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptions + * @throws IOException if the JSON string is invalid with respect to LibraryOptions + */ + public static LibraryOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptions.class); + } + + /** + * Convert an instance of LibraryOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java new file mode 100644 index 0000000000000..6e9fe3b393978 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java @@ -0,0 +1,425 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LibraryOptionInfoDto; +import org.openapitools.client.model.LibraryTypeOptionsDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library options result dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptionsResultDto { + public static final String SERIALIZED_NAME_METADATA_SAVERS = "MetadataSavers"; + @SerializedName(SERIALIZED_NAME_METADATA_SAVERS) + @javax.annotation.Nullable + private List metadataSavers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_METADATA_READERS = "MetadataReaders"; + @SerializedName(SERIALIZED_NAME_METADATA_READERS) + @javax.annotation.Nullable + private List metadataReaders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_FETCHERS = "SubtitleFetchers"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_FETCHERS) + @javax.annotation.Nullable + private List subtitleFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LYRIC_FETCHERS = "LyricFetchers"; + @SerializedName(SERIALIZED_NAME_LYRIC_FETCHERS) + @javax.annotation.Nullable + private List lyricFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TYPE_OPTIONS = "TypeOptions"; + @SerializedName(SERIALIZED_NAME_TYPE_OPTIONS) + @javax.annotation.Nullable + private List typeOptions = new ArrayList<>(); + + public LibraryOptionsResultDto() { + } + + public LibraryOptionsResultDto metadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + return this; + } + + public LibraryOptionsResultDto addMetadataSaversItem(LibraryOptionInfoDto metadataSaversItem) { + if (this.metadataSavers == null) { + this.metadataSavers = new ArrayList<>(); + } + this.metadataSavers.add(metadataSaversItem); + return this; + } + + /** + * Gets or sets the metadata savers. + * @return metadataSavers + */ + @javax.annotation.Nullable + public List getMetadataSavers() { + return metadataSavers; + } + + public void setMetadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + } + + + public LibraryOptionsResultDto metadataReaders(@javax.annotation.Nullable List metadataReaders) { + this.metadataReaders = metadataReaders; + return this; + } + + public LibraryOptionsResultDto addMetadataReadersItem(LibraryOptionInfoDto metadataReadersItem) { + if (this.metadataReaders == null) { + this.metadataReaders = new ArrayList<>(); + } + this.metadataReaders.add(metadataReadersItem); + return this; + } + + /** + * Gets or sets the metadata readers. + * @return metadataReaders + */ + @javax.annotation.Nullable + public List getMetadataReaders() { + return metadataReaders; + } + + public void setMetadataReaders(@javax.annotation.Nullable List metadataReaders) { + this.metadataReaders = metadataReaders; + } + + + public LibraryOptionsResultDto subtitleFetchers(@javax.annotation.Nullable List subtitleFetchers) { + this.subtitleFetchers = subtitleFetchers; + return this; + } + + public LibraryOptionsResultDto addSubtitleFetchersItem(LibraryOptionInfoDto subtitleFetchersItem) { + if (this.subtitleFetchers == null) { + this.subtitleFetchers = new ArrayList<>(); + } + this.subtitleFetchers.add(subtitleFetchersItem); + return this; + } + + /** + * Gets or sets the subtitle fetchers. + * @return subtitleFetchers + */ + @javax.annotation.Nullable + public List getSubtitleFetchers() { + return subtitleFetchers; + } + + public void setSubtitleFetchers(@javax.annotation.Nullable List subtitleFetchers) { + this.subtitleFetchers = subtitleFetchers; + } + + + public LibraryOptionsResultDto lyricFetchers(@javax.annotation.Nullable List lyricFetchers) { + this.lyricFetchers = lyricFetchers; + return this; + } + + public LibraryOptionsResultDto addLyricFetchersItem(LibraryOptionInfoDto lyricFetchersItem) { + if (this.lyricFetchers == null) { + this.lyricFetchers = new ArrayList<>(); + } + this.lyricFetchers.add(lyricFetchersItem); + return this; + } + + /** + * Gets or sets the list of lyric fetchers. + * @return lyricFetchers + */ + @javax.annotation.Nullable + public List getLyricFetchers() { + return lyricFetchers; + } + + public void setLyricFetchers(@javax.annotation.Nullable List lyricFetchers) { + this.lyricFetchers = lyricFetchers; + } + + + public LibraryOptionsResultDto typeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + return this; + } + + public LibraryOptionsResultDto addTypeOptionsItem(LibraryTypeOptionsDto typeOptionsItem) { + if (this.typeOptions == null) { + this.typeOptions = new ArrayList<>(); + } + this.typeOptions.add(typeOptionsItem); + return this; + } + + /** + * Gets or sets the type options. + * @return typeOptions + */ + @javax.annotation.Nullable + public List getTypeOptions() { + return typeOptions; + } + + public void setTypeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptionsResultDto libraryOptionsResultDto = (LibraryOptionsResultDto) o; + return Objects.equals(this.metadataSavers, libraryOptionsResultDto.metadataSavers) && + Objects.equals(this.metadataReaders, libraryOptionsResultDto.metadataReaders) && + Objects.equals(this.subtitleFetchers, libraryOptionsResultDto.subtitleFetchers) && + Objects.equals(this.lyricFetchers, libraryOptionsResultDto.lyricFetchers) && + Objects.equals(this.typeOptions, libraryOptionsResultDto.typeOptions); + } + + @Override + public int hashCode() { + return Objects.hash(metadataSavers, metadataReaders, subtitleFetchers, lyricFetchers, typeOptions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptionsResultDto {\n"); + sb.append(" metadataSavers: ").append(toIndentedString(metadataSavers)).append("\n"); + sb.append(" metadataReaders: ").append(toIndentedString(metadataReaders)).append("\n"); + sb.append(" subtitleFetchers: ").append(toIndentedString(subtitleFetchers)).append("\n"); + sb.append(" lyricFetchers: ").append(toIndentedString(lyricFetchers)).append("\n"); + sb.append(" typeOptions: ").append(toIndentedString(typeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MetadataSavers"); + openapiFields.add("MetadataReaders"); + openapiFields.add("SubtitleFetchers"); + openapiFields.add("LyricFetchers"); + openapiFields.add("TypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptionsResultDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptionsResultDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptionsResultDto is not found in the empty JSON string", LibraryOptionsResultDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptionsResultDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptionsResultDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("MetadataSavers") != null && !jsonObj.get("MetadataSavers").isJsonNull()) { + JsonArray jsonArraymetadataSavers = jsonObj.getAsJsonArray("MetadataSavers"); + if (jsonArraymetadataSavers != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataSavers").toString())); + } + + // validate the optional field `MetadataSavers` (array) + for (int i = 0; i < jsonArraymetadataSavers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataSavers.get(i)); + }; + } + } + if (jsonObj.get("MetadataReaders") != null && !jsonObj.get("MetadataReaders").isJsonNull()) { + JsonArray jsonArraymetadataReaders = jsonObj.getAsJsonArray("MetadataReaders"); + if (jsonArraymetadataReaders != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataReaders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataReaders` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataReaders").toString())); + } + + // validate the optional field `MetadataReaders` (array) + for (int i = 0; i < jsonArraymetadataReaders.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataReaders.get(i)); + }; + } + } + if (jsonObj.get("SubtitleFetchers") != null && !jsonObj.get("SubtitleFetchers").isJsonNull()) { + JsonArray jsonArraysubtitleFetchers = jsonObj.getAsJsonArray("SubtitleFetchers"); + if (jsonArraysubtitleFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("SubtitleFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleFetchers").toString())); + } + + // validate the optional field `SubtitleFetchers` (array) + for (int i = 0; i < jsonArraysubtitleFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraysubtitleFetchers.get(i)); + }; + } + } + if (jsonObj.get("LyricFetchers") != null && !jsonObj.get("LyricFetchers").isJsonNull()) { + JsonArray jsonArraylyricFetchers = jsonObj.getAsJsonArray("LyricFetchers"); + if (jsonArraylyricFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("LyricFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LyricFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("LyricFetchers").toString())); + } + + // validate the optional field `LyricFetchers` (array) + for (int i = 0; i < jsonArraylyricFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraylyricFetchers.get(i)); + }; + } + } + if (jsonObj.get("TypeOptions") != null && !jsonObj.get("TypeOptions").isJsonNull()) { + JsonArray jsonArraytypeOptions = jsonObj.getAsJsonArray("TypeOptions"); + if (jsonArraytypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("TypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("TypeOptions").toString())); + } + + // validate the optional field `TypeOptions` (array) + for (int i = 0; i < jsonArraytypeOptions.size(); i++) { + LibraryTypeOptionsDto.validateJsonElement(jsonArraytypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptionsResultDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptionsResultDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptionsResultDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptionsResultDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptionsResultDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptionsResultDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptionsResultDto + * @throws IOException if the JSON string is invalid with respect to LibraryOptionsResultDto + */ + public static LibraryOptionsResultDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptionsResultDto.class); + } + + /** + * Convert an instance of LibraryOptionsResultDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java new file mode 100644 index 0000000000000..1a309f4d44508 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java @@ -0,0 +1,409 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageOption; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.LibraryOptionInfoDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library type options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryTypeOptionsDto { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_METADATA_FETCHERS = "MetadataFetchers"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHERS) + @javax.annotation.Nullable + private List metadataFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IMAGE_FETCHERS = "ImageFetchers"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List imageFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTED_IMAGE_TYPES = "SupportedImageTypes"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_IMAGE_TYPES) + @javax.annotation.Nullable + private List supportedImageTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DEFAULT_IMAGE_OPTIONS = "DefaultImageOptions"; + @SerializedName(SERIALIZED_NAME_DEFAULT_IMAGE_OPTIONS) + @javax.annotation.Nullable + private List defaultImageOptions = new ArrayList<>(); + + public LibraryTypeOptionsDto() { + } + + public LibraryTypeOptionsDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public LibraryTypeOptionsDto metadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + return this; + } + + public LibraryTypeOptionsDto addMetadataFetchersItem(LibraryOptionInfoDto metadataFetchersItem) { + if (this.metadataFetchers == null) { + this.metadataFetchers = new ArrayList<>(); + } + this.metadataFetchers.add(metadataFetchersItem); + return this; + } + + /** + * Gets or sets the metadata fetchers. + * @return metadataFetchers + */ + @javax.annotation.Nullable + public List getMetadataFetchers() { + return metadataFetchers; + } + + public void setMetadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + } + + + public LibraryTypeOptionsDto imageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + return this; + } + + public LibraryTypeOptionsDto addImageFetchersItem(LibraryOptionInfoDto imageFetchersItem) { + if (this.imageFetchers == null) { + this.imageFetchers = new ArrayList<>(); + } + this.imageFetchers.add(imageFetchersItem); + return this; + } + + /** + * Gets or sets the image fetchers. + * @return imageFetchers + */ + @javax.annotation.Nullable + public List getImageFetchers() { + return imageFetchers; + } + + public void setImageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + } + + + public LibraryTypeOptionsDto supportedImageTypes(@javax.annotation.Nullable List supportedImageTypes) { + this.supportedImageTypes = supportedImageTypes; + return this; + } + + public LibraryTypeOptionsDto addSupportedImageTypesItem(ImageType supportedImageTypesItem) { + if (this.supportedImageTypes == null) { + this.supportedImageTypes = new ArrayList<>(); + } + this.supportedImageTypes.add(supportedImageTypesItem); + return this; + } + + /** + * Gets or sets the supported image types. + * @return supportedImageTypes + */ + @javax.annotation.Nullable + public List getSupportedImageTypes() { + return supportedImageTypes; + } + + public void setSupportedImageTypes(@javax.annotation.Nullable List supportedImageTypes) { + this.supportedImageTypes = supportedImageTypes; + } + + + public LibraryTypeOptionsDto defaultImageOptions(@javax.annotation.Nullable List defaultImageOptions) { + this.defaultImageOptions = defaultImageOptions; + return this; + } + + public LibraryTypeOptionsDto addDefaultImageOptionsItem(ImageOption defaultImageOptionsItem) { + if (this.defaultImageOptions == null) { + this.defaultImageOptions = new ArrayList<>(); + } + this.defaultImageOptions.add(defaultImageOptionsItem); + return this; + } + + /** + * Gets or sets the default image options. + * @return defaultImageOptions + */ + @javax.annotation.Nullable + public List getDefaultImageOptions() { + return defaultImageOptions; + } + + public void setDefaultImageOptions(@javax.annotation.Nullable List defaultImageOptions) { + this.defaultImageOptions = defaultImageOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryTypeOptionsDto libraryTypeOptionsDto = (LibraryTypeOptionsDto) o; + return Objects.equals(this.type, libraryTypeOptionsDto.type) && + Objects.equals(this.metadataFetchers, libraryTypeOptionsDto.metadataFetchers) && + Objects.equals(this.imageFetchers, libraryTypeOptionsDto.imageFetchers) && + Objects.equals(this.supportedImageTypes, libraryTypeOptionsDto.supportedImageTypes) && + Objects.equals(this.defaultImageOptions, libraryTypeOptionsDto.defaultImageOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, metadataFetchers, imageFetchers, supportedImageTypes, defaultImageOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryTypeOptionsDto {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" metadataFetchers: ").append(toIndentedString(metadataFetchers)).append("\n"); + sb.append(" imageFetchers: ").append(toIndentedString(imageFetchers)).append("\n"); + sb.append(" supportedImageTypes: ").append(toIndentedString(supportedImageTypes)).append("\n"); + sb.append(" defaultImageOptions: ").append(toIndentedString(defaultImageOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("MetadataFetchers"); + openapiFields.add("ImageFetchers"); + openapiFields.add("SupportedImageTypes"); + openapiFields.add("DefaultImageOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryTypeOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryTypeOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryTypeOptionsDto is not found in the empty JSON string", LibraryTypeOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryTypeOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryTypeOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if (jsonObj.get("MetadataFetchers") != null && !jsonObj.get("MetadataFetchers").isJsonNull()) { + JsonArray jsonArraymetadataFetchers = jsonObj.getAsJsonArray("MetadataFetchers"); + if (jsonArraymetadataFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetchers").toString())); + } + + // validate the optional field `MetadataFetchers` (array) + for (int i = 0; i < jsonArraymetadataFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataFetchers.get(i)); + }; + } + } + if (jsonObj.get("ImageFetchers") != null && !jsonObj.get("ImageFetchers").isJsonNull()) { + JsonArray jsonArrayimageFetchers = jsonObj.getAsJsonArray("ImageFetchers"); + if (jsonArrayimageFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("ImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetchers").toString())); + } + + // validate the optional field `ImageFetchers` (array) + for (int i = 0; i < jsonArrayimageFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArrayimageFetchers.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedImageTypes") != null && !jsonObj.get("SupportedImageTypes").isJsonNull() && !jsonObj.get("SupportedImageTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedImageTypes` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedImageTypes").toString())); + } + if (jsonObj.get("DefaultImageOptions") != null && !jsonObj.get("DefaultImageOptions").isJsonNull()) { + JsonArray jsonArraydefaultImageOptions = jsonObj.getAsJsonArray("DefaultImageOptions"); + if (jsonArraydefaultImageOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("DefaultImageOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DefaultImageOptions` to be an array in the JSON string but got `%s`", jsonObj.get("DefaultImageOptions").toString())); + } + + // validate the optional field `DefaultImageOptions` (array) + for (int i = 0; i < jsonArraydefaultImageOptions.size(); i++) { + ImageOption.validateJsonElement(jsonArraydefaultImageOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryTypeOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryTypeOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryTypeOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryTypeOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryTypeOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryTypeOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryTypeOptionsDto + * @throws IOException if the JSON string is invalid with respect to LibraryTypeOptionsDto + */ + public static LibraryTypeOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryTypeOptionsDto.class); + } + + /** + * Convert an instance of LibraryTypeOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java new file mode 100644 index 0000000000000..cbd3d8a244a09 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java @@ -0,0 +1,438 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class LibraryUpdateInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryUpdateInfo { + public static final String SERIALIZED_NAME_FOLDERS_ADDED_TO = "FoldersAddedTo"; + @SerializedName(SERIALIZED_NAME_FOLDERS_ADDED_TO) + @javax.annotation.Nullable + private List foldersAddedTo = new ArrayList<>(); + + public static final String SERIALIZED_NAME_FOLDERS_REMOVED_FROM = "FoldersRemovedFrom"; + @SerializedName(SERIALIZED_NAME_FOLDERS_REMOVED_FROM) + @javax.annotation.Nullable + private List foldersRemovedFrom = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_ADDED = "ItemsAdded"; + @SerializedName(SERIALIZED_NAME_ITEMS_ADDED) + @javax.annotation.Nullable + private List itemsAdded = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_REMOVED = "ItemsRemoved"; + @SerializedName(SERIALIZED_NAME_ITEMS_REMOVED) + @javax.annotation.Nullable + private List itemsRemoved = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_UPDATED = "ItemsUpdated"; + @SerializedName(SERIALIZED_NAME_ITEMS_UPDATED) + @javax.annotation.Nullable + private List itemsUpdated = new ArrayList<>(); + + public static final String SERIALIZED_NAME_COLLECTION_FOLDERS = "CollectionFolders"; + @SerializedName(SERIALIZED_NAME_COLLECTION_FOLDERS) + @javax.annotation.Nullable + private List collectionFolders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_EMPTY = "IsEmpty"; + @SerializedName(SERIALIZED_NAME_IS_EMPTY) + @javax.annotation.Nullable + private Boolean isEmpty; + + public LibraryUpdateInfo() { + } + + public LibraryUpdateInfo( + Boolean isEmpty + ) { + this(); + this.isEmpty = isEmpty; + } + + public LibraryUpdateInfo foldersAddedTo(@javax.annotation.Nullable List foldersAddedTo) { + this.foldersAddedTo = foldersAddedTo; + return this; + } + + public LibraryUpdateInfo addFoldersAddedToItem(String foldersAddedToItem) { + if (this.foldersAddedTo == null) { + this.foldersAddedTo = new ArrayList<>(); + } + this.foldersAddedTo.add(foldersAddedToItem); + return this; + } + + /** + * Gets or sets the folders added to. + * @return foldersAddedTo + */ + @javax.annotation.Nullable + public List getFoldersAddedTo() { + return foldersAddedTo; + } + + public void setFoldersAddedTo(@javax.annotation.Nullable List foldersAddedTo) { + this.foldersAddedTo = foldersAddedTo; + } + + + public LibraryUpdateInfo foldersRemovedFrom(@javax.annotation.Nullable List foldersRemovedFrom) { + this.foldersRemovedFrom = foldersRemovedFrom; + return this; + } + + public LibraryUpdateInfo addFoldersRemovedFromItem(String foldersRemovedFromItem) { + if (this.foldersRemovedFrom == null) { + this.foldersRemovedFrom = new ArrayList<>(); + } + this.foldersRemovedFrom.add(foldersRemovedFromItem); + return this; + } + + /** + * Gets or sets the folders removed from. + * @return foldersRemovedFrom + */ + @javax.annotation.Nullable + public List getFoldersRemovedFrom() { + return foldersRemovedFrom; + } + + public void setFoldersRemovedFrom(@javax.annotation.Nullable List foldersRemovedFrom) { + this.foldersRemovedFrom = foldersRemovedFrom; + } + + + public LibraryUpdateInfo itemsAdded(@javax.annotation.Nullable List itemsAdded) { + this.itemsAdded = itemsAdded; + return this; + } + + public LibraryUpdateInfo addItemsAddedItem(String itemsAddedItem) { + if (this.itemsAdded == null) { + this.itemsAdded = new ArrayList<>(); + } + this.itemsAdded.add(itemsAddedItem); + return this; + } + + /** + * Gets or sets the items added. + * @return itemsAdded + */ + @javax.annotation.Nullable + public List getItemsAdded() { + return itemsAdded; + } + + public void setItemsAdded(@javax.annotation.Nullable List itemsAdded) { + this.itemsAdded = itemsAdded; + } + + + public LibraryUpdateInfo itemsRemoved(@javax.annotation.Nullable List itemsRemoved) { + this.itemsRemoved = itemsRemoved; + return this; + } + + public LibraryUpdateInfo addItemsRemovedItem(String itemsRemovedItem) { + if (this.itemsRemoved == null) { + this.itemsRemoved = new ArrayList<>(); + } + this.itemsRemoved.add(itemsRemovedItem); + return this; + } + + /** + * Gets or sets the items removed. + * @return itemsRemoved + */ + @javax.annotation.Nullable + public List getItemsRemoved() { + return itemsRemoved; + } + + public void setItemsRemoved(@javax.annotation.Nullable List itemsRemoved) { + this.itemsRemoved = itemsRemoved; + } + + + public LibraryUpdateInfo itemsUpdated(@javax.annotation.Nullable List itemsUpdated) { + this.itemsUpdated = itemsUpdated; + return this; + } + + public LibraryUpdateInfo addItemsUpdatedItem(String itemsUpdatedItem) { + if (this.itemsUpdated == null) { + this.itemsUpdated = new ArrayList<>(); + } + this.itemsUpdated.add(itemsUpdatedItem); + return this; + } + + /** + * Gets or sets the items updated. + * @return itemsUpdated + */ + @javax.annotation.Nullable + public List getItemsUpdated() { + return itemsUpdated; + } + + public void setItemsUpdated(@javax.annotation.Nullable List itemsUpdated) { + this.itemsUpdated = itemsUpdated; + } + + + public LibraryUpdateInfo collectionFolders(@javax.annotation.Nullable List collectionFolders) { + this.collectionFolders = collectionFolders; + return this; + } + + public LibraryUpdateInfo addCollectionFoldersItem(String collectionFoldersItem) { + if (this.collectionFolders == null) { + this.collectionFolders = new ArrayList<>(); + } + this.collectionFolders.add(collectionFoldersItem); + return this; + } + + /** + * Get collectionFolders + * @return collectionFolders + */ + @javax.annotation.Nullable + public List getCollectionFolders() { + return collectionFolders; + } + + public void setCollectionFolders(@javax.annotation.Nullable List collectionFolders) { + this.collectionFolders = collectionFolders; + } + + + /** + * Get isEmpty + * @return isEmpty + */ + @javax.annotation.Nullable + public Boolean getIsEmpty() { + return isEmpty; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryUpdateInfo libraryUpdateInfo = (LibraryUpdateInfo) o; + return Objects.equals(this.foldersAddedTo, libraryUpdateInfo.foldersAddedTo) && + Objects.equals(this.foldersRemovedFrom, libraryUpdateInfo.foldersRemovedFrom) && + Objects.equals(this.itemsAdded, libraryUpdateInfo.itemsAdded) && + Objects.equals(this.itemsRemoved, libraryUpdateInfo.itemsRemoved) && + Objects.equals(this.itemsUpdated, libraryUpdateInfo.itemsUpdated) && + Objects.equals(this.collectionFolders, libraryUpdateInfo.collectionFolders) && + Objects.equals(this.isEmpty, libraryUpdateInfo.isEmpty); + } + + @Override + public int hashCode() { + return Objects.hash(foldersAddedTo, foldersRemovedFrom, itemsAdded, itemsRemoved, itemsUpdated, collectionFolders, isEmpty); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryUpdateInfo {\n"); + sb.append(" foldersAddedTo: ").append(toIndentedString(foldersAddedTo)).append("\n"); + sb.append(" foldersRemovedFrom: ").append(toIndentedString(foldersRemovedFrom)).append("\n"); + sb.append(" itemsAdded: ").append(toIndentedString(itemsAdded)).append("\n"); + sb.append(" itemsRemoved: ").append(toIndentedString(itemsRemoved)).append("\n"); + sb.append(" itemsUpdated: ").append(toIndentedString(itemsUpdated)).append("\n"); + sb.append(" collectionFolders: ").append(toIndentedString(collectionFolders)).append("\n"); + sb.append(" isEmpty: ").append(toIndentedString(isEmpty)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FoldersAddedTo"); + openapiFields.add("FoldersRemovedFrom"); + openapiFields.add("ItemsAdded"); + openapiFields.add("ItemsRemoved"); + openapiFields.add("ItemsUpdated"); + openapiFields.add("CollectionFolders"); + openapiFields.add("IsEmpty"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryUpdateInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryUpdateInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryUpdateInfo is not found in the empty JSON string", LibraryUpdateInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryUpdateInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryUpdateInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("FoldersAddedTo") != null && !jsonObj.get("FoldersAddedTo").isJsonNull() && !jsonObj.get("FoldersAddedTo").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `FoldersAddedTo` to be an array in the JSON string but got `%s`", jsonObj.get("FoldersAddedTo").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("FoldersRemovedFrom") != null && !jsonObj.get("FoldersRemovedFrom").isJsonNull() && !jsonObj.get("FoldersRemovedFrom").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `FoldersRemovedFrom` to be an array in the JSON string but got `%s`", jsonObj.get("FoldersRemovedFrom").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsAdded") != null && !jsonObj.get("ItemsAdded").isJsonNull() && !jsonObj.get("ItemsAdded").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsAdded` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsAdded").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsRemoved") != null && !jsonObj.get("ItemsRemoved").isJsonNull() && !jsonObj.get("ItemsRemoved").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsRemoved` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsRemoved").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsUpdated") != null && !jsonObj.get("ItemsUpdated").isJsonNull() && !jsonObj.get("ItemsUpdated").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsUpdated` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsUpdated").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("CollectionFolders") != null && !jsonObj.get("CollectionFolders").isJsonNull() && !jsonObj.get("CollectionFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CollectionFolders` to be an array in the JSON string but got `%s`", jsonObj.get("CollectionFolders").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryUpdateInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryUpdateInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryUpdateInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryUpdateInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryUpdateInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryUpdateInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryUpdateInfo + * @throws IOException if the JSON string is invalid with respect to LibraryUpdateInfo + */ + public static LibraryUpdateInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryUpdateInfo.class); + } + + /** + * Convert an instance of LibraryUpdateInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java new file mode 100644 index 0000000000000..163a7995afd4e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java @@ -0,0 +1,792 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ListingsProviderInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ListingsProviderInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_USERNAME = "Username"; + @SerializedName(SERIALIZED_NAME_USERNAME) + @javax.annotation.Nullable + private String username; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public static final String SERIALIZED_NAME_LISTINGS_ID = "ListingsId"; + @SerializedName(SERIALIZED_NAME_LISTINGS_ID) + @javax.annotation.Nullable + private String listingsId; + + public static final String SERIALIZED_NAME_ZIP_CODE = "ZipCode"; + @SerializedName(SERIALIZED_NAME_ZIP_CODE) + @javax.annotation.Nullable + private String zipCode; + + public static final String SERIALIZED_NAME_COUNTRY = "Country"; + @SerializedName(SERIALIZED_NAME_COUNTRY) + @javax.annotation.Nullable + private String country; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENABLED_TUNERS = "EnabledTuners"; + @SerializedName(SERIALIZED_NAME_ENABLED_TUNERS) + @javax.annotation.Nullable + private List enabledTuners; + + public static final String SERIALIZED_NAME_ENABLE_ALL_TUNERS = "EnableAllTuners"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_TUNERS) + @javax.annotation.Nullable + private Boolean enableAllTuners; + + public static final String SERIALIZED_NAME_NEWS_CATEGORIES = "NewsCategories"; + @SerializedName(SERIALIZED_NAME_NEWS_CATEGORIES) + @javax.annotation.Nullable + private List newsCategories; + + public static final String SERIALIZED_NAME_SPORTS_CATEGORIES = "SportsCategories"; + @SerializedName(SERIALIZED_NAME_SPORTS_CATEGORIES) + @javax.annotation.Nullable + private List sportsCategories; + + public static final String SERIALIZED_NAME_KIDS_CATEGORIES = "KidsCategories"; + @SerializedName(SERIALIZED_NAME_KIDS_CATEGORIES) + @javax.annotation.Nullable + private List kidsCategories; + + public static final String SERIALIZED_NAME_MOVIE_CATEGORIES = "MovieCategories"; + @SerializedName(SERIALIZED_NAME_MOVIE_CATEGORIES) + @javax.annotation.Nullable + private List movieCategories; + + public static final String SERIALIZED_NAME_CHANNEL_MAPPINGS = "ChannelMappings"; + @SerializedName(SERIALIZED_NAME_CHANNEL_MAPPINGS) + @javax.annotation.Nullable + private List channelMappings; + + public static final String SERIALIZED_NAME_MOVIE_PREFIX = "MoviePrefix"; + @SerializedName(SERIALIZED_NAME_MOVIE_PREFIX) + @javax.annotation.Nullable + private String moviePrefix; + + public static final String SERIALIZED_NAME_PREFERRED_LANGUAGE = "PreferredLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_LANGUAGE) + @javax.annotation.Nullable + private String preferredLanguage; + + public static final String SERIALIZED_NAME_USER_AGENT = "UserAgent"; + @SerializedName(SERIALIZED_NAME_USER_AGENT) + @javax.annotation.Nullable + private String userAgent; + + public ListingsProviderInfo() { + } + + public ListingsProviderInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public ListingsProviderInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ListingsProviderInfo username(@javax.annotation.Nullable String username) { + this.username = username; + return this; + } + + /** + * Get username + * @return username + */ + @javax.annotation.Nullable + public String getUsername() { + return username; + } + + public void setUsername(@javax.annotation.Nullable String username) { + this.username = username; + } + + + public ListingsProviderInfo password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Get password + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + public ListingsProviderInfo listingsId(@javax.annotation.Nullable String listingsId) { + this.listingsId = listingsId; + return this; + } + + /** + * Get listingsId + * @return listingsId + */ + @javax.annotation.Nullable + public String getListingsId() { + return listingsId; + } + + public void setListingsId(@javax.annotation.Nullable String listingsId) { + this.listingsId = listingsId; + } + + + public ListingsProviderInfo zipCode(@javax.annotation.Nullable String zipCode) { + this.zipCode = zipCode; + return this; + } + + /** + * Get zipCode + * @return zipCode + */ + @javax.annotation.Nullable + public String getZipCode() { + return zipCode; + } + + public void setZipCode(@javax.annotation.Nullable String zipCode) { + this.zipCode = zipCode; + } + + + public ListingsProviderInfo country(@javax.annotation.Nullable String country) { + this.country = country; + return this; + } + + /** + * Get country + * @return country + */ + @javax.annotation.Nullable + public String getCountry() { + return country; + } + + public void setCountry(@javax.annotation.Nullable String country) { + this.country = country; + } + + + public ListingsProviderInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ListingsProviderInfo enabledTuners(@javax.annotation.Nullable List enabledTuners) { + this.enabledTuners = enabledTuners; + return this; + } + + public ListingsProviderInfo addEnabledTunersItem(String enabledTunersItem) { + if (this.enabledTuners == null) { + this.enabledTuners = new ArrayList<>(); + } + this.enabledTuners.add(enabledTunersItem); + return this; + } + + /** + * Get enabledTuners + * @return enabledTuners + */ + @javax.annotation.Nullable + public List getEnabledTuners() { + return enabledTuners; + } + + public void setEnabledTuners(@javax.annotation.Nullable List enabledTuners) { + this.enabledTuners = enabledTuners; + } + + + public ListingsProviderInfo enableAllTuners(@javax.annotation.Nullable Boolean enableAllTuners) { + this.enableAllTuners = enableAllTuners; + return this; + } + + /** + * Get enableAllTuners + * @return enableAllTuners + */ + @javax.annotation.Nullable + public Boolean getEnableAllTuners() { + return enableAllTuners; + } + + public void setEnableAllTuners(@javax.annotation.Nullable Boolean enableAllTuners) { + this.enableAllTuners = enableAllTuners; + } + + + public ListingsProviderInfo newsCategories(@javax.annotation.Nullable List newsCategories) { + this.newsCategories = newsCategories; + return this; + } + + public ListingsProviderInfo addNewsCategoriesItem(String newsCategoriesItem) { + if (this.newsCategories == null) { + this.newsCategories = new ArrayList<>(); + } + this.newsCategories.add(newsCategoriesItem); + return this; + } + + /** + * Get newsCategories + * @return newsCategories + */ + @javax.annotation.Nullable + public List getNewsCategories() { + return newsCategories; + } + + public void setNewsCategories(@javax.annotation.Nullable List newsCategories) { + this.newsCategories = newsCategories; + } + + + public ListingsProviderInfo sportsCategories(@javax.annotation.Nullable List sportsCategories) { + this.sportsCategories = sportsCategories; + return this; + } + + public ListingsProviderInfo addSportsCategoriesItem(String sportsCategoriesItem) { + if (this.sportsCategories == null) { + this.sportsCategories = new ArrayList<>(); + } + this.sportsCategories.add(sportsCategoriesItem); + return this; + } + + /** + * Get sportsCategories + * @return sportsCategories + */ + @javax.annotation.Nullable + public List getSportsCategories() { + return sportsCategories; + } + + public void setSportsCategories(@javax.annotation.Nullable List sportsCategories) { + this.sportsCategories = sportsCategories; + } + + + public ListingsProviderInfo kidsCategories(@javax.annotation.Nullable List kidsCategories) { + this.kidsCategories = kidsCategories; + return this; + } + + public ListingsProviderInfo addKidsCategoriesItem(String kidsCategoriesItem) { + if (this.kidsCategories == null) { + this.kidsCategories = new ArrayList<>(); + } + this.kidsCategories.add(kidsCategoriesItem); + return this; + } + + /** + * Get kidsCategories + * @return kidsCategories + */ + @javax.annotation.Nullable + public List getKidsCategories() { + return kidsCategories; + } + + public void setKidsCategories(@javax.annotation.Nullable List kidsCategories) { + this.kidsCategories = kidsCategories; + } + + + public ListingsProviderInfo movieCategories(@javax.annotation.Nullable List movieCategories) { + this.movieCategories = movieCategories; + return this; + } + + public ListingsProviderInfo addMovieCategoriesItem(String movieCategoriesItem) { + if (this.movieCategories == null) { + this.movieCategories = new ArrayList<>(); + } + this.movieCategories.add(movieCategoriesItem); + return this; + } + + /** + * Get movieCategories + * @return movieCategories + */ + @javax.annotation.Nullable + public List getMovieCategories() { + return movieCategories; + } + + public void setMovieCategories(@javax.annotation.Nullable List movieCategories) { + this.movieCategories = movieCategories; + } + + + public ListingsProviderInfo channelMappings(@javax.annotation.Nullable List channelMappings) { + this.channelMappings = channelMappings; + return this; + } + + public ListingsProviderInfo addChannelMappingsItem(NameValuePair channelMappingsItem) { + if (this.channelMappings == null) { + this.channelMappings = new ArrayList<>(); + } + this.channelMappings.add(channelMappingsItem); + return this; + } + + /** + * Get channelMappings + * @return channelMappings + */ + @javax.annotation.Nullable + public List getChannelMappings() { + return channelMappings; + } + + public void setChannelMappings(@javax.annotation.Nullable List channelMappings) { + this.channelMappings = channelMappings; + } + + + public ListingsProviderInfo moviePrefix(@javax.annotation.Nullable String moviePrefix) { + this.moviePrefix = moviePrefix; + return this; + } + + /** + * Get moviePrefix + * @return moviePrefix + */ + @javax.annotation.Nullable + public String getMoviePrefix() { + return moviePrefix; + } + + public void setMoviePrefix(@javax.annotation.Nullable String moviePrefix) { + this.moviePrefix = moviePrefix; + } + + + public ListingsProviderInfo preferredLanguage(@javax.annotation.Nullable String preferredLanguage) { + this.preferredLanguage = preferredLanguage; + return this; + } + + /** + * Get preferredLanguage + * @return preferredLanguage + */ + @javax.annotation.Nullable + public String getPreferredLanguage() { + return preferredLanguage; + } + + public void setPreferredLanguage(@javax.annotation.Nullable String preferredLanguage) { + this.preferredLanguage = preferredLanguage; + } + + + public ListingsProviderInfo userAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * Get userAgent + * @return userAgent + */ + @javax.annotation.Nullable + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListingsProviderInfo listingsProviderInfo = (ListingsProviderInfo) o; + return Objects.equals(this.id, listingsProviderInfo.id) && + Objects.equals(this.type, listingsProviderInfo.type) && + Objects.equals(this.username, listingsProviderInfo.username) && + Objects.equals(this.password, listingsProviderInfo.password) && + Objects.equals(this.listingsId, listingsProviderInfo.listingsId) && + Objects.equals(this.zipCode, listingsProviderInfo.zipCode) && + Objects.equals(this.country, listingsProviderInfo.country) && + Objects.equals(this.path, listingsProviderInfo.path) && + Objects.equals(this.enabledTuners, listingsProviderInfo.enabledTuners) && + Objects.equals(this.enableAllTuners, listingsProviderInfo.enableAllTuners) && + Objects.equals(this.newsCategories, listingsProviderInfo.newsCategories) && + Objects.equals(this.sportsCategories, listingsProviderInfo.sportsCategories) && + Objects.equals(this.kidsCategories, listingsProviderInfo.kidsCategories) && + Objects.equals(this.movieCategories, listingsProviderInfo.movieCategories) && + Objects.equals(this.channelMappings, listingsProviderInfo.channelMappings) && + Objects.equals(this.moviePrefix, listingsProviderInfo.moviePrefix) && + Objects.equals(this.preferredLanguage, listingsProviderInfo.preferredLanguage) && + Objects.equals(this.userAgent, listingsProviderInfo.userAgent); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, username, password, listingsId, zipCode, country, path, enabledTuners, enableAllTuners, newsCategories, sportsCategories, kidsCategories, movieCategories, channelMappings, moviePrefix, preferredLanguage, userAgent); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListingsProviderInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append(" listingsId: ").append(toIndentedString(listingsId)).append("\n"); + sb.append(" zipCode: ").append(toIndentedString(zipCode)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" enabledTuners: ").append(toIndentedString(enabledTuners)).append("\n"); + sb.append(" enableAllTuners: ").append(toIndentedString(enableAllTuners)).append("\n"); + sb.append(" newsCategories: ").append(toIndentedString(newsCategories)).append("\n"); + sb.append(" sportsCategories: ").append(toIndentedString(sportsCategories)).append("\n"); + sb.append(" kidsCategories: ").append(toIndentedString(kidsCategories)).append("\n"); + sb.append(" movieCategories: ").append(toIndentedString(movieCategories)).append("\n"); + sb.append(" channelMappings: ").append(toIndentedString(channelMappings)).append("\n"); + sb.append(" moviePrefix: ").append(toIndentedString(moviePrefix)).append("\n"); + sb.append(" preferredLanguage: ").append(toIndentedString(preferredLanguage)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("Username"); + openapiFields.add("Password"); + openapiFields.add("ListingsId"); + openapiFields.add("ZipCode"); + openapiFields.add("Country"); + openapiFields.add("Path"); + openapiFields.add("EnabledTuners"); + openapiFields.add("EnableAllTuners"); + openapiFields.add("NewsCategories"); + openapiFields.add("SportsCategories"); + openapiFields.add("KidsCategories"); + openapiFields.add("MovieCategories"); + openapiFields.add("ChannelMappings"); + openapiFields.add("MoviePrefix"); + openapiFields.add("PreferredLanguage"); + openapiFields.add("UserAgent"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ListingsProviderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ListingsProviderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ListingsProviderInfo is not found in the empty JSON string", ListingsProviderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ListingsProviderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ListingsProviderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("Username") != null && !jsonObj.get("Username").isJsonNull()) && !jsonObj.get("Username").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Username` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Username").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + if ((jsonObj.get("ListingsId") != null && !jsonObj.get("ListingsId").isJsonNull()) && !jsonObj.get("ListingsId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ListingsId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ListingsId").toString())); + } + if ((jsonObj.get("ZipCode") != null && !jsonObj.get("ZipCode").isJsonNull()) && !jsonObj.get("ZipCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ZipCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ZipCode").toString())); + } + if ((jsonObj.get("Country") != null && !jsonObj.get("Country").isJsonNull()) && !jsonObj.get("Country").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Country` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Country").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledTuners") != null && !jsonObj.get("EnabledTuners").isJsonNull() && !jsonObj.get("EnabledTuners").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledTuners` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledTuners").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("NewsCategories") != null && !jsonObj.get("NewsCategories").isJsonNull() && !jsonObj.get("NewsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NewsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("NewsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SportsCategories") != null && !jsonObj.get("SportsCategories").isJsonNull() && !jsonObj.get("SportsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SportsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("SportsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("KidsCategories") != null && !jsonObj.get("KidsCategories").isJsonNull() && !jsonObj.get("KidsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `KidsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("KidsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MovieCategories") != null && !jsonObj.get("MovieCategories").isJsonNull() && !jsonObj.get("MovieCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MovieCategories` to be an array in the JSON string but got `%s`", jsonObj.get("MovieCategories").toString())); + } + if (jsonObj.get("ChannelMappings") != null && !jsonObj.get("ChannelMappings").isJsonNull()) { + JsonArray jsonArraychannelMappings = jsonObj.getAsJsonArray("ChannelMappings"); + if (jsonArraychannelMappings != null) { + // ensure the json data is an array + if (!jsonObj.get("ChannelMappings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelMappings` to be an array in the JSON string but got `%s`", jsonObj.get("ChannelMappings").toString())); + } + + // validate the optional field `ChannelMappings` (array) + for (int i = 0; i < jsonArraychannelMappings.size(); i++) { + NameValuePair.validateJsonElement(jsonArraychannelMappings.get(i)); + }; + } + } + if ((jsonObj.get("MoviePrefix") != null && !jsonObj.get("MoviePrefix").isJsonNull()) && !jsonObj.get("MoviePrefix").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MoviePrefix` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MoviePrefix").toString())); + } + if ((jsonObj.get("PreferredLanguage") != null && !jsonObj.get("PreferredLanguage").isJsonNull()) && !jsonObj.get("PreferredLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredLanguage").toString())); + } + if ((jsonObj.get("UserAgent") != null && !jsonObj.get("UserAgent").isJsonNull()) && !jsonObj.get("UserAgent").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserAgent` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserAgent").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ListingsProviderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ListingsProviderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ListingsProviderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ListingsProviderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ListingsProviderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ListingsProviderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ListingsProviderInfo + * @throws IOException if the JSON string is invalid with respect to ListingsProviderInfo + */ + public static ListingsProviderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ListingsProviderInfo.class); + } + + /** + * Convert an instance of ListingsProviderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveStreamResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveStreamResponse.java new file mode 100644 index 0000000000000..a60771a9a10fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveStreamResponse.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaSourceInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveStreamResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveStreamResponse { + public static final String SERIALIZED_NAME_MEDIA_SOURCE = "MediaSource"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE) + @javax.annotation.Nullable + private MediaSourceInfo mediaSource; + + public LiveStreamResponse() { + } + + public LiveStreamResponse mediaSource(@javax.annotation.Nullable MediaSourceInfo mediaSource) { + this.mediaSource = mediaSource; + return this; + } + + /** + * Get mediaSource + * @return mediaSource + */ + @javax.annotation.Nullable + public MediaSourceInfo getMediaSource() { + return mediaSource; + } + + public void setMediaSource(@javax.annotation.Nullable MediaSourceInfo mediaSource) { + this.mediaSource = mediaSource; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveStreamResponse liveStreamResponse = (LiveStreamResponse) o; + return Objects.equals(this.mediaSource, liveStreamResponse.mediaSource); + } + + @Override + public int hashCode() { + return Objects.hash(mediaSource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveStreamResponse {\n"); + sb.append(" mediaSource: ").append(toIndentedString(mediaSource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MediaSource"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveStreamResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveStreamResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveStreamResponse is not found in the empty JSON string", LiveStreamResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveStreamResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveStreamResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MediaSource` + if (jsonObj.get("MediaSource") != null && !jsonObj.get("MediaSource").isJsonNull()) { + MediaSourceInfo.validateJsonElement(jsonObj.get("MediaSource")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveStreamResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveStreamResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveStreamResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveStreamResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveStreamResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveStreamResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveStreamResponse + * @throws IOException if the JSON string is invalid with respect to LiveStreamResponse + */ + public static LiveStreamResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveStreamResponse.class); + } + + /** + * Convert an instance of LiveStreamResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvInfo.java new file mode 100644 index 0000000000000..b989a16fbda02 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvInfo.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LiveTvServiceInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveTvInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvInfo { + public static final String SERIALIZED_NAME_SERVICES = "Services"; + @SerializedName(SERIALIZED_NAME_SERVICES) + @javax.annotation.Nullable + private List services = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_ENABLED = "IsEnabled"; + @SerializedName(SERIALIZED_NAME_IS_ENABLED) + @javax.annotation.Nullable + private Boolean isEnabled; + + public static final String SERIALIZED_NAME_ENABLED_USERS = "EnabledUsers"; + @SerializedName(SERIALIZED_NAME_ENABLED_USERS) + @javax.annotation.Nullable + private List enabledUsers = new ArrayList<>(); + + public LiveTvInfo() { + } + + public LiveTvInfo services(@javax.annotation.Nullable List services) { + this.services = services; + return this; + } + + public LiveTvInfo addServicesItem(LiveTvServiceInfo servicesItem) { + if (this.services == null) { + this.services = new ArrayList<>(); + } + this.services.add(servicesItem); + return this; + } + + /** + * Gets or sets the services. + * @return services + */ + @javax.annotation.Nullable + public List getServices() { + return services; + } + + public void setServices(@javax.annotation.Nullable List services) { + this.services = services; + } + + + public LiveTvInfo isEnabled(@javax.annotation.Nullable Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is enabled. + * @return isEnabled + */ + @javax.annotation.Nullable + public Boolean getIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(@javax.annotation.Nullable Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + + public LiveTvInfo enabledUsers(@javax.annotation.Nullable List enabledUsers) { + this.enabledUsers = enabledUsers; + return this; + } + + public LiveTvInfo addEnabledUsersItem(String enabledUsersItem) { + if (this.enabledUsers == null) { + this.enabledUsers = new ArrayList<>(); + } + this.enabledUsers.add(enabledUsersItem); + return this; + } + + /** + * Gets or sets the enabled users. + * @return enabledUsers + */ + @javax.annotation.Nullable + public List getEnabledUsers() { + return enabledUsers; + } + + public void setEnabledUsers(@javax.annotation.Nullable List enabledUsers) { + this.enabledUsers = enabledUsers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvInfo liveTvInfo = (LiveTvInfo) o; + return Objects.equals(this.services, liveTvInfo.services) && + Objects.equals(this.isEnabled, liveTvInfo.isEnabled) && + Objects.equals(this.enabledUsers, liveTvInfo.enabledUsers); + } + + @Override + public int hashCode() { + return Objects.hash(services, isEnabled, enabledUsers); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvInfo {\n"); + sb.append(" services: ").append(toIndentedString(services)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" enabledUsers: ").append(toIndentedString(enabledUsers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Services"); + openapiFields.add("IsEnabled"); + openapiFields.add("EnabledUsers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvInfo is not found in the empty JSON string", LiveTvInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Services") != null && !jsonObj.get("Services").isJsonNull()) { + JsonArray jsonArrayservices = jsonObj.getAsJsonArray("Services"); + if (jsonArrayservices != null) { + // ensure the json data is an array + if (!jsonObj.get("Services").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Services` to be an array in the JSON string but got `%s`", jsonObj.get("Services").toString())); + } + + // validate the optional field `Services` (array) + for (int i = 0; i < jsonArrayservices.size(); i++) { + LiveTvServiceInfo.validateJsonElement(jsonArrayservices.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledUsers") != null && !jsonObj.get("EnabledUsers").isJsonNull() && !jsonObj.get("EnabledUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledUsers` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledUsers").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvInfo + * @throws IOException if the JSON string is invalid with respect to LiveTvInfo + */ + public static LiveTvInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvInfo.class); + } + + /** + * Convert an instance of LiveTvInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvOptions.java new file mode 100644 index 0000000000000..67fec57c3736c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvOptions.java @@ -0,0 +1,668 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ListingsProviderInfo; +import org.openapitools.client.model.TunerHostInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveTvOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvOptions { + public static final String SERIALIZED_NAME_GUIDE_DAYS = "GuideDays"; + @SerializedName(SERIALIZED_NAME_GUIDE_DAYS) + @javax.annotation.Nullable + private Integer guideDays; + + public static final String SERIALIZED_NAME_RECORDING_PATH = "RecordingPath"; + @SerializedName(SERIALIZED_NAME_RECORDING_PATH) + @javax.annotation.Nullable + private String recordingPath; + + public static final String SERIALIZED_NAME_MOVIE_RECORDING_PATH = "MovieRecordingPath"; + @SerializedName(SERIALIZED_NAME_MOVIE_RECORDING_PATH) + @javax.annotation.Nullable + private String movieRecordingPath; + + public static final String SERIALIZED_NAME_SERIES_RECORDING_PATH = "SeriesRecordingPath"; + @SerializedName(SERIALIZED_NAME_SERIES_RECORDING_PATH) + @javax.annotation.Nullable + private String seriesRecordingPath; + + public static final String SERIALIZED_NAME_ENABLE_RECORDING_SUBFOLDERS = "EnableRecordingSubfolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_RECORDING_SUBFOLDERS) + @javax.annotation.Nullable + private Boolean enableRecordingSubfolders; + + public static final String SERIALIZED_NAME_ENABLE_ORIGINAL_AUDIO_WITH_ENCODED_RECORDINGS = "EnableOriginalAudioWithEncodedRecordings"; + @SerializedName(SERIALIZED_NAME_ENABLE_ORIGINAL_AUDIO_WITH_ENCODED_RECORDINGS) + @javax.annotation.Nullable + private Boolean enableOriginalAudioWithEncodedRecordings; + + public static final String SERIALIZED_NAME_TUNER_HOSTS = "TunerHosts"; + @SerializedName(SERIALIZED_NAME_TUNER_HOSTS) + @javax.annotation.Nullable + private List tunerHosts; + + public static final String SERIALIZED_NAME_LISTING_PROVIDERS = "ListingProviders"; + @SerializedName(SERIALIZED_NAME_LISTING_PROVIDERS) + @javax.annotation.Nullable + private List listingProviders; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_MEDIA_LOCATIONS_CREATED = "MediaLocationsCreated"; + @SerializedName(SERIALIZED_NAME_MEDIA_LOCATIONS_CREATED) + @javax.annotation.Nullable + private List mediaLocationsCreated; + + public static final String SERIALIZED_NAME_RECORDING_POST_PROCESSOR = "RecordingPostProcessor"; + @SerializedName(SERIALIZED_NAME_RECORDING_POST_PROCESSOR) + @javax.annotation.Nullable + private String recordingPostProcessor; + + public static final String SERIALIZED_NAME_RECORDING_POST_PROCESSOR_ARGUMENTS = "RecordingPostProcessorArguments"; + @SerializedName(SERIALIZED_NAME_RECORDING_POST_PROCESSOR_ARGUMENTS) + @javax.annotation.Nullable + private String recordingPostProcessorArguments; + + public static final String SERIALIZED_NAME_SAVE_RECORDING_N_F_O = "SaveRecordingNFO"; + @SerializedName(SERIALIZED_NAME_SAVE_RECORDING_N_F_O) + @javax.annotation.Nullable + private Boolean saveRecordingNFO; + + public static final String SERIALIZED_NAME_SAVE_RECORDING_IMAGES = "SaveRecordingImages"; + @SerializedName(SERIALIZED_NAME_SAVE_RECORDING_IMAGES) + @javax.annotation.Nullable + private Boolean saveRecordingImages; + + public LiveTvOptions() { + } + + public LiveTvOptions guideDays(@javax.annotation.Nullable Integer guideDays) { + this.guideDays = guideDays; + return this; + } + + /** + * Get guideDays + * @return guideDays + */ + @javax.annotation.Nullable + public Integer getGuideDays() { + return guideDays; + } + + public void setGuideDays(@javax.annotation.Nullable Integer guideDays) { + this.guideDays = guideDays; + } + + + public LiveTvOptions recordingPath(@javax.annotation.Nullable String recordingPath) { + this.recordingPath = recordingPath; + return this; + } + + /** + * Get recordingPath + * @return recordingPath + */ + @javax.annotation.Nullable + public String getRecordingPath() { + return recordingPath; + } + + public void setRecordingPath(@javax.annotation.Nullable String recordingPath) { + this.recordingPath = recordingPath; + } + + + public LiveTvOptions movieRecordingPath(@javax.annotation.Nullable String movieRecordingPath) { + this.movieRecordingPath = movieRecordingPath; + return this; + } + + /** + * Get movieRecordingPath + * @return movieRecordingPath + */ + @javax.annotation.Nullable + public String getMovieRecordingPath() { + return movieRecordingPath; + } + + public void setMovieRecordingPath(@javax.annotation.Nullable String movieRecordingPath) { + this.movieRecordingPath = movieRecordingPath; + } + + + public LiveTvOptions seriesRecordingPath(@javax.annotation.Nullable String seriesRecordingPath) { + this.seriesRecordingPath = seriesRecordingPath; + return this; + } + + /** + * Get seriesRecordingPath + * @return seriesRecordingPath + */ + @javax.annotation.Nullable + public String getSeriesRecordingPath() { + return seriesRecordingPath; + } + + public void setSeriesRecordingPath(@javax.annotation.Nullable String seriesRecordingPath) { + this.seriesRecordingPath = seriesRecordingPath; + } + + + public LiveTvOptions enableRecordingSubfolders(@javax.annotation.Nullable Boolean enableRecordingSubfolders) { + this.enableRecordingSubfolders = enableRecordingSubfolders; + return this; + } + + /** + * Get enableRecordingSubfolders + * @return enableRecordingSubfolders + */ + @javax.annotation.Nullable + public Boolean getEnableRecordingSubfolders() { + return enableRecordingSubfolders; + } + + public void setEnableRecordingSubfolders(@javax.annotation.Nullable Boolean enableRecordingSubfolders) { + this.enableRecordingSubfolders = enableRecordingSubfolders; + } + + + public LiveTvOptions enableOriginalAudioWithEncodedRecordings(@javax.annotation.Nullable Boolean enableOriginalAudioWithEncodedRecordings) { + this.enableOriginalAudioWithEncodedRecordings = enableOriginalAudioWithEncodedRecordings; + return this; + } + + /** + * Get enableOriginalAudioWithEncodedRecordings + * @return enableOriginalAudioWithEncodedRecordings + */ + @javax.annotation.Nullable + public Boolean getEnableOriginalAudioWithEncodedRecordings() { + return enableOriginalAudioWithEncodedRecordings; + } + + public void setEnableOriginalAudioWithEncodedRecordings(@javax.annotation.Nullable Boolean enableOriginalAudioWithEncodedRecordings) { + this.enableOriginalAudioWithEncodedRecordings = enableOriginalAudioWithEncodedRecordings; + } + + + public LiveTvOptions tunerHosts(@javax.annotation.Nullable List tunerHosts) { + this.tunerHosts = tunerHosts; + return this; + } + + public LiveTvOptions addTunerHostsItem(TunerHostInfo tunerHostsItem) { + if (this.tunerHosts == null) { + this.tunerHosts = new ArrayList<>(); + } + this.tunerHosts.add(tunerHostsItem); + return this; + } + + /** + * Get tunerHosts + * @return tunerHosts + */ + @javax.annotation.Nullable + public List getTunerHosts() { + return tunerHosts; + } + + public void setTunerHosts(@javax.annotation.Nullable List tunerHosts) { + this.tunerHosts = tunerHosts; + } + + + public LiveTvOptions listingProviders(@javax.annotation.Nullable List listingProviders) { + this.listingProviders = listingProviders; + return this; + } + + public LiveTvOptions addListingProvidersItem(ListingsProviderInfo listingProvidersItem) { + if (this.listingProviders == null) { + this.listingProviders = new ArrayList<>(); + } + this.listingProviders.add(listingProvidersItem); + return this; + } + + /** + * Get listingProviders + * @return listingProviders + */ + @javax.annotation.Nullable + public List getListingProviders() { + return listingProviders; + } + + public void setListingProviders(@javax.annotation.Nullable List listingProviders) { + this.listingProviders = listingProviders; + } + + + public LiveTvOptions prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Get prePaddingSeconds + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public LiveTvOptions postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Get postPaddingSeconds + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public LiveTvOptions mediaLocationsCreated(@javax.annotation.Nullable List mediaLocationsCreated) { + this.mediaLocationsCreated = mediaLocationsCreated; + return this; + } + + public LiveTvOptions addMediaLocationsCreatedItem(String mediaLocationsCreatedItem) { + if (this.mediaLocationsCreated == null) { + this.mediaLocationsCreated = new ArrayList<>(); + } + this.mediaLocationsCreated.add(mediaLocationsCreatedItem); + return this; + } + + /** + * Get mediaLocationsCreated + * @return mediaLocationsCreated + */ + @javax.annotation.Nullable + public List getMediaLocationsCreated() { + return mediaLocationsCreated; + } + + public void setMediaLocationsCreated(@javax.annotation.Nullable List mediaLocationsCreated) { + this.mediaLocationsCreated = mediaLocationsCreated; + } + + + public LiveTvOptions recordingPostProcessor(@javax.annotation.Nullable String recordingPostProcessor) { + this.recordingPostProcessor = recordingPostProcessor; + return this; + } + + /** + * Get recordingPostProcessor + * @return recordingPostProcessor + */ + @javax.annotation.Nullable + public String getRecordingPostProcessor() { + return recordingPostProcessor; + } + + public void setRecordingPostProcessor(@javax.annotation.Nullable String recordingPostProcessor) { + this.recordingPostProcessor = recordingPostProcessor; + } + + + public LiveTvOptions recordingPostProcessorArguments(@javax.annotation.Nullable String recordingPostProcessorArguments) { + this.recordingPostProcessorArguments = recordingPostProcessorArguments; + return this; + } + + /** + * Get recordingPostProcessorArguments + * @return recordingPostProcessorArguments + */ + @javax.annotation.Nullable + public String getRecordingPostProcessorArguments() { + return recordingPostProcessorArguments; + } + + public void setRecordingPostProcessorArguments(@javax.annotation.Nullable String recordingPostProcessorArguments) { + this.recordingPostProcessorArguments = recordingPostProcessorArguments; + } + + + public LiveTvOptions saveRecordingNFO(@javax.annotation.Nullable Boolean saveRecordingNFO) { + this.saveRecordingNFO = saveRecordingNFO; + return this; + } + + /** + * Get saveRecordingNFO + * @return saveRecordingNFO + */ + @javax.annotation.Nullable + public Boolean getSaveRecordingNFO() { + return saveRecordingNFO; + } + + public void setSaveRecordingNFO(@javax.annotation.Nullable Boolean saveRecordingNFO) { + this.saveRecordingNFO = saveRecordingNFO; + } + + + public LiveTvOptions saveRecordingImages(@javax.annotation.Nullable Boolean saveRecordingImages) { + this.saveRecordingImages = saveRecordingImages; + return this; + } + + /** + * Get saveRecordingImages + * @return saveRecordingImages + */ + @javax.annotation.Nullable + public Boolean getSaveRecordingImages() { + return saveRecordingImages; + } + + public void setSaveRecordingImages(@javax.annotation.Nullable Boolean saveRecordingImages) { + this.saveRecordingImages = saveRecordingImages; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvOptions liveTvOptions = (LiveTvOptions) o; + return Objects.equals(this.guideDays, liveTvOptions.guideDays) && + Objects.equals(this.recordingPath, liveTvOptions.recordingPath) && + Objects.equals(this.movieRecordingPath, liveTvOptions.movieRecordingPath) && + Objects.equals(this.seriesRecordingPath, liveTvOptions.seriesRecordingPath) && + Objects.equals(this.enableRecordingSubfolders, liveTvOptions.enableRecordingSubfolders) && + Objects.equals(this.enableOriginalAudioWithEncodedRecordings, liveTvOptions.enableOriginalAudioWithEncodedRecordings) && + Objects.equals(this.tunerHosts, liveTvOptions.tunerHosts) && + Objects.equals(this.listingProviders, liveTvOptions.listingProviders) && + Objects.equals(this.prePaddingSeconds, liveTvOptions.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, liveTvOptions.postPaddingSeconds) && + Objects.equals(this.mediaLocationsCreated, liveTvOptions.mediaLocationsCreated) && + Objects.equals(this.recordingPostProcessor, liveTvOptions.recordingPostProcessor) && + Objects.equals(this.recordingPostProcessorArguments, liveTvOptions.recordingPostProcessorArguments) && + Objects.equals(this.saveRecordingNFO, liveTvOptions.saveRecordingNFO) && + Objects.equals(this.saveRecordingImages, liveTvOptions.saveRecordingImages); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(guideDays, recordingPath, movieRecordingPath, seriesRecordingPath, enableRecordingSubfolders, enableOriginalAudioWithEncodedRecordings, tunerHosts, listingProviders, prePaddingSeconds, postPaddingSeconds, mediaLocationsCreated, recordingPostProcessor, recordingPostProcessorArguments, saveRecordingNFO, saveRecordingImages); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvOptions {\n"); + sb.append(" guideDays: ").append(toIndentedString(guideDays)).append("\n"); + sb.append(" recordingPath: ").append(toIndentedString(recordingPath)).append("\n"); + sb.append(" movieRecordingPath: ").append(toIndentedString(movieRecordingPath)).append("\n"); + sb.append(" seriesRecordingPath: ").append(toIndentedString(seriesRecordingPath)).append("\n"); + sb.append(" enableRecordingSubfolders: ").append(toIndentedString(enableRecordingSubfolders)).append("\n"); + sb.append(" enableOriginalAudioWithEncodedRecordings: ").append(toIndentedString(enableOriginalAudioWithEncodedRecordings)).append("\n"); + sb.append(" tunerHosts: ").append(toIndentedString(tunerHosts)).append("\n"); + sb.append(" listingProviders: ").append(toIndentedString(listingProviders)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" mediaLocationsCreated: ").append(toIndentedString(mediaLocationsCreated)).append("\n"); + sb.append(" recordingPostProcessor: ").append(toIndentedString(recordingPostProcessor)).append("\n"); + sb.append(" recordingPostProcessorArguments: ").append(toIndentedString(recordingPostProcessorArguments)).append("\n"); + sb.append(" saveRecordingNFO: ").append(toIndentedString(saveRecordingNFO)).append("\n"); + sb.append(" saveRecordingImages: ").append(toIndentedString(saveRecordingImages)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GuideDays"); + openapiFields.add("RecordingPath"); + openapiFields.add("MovieRecordingPath"); + openapiFields.add("SeriesRecordingPath"); + openapiFields.add("EnableRecordingSubfolders"); + openapiFields.add("EnableOriginalAudioWithEncodedRecordings"); + openapiFields.add("TunerHosts"); + openapiFields.add("ListingProviders"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("MediaLocationsCreated"); + openapiFields.add("RecordingPostProcessor"); + openapiFields.add("RecordingPostProcessorArguments"); + openapiFields.add("SaveRecordingNFO"); + openapiFields.add("SaveRecordingImages"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvOptions is not found in the empty JSON string", LiveTvOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("RecordingPath") != null && !jsonObj.get("RecordingPath").isJsonNull()) && !jsonObj.get("RecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPath").toString())); + } + if ((jsonObj.get("MovieRecordingPath") != null && !jsonObj.get("MovieRecordingPath").isJsonNull()) && !jsonObj.get("MovieRecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MovieRecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MovieRecordingPath").toString())); + } + if ((jsonObj.get("SeriesRecordingPath") != null && !jsonObj.get("SeriesRecordingPath").isJsonNull()) && !jsonObj.get("SeriesRecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesRecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesRecordingPath").toString())); + } + if (jsonObj.get("TunerHosts") != null && !jsonObj.get("TunerHosts").isJsonNull()) { + JsonArray jsonArraytunerHosts = jsonObj.getAsJsonArray("TunerHosts"); + if (jsonArraytunerHosts != null) { + // ensure the json data is an array + if (!jsonObj.get("TunerHosts").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerHosts` to be an array in the JSON string but got `%s`", jsonObj.get("TunerHosts").toString())); + } + + // validate the optional field `TunerHosts` (array) + for (int i = 0; i < jsonArraytunerHosts.size(); i++) { + TunerHostInfo.validateJsonElement(jsonArraytunerHosts.get(i)); + }; + } + } + if (jsonObj.get("ListingProviders") != null && !jsonObj.get("ListingProviders").isJsonNull()) { + JsonArray jsonArraylistingProviders = jsonObj.getAsJsonArray("ListingProviders"); + if (jsonArraylistingProviders != null) { + // ensure the json data is an array + if (!jsonObj.get("ListingProviders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ListingProviders` to be an array in the JSON string but got `%s`", jsonObj.get("ListingProviders").toString())); + } + + // validate the optional field `ListingProviders` (array) + for (int i = 0; i < jsonArraylistingProviders.size(); i++) { + ListingsProviderInfo.validateJsonElement(jsonArraylistingProviders.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("MediaLocationsCreated") != null && !jsonObj.get("MediaLocationsCreated").isJsonNull() && !jsonObj.get("MediaLocationsCreated").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaLocationsCreated` to be an array in the JSON string but got `%s`", jsonObj.get("MediaLocationsCreated").toString())); + } + if ((jsonObj.get("RecordingPostProcessor") != null && !jsonObj.get("RecordingPostProcessor").isJsonNull()) && !jsonObj.get("RecordingPostProcessor").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPostProcessor` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPostProcessor").toString())); + } + if ((jsonObj.get("RecordingPostProcessorArguments") != null && !jsonObj.get("RecordingPostProcessorArguments").isJsonNull()) && !jsonObj.get("RecordingPostProcessorArguments").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPostProcessorArguments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPostProcessorArguments").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvOptions + * @throws IOException if the JSON string is invalid with respect to LiveTvOptions + */ + public static LiveTvOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvOptions.class); + } + + /** + * Convert an instance of LiveTvOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java new file mode 100644 index 0000000000000..3ae350d1ac893 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java @@ -0,0 +1,435 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LiveTvServiceStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ServiceInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvServiceInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_HOME_PAGE_URL = "HomePageUrl"; + @SerializedName(SERIALIZED_NAME_HOME_PAGE_URL) + @javax.annotation.Nullable + private String homePageUrl; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private LiveTvServiceStatus status; + + public static final String SERIALIZED_NAME_STATUS_MESSAGE = "StatusMessage"; + @SerializedName(SERIALIZED_NAME_STATUS_MESSAGE) + @javax.annotation.Nullable + private String statusMessage; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_HAS_UPDATE_AVAILABLE = "HasUpdateAvailable"; + @SerializedName(SERIALIZED_NAME_HAS_UPDATE_AVAILABLE) + @javax.annotation.Nullable + private Boolean hasUpdateAvailable; + + public static final String SERIALIZED_NAME_IS_VISIBLE = "IsVisible"; + @SerializedName(SERIALIZED_NAME_IS_VISIBLE) + @javax.annotation.Nullable + private Boolean isVisible; + + public static final String SERIALIZED_NAME_TUNERS = "Tuners"; + @SerializedName(SERIALIZED_NAME_TUNERS) + @javax.annotation.Nullable + private List tuners; + + public LiveTvServiceInfo() { + } + + public LiveTvServiceInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LiveTvServiceInfo homePageUrl(@javax.annotation.Nullable String homePageUrl) { + this.homePageUrl = homePageUrl; + return this; + } + + /** + * Gets or sets the home page URL. + * @return homePageUrl + */ + @javax.annotation.Nullable + public String getHomePageUrl() { + return homePageUrl; + } + + public void setHomePageUrl(@javax.annotation.Nullable String homePageUrl) { + this.homePageUrl = homePageUrl; + } + + + public LiveTvServiceInfo status(@javax.annotation.Nullable LiveTvServiceStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public LiveTvServiceStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable LiveTvServiceStatus status) { + this.status = status; + } + + + public LiveTvServiceInfo statusMessage(@javax.annotation.Nullable String statusMessage) { + this.statusMessage = statusMessage; + return this; + } + + /** + * Gets or sets the status message. + * @return statusMessage + */ + @javax.annotation.Nullable + public String getStatusMessage() { + return statusMessage; + } + + public void setStatusMessage(@javax.annotation.Nullable String statusMessage) { + this.statusMessage = statusMessage; + } + + + public LiveTvServiceInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public LiveTvServiceInfo hasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has update available. + * @return hasUpdateAvailable + */ + @javax.annotation.Nullable + public Boolean getHasUpdateAvailable() { + return hasUpdateAvailable; + } + + public void setHasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + } + + + public LiveTvServiceInfo isVisible(@javax.annotation.Nullable Boolean isVisible) { + this.isVisible = isVisible; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is visible. + * @return isVisible + */ + @javax.annotation.Nullable + public Boolean getIsVisible() { + return isVisible; + } + + public void setIsVisible(@javax.annotation.Nullable Boolean isVisible) { + this.isVisible = isVisible; + } + + + public LiveTvServiceInfo tuners(@javax.annotation.Nullable List tuners) { + this.tuners = tuners; + return this; + } + + public LiveTvServiceInfo addTunersItem(String tunersItem) { + if (this.tuners == null) { + this.tuners = new ArrayList<>(); + } + this.tuners.add(tunersItem); + return this; + } + + /** + * Get tuners + * @return tuners + */ + @javax.annotation.Nullable + public List getTuners() { + return tuners; + } + + public void setTuners(@javax.annotation.Nullable List tuners) { + this.tuners = tuners; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvServiceInfo liveTvServiceInfo = (LiveTvServiceInfo) o; + return Objects.equals(this.name, liveTvServiceInfo.name) && + Objects.equals(this.homePageUrl, liveTvServiceInfo.homePageUrl) && + Objects.equals(this.status, liveTvServiceInfo.status) && + Objects.equals(this.statusMessage, liveTvServiceInfo.statusMessage) && + Objects.equals(this.version, liveTvServiceInfo.version) && + Objects.equals(this.hasUpdateAvailable, liveTvServiceInfo.hasUpdateAvailable) && + Objects.equals(this.isVisible, liveTvServiceInfo.isVisible) && + Objects.equals(this.tuners, liveTvServiceInfo.tuners); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, homePageUrl, status, statusMessage, version, hasUpdateAvailable, isVisible, tuners); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvServiceInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" homePageUrl: ").append(toIndentedString(homePageUrl)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusMessage: ").append(toIndentedString(statusMessage)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" hasUpdateAvailable: ").append(toIndentedString(hasUpdateAvailable)).append("\n"); + sb.append(" isVisible: ").append(toIndentedString(isVisible)).append("\n"); + sb.append(" tuners: ").append(toIndentedString(tuners)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("HomePageUrl"); + openapiFields.add("Status"); + openapiFields.add("StatusMessage"); + openapiFields.add("Version"); + openapiFields.add("HasUpdateAvailable"); + openapiFields.add("IsVisible"); + openapiFields.add("Tuners"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvServiceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvServiceInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvServiceInfo is not found in the empty JSON string", LiveTvServiceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvServiceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvServiceInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("HomePageUrl") != null && !jsonObj.get("HomePageUrl").isJsonNull()) && !jsonObj.get("HomePageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `HomePageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("HomePageUrl").toString())); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + LiveTvServiceStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("StatusMessage") != null && !jsonObj.get("StatusMessage").isJsonNull()) && !jsonObj.get("StatusMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `StatusMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("StatusMessage").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tuners") != null && !jsonObj.get("Tuners").isJsonNull() && !jsonObj.get("Tuners").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tuners` to be an array in the JSON string but got `%s`", jsonObj.get("Tuners").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvServiceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvServiceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvServiceInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvServiceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvServiceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvServiceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvServiceInfo + * @throws IOException if the JSON string is invalid with respect to LiveTvServiceInfo + */ + public static LiveTvServiceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvServiceInfo.class); + } + + /** + * Convert an instance of LiveTvServiceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java new file mode 100644 index 0000000000000..f778257822fab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets LiveTvServiceStatus + */ +@JsonAdapter(LiveTvServiceStatus.Adapter.class) +public enum LiveTvServiceStatus { + + OK("Ok"), + + UNAVAILABLE("Unavailable"); + + private String value; + + LiveTvServiceStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LiveTvServiceStatus fromValue(String value) { + for (LiveTvServiceStatus b : LiveTvServiceStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LiveTvServiceStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LiveTvServiceStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LiveTvServiceStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LiveTvServiceStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocalizationOption.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocalizationOption.java new file mode 100644 index 0000000000000..02a57f76f987c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocalizationOption.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LocalizationOption + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LocalizationOption { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public LocalizationOption() { + } + + public LocalizationOption name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LocalizationOption value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LocalizationOption localizationOption = (LocalizationOption) o; + return Objects.equals(this.name, localizationOption.name) && + Objects.equals(this.value, localizationOption.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LocalizationOption {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LocalizationOption + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LocalizationOption.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LocalizationOption is not found in the empty JSON string", LocalizationOption.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LocalizationOption.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LocalizationOption` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LocalizationOption.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LocalizationOption' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LocalizationOption.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LocalizationOption value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LocalizationOption read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LocalizationOption given an JSON string + * + * @param jsonString JSON string + * @return An instance of LocalizationOption + * @throws IOException if the JSON string is invalid with respect to LocalizationOption + */ + public static LocalizationOption fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LocalizationOption.class); + } + + /** + * Convert an instance of LocalizationOption to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocationType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocationType.java new file mode 100644 index 0000000000000..e6c1d3737c956 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LocationType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum LocationType. + */ +@JsonAdapter(LocationType.Adapter.class) +public enum LocationType { + + FILE_SYSTEM("FileSystem"), + + REMOTE("Remote"), + + VIRTUAL("Virtual"), + + OFFLINE("Offline"); + + private String value; + + LocationType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LocationType fromValue(String value) { + for (LocationType b : LocationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LocationType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LocationType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LocationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LocationType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogFile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogFile.java new file mode 100644 index 0000000000000..3df429b8305bd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogFile.java @@ -0,0 +1,288 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LogFile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LogFile { + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_MODIFIED = "DateModified"; + @SerializedName(SERIALIZED_NAME_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime dateModified; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public LogFile() { + } + + public LogFile dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public LogFile dateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + return this; + } + + /** + * Gets or sets the date modified. + * @return dateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getDateModified() { + return dateModified; + } + + public void setDateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + } + + + public LogFile size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public LogFile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogFile logFile = (LogFile) o; + return Objects.equals(this.dateCreated, logFile.dateCreated) && + Objects.equals(this.dateModified, logFile.dateModified) && + Objects.equals(this.size, logFile.size) && + Objects.equals(this.name, logFile.name); + } + + @Override + public int hashCode() { + return Objects.hash(dateCreated, dateModified, size, name); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogFile {\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateModified: ").append(toIndentedString(dateModified)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DateCreated"); + openapiFields.add("DateModified"); + openapiFields.add("Size"); + openapiFields.add("Name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LogFile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LogFile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LogFile is not found in the empty JSON string", LogFile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LogFile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LogFile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LogFile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LogFile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LogFile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LogFile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LogFile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LogFile given an JSON string + * + * @param jsonString JSON string + * @return An instance of LogFile + * @throws IOException if the JSON string is invalid with respect to LogFile + */ + public static LogFile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LogFile.class); + } + + /** + * Convert an instance of LogFile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogLevel.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogLevel.java new file mode 100644 index 0000000000000..d8fe6d58423a3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LogLevel.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets LogLevel + */ +@JsonAdapter(LogLevel.Adapter.class) +public enum LogLevel { + + TRACE("Trace"), + + DEBUG("Debug"), + + INFORMATION("Information"), + + WARNING("Warning"), + + ERROR("Error"), + + CRITICAL("Critical"), + + NONE("None"); + + private String value; + + LogLevel(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LogLevel fromValue(String value) { + for (LogLevel b : LogLevel.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LogLevel enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LogLevel read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LogLevel.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LogLevel.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricDto.java new file mode 100644 index 0000000000000..d49c1716e1211 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricDto.java @@ -0,0 +1,260 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LyricLine; +import org.openapitools.client.model.LyricMetadata; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LyricResponse model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LyricDto { + public static final String SERIALIZED_NAME_METADATA = "Metadata"; + @SerializedName(SERIALIZED_NAME_METADATA) + @javax.annotation.Nullable + private LyricMetadata metadata; + + public static final String SERIALIZED_NAME_LYRICS = "Lyrics"; + @SerializedName(SERIALIZED_NAME_LYRICS) + @javax.annotation.Nullable + private List lyrics = new ArrayList<>(); + + public LyricDto() { + } + + public LyricDto metadata(@javax.annotation.Nullable LyricMetadata metadata) { + this.metadata = metadata; + return this; + } + + /** + * Gets or sets Metadata for the lyrics. + * @return metadata + */ + @javax.annotation.Nullable + public LyricMetadata getMetadata() { + return metadata; + } + + public void setMetadata(@javax.annotation.Nullable LyricMetadata metadata) { + this.metadata = metadata; + } + + + public LyricDto lyrics(@javax.annotation.Nullable List lyrics) { + this.lyrics = lyrics; + return this; + } + + public LyricDto addLyricsItem(LyricLine lyricsItem) { + if (this.lyrics == null) { + this.lyrics = new ArrayList<>(); + } + this.lyrics.add(lyricsItem); + return this; + } + + /** + * Gets or sets a collection of individual lyric lines. + * @return lyrics + */ + @javax.annotation.Nullable + public List getLyrics() { + return lyrics; + } + + public void setLyrics(@javax.annotation.Nullable List lyrics) { + this.lyrics = lyrics; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LyricDto lyricDto = (LyricDto) o; + return Objects.equals(this.metadata, lyricDto.metadata) && + Objects.equals(this.lyrics, lyricDto.lyrics); + } + + @Override + public int hashCode() { + return Objects.hash(metadata, lyrics); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LyricDto {\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" lyrics: ").append(toIndentedString(lyrics)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Metadata"); + openapiFields.add("Lyrics"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LyricDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LyricDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LyricDto is not found in the empty JSON string", LyricDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LyricDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LyricDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Metadata` + if (jsonObj.get("Metadata") != null && !jsonObj.get("Metadata").isJsonNull()) { + LyricMetadata.validateJsonElement(jsonObj.get("Metadata")); + } + if (jsonObj.get("Lyrics") != null && !jsonObj.get("Lyrics").isJsonNull()) { + JsonArray jsonArraylyrics = jsonObj.getAsJsonArray("Lyrics"); + if (jsonArraylyrics != null) { + // ensure the json data is an array + if (!jsonObj.get("Lyrics").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Lyrics` to be an array in the JSON string but got `%s`", jsonObj.get("Lyrics").toString())); + } + + // validate the optional field `Lyrics` (array) + for (int i = 0; i < jsonArraylyrics.size(); i++) { + LyricLine.validateJsonElement(jsonArraylyrics.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LyricDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LyricDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LyricDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LyricDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LyricDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LyricDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LyricDto + * @throws IOException if the JSON string is invalid with respect to LyricDto + */ + public static LyricDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LyricDto.class); + } + + /** + * Convert an instance of LyricDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricLine.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricLine.java new file mode 100644 index 0000000000000..10f73247e29b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricLine.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Lyric model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LyricLine { + public static final String SERIALIZED_NAME_TEXT = "Text"; + @SerializedName(SERIALIZED_NAME_TEXT) + @javax.annotation.Nullable + private String text; + + public static final String SERIALIZED_NAME_START = "Start"; + @SerializedName(SERIALIZED_NAME_START) + @javax.annotation.Nullable + private Long start; + + public LyricLine() { + } + + public LyricLine text(@javax.annotation.Nullable String text) { + this.text = text; + return this; + } + + /** + * Gets the text of this lyric line. + * @return text + */ + @javax.annotation.Nullable + public String getText() { + return text; + } + + public void setText(@javax.annotation.Nullable String text) { + this.text = text; + } + + + public LyricLine start(@javax.annotation.Nullable Long start) { + this.start = start; + return this; + } + + /** + * Gets the start time in ticks. + * @return start + */ + @javax.annotation.Nullable + public Long getStart() { + return start; + } + + public void setStart(@javax.annotation.Nullable Long start) { + this.start = start; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LyricLine lyricLine = (LyricLine) o; + return Objects.equals(this.text, lyricLine.text) && + Objects.equals(this.start, lyricLine.start); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(text, start); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LyricLine {\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" start: ").append(toIndentedString(start)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Text"); + openapiFields.add("Start"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LyricLine + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LyricLine.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LyricLine is not found in the empty JSON string", LyricLine.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LyricLine.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LyricLine` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Text") != null && !jsonObj.get("Text").isJsonNull()) && !jsonObj.get("Text").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Text").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LyricLine.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LyricLine' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LyricLine.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LyricLine value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LyricLine read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LyricLine given an JSON string + * + * @param jsonString JSON string + * @return An instance of LyricLine + * @throws IOException if the JSON string is invalid with respect to LyricLine + */ + public static LyricLine fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LyricLine.class); + } + + /** + * Convert an instance of LyricLine to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricMetadata.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricMetadata.java new file mode 100644 index 0000000000000..37b9af24990f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/LyricMetadata.java @@ -0,0 +1,479 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LyricMetadata model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LyricMetadata { + public static final String SERIALIZED_NAME_ARTIST = "Artist"; + @SerializedName(SERIALIZED_NAME_ARTIST) + @javax.annotation.Nullable + private String artist; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_TITLE = "Title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @javax.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_AUTHOR = "Author"; + @SerializedName(SERIALIZED_NAME_AUTHOR) + @javax.annotation.Nullable + private String author; + + public static final String SERIALIZED_NAME_LENGTH = "Length"; + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nullable + private Long length; + + public static final String SERIALIZED_NAME_BY = "By"; + @SerializedName(SERIALIZED_NAME_BY) + @javax.annotation.Nullable + private String by; + + public static final String SERIALIZED_NAME_OFFSET = "Offset"; + @SerializedName(SERIALIZED_NAME_OFFSET) + @javax.annotation.Nullable + private Long offset; + + public static final String SERIALIZED_NAME_CREATOR = "Creator"; + @SerializedName(SERIALIZED_NAME_CREATOR) + @javax.annotation.Nullable + private String creator; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_IS_SYNCED = "IsSynced"; + @SerializedName(SERIALIZED_NAME_IS_SYNCED) + @javax.annotation.Nullable + private Boolean isSynced; + + public LyricMetadata() { + } + + public LyricMetadata artist(@javax.annotation.Nullable String artist) { + this.artist = artist; + return this; + } + + /** + * Gets or sets the song artist. + * @return artist + */ + @javax.annotation.Nullable + public String getArtist() { + return artist; + } + + public void setArtist(@javax.annotation.Nullable String artist) { + this.artist = artist; + } + + + public LyricMetadata album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Gets or sets the album this song is on. + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public LyricMetadata title(@javax.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Gets or sets the title of the song. + * @return title + */ + @javax.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@javax.annotation.Nullable String title) { + this.title = title; + } + + + public LyricMetadata author(@javax.annotation.Nullable String author) { + this.author = author; + return this; + } + + /** + * Gets or sets the author of the lyric data. + * @return author + */ + @javax.annotation.Nullable + public String getAuthor() { + return author; + } + + public void setAuthor(@javax.annotation.Nullable String author) { + this.author = author; + } + + + public LyricMetadata length(@javax.annotation.Nullable Long length) { + this.length = length; + return this; + } + + /** + * Gets or sets the length of the song in ticks. + * @return length + */ + @javax.annotation.Nullable + public Long getLength() { + return length; + } + + public void setLength(@javax.annotation.Nullable Long length) { + this.length = length; + } + + + public LyricMetadata by(@javax.annotation.Nullable String by) { + this.by = by; + return this; + } + + /** + * Gets or sets who the LRC file was created by. + * @return by + */ + @javax.annotation.Nullable + public String getBy() { + return by; + } + + public void setBy(@javax.annotation.Nullable String by) { + this.by = by; + } + + + public LyricMetadata offset(@javax.annotation.Nullable Long offset) { + this.offset = offset; + return this; + } + + /** + * Gets or sets the lyric offset compared to audio in ticks. + * @return offset + */ + @javax.annotation.Nullable + public Long getOffset() { + return offset; + } + + public void setOffset(@javax.annotation.Nullable Long offset) { + this.offset = offset; + } + + + public LyricMetadata creator(@javax.annotation.Nullable String creator) { + this.creator = creator; + return this; + } + + /** + * Gets or sets the software used to create the LRC file. + * @return creator + */ + @javax.annotation.Nullable + public String getCreator() { + return creator; + } + + public void setCreator(@javax.annotation.Nullable String creator) { + this.creator = creator; + } + + + public LyricMetadata version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version of the creator used. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public LyricMetadata isSynced(@javax.annotation.Nullable Boolean isSynced) { + this.isSynced = isSynced; + return this; + } + + /** + * Gets or sets a value indicating whether this lyric is synced. + * @return isSynced + */ + @javax.annotation.Nullable + public Boolean getIsSynced() { + return isSynced; + } + + public void setIsSynced(@javax.annotation.Nullable Boolean isSynced) { + this.isSynced = isSynced; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LyricMetadata lyricMetadata = (LyricMetadata) o; + return Objects.equals(this.artist, lyricMetadata.artist) && + Objects.equals(this.album, lyricMetadata.album) && + Objects.equals(this.title, lyricMetadata.title) && + Objects.equals(this.author, lyricMetadata.author) && + Objects.equals(this.length, lyricMetadata.length) && + Objects.equals(this.by, lyricMetadata.by) && + Objects.equals(this.offset, lyricMetadata.offset) && + Objects.equals(this.creator, lyricMetadata.creator) && + Objects.equals(this.version, lyricMetadata.version) && + Objects.equals(this.isSynced, lyricMetadata.isSynced); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(artist, album, title, author, length, by, offset, creator, version, isSynced); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LyricMetadata {\n"); + sb.append(" artist: ").append(toIndentedString(artist)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" author: ").append(toIndentedString(author)).append("\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append(" by: ").append(toIndentedString(by)).append("\n"); + sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); + sb.append(" creator: ").append(toIndentedString(creator)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" isSynced: ").append(toIndentedString(isSynced)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Artist"); + openapiFields.add("Album"); + openapiFields.add("Title"); + openapiFields.add("Author"); + openapiFields.add("Length"); + openapiFields.add("By"); + openapiFields.add("Offset"); + openapiFields.add("Creator"); + openapiFields.add("Version"); + openapiFields.add("IsSynced"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LyricMetadata + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LyricMetadata.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LyricMetadata is not found in the empty JSON string", LyricMetadata.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LyricMetadata.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LyricMetadata` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Artist") != null && !jsonObj.get("Artist").isJsonNull()) && !jsonObj.get("Artist").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Artist` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Artist").toString())); + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + if ((jsonObj.get("Title") != null && !jsonObj.get("Title").isJsonNull()) && !jsonObj.get("Title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Title").toString())); + } + if ((jsonObj.get("Author") != null && !jsonObj.get("Author").isJsonNull()) && !jsonObj.get("Author").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Author` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Author").toString())); + } + if ((jsonObj.get("By") != null && !jsonObj.get("By").isJsonNull()) && !jsonObj.get("By").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `By` to be a primitive type in the JSON string but got `%s`", jsonObj.get("By").toString())); + } + if ((jsonObj.get("Creator") != null && !jsonObj.get("Creator").isJsonNull()) && !jsonObj.get("Creator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Creator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Creator").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LyricMetadata.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LyricMetadata' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LyricMetadata.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LyricMetadata value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LyricMetadata read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LyricMetadata given an JSON string + * + * @param jsonString JSON string + * @return An instance of LyricMetadata + * @throws IOException if the JSON string is invalid with respect to LyricMetadata + */ + public static LyricMetadata fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LyricMetadata.class); + } + + /** + * Convert an instance of LyricMetadata to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaAttachment.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaAttachment.java new file mode 100644 index 0000000000000..57952f434c508 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaAttachment.java @@ -0,0 +1,395 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MediaAttachment. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaAttachment { + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CODEC_TAG = "CodecTag"; + @SerializedName(SERIALIZED_NAME_CODEC_TAG) + @javax.annotation.Nullable + private String codecTag; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_INDEX = "Index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @javax.annotation.Nullable + private Integer index; + + public static final String SERIALIZED_NAME_FILE_NAME = "FileName"; + @SerializedName(SERIALIZED_NAME_FILE_NAME) + @javax.annotation.Nullable + private String fileName; + + public static final String SERIALIZED_NAME_MIME_TYPE = "MimeType"; + @SerializedName(SERIALIZED_NAME_MIME_TYPE) + @javax.annotation.Nullable + private String mimeType; + + public static final String SERIALIZED_NAME_DELIVERY_URL = "DeliveryUrl"; + @SerializedName(SERIALIZED_NAME_DELIVERY_URL) + @javax.annotation.Nullable + private String deliveryUrl; + + public MediaAttachment() { + } + + public MediaAttachment codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Gets or sets the codec. + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public MediaAttachment codecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + return this; + } + + /** + * Gets or sets the codec tag. + * @return codecTag + */ + @javax.annotation.Nullable + public String getCodecTag() { + return codecTag; + } + + public void setCodecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + } + + + public MediaAttachment comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Gets or sets the comment. + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public MediaAttachment index(@javax.annotation.Nullable Integer index) { + this.index = index; + return this; + } + + /** + * Gets or sets the index. + * @return index + */ + @javax.annotation.Nullable + public Integer getIndex() { + return index; + } + + public void setIndex(@javax.annotation.Nullable Integer index) { + this.index = index; + } + + + public MediaAttachment fileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + return this; + } + + /** + * Gets or sets the filename. + * @return fileName + */ + @javax.annotation.Nullable + public String getFileName() { + return fileName; + } + + public void setFileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + } + + + public MediaAttachment mimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + return this; + } + + /** + * Gets or sets the MIME type. + * @return mimeType + */ + @javax.annotation.Nullable + public String getMimeType() { + return mimeType; + } + + public void setMimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + } + + + public MediaAttachment deliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + return this; + } + + /** + * Gets or sets the delivery URL. + * @return deliveryUrl + */ + @javax.annotation.Nullable + public String getDeliveryUrl() { + return deliveryUrl; + } + + public void setDeliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaAttachment mediaAttachment = (MediaAttachment) o; + return Objects.equals(this.codec, mediaAttachment.codec) && + Objects.equals(this.codecTag, mediaAttachment.codecTag) && + Objects.equals(this.comment, mediaAttachment.comment) && + Objects.equals(this.index, mediaAttachment.index) && + Objects.equals(this.fileName, mediaAttachment.fileName) && + Objects.equals(this.mimeType, mediaAttachment.mimeType) && + Objects.equals(this.deliveryUrl, mediaAttachment.deliveryUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(codec, codecTag, comment, index, fileName, mimeType, deliveryUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaAttachment {\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" codecTag: ").append(toIndentedString(codecTag)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" fileName: ").append(toIndentedString(fileName)).append("\n"); + sb.append(" mimeType: ").append(toIndentedString(mimeType)).append("\n"); + sb.append(" deliveryUrl: ").append(toIndentedString(deliveryUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Codec"); + openapiFields.add("CodecTag"); + openapiFields.add("Comment"); + openapiFields.add("Index"); + openapiFields.add("FileName"); + openapiFields.add("MimeType"); + openapiFields.add("DeliveryUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaAttachment + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaAttachment.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaAttachment is not found in the empty JSON string", MediaAttachment.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaAttachment.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaAttachment` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("CodecTag") != null && !jsonObj.get("CodecTag").isJsonNull()) && !jsonObj.get("CodecTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTag").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + if ((jsonObj.get("FileName") != null && !jsonObj.get("FileName").isJsonNull()) && !jsonObj.get("FileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FileName").toString())); + } + if ((jsonObj.get("MimeType") != null && !jsonObj.get("MimeType").isJsonNull()) && !jsonObj.get("MimeType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MimeType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MimeType").toString())); + } + if ((jsonObj.get("DeliveryUrl") != null && !jsonObj.get("DeliveryUrl").isJsonNull()) && !jsonObj.get("DeliveryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeliveryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeliveryUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaAttachment.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaAttachment' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaAttachment.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaAttachment value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaAttachment read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaAttachment given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaAttachment + * @throws IOException if the JSON string is invalid with respect to MediaAttachment + */ + public static MediaAttachment fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaAttachment.class); + } + + /** + * Convert an instance of MediaAttachment to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathDto.java new file mode 100644 index 0000000000000..7d0eb2dee8a17 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathDto.java @@ -0,0 +1,288 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaPathInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Media Path dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaPathDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_PATH_INFO = "PathInfo"; + @SerializedName(SERIALIZED_NAME_PATH_INFO) + @javax.annotation.Nullable + private MediaPathInfo pathInfo; + + public MediaPathDto() { + } + + public MediaPathDto name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the library. + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public MediaPathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path to add. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaPathDto pathInfo(@javax.annotation.Nullable MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + return this; + } + + /** + * Gets or sets the path info. + * @return pathInfo + */ + @javax.annotation.Nullable + public MediaPathInfo getPathInfo() { + return pathInfo; + } + + public void setPathInfo(@javax.annotation.Nullable MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaPathDto mediaPathDto = (MediaPathDto) o; + return Objects.equals(this.name, mediaPathDto.name) && + Objects.equals(this.path, mediaPathDto.path) && + Objects.equals(this.pathInfo, mediaPathDto.pathInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, path, pathInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaPathDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" pathInfo: ").append(toIndentedString(pathInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Path"); + openapiFields.add("PathInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Name"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaPathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaPathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaPathDto is not found in the empty JSON string", MediaPathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaPathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaPathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MediaPathDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // validate the optional field `PathInfo` + if (jsonObj.get("PathInfo") != null && !jsonObj.get("PathInfo").isJsonNull()) { + MediaPathInfo.validateJsonElement(jsonObj.get("PathInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaPathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaPathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaPathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaPathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaPathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaPathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaPathDto + * @throws IOException if the JSON string is invalid with respect to MediaPathDto + */ + public static MediaPathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaPathDto.class); + } + + /** + * Convert an instance of MediaPathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathInfo.java new file mode 100644 index 0000000000000..c36a7f3cedbc7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaPathInfo.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaPathInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaPathInfo { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public MediaPathInfo() { + } + + public MediaPathInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaPathInfo mediaPathInfo = (MediaPathInfo) o; + return Objects.equals(this.path, mediaPathInfo.path); + } + + @Override + public int hashCode() { + return Objects.hash(path); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaPathInfo {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaPathInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaPathInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaPathInfo is not found in the empty JSON string", MediaPathInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaPathInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaPathInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaPathInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaPathInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaPathInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaPathInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaPathInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaPathInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaPathInfo + * @throws IOException if the JSON string is invalid with respect to MediaPathInfo + */ + public static MediaPathInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaPathInfo.class); + } + + /** + * Convert an instance of MediaPathInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaProtocol.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaProtocol.java new file mode 100644 index 0000000000000..e446b9189b071 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaProtocol.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MediaProtocol + */ +@JsonAdapter(MediaProtocol.Adapter.class) +public enum MediaProtocol { + + FILE("File"), + + HTTP("Http"), + + RTMP("Rtmp"), + + RTSP("Rtsp"), + + UDP("Udp"), + + RTP("Rtp"), + + FTP("Ftp"); + + private String value; + + MediaProtocol(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaProtocol fromValue(String value) { + for (MediaProtocol b : MediaProtocol.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaProtocol enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaProtocol read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaProtocol.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaProtocol.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDto.java new file mode 100644 index 0000000000000..b09cfa5d4c8a3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDto.java @@ -0,0 +1,323 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.MediaSegmentType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Api model for MediaSegment's. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaSegmentDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private MediaSegmentType type; + + public static final String SERIALIZED_NAME_START_TICKS = "StartTicks"; + @SerializedName(SERIALIZED_NAME_START_TICKS) + @javax.annotation.Nullable + private Long startTicks; + + public static final String SERIALIZED_NAME_END_TICKS = "EndTicks"; + @SerializedName(SERIALIZED_NAME_END_TICKS) + @javax.annotation.Nullable + private Long endTicks; + + public MediaSegmentDto() { + } + + public MediaSegmentDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id of the media segment. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public MediaSegmentDto itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the id of the associated item. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public MediaSegmentDto type(@javax.annotation.Nullable MediaSegmentType type) { + this.type = type; + return this; + } + + /** + * Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents. + * @return type + */ + @javax.annotation.Nullable + public MediaSegmentType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable MediaSegmentType type) { + this.type = type; + } + + + public MediaSegmentDto startTicks(@javax.annotation.Nullable Long startTicks) { + this.startTicks = startTicks; + return this; + } + + /** + * Gets or sets the start of the segment. + * @return startTicks + */ + @javax.annotation.Nullable + public Long getStartTicks() { + return startTicks; + } + + public void setStartTicks(@javax.annotation.Nullable Long startTicks) { + this.startTicks = startTicks; + } + + + public MediaSegmentDto endTicks(@javax.annotation.Nullable Long endTicks) { + this.endTicks = endTicks; + return this; + } + + /** + * Gets or sets the end of the segment. + * @return endTicks + */ + @javax.annotation.Nullable + public Long getEndTicks() { + return endTicks; + } + + public void setEndTicks(@javax.annotation.Nullable Long endTicks) { + this.endTicks = endTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaSegmentDto mediaSegmentDto = (MediaSegmentDto) o; + return Objects.equals(this.id, mediaSegmentDto.id) && + Objects.equals(this.itemId, mediaSegmentDto.itemId) && + Objects.equals(this.type, mediaSegmentDto.type) && + Objects.equals(this.startTicks, mediaSegmentDto.startTicks) && + Objects.equals(this.endTicks, mediaSegmentDto.endTicks); + } + + @Override + public int hashCode() { + return Objects.hash(id, itemId, type, startTicks, endTicks); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaSegmentDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" startTicks: ").append(toIndentedString(startTicks)).append("\n"); + sb.append(" endTicks: ").append(toIndentedString(endTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ItemId"); + openapiFields.add("Type"); + openapiFields.add("StartTicks"); + openapiFields.add("EndTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaSegmentDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaSegmentDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaSegmentDto is not found in the empty JSON string", MediaSegmentDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaSegmentDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaSegmentDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + MediaSegmentType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaSegmentDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaSegmentDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaSegmentDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaSegmentDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaSegmentDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaSegmentDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaSegmentDto + * @throws IOException if the JSON string is invalid with respect to MediaSegmentDto + */ + public static MediaSegmentDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaSegmentDto.class); + } + + /** + * Convert an instance of MediaSegmentDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDtoQueryResult.java new file mode 100644 index 0000000000000..b2282f6ad06e5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentDtoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.MediaSegmentDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaSegmentDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public MediaSegmentDtoQueryResult() { + } + + public MediaSegmentDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public MediaSegmentDtoQueryResult addItemsItem(MediaSegmentDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public MediaSegmentDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public MediaSegmentDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaSegmentDtoQueryResult mediaSegmentDtoQueryResult = (MediaSegmentDtoQueryResult) o; + return Objects.equals(this.items, mediaSegmentDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, mediaSegmentDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, mediaSegmentDtoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaSegmentDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaSegmentDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaSegmentDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaSegmentDtoQueryResult is not found in the empty JSON string", MediaSegmentDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaSegmentDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaSegmentDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + MediaSegmentDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaSegmentDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaSegmentDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaSegmentDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaSegmentDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaSegmentDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaSegmentDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaSegmentDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to MediaSegmentDtoQueryResult + */ + public static MediaSegmentDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaSegmentDtoQueryResult.class); + } + + /** + * Convert an instance of MediaSegmentDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentType.java new file mode 100644 index 0000000000000..eb603f14dd0e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSegmentType.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents. + */ +@JsonAdapter(MediaSegmentType.Adapter.class) +public enum MediaSegmentType { + + UNKNOWN("Unknown"), + + COMMERCIAL("Commercial"), + + PREVIEW("Preview"), + + RECAP("Recap"), + + OUTRO("Outro"), + + INTRO("Intro"); + + private String value; + + MediaSegmentType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaSegmentType fromValue(String value) { + for (MediaSegmentType b : MediaSegmentType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaSegmentType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaSegmentType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaSegmentType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaSegmentType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceInfo.java new file mode 100644 index 0000000000000..a15e4499eee4e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceInfo.java @@ -0,0 +1,1542 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.IsoType; +import org.openapitools.client.model.MediaAttachment; +import org.openapitools.client.model.MediaProtocol; +import org.openapitools.client.model.MediaSourceType; +import org.openapitools.client.model.MediaStream; +import org.openapitools.client.model.MediaStreamProtocol; +import org.openapitools.client.model.TransportStreamTimestamp; +import org.openapitools.client.model.Video3DFormat; +import org.openapitools.client.model.VideoType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaSourceInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaSourceInfo { + public static final String SERIALIZED_NAME_PROTOCOL = "Protocol"; + @SerializedName(SERIALIZED_NAME_PROTOCOL) + @javax.annotation.Nullable + private MediaProtocol protocol; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENCODER_PATH = "EncoderPath"; + @SerializedName(SERIALIZED_NAME_ENCODER_PATH) + @javax.annotation.Nullable + private String encoderPath; + + public static final String SERIALIZED_NAME_ENCODER_PROTOCOL = "EncoderProtocol"; + @SerializedName(SERIALIZED_NAME_ENCODER_PROTOCOL) + @javax.annotation.Nullable + private MediaProtocol encoderProtocol; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private MediaSourceType type; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IS_REMOTE = "IsRemote"; + @SerializedName(SERIALIZED_NAME_IS_REMOTE) + @javax.annotation.Nullable + private Boolean isRemote; + + public static final String SERIALIZED_NAME_ETAG = "ETag"; + @SerializedName(SERIALIZED_NAME_ETAG) + @javax.annotation.Nullable + private String etag; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_READ_AT_NATIVE_FRAMERATE = "ReadAtNativeFramerate"; + @SerializedName(SERIALIZED_NAME_READ_AT_NATIVE_FRAMERATE) + @javax.annotation.Nullable + private Boolean readAtNativeFramerate; + + public static final String SERIALIZED_NAME_IGNORE_DTS = "IgnoreDts"; + @SerializedName(SERIALIZED_NAME_IGNORE_DTS) + @javax.annotation.Nullable + private Boolean ignoreDts; + + public static final String SERIALIZED_NAME_IGNORE_INDEX = "IgnoreIndex"; + @SerializedName(SERIALIZED_NAME_IGNORE_INDEX) + @javax.annotation.Nullable + private Boolean ignoreIndex; + + public static final String SERIALIZED_NAME_GEN_PTS_INPUT = "GenPtsInput"; + @SerializedName(SERIALIZED_NAME_GEN_PTS_INPUT) + @javax.annotation.Nullable + private Boolean genPtsInput; + + public static final String SERIALIZED_NAME_SUPPORTS_TRANSCODING = "SupportsTranscoding"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_TRANSCODING) + @javax.annotation.Nullable + private Boolean supportsTranscoding; + + public static final String SERIALIZED_NAME_SUPPORTS_DIRECT_STREAM = "SupportsDirectStream"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean supportsDirectStream; + + public static final String SERIALIZED_NAME_SUPPORTS_DIRECT_PLAY = "SupportsDirectPlay"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean supportsDirectPlay; + + public static final String SERIALIZED_NAME_IS_INFINITE_STREAM = "IsInfiniteStream"; + @SerializedName(SERIALIZED_NAME_IS_INFINITE_STREAM) + @javax.annotation.Nullable + private Boolean isInfiniteStream; + + public static final String SERIALIZED_NAME_USE_MOST_COMPATIBLE_TRANSCODING_PROFILE = "UseMostCompatibleTranscodingProfile"; + @SerializedName(SERIALIZED_NAME_USE_MOST_COMPATIBLE_TRANSCODING_PROFILE) + @javax.annotation.Nullable + private Boolean useMostCompatibleTranscodingProfile = false; + + public static final String SERIALIZED_NAME_REQUIRES_OPENING = "RequiresOpening"; + @SerializedName(SERIALIZED_NAME_REQUIRES_OPENING) + @javax.annotation.Nullable + private Boolean requiresOpening; + + public static final String SERIALIZED_NAME_OPEN_TOKEN = "OpenToken"; + @SerializedName(SERIALIZED_NAME_OPEN_TOKEN) + @javax.annotation.Nullable + private String openToken; + + public static final String SERIALIZED_NAME_REQUIRES_CLOSING = "RequiresClosing"; + @SerializedName(SERIALIZED_NAME_REQUIRES_CLOSING) + @javax.annotation.Nullable + private Boolean requiresClosing; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_BUFFER_MS = "BufferMs"; + @SerializedName(SERIALIZED_NAME_BUFFER_MS) + @javax.annotation.Nullable + private Integer bufferMs; + + public static final String SERIALIZED_NAME_REQUIRES_LOOPING = "RequiresLooping"; + @SerializedName(SERIALIZED_NAME_REQUIRES_LOOPING) + @javax.annotation.Nullable + private Boolean requiresLooping; + + public static final String SERIALIZED_NAME_SUPPORTS_PROBING = "SupportsProbing"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_PROBING) + @javax.annotation.Nullable + private Boolean supportsProbing; + + public static final String SERIALIZED_NAME_VIDEO_TYPE = "VideoType"; + @SerializedName(SERIALIZED_NAME_VIDEO_TYPE) + @javax.annotation.Nullable + private VideoType videoType; + + public static final String SERIALIZED_NAME_ISO_TYPE = "IsoType"; + @SerializedName(SERIALIZED_NAME_ISO_TYPE) + @javax.annotation.Nullable + private IsoType isoType; + + public static final String SERIALIZED_NAME_VIDEO3_D_FORMAT = "Video3DFormat"; + @SerializedName(SERIALIZED_NAME_VIDEO3_D_FORMAT) + @javax.annotation.Nullable + private Video3DFormat video3DFormat; + + public static final String SERIALIZED_NAME_MEDIA_STREAMS = "MediaStreams"; + @SerializedName(SERIALIZED_NAME_MEDIA_STREAMS) + @javax.annotation.Nullable + private List mediaStreams; + + public static final String SERIALIZED_NAME_MEDIA_ATTACHMENTS = "MediaAttachments"; + @SerializedName(SERIALIZED_NAME_MEDIA_ATTACHMENTS) + @javax.annotation.Nullable + private List mediaAttachments; + + public static final String SERIALIZED_NAME_FORMATS = "Formats"; + @SerializedName(SERIALIZED_NAME_FORMATS) + @javax.annotation.Nullable + private List formats; + + public static final String SERIALIZED_NAME_BITRATE = "Bitrate"; + @SerializedName(SERIALIZED_NAME_BITRATE) + @javax.annotation.Nullable + private Integer bitrate; + + public static final String SERIALIZED_NAME_FALLBACK_MAX_STREAMING_BITRATE = "FallbackMaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_FALLBACK_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer fallbackMaxStreamingBitrate; + + public static final String SERIALIZED_NAME_TIMESTAMP = "Timestamp"; + @SerializedName(SERIALIZED_NAME_TIMESTAMP) + @javax.annotation.Nullable + private TransportStreamTimestamp timestamp; + + public static final String SERIALIZED_NAME_REQUIRED_HTTP_HEADERS = "RequiredHttpHeaders"; + @SerializedName(SERIALIZED_NAME_REQUIRED_HTTP_HEADERS) + @javax.annotation.Nullable + private Map requiredHttpHeaders; + + public static final String SERIALIZED_NAME_TRANSCODING_URL = "TranscodingUrl"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_URL) + @javax.annotation.Nullable + private String transcodingUrl; + + public static final String SERIALIZED_NAME_TRANSCODING_SUB_PROTOCOL = "TranscodingSubProtocol"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_SUB_PROTOCOL) + @javax.annotation.Nullable + private MediaStreamProtocol transcodingSubProtocol; + + public static final String SERIALIZED_NAME_TRANSCODING_CONTAINER = "TranscodingContainer"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_CONTAINER) + @javax.annotation.Nullable + private String transcodingContainer; + + public static final String SERIALIZED_NAME_ANALYZE_DURATION_MS = "AnalyzeDurationMs"; + @SerializedName(SERIALIZED_NAME_ANALYZE_DURATION_MS) + @javax.annotation.Nullable + private Integer analyzeDurationMs; + + public static final String SERIALIZED_NAME_DEFAULT_AUDIO_STREAM_INDEX = "DefaultAudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_DEFAULT_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer defaultAudioStreamIndex; + + public static final String SERIALIZED_NAME_DEFAULT_SUBTITLE_STREAM_INDEX = "DefaultSubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_DEFAULT_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer defaultSubtitleStreamIndex; + + public static final String SERIALIZED_NAME_HAS_SEGMENTS = "HasSegments"; + @SerializedName(SERIALIZED_NAME_HAS_SEGMENTS) + @javax.annotation.Nullable + private Boolean hasSegments; + + public MediaSourceInfo() { + } + + public MediaSourceInfo protocol(@javax.annotation.Nullable MediaProtocol protocol) { + this.protocol = protocol; + return this; + } + + /** + * Get protocol + * @return protocol + */ + @javax.annotation.Nullable + public MediaProtocol getProtocol() { + return protocol; + } + + public void setProtocol(@javax.annotation.Nullable MediaProtocol protocol) { + this.protocol = protocol; + } + + + public MediaSourceInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public MediaSourceInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaSourceInfo encoderPath(@javax.annotation.Nullable String encoderPath) { + this.encoderPath = encoderPath; + return this; + } + + /** + * Get encoderPath + * @return encoderPath + */ + @javax.annotation.Nullable + public String getEncoderPath() { + return encoderPath; + } + + public void setEncoderPath(@javax.annotation.Nullable String encoderPath) { + this.encoderPath = encoderPath; + } + + + public MediaSourceInfo encoderProtocol(@javax.annotation.Nullable MediaProtocol encoderProtocol) { + this.encoderProtocol = encoderProtocol; + return this; + } + + /** + * Get encoderProtocol + * @return encoderProtocol + */ + @javax.annotation.Nullable + public MediaProtocol getEncoderProtocol() { + return encoderProtocol; + } + + public void setEncoderProtocol(@javax.annotation.Nullable MediaProtocol encoderProtocol) { + this.encoderProtocol = encoderProtocol; + } + + + public MediaSourceInfo type(@javax.annotation.Nullable MediaSourceType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public MediaSourceType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable MediaSourceType type) { + this.type = type; + } + + + public MediaSourceInfo container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public MediaSourceInfo size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Get size + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public MediaSourceInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MediaSourceInfo isRemote(@javax.annotation.Nullable Boolean isRemote) { + this.isRemote = isRemote; + return this; + } + + /** + * Gets or sets a value indicating whether the media is remote. Differentiate internet url vs local network. + * @return isRemote + */ + @javax.annotation.Nullable + public Boolean getIsRemote() { + return isRemote; + } + + public void setIsRemote(@javax.annotation.Nullable Boolean isRemote) { + this.isRemote = isRemote; + } + + + public MediaSourceInfo etag(@javax.annotation.Nullable String etag) { + this.etag = etag; + return this; + } + + /** + * Get etag + * @return etag + */ + @javax.annotation.Nullable + public String getEtag() { + return etag; + } + + public void setEtag(@javax.annotation.Nullable String etag) { + this.etag = etag; + } + + + public MediaSourceInfo runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Get runTimeTicks + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public MediaSourceInfo readAtNativeFramerate(@javax.annotation.Nullable Boolean readAtNativeFramerate) { + this.readAtNativeFramerate = readAtNativeFramerate; + return this; + } + + /** + * Get readAtNativeFramerate + * @return readAtNativeFramerate + */ + @javax.annotation.Nullable + public Boolean getReadAtNativeFramerate() { + return readAtNativeFramerate; + } + + public void setReadAtNativeFramerate(@javax.annotation.Nullable Boolean readAtNativeFramerate) { + this.readAtNativeFramerate = readAtNativeFramerate; + } + + + public MediaSourceInfo ignoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + return this; + } + + /** + * Get ignoreDts + * @return ignoreDts + */ + @javax.annotation.Nullable + public Boolean getIgnoreDts() { + return ignoreDts; + } + + public void setIgnoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + } + + + public MediaSourceInfo ignoreIndex(@javax.annotation.Nullable Boolean ignoreIndex) { + this.ignoreIndex = ignoreIndex; + return this; + } + + /** + * Get ignoreIndex + * @return ignoreIndex + */ + @javax.annotation.Nullable + public Boolean getIgnoreIndex() { + return ignoreIndex; + } + + public void setIgnoreIndex(@javax.annotation.Nullable Boolean ignoreIndex) { + this.ignoreIndex = ignoreIndex; + } + + + public MediaSourceInfo genPtsInput(@javax.annotation.Nullable Boolean genPtsInput) { + this.genPtsInput = genPtsInput; + return this; + } + + /** + * Get genPtsInput + * @return genPtsInput + */ + @javax.annotation.Nullable + public Boolean getGenPtsInput() { + return genPtsInput; + } + + public void setGenPtsInput(@javax.annotation.Nullable Boolean genPtsInput) { + this.genPtsInput = genPtsInput; + } + + + public MediaSourceInfo supportsTranscoding(@javax.annotation.Nullable Boolean supportsTranscoding) { + this.supportsTranscoding = supportsTranscoding; + return this; + } + + /** + * Get supportsTranscoding + * @return supportsTranscoding + */ + @javax.annotation.Nullable + public Boolean getSupportsTranscoding() { + return supportsTranscoding; + } + + public void setSupportsTranscoding(@javax.annotation.Nullable Boolean supportsTranscoding) { + this.supportsTranscoding = supportsTranscoding; + } + + + public MediaSourceInfo supportsDirectStream(@javax.annotation.Nullable Boolean supportsDirectStream) { + this.supportsDirectStream = supportsDirectStream; + return this; + } + + /** + * Get supportsDirectStream + * @return supportsDirectStream + */ + @javax.annotation.Nullable + public Boolean getSupportsDirectStream() { + return supportsDirectStream; + } + + public void setSupportsDirectStream(@javax.annotation.Nullable Boolean supportsDirectStream) { + this.supportsDirectStream = supportsDirectStream; + } + + + public MediaSourceInfo supportsDirectPlay(@javax.annotation.Nullable Boolean supportsDirectPlay) { + this.supportsDirectPlay = supportsDirectPlay; + return this; + } + + /** + * Get supportsDirectPlay + * @return supportsDirectPlay + */ + @javax.annotation.Nullable + public Boolean getSupportsDirectPlay() { + return supportsDirectPlay; + } + + public void setSupportsDirectPlay(@javax.annotation.Nullable Boolean supportsDirectPlay) { + this.supportsDirectPlay = supportsDirectPlay; + } + + + public MediaSourceInfo isInfiniteStream(@javax.annotation.Nullable Boolean isInfiniteStream) { + this.isInfiniteStream = isInfiniteStream; + return this; + } + + /** + * Get isInfiniteStream + * @return isInfiniteStream + */ + @javax.annotation.Nullable + public Boolean getIsInfiniteStream() { + return isInfiniteStream; + } + + public void setIsInfiniteStream(@javax.annotation.Nullable Boolean isInfiniteStream) { + this.isInfiniteStream = isInfiniteStream; + } + + + public MediaSourceInfo useMostCompatibleTranscodingProfile(@javax.annotation.Nullable Boolean useMostCompatibleTranscodingProfile) { + this.useMostCompatibleTranscodingProfile = useMostCompatibleTranscodingProfile; + return this; + } + + /** + * Get useMostCompatibleTranscodingProfile + * @return useMostCompatibleTranscodingProfile + */ + @javax.annotation.Nullable + public Boolean getUseMostCompatibleTranscodingProfile() { + return useMostCompatibleTranscodingProfile; + } + + public void setUseMostCompatibleTranscodingProfile(@javax.annotation.Nullable Boolean useMostCompatibleTranscodingProfile) { + this.useMostCompatibleTranscodingProfile = useMostCompatibleTranscodingProfile; + } + + + public MediaSourceInfo requiresOpening(@javax.annotation.Nullable Boolean requiresOpening) { + this.requiresOpening = requiresOpening; + return this; + } + + /** + * Get requiresOpening + * @return requiresOpening + */ + @javax.annotation.Nullable + public Boolean getRequiresOpening() { + return requiresOpening; + } + + public void setRequiresOpening(@javax.annotation.Nullable Boolean requiresOpening) { + this.requiresOpening = requiresOpening; + } + + + public MediaSourceInfo openToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + return this; + } + + /** + * Get openToken + * @return openToken + */ + @javax.annotation.Nullable + public String getOpenToken() { + return openToken; + } + + public void setOpenToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + } + + + public MediaSourceInfo requiresClosing(@javax.annotation.Nullable Boolean requiresClosing) { + this.requiresClosing = requiresClosing; + return this; + } + + /** + * Get requiresClosing + * @return requiresClosing + */ + @javax.annotation.Nullable + public Boolean getRequiresClosing() { + return requiresClosing; + } + + public void setRequiresClosing(@javax.annotation.Nullable Boolean requiresClosing) { + this.requiresClosing = requiresClosing; + } + + + public MediaSourceInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Get liveStreamId + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public MediaSourceInfo bufferMs(@javax.annotation.Nullable Integer bufferMs) { + this.bufferMs = bufferMs; + return this; + } + + /** + * Get bufferMs + * @return bufferMs + */ + @javax.annotation.Nullable + public Integer getBufferMs() { + return bufferMs; + } + + public void setBufferMs(@javax.annotation.Nullable Integer bufferMs) { + this.bufferMs = bufferMs; + } + + + public MediaSourceInfo requiresLooping(@javax.annotation.Nullable Boolean requiresLooping) { + this.requiresLooping = requiresLooping; + return this; + } + + /** + * Get requiresLooping + * @return requiresLooping + */ + @javax.annotation.Nullable + public Boolean getRequiresLooping() { + return requiresLooping; + } + + public void setRequiresLooping(@javax.annotation.Nullable Boolean requiresLooping) { + this.requiresLooping = requiresLooping; + } + + + public MediaSourceInfo supportsProbing(@javax.annotation.Nullable Boolean supportsProbing) { + this.supportsProbing = supportsProbing; + return this; + } + + /** + * Get supportsProbing + * @return supportsProbing + */ + @javax.annotation.Nullable + public Boolean getSupportsProbing() { + return supportsProbing; + } + + public void setSupportsProbing(@javax.annotation.Nullable Boolean supportsProbing) { + this.supportsProbing = supportsProbing; + } + + + public MediaSourceInfo videoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + return this; + } + + /** + * Get videoType + * @return videoType + */ + @javax.annotation.Nullable + public VideoType getVideoType() { + return videoType; + } + + public void setVideoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + } + + + public MediaSourceInfo isoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + return this; + } + + /** + * Get isoType + * @return isoType + */ + @javax.annotation.Nullable + public IsoType getIsoType() { + return isoType; + } + + public void setIsoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + } + + + public MediaSourceInfo video3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + return this; + } + + /** + * Get video3DFormat + * @return video3DFormat + */ + @javax.annotation.Nullable + public Video3DFormat getVideo3DFormat() { + return video3DFormat; + } + + public void setVideo3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + } + + + public MediaSourceInfo mediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + return this; + } + + public MediaSourceInfo addMediaStreamsItem(MediaStream mediaStreamsItem) { + if (this.mediaStreams == null) { + this.mediaStreams = new ArrayList<>(); + } + this.mediaStreams.add(mediaStreamsItem); + return this; + } + + /** + * Get mediaStreams + * @return mediaStreams + */ + @javax.annotation.Nullable + public List getMediaStreams() { + return mediaStreams; + } + + public void setMediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + } + + + public MediaSourceInfo mediaAttachments(@javax.annotation.Nullable List mediaAttachments) { + this.mediaAttachments = mediaAttachments; + return this; + } + + public MediaSourceInfo addMediaAttachmentsItem(MediaAttachment mediaAttachmentsItem) { + if (this.mediaAttachments == null) { + this.mediaAttachments = new ArrayList<>(); + } + this.mediaAttachments.add(mediaAttachmentsItem); + return this; + } + + /** + * Get mediaAttachments + * @return mediaAttachments + */ + @javax.annotation.Nullable + public List getMediaAttachments() { + return mediaAttachments; + } + + public void setMediaAttachments(@javax.annotation.Nullable List mediaAttachments) { + this.mediaAttachments = mediaAttachments; + } + + + public MediaSourceInfo formats(@javax.annotation.Nullable List formats) { + this.formats = formats; + return this; + } + + public MediaSourceInfo addFormatsItem(String formatsItem) { + if (this.formats == null) { + this.formats = new ArrayList<>(); + } + this.formats.add(formatsItem); + return this; + } + + /** + * Get formats + * @return formats + */ + @javax.annotation.Nullable + public List getFormats() { + return formats; + } + + public void setFormats(@javax.annotation.Nullable List formats) { + this.formats = formats; + } + + + public MediaSourceInfo bitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + /** + * Get bitrate + * @return bitrate + */ + @javax.annotation.Nullable + public Integer getBitrate() { + return bitrate; + } + + public void setBitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + } + + + public MediaSourceInfo fallbackMaxStreamingBitrate(@javax.annotation.Nullable Integer fallbackMaxStreamingBitrate) { + this.fallbackMaxStreamingBitrate = fallbackMaxStreamingBitrate; + return this; + } + + /** + * Get fallbackMaxStreamingBitrate + * @return fallbackMaxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getFallbackMaxStreamingBitrate() { + return fallbackMaxStreamingBitrate; + } + + public void setFallbackMaxStreamingBitrate(@javax.annotation.Nullable Integer fallbackMaxStreamingBitrate) { + this.fallbackMaxStreamingBitrate = fallbackMaxStreamingBitrate; + } + + + public MediaSourceInfo timestamp(@javax.annotation.Nullable TransportStreamTimestamp timestamp) { + this.timestamp = timestamp; + return this; + } + + /** + * Get timestamp + * @return timestamp + */ + @javax.annotation.Nullable + public TransportStreamTimestamp getTimestamp() { + return timestamp; + } + + public void setTimestamp(@javax.annotation.Nullable TransportStreamTimestamp timestamp) { + this.timestamp = timestamp; + } + + + public MediaSourceInfo requiredHttpHeaders(@javax.annotation.Nullable Map requiredHttpHeaders) { + this.requiredHttpHeaders = requiredHttpHeaders; + return this; + } + + public MediaSourceInfo putRequiredHttpHeadersItem(String key, String requiredHttpHeadersItem) { + if (this.requiredHttpHeaders == null) { + this.requiredHttpHeaders = new HashMap<>(); + } + this.requiredHttpHeaders.put(key, requiredHttpHeadersItem); + return this; + } + + /** + * Get requiredHttpHeaders + * @return requiredHttpHeaders + */ + @javax.annotation.Nullable + public Map getRequiredHttpHeaders() { + return requiredHttpHeaders; + } + + public void setRequiredHttpHeaders(@javax.annotation.Nullable Map requiredHttpHeaders) { + this.requiredHttpHeaders = requiredHttpHeaders; + } + + + public MediaSourceInfo transcodingUrl(@javax.annotation.Nullable String transcodingUrl) { + this.transcodingUrl = transcodingUrl; + return this; + } + + /** + * Get transcodingUrl + * @return transcodingUrl + */ + @javax.annotation.Nullable + public String getTranscodingUrl() { + return transcodingUrl; + } + + public void setTranscodingUrl(@javax.annotation.Nullable String transcodingUrl) { + this.transcodingUrl = transcodingUrl; + } + + + public MediaSourceInfo transcodingSubProtocol(@javax.annotation.Nullable MediaStreamProtocol transcodingSubProtocol) { + this.transcodingSubProtocol = transcodingSubProtocol; + return this; + } + + /** + * Media streaming protocol. Lowercase for backwards compatibility. + * @return transcodingSubProtocol + */ + @javax.annotation.Nullable + public MediaStreamProtocol getTranscodingSubProtocol() { + return transcodingSubProtocol; + } + + public void setTranscodingSubProtocol(@javax.annotation.Nullable MediaStreamProtocol transcodingSubProtocol) { + this.transcodingSubProtocol = transcodingSubProtocol; + } + + + public MediaSourceInfo transcodingContainer(@javax.annotation.Nullable String transcodingContainer) { + this.transcodingContainer = transcodingContainer; + return this; + } + + /** + * Get transcodingContainer + * @return transcodingContainer + */ + @javax.annotation.Nullable + public String getTranscodingContainer() { + return transcodingContainer; + } + + public void setTranscodingContainer(@javax.annotation.Nullable String transcodingContainer) { + this.transcodingContainer = transcodingContainer; + } + + + public MediaSourceInfo analyzeDurationMs(@javax.annotation.Nullable Integer analyzeDurationMs) { + this.analyzeDurationMs = analyzeDurationMs; + return this; + } + + /** + * Get analyzeDurationMs + * @return analyzeDurationMs + */ + @javax.annotation.Nullable + public Integer getAnalyzeDurationMs() { + return analyzeDurationMs; + } + + public void setAnalyzeDurationMs(@javax.annotation.Nullable Integer analyzeDurationMs) { + this.analyzeDurationMs = analyzeDurationMs; + } + + + public MediaSourceInfo defaultAudioStreamIndex(@javax.annotation.Nullable Integer defaultAudioStreamIndex) { + this.defaultAudioStreamIndex = defaultAudioStreamIndex; + return this; + } + + /** + * Get defaultAudioStreamIndex + * @return defaultAudioStreamIndex + */ + @javax.annotation.Nullable + public Integer getDefaultAudioStreamIndex() { + return defaultAudioStreamIndex; + } + + public void setDefaultAudioStreamIndex(@javax.annotation.Nullable Integer defaultAudioStreamIndex) { + this.defaultAudioStreamIndex = defaultAudioStreamIndex; + } + + + public MediaSourceInfo defaultSubtitleStreamIndex(@javax.annotation.Nullable Integer defaultSubtitleStreamIndex) { + this.defaultSubtitleStreamIndex = defaultSubtitleStreamIndex; + return this; + } + + /** + * Get defaultSubtitleStreamIndex + * @return defaultSubtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getDefaultSubtitleStreamIndex() { + return defaultSubtitleStreamIndex; + } + + public void setDefaultSubtitleStreamIndex(@javax.annotation.Nullable Integer defaultSubtitleStreamIndex) { + this.defaultSubtitleStreamIndex = defaultSubtitleStreamIndex; + } + + + public MediaSourceInfo hasSegments(@javax.annotation.Nullable Boolean hasSegments) { + this.hasSegments = hasSegments; + return this; + } + + /** + * Get hasSegments + * @return hasSegments + */ + @javax.annotation.Nullable + public Boolean getHasSegments() { + return hasSegments; + } + + public void setHasSegments(@javax.annotation.Nullable Boolean hasSegments) { + this.hasSegments = hasSegments; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaSourceInfo mediaSourceInfo = (MediaSourceInfo) o; + return Objects.equals(this.protocol, mediaSourceInfo.protocol) && + Objects.equals(this.id, mediaSourceInfo.id) && + Objects.equals(this.path, mediaSourceInfo.path) && + Objects.equals(this.encoderPath, mediaSourceInfo.encoderPath) && + Objects.equals(this.encoderProtocol, mediaSourceInfo.encoderProtocol) && + Objects.equals(this.type, mediaSourceInfo.type) && + Objects.equals(this.container, mediaSourceInfo.container) && + Objects.equals(this.size, mediaSourceInfo.size) && + Objects.equals(this.name, mediaSourceInfo.name) && + Objects.equals(this.isRemote, mediaSourceInfo.isRemote) && + Objects.equals(this.etag, mediaSourceInfo.etag) && + Objects.equals(this.runTimeTicks, mediaSourceInfo.runTimeTicks) && + Objects.equals(this.readAtNativeFramerate, mediaSourceInfo.readAtNativeFramerate) && + Objects.equals(this.ignoreDts, mediaSourceInfo.ignoreDts) && + Objects.equals(this.ignoreIndex, mediaSourceInfo.ignoreIndex) && + Objects.equals(this.genPtsInput, mediaSourceInfo.genPtsInput) && + Objects.equals(this.supportsTranscoding, mediaSourceInfo.supportsTranscoding) && + Objects.equals(this.supportsDirectStream, mediaSourceInfo.supportsDirectStream) && + Objects.equals(this.supportsDirectPlay, mediaSourceInfo.supportsDirectPlay) && + Objects.equals(this.isInfiniteStream, mediaSourceInfo.isInfiniteStream) && + Objects.equals(this.useMostCompatibleTranscodingProfile, mediaSourceInfo.useMostCompatibleTranscodingProfile) && + Objects.equals(this.requiresOpening, mediaSourceInfo.requiresOpening) && + Objects.equals(this.openToken, mediaSourceInfo.openToken) && + Objects.equals(this.requiresClosing, mediaSourceInfo.requiresClosing) && + Objects.equals(this.liveStreamId, mediaSourceInfo.liveStreamId) && + Objects.equals(this.bufferMs, mediaSourceInfo.bufferMs) && + Objects.equals(this.requiresLooping, mediaSourceInfo.requiresLooping) && + Objects.equals(this.supportsProbing, mediaSourceInfo.supportsProbing) && + Objects.equals(this.videoType, mediaSourceInfo.videoType) && + Objects.equals(this.isoType, mediaSourceInfo.isoType) && + Objects.equals(this.video3DFormat, mediaSourceInfo.video3DFormat) && + Objects.equals(this.mediaStreams, mediaSourceInfo.mediaStreams) && + Objects.equals(this.mediaAttachments, mediaSourceInfo.mediaAttachments) && + Objects.equals(this.formats, mediaSourceInfo.formats) && + Objects.equals(this.bitrate, mediaSourceInfo.bitrate) && + Objects.equals(this.fallbackMaxStreamingBitrate, mediaSourceInfo.fallbackMaxStreamingBitrate) && + Objects.equals(this.timestamp, mediaSourceInfo.timestamp) && + Objects.equals(this.requiredHttpHeaders, mediaSourceInfo.requiredHttpHeaders) && + Objects.equals(this.transcodingUrl, mediaSourceInfo.transcodingUrl) && + Objects.equals(this.transcodingSubProtocol, mediaSourceInfo.transcodingSubProtocol) && + Objects.equals(this.transcodingContainer, mediaSourceInfo.transcodingContainer) && + Objects.equals(this.analyzeDurationMs, mediaSourceInfo.analyzeDurationMs) && + Objects.equals(this.defaultAudioStreamIndex, mediaSourceInfo.defaultAudioStreamIndex) && + Objects.equals(this.defaultSubtitleStreamIndex, mediaSourceInfo.defaultSubtitleStreamIndex) && + Objects.equals(this.hasSegments, mediaSourceInfo.hasSegments); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(protocol, id, path, encoderPath, encoderProtocol, type, container, size, name, isRemote, etag, runTimeTicks, readAtNativeFramerate, ignoreDts, ignoreIndex, genPtsInput, supportsTranscoding, supportsDirectStream, supportsDirectPlay, isInfiniteStream, useMostCompatibleTranscodingProfile, requiresOpening, openToken, requiresClosing, liveStreamId, bufferMs, requiresLooping, supportsProbing, videoType, isoType, video3DFormat, mediaStreams, mediaAttachments, formats, bitrate, fallbackMaxStreamingBitrate, timestamp, requiredHttpHeaders, transcodingUrl, transcodingSubProtocol, transcodingContainer, analyzeDurationMs, defaultAudioStreamIndex, defaultSubtitleStreamIndex, hasSegments); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaSourceInfo {\n"); + sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" encoderPath: ").append(toIndentedString(encoderPath)).append("\n"); + sb.append(" encoderProtocol: ").append(toIndentedString(encoderProtocol)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" isRemote: ").append(toIndentedString(isRemote)).append("\n"); + sb.append(" etag: ").append(toIndentedString(etag)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" readAtNativeFramerate: ").append(toIndentedString(readAtNativeFramerate)).append("\n"); + sb.append(" ignoreDts: ").append(toIndentedString(ignoreDts)).append("\n"); + sb.append(" ignoreIndex: ").append(toIndentedString(ignoreIndex)).append("\n"); + sb.append(" genPtsInput: ").append(toIndentedString(genPtsInput)).append("\n"); + sb.append(" supportsTranscoding: ").append(toIndentedString(supportsTranscoding)).append("\n"); + sb.append(" supportsDirectStream: ").append(toIndentedString(supportsDirectStream)).append("\n"); + sb.append(" supportsDirectPlay: ").append(toIndentedString(supportsDirectPlay)).append("\n"); + sb.append(" isInfiniteStream: ").append(toIndentedString(isInfiniteStream)).append("\n"); + sb.append(" useMostCompatibleTranscodingProfile: ").append(toIndentedString(useMostCompatibleTranscodingProfile)).append("\n"); + sb.append(" requiresOpening: ").append(toIndentedString(requiresOpening)).append("\n"); + sb.append(" openToken: ").append(toIndentedString(openToken)).append("\n"); + sb.append(" requiresClosing: ").append(toIndentedString(requiresClosing)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" bufferMs: ").append(toIndentedString(bufferMs)).append("\n"); + sb.append(" requiresLooping: ").append(toIndentedString(requiresLooping)).append("\n"); + sb.append(" supportsProbing: ").append(toIndentedString(supportsProbing)).append("\n"); + sb.append(" videoType: ").append(toIndentedString(videoType)).append("\n"); + sb.append(" isoType: ").append(toIndentedString(isoType)).append("\n"); + sb.append(" video3DFormat: ").append(toIndentedString(video3DFormat)).append("\n"); + sb.append(" mediaStreams: ").append(toIndentedString(mediaStreams)).append("\n"); + sb.append(" mediaAttachments: ").append(toIndentedString(mediaAttachments)).append("\n"); + sb.append(" formats: ").append(toIndentedString(formats)).append("\n"); + sb.append(" bitrate: ").append(toIndentedString(bitrate)).append("\n"); + sb.append(" fallbackMaxStreamingBitrate: ").append(toIndentedString(fallbackMaxStreamingBitrate)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" requiredHttpHeaders: ").append(toIndentedString(requiredHttpHeaders)).append("\n"); + sb.append(" transcodingUrl: ").append(toIndentedString(transcodingUrl)).append("\n"); + sb.append(" transcodingSubProtocol: ").append(toIndentedString(transcodingSubProtocol)).append("\n"); + sb.append(" transcodingContainer: ").append(toIndentedString(transcodingContainer)).append("\n"); + sb.append(" analyzeDurationMs: ").append(toIndentedString(analyzeDurationMs)).append("\n"); + sb.append(" defaultAudioStreamIndex: ").append(toIndentedString(defaultAudioStreamIndex)).append("\n"); + sb.append(" defaultSubtitleStreamIndex: ").append(toIndentedString(defaultSubtitleStreamIndex)).append("\n"); + sb.append(" hasSegments: ").append(toIndentedString(hasSegments)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Protocol"); + openapiFields.add("Id"); + openapiFields.add("Path"); + openapiFields.add("EncoderPath"); + openapiFields.add("EncoderProtocol"); + openapiFields.add("Type"); + openapiFields.add("Container"); + openapiFields.add("Size"); + openapiFields.add("Name"); + openapiFields.add("IsRemote"); + openapiFields.add("ETag"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("ReadAtNativeFramerate"); + openapiFields.add("IgnoreDts"); + openapiFields.add("IgnoreIndex"); + openapiFields.add("GenPtsInput"); + openapiFields.add("SupportsTranscoding"); + openapiFields.add("SupportsDirectStream"); + openapiFields.add("SupportsDirectPlay"); + openapiFields.add("IsInfiniteStream"); + openapiFields.add("UseMostCompatibleTranscodingProfile"); + openapiFields.add("RequiresOpening"); + openapiFields.add("OpenToken"); + openapiFields.add("RequiresClosing"); + openapiFields.add("LiveStreamId"); + openapiFields.add("BufferMs"); + openapiFields.add("RequiresLooping"); + openapiFields.add("SupportsProbing"); + openapiFields.add("VideoType"); + openapiFields.add("IsoType"); + openapiFields.add("Video3DFormat"); + openapiFields.add("MediaStreams"); + openapiFields.add("MediaAttachments"); + openapiFields.add("Formats"); + openapiFields.add("Bitrate"); + openapiFields.add("FallbackMaxStreamingBitrate"); + openapiFields.add("Timestamp"); + openapiFields.add("RequiredHttpHeaders"); + openapiFields.add("TranscodingUrl"); + openapiFields.add("TranscodingSubProtocol"); + openapiFields.add("TranscodingContainer"); + openapiFields.add("AnalyzeDurationMs"); + openapiFields.add("DefaultAudioStreamIndex"); + openapiFields.add("DefaultSubtitleStreamIndex"); + openapiFields.add("HasSegments"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaSourceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaSourceInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaSourceInfo is not found in the empty JSON string", MediaSourceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaSourceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaSourceInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Protocol` + if (jsonObj.get("Protocol") != null && !jsonObj.get("Protocol").isJsonNull()) { + MediaProtocol.validateJsonElement(jsonObj.get("Protocol")); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("EncoderPath") != null && !jsonObj.get("EncoderPath").isJsonNull()) && !jsonObj.get("EncoderPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderPath").toString())); + } + // validate the optional field `EncoderProtocol` + if (jsonObj.get("EncoderProtocol") != null && !jsonObj.get("EncoderProtocol").isJsonNull()) { + MediaProtocol.validateJsonElement(jsonObj.get("EncoderProtocol")); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + MediaSourceType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ETag") != null && !jsonObj.get("ETag").isJsonNull()) && !jsonObj.get("ETag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ETag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ETag").toString())); + } + if ((jsonObj.get("OpenToken") != null && !jsonObj.get("OpenToken").isJsonNull()) && !jsonObj.get("OpenToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenToken").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + // validate the optional field `VideoType` + if (jsonObj.get("VideoType") != null && !jsonObj.get("VideoType").isJsonNull()) { + VideoType.validateJsonElement(jsonObj.get("VideoType")); + } + // validate the optional field `IsoType` + if (jsonObj.get("IsoType") != null && !jsonObj.get("IsoType").isJsonNull()) { + IsoType.validateJsonElement(jsonObj.get("IsoType")); + } + // validate the optional field `Video3DFormat` + if (jsonObj.get("Video3DFormat") != null && !jsonObj.get("Video3DFormat").isJsonNull()) { + Video3DFormat.validateJsonElement(jsonObj.get("Video3DFormat")); + } + if (jsonObj.get("MediaStreams") != null && !jsonObj.get("MediaStreams").isJsonNull()) { + JsonArray jsonArraymediaStreams = jsonObj.getAsJsonArray("MediaStreams"); + if (jsonArraymediaStreams != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaStreams").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaStreams` to be an array in the JSON string but got `%s`", jsonObj.get("MediaStreams").toString())); + } + + // validate the optional field `MediaStreams` (array) + for (int i = 0; i < jsonArraymediaStreams.size(); i++) { + MediaStream.validateJsonElement(jsonArraymediaStreams.get(i)); + }; + } + } + if (jsonObj.get("MediaAttachments") != null && !jsonObj.get("MediaAttachments").isJsonNull()) { + JsonArray jsonArraymediaAttachments = jsonObj.getAsJsonArray("MediaAttachments"); + if (jsonArraymediaAttachments != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaAttachments").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaAttachments` to be an array in the JSON string but got `%s`", jsonObj.get("MediaAttachments").toString())); + } + + // validate the optional field `MediaAttachments` (array) + for (int i = 0; i < jsonArraymediaAttachments.size(); i++) { + MediaAttachment.validateJsonElement(jsonArraymediaAttachments.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Formats") != null && !jsonObj.get("Formats").isJsonNull() && !jsonObj.get("Formats").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Formats` to be an array in the JSON string but got `%s`", jsonObj.get("Formats").toString())); + } + // validate the optional field `Timestamp` + if (jsonObj.get("Timestamp") != null && !jsonObj.get("Timestamp").isJsonNull()) { + TransportStreamTimestamp.validateJsonElement(jsonObj.get("Timestamp")); + } + if ((jsonObj.get("TranscodingUrl") != null && !jsonObj.get("TranscodingUrl").isJsonNull()) && !jsonObj.get("TranscodingUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingUrl").toString())); + } + // validate the optional field `TranscodingSubProtocol` + if (jsonObj.get("TranscodingSubProtocol") != null && !jsonObj.get("TranscodingSubProtocol").isJsonNull()) { + MediaStreamProtocol.validateJsonElement(jsonObj.get("TranscodingSubProtocol")); + } + if ((jsonObj.get("TranscodingContainer") != null && !jsonObj.get("TranscodingContainer").isJsonNull()) && !jsonObj.get("TranscodingContainer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingContainer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingContainer").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaSourceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaSourceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaSourceInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaSourceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaSourceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaSourceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaSourceInfo + * @throws IOException if the JSON string is invalid with respect to MediaSourceInfo + */ + public static MediaSourceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaSourceInfo.class); + } + + /** + * Convert an instance of MediaSourceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceType.java new file mode 100644 index 0000000000000..279a5c61fad4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaSourceType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MediaSourceType + */ +@JsonAdapter(MediaSourceType.Adapter.class) +public enum MediaSourceType { + + DEFAULT("Default"), + + GROUPING("Grouping"), + + PLACEHOLDER("Placeholder"); + + private String value; + + MediaSourceType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaSourceType fromValue(String value) { + for (MediaSourceType b : MediaSourceType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaSourceType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaSourceType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaSourceType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaSourceType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStream.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStream.java new file mode 100644 index 0000000000000..2af89a86b4110 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStream.java @@ -0,0 +1,1952 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.AudioSpatialFormat; +import org.openapitools.client.model.MediaStreamType; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import org.openapitools.client.model.VideoRange; +import org.openapitools.client.model.VideoRangeType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MediaStream. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaStream { + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CODEC_TAG = "CodecTag"; + @SerializedName(SERIALIZED_NAME_CODEC_TAG) + @javax.annotation.Nullable + private String codecTag; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_COLOR_RANGE = "ColorRange"; + @SerializedName(SERIALIZED_NAME_COLOR_RANGE) + @javax.annotation.Nullable + private String colorRange; + + public static final String SERIALIZED_NAME_COLOR_SPACE = "ColorSpace"; + @SerializedName(SERIALIZED_NAME_COLOR_SPACE) + @javax.annotation.Nullable + private String colorSpace; + + public static final String SERIALIZED_NAME_COLOR_TRANSFER = "ColorTransfer"; + @SerializedName(SERIALIZED_NAME_COLOR_TRANSFER) + @javax.annotation.Nullable + private String colorTransfer; + + public static final String SERIALIZED_NAME_COLOR_PRIMARIES = "ColorPrimaries"; + @SerializedName(SERIALIZED_NAME_COLOR_PRIMARIES) + @javax.annotation.Nullable + private String colorPrimaries; + + public static final String SERIALIZED_NAME_DV_VERSION_MAJOR = "DvVersionMajor"; + @SerializedName(SERIALIZED_NAME_DV_VERSION_MAJOR) + @javax.annotation.Nullable + private Integer dvVersionMajor; + + public static final String SERIALIZED_NAME_DV_VERSION_MINOR = "DvVersionMinor"; + @SerializedName(SERIALIZED_NAME_DV_VERSION_MINOR) + @javax.annotation.Nullable + private Integer dvVersionMinor; + + public static final String SERIALIZED_NAME_DV_PROFILE = "DvProfile"; + @SerializedName(SERIALIZED_NAME_DV_PROFILE) + @javax.annotation.Nullable + private Integer dvProfile; + + public static final String SERIALIZED_NAME_DV_LEVEL = "DvLevel"; + @SerializedName(SERIALIZED_NAME_DV_LEVEL) + @javax.annotation.Nullable + private Integer dvLevel; + + public static final String SERIALIZED_NAME_RPU_PRESENT_FLAG = "RpuPresentFlag"; + @SerializedName(SERIALIZED_NAME_RPU_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer rpuPresentFlag; + + public static final String SERIALIZED_NAME_EL_PRESENT_FLAG = "ElPresentFlag"; + @SerializedName(SERIALIZED_NAME_EL_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer elPresentFlag; + + public static final String SERIALIZED_NAME_BL_PRESENT_FLAG = "BlPresentFlag"; + @SerializedName(SERIALIZED_NAME_BL_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer blPresentFlag; + + public static final String SERIALIZED_NAME_DV_BL_SIGNAL_COMPATIBILITY_ID = "DvBlSignalCompatibilityId"; + @SerializedName(SERIALIZED_NAME_DV_BL_SIGNAL_COMPATIBILITY_ID) + @javax.annotation.Nullable + private Integer dvBlSignalCompatibilityId; + + public static final String SERIALIZED_NAME_ROTATION = "Rotation"; + @SerializedName(SERIALIZED_NAME_ROTATION) + @javax.annotation.Nullable + private Integer rotation; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_TIME_BASE = "TimeBase"; + @SerializedName(SERIALIZED_NAME_TIME_BASE) + @javax.annotation.Nullable + private String timeBase; + + public static final String SERIALIZED_NAME_CODEC_TIME_BASE = "CodecTimeBase"; + @SerializedName(SERIALIZED_NAME_CODEC_TIME_BASE) + @javax.annotation.Nullable + private String codecTimeBase; + + public static final String SERIALIZED_NAME_TITLE = "Title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @javax.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_VIDEO_RANGE = "VideoRange"; + @SerializedName(SERIALIZED_NAME_VIDEO_RANGE) + @javax.annotation.Nullable + private VideoRange videoRange; + + public static final String SERIALIZED_NAME_VIDEO_RANGE_TYPE = "VideoRangeType"; + @SerializedName(SERIALIZED_NAME_VIDEO_RANGE_TYPE) + @javax.annotation.Nullable + private VideoRangeType videoRangeType; + + public static final String SERIALIZED_NAME_VIDEO_DO_VI_TITLE = "VideoDoViTitle"; + @SerializedName(SERIALIZED_NAME_VIDEO_DO_VI_TITLE) + @javax.annotation.Nullable + private String videoDoViTitle; + + public static final String SERIALIZED_NAME_AUDIO_SPATIAL_FORMAT = "AudioSpatialFormat"; + @SerializedName(SERIALIZED_NAME_AUDIO_SPATIAL_FORMAT) + @javax.annotation.Nullable + private AudioSpatialFormat audioSpatialFormat = AudioSpatialFormat.NONE; + + public static final String SERIALIZED_NAME_LOCALIZED_UNDEFINED = "LocalizedUndefined"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_UNDEFINED) + @javax.annotation.Nullable + private String localizedUndefined; + + public static final String SERIALIZED_NAME_LOCALIZED_DEFAULT = "LocalizedDefault"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_DEFAULT) + @javax.annotation.Nullable + private String localizedDefault; + + public static final String SERIALIZED_NAME_LOCALIZED_FORCED = "LocalizedForced"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_FORCED) + @javax.annotation.Nullable + private String localizedForced; + + public static final String SERIALIZED_NAME_LOCALIZED_EXTERNAL = "LocalizedExternal"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_EXTERNAL) + @javax.annotation.Nullable + private String localizedExternal; + + public static final String SERIALIZED_NAME_LOCALIZED_HEARING_IMPAIRED = "LocalizedHearingImpaired"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_HEARING_IMPAIRED) + @javax.annotation.Nullable + private String localizedHearingImpaired; + + public static final String SERIALIZED_NAME_DISPLAY_TITLE = "DisplayTitle"; + @SerializedName(SERIALIZED_NAME_DISPLAY_TITLE) + @javax.annotation.Nullable + private String displayTitle; + + public static final String SERIALIZED_NAME_NAL_LENGTH_SIZE = "NalLengthSize"; + @SerializedName(SERIALIZED_NAME_NAL_LENGTH_SIZE) + @javax.annotation.Nullable + private String nalLengthSize; + + public static final String SERIALIZED_NAME_IS_INTERLACED = "IsInterlaced"; + @SerializedName(SERIALIZED_NAME_IS_INTERLACED) + @javax.annotation.Nullable + private Boolean isInterlaced; + + public static final String SERIALIZED_NAME_IS_A_V_C = "IsAVC"; + @SerializedName(SERIALIZED_NAME_IS_A_V_C) + @javax.annotation.Nullable + private Boolean isAVC; + + public static final String SERIALIZED_NAME_CHANNEL_LAYOUT = "ChannelLayout"; + @SerializedName(SERIALIZED_NAME_CHANNEL_LAYOUT) + @javax.annotation.Nullable + private String channelLayout; + + public static final String SERIALIZED_NAME_BIT_RATE = "BitRate"; + @SerializedName(SERIALIZED_NAME_BIT_RATE) + @javax.annotation.Nullable + private Integer bitRate; + + public static final String SERIALIZED_NAME_BIT_DEPTH = "BitDepth"; + @SerializedName(SERIALIZED_NAME_BIT_DEPTH) + @javax.annotation.Nullable + private Integer bitDepth; + + public static final String SERIALIZED_NAME_REF_FRAMES = "RefFrames"; + @SerializedName(SERIALIZED_NAME_REF_FRAMES) + @javax.annotation.Nullable + private Integer refFrames; + + public static final String SERIALIZED_NAME_PACKET_LENGTH = "PacketLength"; + @SerializedName(SERIALIZED_NAME_PACKET_LENGTH) + @javax.annotation.Nullable + private Integer packetLength; + + public static final String SERIALIZED_NAME_CHANNELS = "Channels"; + @SerializedName(SERIALIZED_NAME_CHANNELS) + @javax.annotation.Nullable + private Integer channels; + + public static final String SERIALIZED_NAME_SAMPLE_RATE = "SampleRate"; + @SerializedName(SERIALIZED_NAME_SAMPLE_RATE) + @javax.annotation.Nullable + private Integer sampleRate; + + public static final String SERIALIZED_NAME_IS_DEFAULT = "IsDefault"; + @SerializedName(SERIALIZED_NAME_IS_DEFAULT) + @javax.annotation.Nullable + private Boolean isDefault; + + public static final String SERIALIZED_NAME_IS_FORCED = "IsForced"; + @SerializedName(SERIALIZED_NAME_IS_FORCED) + @javax.annotation.Nullable + private Boolean isForced; + + public static final String SERIALIZED_NAME_IS_HEARING_IMPAIRED = "IsHearingImpaired"; + @SerializedName(SERIALIZED_NAME_IS_HEARING_IMPAIRED) + @javax.annotation.Nullable + private Boolean isHearingImpaired; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_AVERAGE_FRAME_RATE = "AverageFrameRate"; + @SerializedName(SERIALIZED_NAME_AVERAGE_FRAME_RATE) + @javax.annotation.Nullable + private Float averageFrameRate; + + public static final String SERIALIZED_NAME_REAL_FRAME_RATE = "RealFrameRate"; + @SerializedName(SERIALIZED_NAME_REAL_FRAME_RATE) + @javax.annotation.Nullable + private Float realFrameRate; + + public static final String SERIALIZED_NAME_REFERENCE_FRAME_RATE = "ReferenceFrameRate"; + @SerializedName(SERIALIZED_NAME_REFERENCE_FRAME_RATE) + @javax.annotation.Nullable + private Float referenceFrameRate; + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private String profile; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private MediaStreamType type; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_INDEX = "Index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @javax.annotation.Nullable + private Integer index; + + public static final String SERIALIZED_NAME_SCORE = "Score"; + @SerializedName(SERIALIZED_NAME_SCORE) + @javax.annotation.Nullable + private Integer score; + + public static final String SERIALIZED_NAME_IS_EXTERNAL = "IsExternal"; + @SerializedName(SERIALIZED_NAME_IS_EXTERNAL) + @javax.annotation.Nullable + private Boolean isExternal; + + public static final String SERIALIZED_NAME_DELIVERY_METHOD = "DeliveryMethod"; + @SerializedName(SERIALIZED_NAME_DELIVERY_METHOD) + @javax.annotation.Nullable + private SubtitleDeliveryMethod deliveryMethod; + + public static final String SERIALIZED_NAME_DELIVERY_URL = "DeliveryUrl"; + @SerializedName(SERIALIZED_NAME_DELIVERY_URL) + @javax.annotation.Nullable + private String deliveryUrl; + + public static final String SERIALIZED_NAME_IS_EXTERNAL_URL = "IsExternalUrl"; + @SerializedName(SERIALIZED_NAME_IS_EXTERNAL_URL) + @javax.annotation.Nullable + private Boolean isExternalUrl; + + public static final String SERIALIZED_NAME_IS_TEXT_SUBTITLE_STREAM = "IsTextSubtitleStream"; + @SerializedName(SERIALIZED_NAME_IS_TEXT_SUBTITLE_STREAM) + @javax.annotation.Nullable + private Boolean isTextSubtitleStream; + + public static final String SERIALIZED_NAME_SUPPORTS_EXTERNAL_STREAM = "SupportsExternalStream"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_EXTERNAL_STREAM) + @javax.annotation.Nullable + private Boolean supportsExternalStream; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_PIXEL_FORMAT = "PixelFormat"; + @SerializedName(SERIALIZED_NAME_PIXEL_FORMAT) + @javax.annotation.Nullable + private String pixelFormat; + + public static final String SERIALIZED_NAME_LEVEL = "Level"; + @SerializedName(SERIALIZED_NAME_LEVEL) + @javax.annotation.Nullable + private Double level; + + public static final String SERIALIZED_NAME_IS_ANAMORPHIC = "IsAnamorphic"; + @SerializedName(SERIALIZED_NAME_IS_ANAMORPHIC) + @javax.annotation.Nullable + private Boolean isAnamorphic; + + public MediaStream() { + } + + public MediaStream( + VideoRange videoRange, + VideoRangeType videoRangeType, + String videoDoViTitle, + AudioSpatialFormat audioSpatialFormat, + String displayTitle, + Float referenceFrameRate, + Boolean isTextSubtitleStream + ) { + this(); + this.videoRange = videoRange; + this.videoRangeType = videoRangeType; + this.videoDoViTitle = videoDoViTitle; + this.audioSpatialFormat = audioSpatialFormat; + this.displayTitle = displayTitle; + this.referenceFrameRate = referenceFrameRate; + this.isTextSubtitleStream = isTextSubtitleStream; + } + + public MediaStream codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Gets or sets the codec. + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public MediaStream codecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + return this; + } + + /** + * Gets or sets the codec tag. + * @return codecTag + */ + @javax.annotation.Nullable + public String getCodecTag() { + return codecTag; + } + + public void setCodecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + } + + + public MediaStream language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the language. + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public MediaStream colorRange(@javax.annotation.Nullable String colorRange) { + this.colorRange = colorRange; + return this; + } + + /** + * Gets or sets the color range. + * @return colorRange + */ + @javax.annotation.Nullable + public String getColorRange() { + return colorRange; + } + + public void setColorRange(@javax.annotation.Nullable String colorRange) { + this.colorRange = colorRange; + } + + + public MediaStream colorSpace(@javax.annotation.Nullable String colorSpace) { + this.colorSpace = colorSpace; + return this; + } + + /** + * Gets or sets the color space. + * @return colorSpace + */ + @javax.annotation.Nullable + public String getColorSpace() { + return colorSpace; + } + + public void setColorSpace(@javax.annotation.Nullable String colorSpace) { + this.colorSpace = colorSpace; + } + + + public MediaStream colorTransfer(@javax.annotation.Nullable String colorTransfer) { + this.colorTransfer = colorTransfer; + return this; + } + + /** + * Gets or sets the color transfer. + * @return colorTransfer + */ + @javax.annotation.Nullable + public String getColorTransfer() { + return colorTransfer; + } + + public void setColorTransfer(@javax.annotation.Nullable String colorTransfer) { + this.colorTransfer = colorTransfer; + } + + + public MediaStream colorPrimaries(@javax.annotation.Nullable String colorPrimaries) { + this.colorPrimaries = colorPrimaries; + return this; + } + + /** + * Gets or sets the color primaries. + * @return colorPrimaries + */ + @javax.annotation.Nullable + public String getColorPrimaries() { + return colorPrimaries; + } + + public void setColorPrimaries(@javax.annotation.Nullable String colorPrimaries) { + this.colorPrimaries = colorPrimaries; + } + + + public MediaStream dvVersionMajor(@javax.annotation.Nullable Integer dvVersionMajor) { + this.dvVersionMajor = dvVersionMajor; + return this; + } + + /** + * Gets or sets the Dolby Vision version major. + * @return dvVersionMajor + */ + @javax.annotation.Nullable + public Integer getDvVersionMajor() { + return dvVersionMajor; + } + + public void setDvVersionMajor(@javax.annotation.Nullable Integer dvVersionMajor) { + this.dvVersionMajor = dvVersionMajor; + } + + + public MediaStream dvVersionMinor(@javax.annotation.Nullable Integer dvVersionMinor) { + this.dvVersionMinor = dvVersionMinor; + return this; + } + + /** + * Gets or sets the Dolby Vision version minor. + * @return dvVersionMinor + */ + @javax.annotation.Nullable + public Integer getDvVersionMinor() { + return dvVersionMinor; + } + + public void setDvVersionMinor(@javax.annotation.Nullable Integer dvVersionMinor) { + this.dvVersionMinor = dvVersionMinor; + } + + + public MediaStream dvProfile(@javax.annotation.Nullable Integer dvProfile) { + this.dvProfile = dvProfile; + return this; + } + + /** + * Gets or sets the Dolby Vision profile. + * @return dvProfile + */ + @javax.annotation.Nullable + public Integer getDvProfile() { + return dvProfile; + } + + public void setDvProfile(@javax.annotation.Nullable Integer dvProfile) { + this.dvProfile = dvProfile; + } + + + public MediaStream dvLevel(@javax.annotation.Nullable Integer dvLevel) { + this.dvLevel = dvLevel; + return this; + } + + /** + * Gets or sets the Dolby Vision level. + * @return dvLevel + */ + @javax.annotation.Nullable + public Integer getDvLevel() { + return dvLevel; + } + + public void setDvLevel(@javax.annotation.Nullable Integer dvLevel) { + this.dvLevel = dvLevel; + } + + + public MediaStream rpuPresentFlag(@javax.annotation.Nullable Integer rpuPresentFlag) { + this.rpuPresentFlag = rpuPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision rpu present flag. + * @return rpuPresentFlag + */ + @javax.annotation.Nullable + public Integer getRpuPresentFlag() { + return rpuPresentFlag; + } + + public void setRpuPresentFlag(@javax.annotation.Nullable Integer rpuPresentFlag) { + this.rpuPresentFlag = rpuPresentFlag; + } + + + public MediaStream elPresentFlag(@javax.annotation.Nullable Integer elPresentFlag) { + this.elPresentFlag = elPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision el present flag. + * @return elPresentFlag + */ + @javax.annotation.Nullable + public Integer getElPresentFlag() { + return elPresentFlag; + } + + public void setElPresentFlag(@javax.annotation.Nullable Integer elPresentFlag) { + this.elPresentFlag = elPresentFlag; + } + + + public MediaStream blPresentFlag(@javax.annotation.Nullable Integer blPresentFlag) { + this.blPresentFlag = blPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision bl present flag. + * @return blPresentFlag + */ + @javax.annotation.Nullable + public Integer getBlPresentFlag() { + return blPresentFlag; + } + + public void setBlPresentFlag(@javax.annotation.Nullable Integer blPresentFlag) { + this.blPresentFlag = blPresentFlag; + } + + + public MediaStream dvBlSignalCompatibilityId(@javax.annotation.Nullable Integer dvBlSignalCompatibilityId) { + this.dvBlSignalCompatibilityId = dvBlSignalCompatibilityId; + return this; + } + + /** + * Gets or sets the Dolby Vision bl signal compatibility id. + * @return dvBlSignalCompatibilityId + */ + @javax.annotation.Nullable + public Integer getDvBlSignalCompatibilityId() { + return dvBlSignalCompatibilityId; + } + + public void setDvBlSignalCompatibilityId(@javax.annotation.Nullable Integer dvBlSignalCompatibilityId) { + this.dvBlSignalCompatibilityId = dvBlSignalCompatibilityId; + } + + + public MediaStream rotation(@javax.annotation.Nullable Integer rotation) { + this.rotation = rotation; + return this; + } + + /** + * Gets or sets the Rotation in degrees. + * @return rotation + */ + @javax.annotation.Nullable + public Integer getRotation() { + return rotation; + } + + public void setRotation(@javax.annotation.Nullable Integer rotation) { + this.rotation = rotation; + } + + + public MediaStream comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Gets or sets the comment. + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public MediaStream timeBase(@javax.annotation.Nullable String timeBase) { + this.timeBase = timeBase; + return this; + } + + /** + * Gets or sets the time base. + * @return timeBase + */ + @javax.annotation.Nullable + public String getTimeBase() { + return timeBase; + } + + public void setTimeBase(@javax.annotation.Nullable String timeBase) { + this.timeBase = timeBase; + } + + + public MediaStream codecTimeBase(@javax.annotation.Nullable String codecTimeBase) { + this.codecTimeBase = codecTimeBase; + return this; + } + + /** + * Gets or sets the codec time base. + * @return codecTimeBase + */ + @javax.annotation.Nullable + public String getCodecTimeBase() { + return codecTimeBase; + } + + public void setCodecTimeBase(@javax.annotation.Nullable String codecTimeBase) { + this.codecTimeBase = codecTimeBase; + } + + + public MediaStream title(@javax.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Gets or sets the title. + * @return title + */ + @javax.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@javax.annotation.Nullable String title) { + this.title = title; + } + + + /** + * An enum representing video ranges. + * @return videoRange + */ + @javax.annotation.Nullable + public VideoRange getVideoRange() { + return videoRange; + } + + + + /** + * An enum representing types of video ranges. + * @return videoRangeType + */ + @javax.annotation.Nullable + public VideoRangeType getVideoRangeType() { + return videoRangeType; + } + + + + /** + * Gets the video dovi title. + * @return videoDoViTitle + */ + @javax.annotation.Nullable + public String getVideoDoViTitle() { + return videoDoViTitle; + } + + + + /** + * An enum representing formats of spatial audio. + * @return audioSpatialFormat + */ + @javax.annotation.Nullable + public AudioSpatialFormat getAudioSpatialFormat() { + return audioSpatialFormat; + } + + + + public MediaStream localizedUndefined(@javax.annotation.Nullable String localizedUndefined) { + this.localizedUndefined = localizedUndefined; + return this; + } + + /** + * Get localizedUndefined + * @return localizedUndefined + */ + @javax.annotation.Nullable + public String getLocalizedUndefined() { + return localizedUndefined; + } + + public void setLocalizedUndefined(@javax.annotation.Nullable String localizedUndefined) { + this.localizedUndefined = localizedUndefined; + } + + + public MediaStream localizedDefault(@javax.annotation.Nullable String localizedDefault) { + this.localizedDefault = localizedDefault; + return this; + } + + /** + * Get localizedDefault + * @return localizedDefault + */ + @javax.annotation.Nullable + public String getLocalizedDefault() { + return localizedDefault; + } + + public void setLocalizedDefault(@javax.annotation.Nullable String localizedDefault) { + this.localizedDefault = localizedDefault; + } + + + public MediaStream localizedForced(@javax.annotation.Nullable String localizedForced) { + this.localizedForced = localizedForced; + return this; + } + + /** + * Get localizedForced + * @return localizedForced + */ + @javax.annotation.Nullable + public String getLocalizedForced() { + return localizedForced; + } + + public void setLocalizedForced(@javax.annotation.Nullable String localizedForced) { + this.localizedForced = localizedForced; + } + + + public MediaStream localizedExternal(@javax.annotation.Nullable String localizedExternal) { + this.localizedExternal = localizedExternal; + return this; + } + + /** + * Get localizedExternal + * @return localizedExternal + */ + @javax.annotation.Nullable + public String getLocalizedExternal() { + return localizedExternal; + } + + public void setLocalizedExternal(@javax.annotation.Nullable String localizedExternal) { + this.localizedExternal = localizedExternal; + } + + + public MediaStream localizedHearingImpaired(@javax.annotation.Nullable String localizedHearingImpaired) { + this.localizedHearingImpaired = localizedHearingImpaired; + return this; + } + + /** + * Get localizedHearingImpaired + * @return localizedHearingImpaired + */ + @javax.annotation.Nullable + public String getLocalizedHearingImpaired() { + return localizedHearingImpaired; + } + + public void setLocalizedHearingImpaired(@javax.annotation.Nullable String localizedHearingImpaired) { + this.localizedHearingImpaired = localizedHearingImpaired; + } + + + /** + * Get displayTitle + * @return displayTitle + */ + @javax.annotation.Nullable + public String getDisplayTitle() { + return displayTitle; + } + + + + public MediaStream nalLengthSize(@javax.annotation.Nullable String nalLengthSize) { + this.nalLengthSize = nalLengthSize; + return this; + } + + /** + * Get nalLengthSize + * @return nalLengthSize + */ + @javax.annotation.Nullable + public String getNalLengthSize() { + return nalLengthSize; + } + + public void setNalLengthSize(@javax.annotation.Nullable String nalLengthSize) { + this.nalLengthSize = nalLengthSize; + } + + + public MediaStream isInterlaced(@javax.annotation.Nullable Boolean isInterlaced) { + this.isInterlaced = isInterlaced; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is interlaced. + * @return isInterlaced + */ + @javax.annotation.Nullable + public Boolean getIsInterlaced() { + return isInterlaced; + } + + public void setIsInterlaced(@javax.annotation.Nullable Boolean isInterlaced) { + this.isInterlaced = isInterlaced; + } + + + public MediaStream isAVC(@javax.annotation.Nullable Boolean isAVC) { + this.isAVC = isAVC; + return this; + } + + /** + * Get isAVC + * @return isAVC + */ + @javax.annotation.Nullable + public Boolean getIsAVC() { + return isAVC; + } + + public void setIsAVC(@javax.annotation.Nullable Boolean isAVC) { + this.isAVC = isAVC; + } + + + public MediaStream channelLayout(@javax.annotation.Nullable String channelLayout) { + this.channelLayout = channelLayout; + return this; + } + + /** + * Gets or sets the channel layout. + * @return channelLayout + */ + @javax.annotation.Nullable + public String getChannelLayout() { + return channelLayout; + } + + public void setChannelLayout(@javax.annotation.Nullable String channelLayout) { + this.channelLayout = channelLayout; + } + + + public MediaStream bitRate(@javax.annotation.Nullable Integer bitRate) { + this.bitRate = bitRate; + return this; + } + + /** + * Gets or sets the bit rate. + * @return bitRate + */ + @javax.annotation.Nullable + public Integer getBitRate() { + return bitRate; + } + + public void setBitRate(@javax.annotation.Nullable Integer bitRate) { + this.bitRate = bitRate; + } + + + public MediaStream bitDepth(@javax.annotation.Nullable Integer bitDepth) { + this.bitDepth = bitDepth; + return this; + } + + /** + * Gets or sets the bit depth. + * @return bitDepth + */ + @javax.annotation.Nullable + public Integer getBitDepth() { + return bitDepth; + } + + public void setBitDepth(@javax.annotation.Nullable Integer bitDepth) { + this.bitDepth = bitDepth; + } + + + public MediaStream refFrames(@javax.annotation.Nullable Integer refFrames) { + this.refFrames = refFrames; + return this; + } + + /** + * Gets or sets the reference frames. + * @return refFrames + */ + @javax.annotation.Nullable + public Integer getRefFrames() { + return refFrames; + } + + public void setRefFrames(@javax.annotation.Nullable Integer refFrames) { + this.refFrames = refFrames; + } + + + public MediaStream packetLength(@javax.annotation.Nullable Integer packetLength) { + this.packetLength = packetLength; + return this; + } + + /** + * Gets or sets the length of the packet. + * @return packetLength + */ + @javax.annotation.Nullable + public Integer getPacketLength() { + return packetLength; + } + + public void setPacketLength(@javax.annotation.Nullable Integer packetLength) { + this.packetLength = packetLength; + } + + + public MediaStream channels(@javax.annotation.Nullable Integer channels) { + this.channels = channels; + return this; + } + + /** + * Gets or sets the channels. + * @return channels + */ + @javax.annotation.Nullable + public Integer getChannels() { + return channels; + } + + public void setChannels(@javax.annotation.Nullable Integer channels) { + this.channels = channels; + } + + + public MediaStream sampleRate(@javax.annotation.Nullable Integer sampleRate) { + this.sampleRate = sampleRate; + return this; + } + + /** + * Gets or sets the sample rate. + * @return sampleRate + */ + @javax.annotation.Nullable + public Integer getSampleRate() { + return sampleRate; + } + + public void setSampleRate(@javax.annotation.Nullable Integer sampleRate) { + this.sampleRate = sampleRate; + } + + + public MediaStream isDefault(@javax.annotation.Nullable Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is default. + * @return isDefault + */ + @javax.annotation.Nullable + public Boolean getIsDefault() { + return isDefault; + } + + public void setIsDefault(@javax.annotation.Nullable Boolean isDefault) { + this.isDefault = isDefault; + } + + + public MediaStream isForced(@javax.annotation.Nullable Boolean isForced) { + this.isForced = isForced; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is forced. + * @return isForced + */ + @javax.annotation.Nullable + public Boolean getIsForced() { + return isForced; + } + + public void setIsForced(@javax.annotation.Nullable Boolean isForced) { + this.isForced = isForced; + } + + + public MediaStream isHearingImpaired(@javax.annotation.Nullable Boolean isHearingImpaired) { + this.isHearingImpaired = isHearingImpaired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is for the hearing impaired. + * @return isHearingImpaired + */ + @javax.annotation.Nullable + public Boolean getIsHearingImpaired() { + return isHearingImpaired; + } + + public void setIsHearingImpaired(@javax.annotation.Nullable Boolean isHearingImpaired) { + this.isHearingImpaired = isHearingImpaired; + } + + + public MediaStream height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public MediaStream width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public MediaStream averageFrameRate(@javax.annotation.Nullable Float averageFrameRate) { + this.averageFrameRate = averageFrameRate; + return this; + } + + /** + * Gets or sets the average frame rate. + * @return averageFrameRate + */ + @javax.annotation.Nullable + public Float getAverageFrameRate() { + return averageFrameRate; + } + + public void setAverageFrameRate(@javax.annotation.Nullable Float averageFrameRate) { + this.averageFrameRate = averageFrameRate; + } + + + public MediaStream realFrameRate(@javax.annotation.Nullable Float realFrameRate) { + this.realFrameRate = realFrameRate; + return this; + } + + /** + * Gets or sets the real frame rate. + * @return realFrameRate + */ + @javax.annotation.Nullable + public Float getRealFrameRate() { + return realFrameRate; + } + + public void setRealFrameRate(@javax.annotation.Nullable Float realFrameRate) { + this.realFrameRate = realFrameRate; + } + + + /** + * Gets the framerate used as reference. Prefer AverageFrameRate, if that is null or an unrealistic value then fallback to RealFrameRate. + * @return referenceFrameRate + */ + @javax.annotation.Nullable + public Float getReferenceFrameRate() { + return referenceFrameRate; + } + + + + public MediaStream profile(@javax.annotation.Nullable String profile) { + this.profile = profile; + return this; + } + + /** + * Gets or sets the profile. + * @return profile + */ + @javax.annotation.Nullable + public String getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable String profile) { + this.profile = profile; + } + + + public MediaStream type(@javax.annotation.Nullable MediaStreamType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public MediaStreamType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable MediaStreamType type) { + this.type = type; + } + + + public MediaStream aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Gets or sets the aspect ratio. + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public MediaStream index(@javax.annotation.Nullable Integer index) { + this.index = index; + return this; + } + + /** + * Gets or sets the index. + * @return index + */ + @javax.annotation.Nullable + public Integer getIndex() { + return index; + } + + public void setIndex(@javax.annotation.Nullable Integer index) { + this.index = index; + } + + + public MediaStream score(@javax.annotation.Nullable Integer score) { + this.score = score; + return this; + } + + /** + * Gets or sets the score. + * @return score + */ + @javax.annotation.Nullable + public Integer getScore() { + return score; + } + + public void setScore(@javax.annotation.Nullable Integer score) { + this.score = score; + } + + + public MediaStream isExternal(@javax.annotation.Nullable Boolean isExternal) { + this.isExternal = isExternal; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is external. + * @return isExternal + */ + @javax.annotation.Nullable + public Boolean getIsExternal() { + return isExternal; + } + + public void setIsExternal(@javax.annotation.Nullable Boolean isExternal) { + this.isExternal = isExternal; + } + + + public MediaStream deliveryMethod(@javax.annotation.Nullable SubtitleDeliveryMethod deliveryMethod) { + this.deliveryMethod = deliveryMethod; + return this; + } + + /** + * Gets or sets the method. + * @return deliveryMethod + */ + @javax.annotation.Nullable + public SubtitleDeliveryMethod getDeliveryMethod() { + return deliveryMethod; + } + + public void setDeliveryMethod(@javax.annotation.Nullable SubtitleDeliveryMethod deliveryMethod) { + this.deliveryMethod = deliveryMethod; + } + + + public MediaStream deliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + return this; + } + + /** + * Gets or sets the delivery URL. + * @return deliveryUrl + */ + @javax.annotation.Nullable + public String getDeliveryUrl() { + return deliveryUrl; + } + + public void setDeliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + } + + + public MediaStream isExternalUrl(@javax.annotation.Nullable Boolean isExternalUrl) { + this.isExternalUrl = isExternalUrl; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is external URL. + * @return isExternalUrl + */ + @javax.annotation.Nullable + public Boolean getIsExternalUrl() { + return isExternalUrl; + } + + public void setIsExternalUrl(@javax.annotation.Nullable Boolean isExternalUrl) { + this.isExternalUrl = isExternalUrl; + } + + + /** + * Get isTextSubtitleStream + * @return isTextSubtitleStream + */ + @javax.annotation.Nullable + public Boolean getIsTextSubtitleStream() { + return isTextSubtitleStream; + } + + + + public MediaStream supportsExternalStream(@javax.annotation.Nullable Boolean supportsExternalStream) { + this.supportsExternalStream = supportsExternalStream; + return this; + } + + /** + * Gets or sets a value indicating whether [supports external stream]. + * @return supportsExternalStream + */ + @javax.annotation.Nullable + public Boolean getSupportsExternalStream() { + return supportsExternalStream; + } + + public void setSupportsExternalStream(@javax.annotation.Nullable Boolean supportsExternalStream) { + this.supportsExternalStream = supportsExternalStream; + } + + + public MediaStream path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the filename. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaStream pixelFormat(@javax.annotation.Nullable String pixelFormat) { + this.pixelFormat = pixelFormat; + return this; + } + + /** + * Gets or sets the pixel format. + * @return pixelFormat + */ + @javax.annotation.Nullable + public String getPixelFormat() { + return pixelFormat; + } + + public void setPixelFormat(@javax.annotation.Nullable String pixelFormat) { + this.pixelFormat = pixelFormat; + } + + + public MediaStream level(@javax.annotation.Nullable Double level) { + this.level = level; + return this; + } + + /** + * Gets or sets the level. + * @return level + */ + @javax.annotation.Nullable + public Double getLevel() { + return level; + } + + public void setLevel(@javax.annotation.Nullable Double level) { + this.level = level; + } + + + public MediaStream isAnamorphic(@javax.annotation.Nullable Boolean isAnamorphic) { + this.isAnamorphic = isAnamorphic; + return this; + } + + /** + * Gets or sets whether this instance is anamorphic. + * @return isAnamorphic + */ + @javax.annotation.Nullable + public Boolean getIsAnamorphic() { + return isAnamorphic; + } + + public void setIsAnamorphic(@javax.annotation.Nullable Boolean isAnamorphic) { + this.isAnamorphic = isAnamorphic; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaStream mediaStream = (MediaStream) o; + return Objects.equals(this.codec, mediaStream.codec) && + Objects.equals(this.codecTag, mediaStream.codecTag) && + Objects.equals(this.language, mediaStream.language) && + Objects.equals(this.colorRange, mediaStream.colorRange) && + Objects.equals(this.colorSpace, mediaStream.colorSpace) && + Objects.equals(this.colorTransfer, mediaStream.colorTransfer) && + Objects.equals(this.colorPrimaries, mediaStream.colorPrimaries) && + Objects.equals(this.dvVersionMajor, mediaStream.dvVersionMajor) && + Objects.equals(this.dvVersionMinor, mediaStream.dvVersionMinor) && + Objects.equals(this.dvProfile, mediaStream.dvProfile) && + Objects.equals(this.dvLevel, mediaStream.dvLevel) && + Objects.equals(this.rpuPresentFlag, mediaStream.rpuPresentFlag) && + Objects.equals(this.elPresentFlag, mediaStream.elPresentFlag) && + Objects.equals(this.blPresentFlag, mediaStream.blPresentFlag) && + Objects.equals(this.dvBlSignalCompatibilityId, mediaStream.dvBlSignalCompatibilityId) && + Objects.equals(this.rotation, mediaStream.rotation) && + Objects.equals(this.comment, mediaStream.comment) && + Objects.equals(this.timeBase, mediaStream.timeBase) && + Objects.equals(this.codecTimeBase, mediaStream.codecTimeBase) && + Objects.equals(this.title, mediaStream.title) && + Objects.equals(this.videoRange, mediaStream.videoRange) && + Objects.equals(this.videoRangeType, mediaStream.videoRangeType) && + Objects.equals(this.videoDoViTitle, mediaStream.videoDoViTitle) && + Objects.equals(this.audioSpatialFormat, mediaStream.audioSpatialFormat) && + Objects.equals(this.localizedUndefined, mediaStream.localizedUndefined) && + Objects.equals(this.localizedDefault, mediaStream.localizedDefault) && + Objects.equals(this.localizedForced, mediaStream.localizedForced) && + Objects.equals(this.localizedExternal, mediaStream.localizedExternal) && + Objects.equals(this.localizedHearingImpaired, mediaStream.localizedHearingImpaired) && + Objects.equals(this.displayTitle, mediaStream.displayTitle) && + Objects.equals(this.nalLengthSize, mediaStream.nalLengthSize) && + Objects.equals(this.isInterlaced, mediaStream.isInterlaced) && + Objects.equals(this.isAVC, mediaStream.isAVC) && + Objects.equals(this.channelLayout, mediaStream.channelLayout) && + Objects.equals(this.bitRate, mediaStream.bitRate) && + Objects.equals(this.bitDepth, mediaStream.bitDepth) && + Objects.equals(this.refFrames, mediaStream.refFrames) && + Objects.equals(this.packetLength, mediaStream.packetLength) && + Objects.equals(this.channels, mediaStream.channels) && + Objects.equals(this.sampleRate, mediaStream.sampleRate) && + Objects.equals(this.isDefault, mediaStream.isDefault) && + Objects.equals(this.isForced, mediaStream.isForced) && + Objects.equals(this.isHearingImpaired, mediaStream.isHearingImpaired) && + Objects.equals(this.height, mediaStream.height) && + Objects.equals(this.width, mediaStream.width) && + Objects.equals(this.averageFrameRate, mediaStream.averageFrameRate) && + Objects.equals(this.realFrameRate, mediaStream.realFrameRate) && + Objects.equals(this.referenceFrameRate, mediaStream.referenceFrameRate) && + Objects.equals(this.profile, mediaStream.profile) && + Objects.equals(this.type, mediaStream.type) && + Objects.equals(this.aspectRatio, mediaStream.aspectRatio) && + Objects.equals(this.index, mediaStream.index) && + Objects.equals(this.score, mediaStream.score) && + Objects.equals(this.isExternal, mediaStream.isExternal) && + Objects.equals(this.deliveryMethod, mediaStream.deliveryMethod) && + Objects.equals(this.deliveryUrl, mediaStream.deliveryUrl) && + Objects.equals(this.isExternalUrl, mediaStream.isExternalUrl) && + Objects.equals(this.isTextSubtitleStream, mediaStream.isTextSubtitleStream) && + Objects.equals(this.supportsExternalStream, mediaStream.supportsExternalStream) && + Objects.equals(this.path, mediaStream.path) && + Objects.equals(this.pixelFormat, mediaStream.pixelFormat) && + Objects.equals(this.level, mediaStream.level) && + Objects.equals(this.isAnamorphic, mediaStream.isAnamorphic); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(codec, codecTag, language, colorRange, colorSpace, colorTransfer, colorPrimaries, dvVersionMajor, dvVersionMinor, dvProfile, dvLevel, rpuPresentFlag, elPresentFlag, blPresentFlag, dvBlSignalCompatibilityId, rotation, comment, timeBase, codecTimeBase, title, videoRange, videoRangeType, videoDoViTitle, audioSpatialFormat, localizedUndefined, localizedDefault, localizedForced, localizedExternal, localizedHearingImpaired, displayTitle, nalLengthSize, isInterlaced, isAVC, channelLayout, bitRate, bitDepth, refFrames, packetLength, channels, sampleRate, isDefault, isForced, isHearingImpaired, height, width, averageFrameRate, realFrameRate, referenceFrameRate, profile, type, aspectRatio, index, score, isExternal, deliveryMethod, deliveryUrl, isExternalUrl, isTextSubtitleStream, supportsExternalStream, path, pixelFormat, level, isAnamorphic); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaStream {\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" codecTag: ").append(toIndentedString(codecTag)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" colorRange: ").append(toIndentedString(colorRange)).append("\n"); + sb.append(" colorSpace: ").append(toIndentedString(colorSpace)).append("\n"); + sb.append(" colorTransfer: ").append(toIndentedString(colorTransfer)).append("\n"); + sb.append(" colorPrimaries: ").append(toIndentedString(colorPrimaries)).append("\n"); + sb.append(" dvVersionMajor: ").append(toIndentedString(dvVersionMajor)).append("\n"); + sb.append(" dvVersionMinor: ").append(toIndentedString(dvVersionMinor)).append("\n"); + sb.append(" dvProfile: ").append(toIndentedString(dvProfile)).append("\n"); + sb.append(" dvLevel: ").append(toIndentedString(dvLevel)).append("\n"); + sb.append(" rpuPresentFlag: ").append(toIndentedString(rpuPresentFlag)).append("\n"); + sb.append(" elPresentFlag: ").append(toIndentedString(elPresentFlag)).append("\n"); + sb.append(" blPresentFlag: ").append(toIndentedString(blPresentFlag)).append("\n"); + sb.append(" dvBlSignalCompatibilityId: ").append(toIndentedString(dvBlSignalCompatibilityId)).append("\n"); + sb.append(" rotation: ").append(toIndentedString(rotation)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" timeBase: ").append(toIndentedString(timeBase)).append("\n"); + sb.append(" codecTimeBase: ").append(toIndentedString(codecTimeBase)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" videoRange: ").append(toIndentedString(videoRange)).append("\n"); + sb.append(" videoRangeType: ").append(toIndentedString(videoRangeType)).append("\n"); + sb.append(" videoDoViTitle: ").append(toIndentedString(videoDoViTitle)).append("\n"); + sb.append(" audioSpatialFormat: ").append(toIndentedString(audioSpatialFormat)).append("\n"); + sb.append(" localizedUndefined: ").append(toIndentedString(localizedUndefined)).append("\n"); + sb.append(" localizedDefault: ").append(toIndentedString(localizedDefault)).append("\n"); + sb.append(" localizedForced: ").append(toIndentedString(localizedForced)).append("\n"); + sb.append(" localizedExternal: ").append(toIndentedString(localizedExternal)).append("\n"); + sb.append(" localizedHearingImpaired: ").append(toIndentedString(localizedHearingImpaired)).append("\n"); + sb.append(" displayTitle: ").append(toIndentedString(displayTitle)).append("\n"); + sb.append(" nalLengthSize: ").append(toIndentedString(nalLengthSize)).append("\n"); + sb.append(" isInterlaced: ").append(toIndentedString(isInterlaced)).append("\n"); + sb.append(" isAVC: ").append(toIndentedString(isAVC)).append("\n"); + sb.append(" channelLayout: ").append(toIndentedString(channelLayout)).append("\n"); + sb.append(" bitRate: ").append(toIndentedString(bitRate)).append("\n"); + sb.append(" bitDepth: ").append(toIndentedString(bitDepth)).append("\n"); + sb.append(" refFrames: ").append(toIndentedString(refFrames)).append("\n"); + sb.append(" packetLength: ").append(toIndentedString(packetLength)).append("\n"); + sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); + sb.append(" sampleRate: ").append(toIndentedString(sampleRate)).append("\n"); + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" isForced: ").append(toIndentedString(isForced)).append("\n"); + sb.append(" isHearingImpaired: ").append(toIndentedString(isHearingImpaired)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" averageFrameRate: ").append(toIndentedString(averageFrameRate)).append("\n"); + sb.append(" realFrameRate: ").append(toIndentedString(realFrameRate)).append("\n"); + sb.append(" referenceFrameRate: ").append(toIndentedString(referenceFrameRate)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" score: ").append(toIndentedString(score)).append("\n"); + sb.append(" isExternal: ").append(toIndentedString(isExternal)).append("\n"); + sb.append(" deliveryMethod: ").append(toIndentedString(deliveryMethod)).append("\n"); + sb.append(" deliveryUrl: ").append(toIndentedString(deliveryUrl)).append("\n"); + sb.append(" isExternalUrl: ").append(toIndentedString(isExternalUrl)).append("\n"); + sb.append(" isTextSubtitleStream: ").append(toIndentedString(isTextSubtitleStream)).append("\n"); + sb.append(" supportsExternalStream: ").append(toIndentedString(supportsExternalStream)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" pixelFormat: ").append(toIndentedString(pixelFormat)).append("\n"); + sb.append(" level: ").append(toIndentedString(level)).append("\n"); + sb.append(" isAnamorphic: ").append(toIndentedString(isAnamorphic)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Codec"); + openapiFields.add("CodecTag"); + openapiFields.add("Language"); + openapiFields.add("ColorRange"); + openapiFields.add("ColorSpace"); + openapiFields.add("ColorTransfer"); + openapiFields.add("ColorPrimaries"); + openapiFields.add("DvVersionMajor"); + openapiFields.add("DvVersionMinor"); + openapiFields.add("DvProfile"); + openapiFields.add("DvLevel"); + openapiFields.add("RpuPresentFlag"); + openapiFields.add("ElPresentFlag"); + openapiFields.add("BlPresentFlag"); + openapiFields.add("DvBlSignalCompatibilityId"); + openapiFields.add("Rotation"); + openapiFields.add("Comment"); + openapiFields.add("TimeBase"); + openapiFields.add("CodecTimeBase"); + openapiFields.add("Title"); + openapiFields.add("VideoRange"); + openapiFields.add("VideoRangeType"); + openapiFields.add("VideoDoViTitle"); + openapiFields.add("AudioSpatialFormat"); + openapiFields.add("LocalizedUndefined"); + openapiFields.add("LocalizedDefault"); + openapiFields.add("LocalizedForced"); + openapiFields.add("LocalizedExternal"); + openapiFields.add("LocalizedHearingImpaired"); + openapiFields.add("DisplayTitle"); + openapiFields.add("NalLengthSize"); + openapiFields.add("IsInterlaced"); + openapiFields.add("IsAVC"); + openapiFields.add("ChannelLayout"); + openapiFields.add("BitRate"); + openapiFields.add("BitDepth"); + openapiFields.add("RefFrames"); + openapiFields.add("PacketLength"); + openapiFields.add("Channels"); + openapiFields.add("SampleRate"); + openapiFields.add("IsDefault"); + openapiFields.add("IsForced"); + openapiFields.add("IsHearingImpaired"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("AverageFrameRate"); + openapiFields.add("RealFrameRate"); + openapiFields.add("ReferenceFrameRate"); + openapiFields.add("Profile"); + openapiFields.add("Type"); + openapiFields.add("AspectRatio"); + openapiFields.add("Index"); + openapiFields.add("Score"); + openapiFields.add("IsExternal"); + openapiFields.add("DeliveryMethod"); + openapiFields.add("DeliveryUrl"); + openapiFields.add("IsExternalUrl"); + openapiFields.add("IsTextSubtitleStream"); + openapiFields.add("SupportsExternalStream"); + openapiFields.add("Path"); + openapiFields.add("PixelFormat"); + openapiFields.add("Level"); + openapiFields.add("IsAnamorphic"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaStream + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaStream.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaStream is not found in the empty JSON string", MediaStream.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaStream.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaStream` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("CodecTag") != null && !jsonObj.get("CodecTag").isJsonNull()) && !jsonObj.get("CodecTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTag").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if ((jsonObj.get("ColorRange") != null && !jsonObj.get("ColorRange").isJsonNull()) && !jsonObj.get("ColorRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorRange").toString())); + } + if ((jsonObj.get("ColorSpace") != null && !jsonObj.get("ColorSpace").isJsonNull()) && !jsonObj.get("ColorSpace").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorSpace` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorSpace").toString())); + } + if ((jsonObj.get("ColorTransfer") != null && !jsonObj.get("ColorTransfer").isJsonNull()) && !jsonObj.get("ColorTransfer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorTransfer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorTransfer").toString())); + } + if ((jsonObj.get("ColorPrimaries") != null && !jsonObj.get("ColorPrimaries").isJsonNull()) && !jsonObj.get("ColorPrimaries").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorPrimaries` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorPrimaries").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + if ((jsonObj.get("TimeBase") != null && !jsonObj.get("TimeBase").isJsonNull()) && !jsonObj.get("TimeBase").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TimeBase` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TimeBase").toString())); + } + if ((jsonObj.get("CodecTimeBase") != null && !jsonObj.get("CodecTimeBase").isJsonNull()) && !jsonObj.get("CodecTimeBase").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTimeBase` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTimeBase").toString())); + } + if ((jsonObj.get("Title") != null && !jsonObj.get("Title").isJsonNull()) && !jsonObj.get("Title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Title").toString())); + } + // validate the optional field `VideoRange` + if (jsonObj.get("VideoRange") != null && !jsonObj.get("VideoRange").isJsonNull()) { + VideoRange.validateJsonElement(jsonObj.get("VideoRange")); + } + // validate the optional field `VideoRangeType` + if (jsonObj.get("VideoRangeType") != null && !jsonObj.get("VideoRangeType").isJsonNull()) { + VideoRangeType.validateJsonElement(jsonObj.get("VideoRangeType")); + } + if ((jsonObj.get("VideoDoViTitle") != null && !jsonObj.get("VideoDoViTitle").isJsonNull()) && !jsonObj.get("VideoDoViTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoDoViTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoDoViTitle").toString())); + } + // validate the optional field `AudioSpatialFormat` + if (jsonObj.get("AudioSpatialFormat") != null && !jsonObj.get("AudioSpatialFormat").isJsonNull()) { + AudioSpatialFormat.validateJsonElement(jsonObj.get("AudioSpatialFormat")); + } + if ((jsonObj.get("LocalizedUndefined") != null && !jsonObj.get("LocalizedUndefined").isJsonNull()) && !jsonObj.get("LocalizedUndefined").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedUndefined` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedUndefined").toString())); + } + if ((jsonObj.get("LocalizedDefault") != null && !jsonObj.get("LocalizedDefault").isJsonNull()) && !jsonObj.get("LocalizedDefault").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedDefault` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedDefault").toString())); + } + if ((jsonObj.get("LocalizedForced") != null && !jsonObj.get("LocalizedForced").isJsonNull()) && !jsonObj.get("LocalizedForced").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedForced` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedForced").toString())); + } + if ((jsonObj.get("LocalizedExternal") != null && !jsonObj.get("LocalizedExternal").isJsonNull()) && !jsonObj.get("LocalizedExternal").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedExternal` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedExternal").toString())); + } + if ((jsonObj.get("LocalizedHearingImpaired") != null && !jsonObj.get("LocalizedHearingImpaired").isJsonNull()) && !jsonObj.get("LocalizedHearingImpaired").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedHearingImpaired` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedHearingImpaired").toString())); + } + if ((jsonObj.get("DisplayTitle") != null && !jsonObj.get("DisplayTitle").isJsonNull()) && !jsonObj.get("DisplayTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayTitle").toString())); + } + if ((jsonObj.get("NalLengthSize") != null && !jsonObj.get("NalLengthSize").isJsonNull()) && !jsonObj.get("NalLengthSize").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NalLengthSize` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NalLengthSize").toString())); + } + if ((jsonObj.get("ChannelLayout") != null && !jsonObj.get("ChannelLayout").isJsonNull()) && !jsonObj.get("ChannelLayout").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelLayout` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelLayout").toString())); + } + if ((jsonObj.get("Profile") != null && !jsonObj.get("Profile").isJsonNull()) && !jsonObj.get("Profile").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Profile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Profile").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + MediaStreamType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `DeliveryMethod` + if (jsonObj.get("DeliveryMethod") != null && !jsonObj.get("DeliveryMethod").isJsonNull()) { + SubtitleDeliveryMethod.validateJsonElement(jsonObj.get("DeliveryMethod")); + } + if ((jsonObj.get("DeliveryUrl") != null && !jsonObj.get("DeliveryUrl").isJsonNull()) && !jsonObj.get("DeliveryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeliveryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeliveryUrl").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("PixelFormat") != null && !jsonObj.get("PixelFormat").isJsonNull()) && !jsonObj.get("PixelFormat").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PixelFormat` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PixelFormat").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaStream.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaStream' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaStream.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaStream value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaStream read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaStream given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaStream + * @throws IOException if the JSON string is invalid with respect to MediaStream + */ + public static MediaStream fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaStream.class); + } + + /** + * Convert an instance of MediaStream to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamProtocol.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamProtocol.java new file mode 100644 index 0000000000000..01363fb0609f7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamProtocol.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Media streaming protocol. Lowercase for backwards compatibility. + */ +@JsonAdapter(MediaStreamProtocol.Adapter.class) +public enum MediaStreamProtocol { + + HTTP("http"), + + HLS("hls"); + + private String value; + + MediaStreamProtocol(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaStreamProtocol fromValue(String value) { + for (MediaStreamProtocol b : MediaStreamProtocol.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaStreamProtocol enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaStreamProtocol read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaStreamProtocol.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaStreamProtocol.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamType.java new file mode 100644 index 0000000000000..d3471c3894372 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaStreamType.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum MediaStreamType. + */ +@JsonAdapter(MediaStreamType.Adapter.class) +public enum MediaStreamType { + + AUDIO("Audio"), + + VIDEO("Video"), + + SUBTITLE("Subtitle"), + + EMBEDDED_IMAGE("EmbeddedImage"), + + DATA("Data"), + + LYRIC("Lyric"); + + private String value; + + MediaStreamType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaStreamType fromValue(String value) { + for (MediaStreamType b : MediaStreamType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaStreamType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaStreamType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaStreamType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaStreamType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaType.java new file mode 100644 index 0000000000000..aa8aadb5a50cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaType.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Media types. + */ +@JsonAdapter(MediaType.Adapter.class) +public enum MediaType { + + UNKNOWN("Unknown"), + + VIDEO("Video"), + + AUDIO("Audio"), + + PHOTO("Photo"), + + BOOK("Book"); + + private String value; + + MediaType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaType fromValue(String value) { + for (MediaType b : MediaType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java new file mode 100644 index 0000000000000..051346b51505a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java @@ -0,0 +1,228 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.MediaUpdateInfoPathDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Media Update Info Dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUpdateInfoDto { + public static final String SERIALIZED_NAME_UPDATES = "Updates"; + @SerializedName(SERIALIZED_NAME_UPDATES) + @javax.annotation.Nullable + private List updates = new ArrayList<>(); + + public MediaUpdateInfoDto() { + } + + public MediaUpdateInfoDto updates(@javax.annotation.Nullable List updates) { + this.updates = updates; + return this; + } + + public MediaUpdateInfoDto addUpdatesItem(MediaUpdateInfoPathDto updatesItem) { + if (this.updates == null) { + this.updates = new ArrayList<>(); + } + this.updates.add(updatesItem); + return this; + } + + /** + * Gets or sets the list of updates. + * @return updates + */ + @javax.annotation.Nullable + public List getUpdates() { + return updates; + } + + public void setUpdates(@javax.annotation.Nullable List updates) { + this.updates = updates; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUpdateInfoDto mediaUpdateInfoDto = (MediaUpdateInfoDto) o; + return Objects.equals(this.updates, mediaUpdateInfoDto.updates); + } + + @Override + public int hashCode() { + return Objects.hash(updates); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUpdateInfoDto {\n"); + sb.append(" updates: ").append(toIndentedString(updates)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Updates"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUpdateInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUpdateInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUpdateInfoDto is not found in the empty JSON string", MediaUpdateInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUpdateInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUpdateInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Updates") != null && !jsonObj.get("Updates").isJsonNull()) { + JsonArray jsonArrayupdates = jsonObj.getAsJsonArray("Updates"); + if (jsonArrayupdates != null) { + // ensure the json data is an array + if (!jsonObj.get("Updates").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Updates` to be an array in the JSON string but got `%s`", jsonObj.get("Updates").toString())); + } + + // validate the optional field `Updates` (array) + for (int i = 0; i < jsonArrayupdates.size(); i++) { + MediaUpdateInfoPathDto.validateJsonElement(jsonArrayupdates.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUpdateInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUpdateInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUpdateInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUpdateInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUpdateInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUpdateInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUpdateInfoDto + * @throws IOException if the JSON string is invalid with respect to MediaUpdateInfoDto + */ + public static MediaUpdateInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUpdateInfoDto.class); + } + + /** + * Convert an instance of MediaUpdateInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java new file mode 100644 index 0000000000000..e7724d43a774a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The media update info path. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUpdateInfoPathDto { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_UPDATE_TYPE = "UpdateType"; + @SerializedName(SERIALIZED_NAME_UPDATE_TYPE) + @javax.annotation.Nullable + private String updateType; + + public MediaUpdateInfoPathDto() { + } + + public MediaUpdateInfoPathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets media path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaUpdateInfoPathDto updateType(@javax.annotation.Nullable String updateType) { + this.updateType = updateType; + return this; + } + + /** + * Gets or sets media update type. Created, Modified, Deleted. + * @return updateType + */ + @javax.annotation.Nullable + public String getUpdateType() { + return updateType; + } + + public void setUpdateType(@javax.annotation.Nullable String updateType) { + this.updateType = updateType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUpdateInfoPathDto mediaUpdateInfoPathDto = (MediaUpdateInfoPathDto) o; + return Objects.equals(this.path, mediaUpdateInfoPathDto.path) && + Objects.equals(this.updateType, mediaUpdateInfoPathDto.updateType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(path, updateType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUpdateInfoPathDto {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" updateType: ").append(toIndentedString(updateType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + openapiFields.add("UpdateType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUpdateInfoPathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUpdateInfoPathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUpdateInfoPathDto is not found in the empty JSON string", MediaUpdateInfoPathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUpdateInfoPathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUpdateInfoPathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("UpdateType") != null && !jsonObj.get("UpdateType").isJsonNull()) && !jsonObj.get("UpdateType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UpdateType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UpdateType").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUpdateInfoPathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUpdateInfoPathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUpdateInfoPathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUpdateInfoPathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUpdateInfoPathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUpdateInfoPathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUpdateInfoPathDto + * @throws IOException if the JSON string is invalid with respect to MediaUpdateInfoPathDto + */ + public static MediaUpdateInfoPathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUpdateInfoPathDto.class); + } + + /** + * Convert an instance of MediaUpdateInfoPathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUrl.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUrl.java new file mode 100644 index 0000000000000..bb8f132fb373e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MediaUrl.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaUrl + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUrl { + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public MediaUrl() { + } + + public MediaUrl url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Get url + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public MediaUrl name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUrl mediaUrl = (MediaUrl) o; + return Objects.equals(this.url, mediaUrl.url) && + Objects.equals(this.name, mediaUrl.name); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(url, name); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUrl {\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Url"); + openapiFields.add("Name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUrl + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUrl.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUrl is not found in the empty JSON string", MediaUrl.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUrl.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUrl` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUrl.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUrl' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUrl.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUrl value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUrl read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUrl given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUrl + * @throws IOException if the JSON string is invalid with respect to MediaUrl + */ + public static MediaUrl fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUrl.class); + } + + /** + * Convert an instance of MediaUrl to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MessageCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MessageCommand.java new file mode 100644 index 0000000000000..fae0726f4acf2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MessageCommand.java @@ -0,0 +1,283 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MessageCommand + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MessageCommand { + public static final String SERIALIZED_NAME_HEADER = "Header"; + @SerializedName(SERIALIZED_NAME_HEADER) + @javax.annotation.Nullable + private String header; + + public static final String SERIALIZED_NAME_TEXT = "Text"; + @SerializedName(SERIALIZED_NAME_TEXT) + @javax.annotation.Nonnull + private String text; + + public static final String SERIALIZED_NAME_TIMEOUT_MS = "TimeoutMs"; + @SerializedName(SERIALIZED_NAME_TIMEOUT_MS) + @javax.annotation.Nullable + private Long timeoutMs; + + public MessageCommand() { + } + + public MessageCommand header(@javax.annotation.Nullable String header) { + this.header = header; + return this; + } + + /** + * Get header + * @return header + */ + @javax.annotation.Nullable + public String getHeader() { + return header; + } + + public void setHeader(@javax.annotation.Nullable String header) { + this.header = header; + } + + + public MessageCommand text(@javax.annotation.Nonnull String text) { + this.text = text; + return this; + } + + /** + * Get text + * @return text + */ + @javax.annotation.Nonnull + public String getText() { + return text; + } + + public void setText(@javax.annotation.Nonnull String text) { + this.text = text; + } + + + public MessageCommand timeoutMs(@javax.annotation.Nullable Long timeoutMs) { + this.timeoutMs = timeoutMs; + return this; + } + + /** + * Get timeoutMs + * @return timeoutMs + */ + @javax.annotation.Nullable + public Long getTimeoutMs() { + return timeoutMs; + } + + public void setTimeoutMs(@javax.annotation.Nullable Long timeoutMs) { + this.timeoutMs = timeoutMs; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MessageCommand messageCommand = (MessageCommand) o; + return Objects.equals(this.header, messageCommand.header) && + Objects.equals(this.text, messageCommand.text) && + Objects.equals(this.timeoutMs, messageCommand.timeoutMs); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(header, text, timeoutMs); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MessageCommand {\n"); + sb.append(" header: ").append(toIndentedString(header)).append("\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" timeoutMs: ").append(toIndentedString(timeoutMs)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Header"); + openapiFields.add("Text"); + openapiFields.add("TimeoutMs"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MessageCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MessageCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MessageCommand is not found in the empty JSON string", MessageCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MessageCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MessageCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MessageCommand.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Header") != null && !jsonObj.get("Header").isJsonNull()) && !jsonObj.get("Header").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Header` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Header").toString())); + } + if (!jsonObj.get("Text").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Text").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MessageCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MessageCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MessageCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MessageCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MessageCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MessageCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of MessageCommand + * @throws IOException if the JSON string is invalid with respect to MessageCommand + */ + public static MessageCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MessageCommand.class); + } + + /** + * Convert an instance of MessageCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataConfiguration.java new file mode 100644 index 0000000000000..32bc4e2cd94b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataConfiguration.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MetadataConfiguration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataConfiguration { + public static final String SERIALIZED_NAME_USE_FILE_CREATION_TIME_FOR_DATE_ADDED = "UseFileCreationTimeForDateAdded"; + @SerializedName(SERIALIZED_NAME_USE_FILE_CREATION_TIME_FOR_DATE_ADDED) + @javax.annotation.Nullable + private Boolean useFileCreationTimeForDateAdded; + + public MetadataConfiguration() { + } + + public MetadataConfiguration useFileCreationTimeForDateAdded(@javax.annotation.Nullable Boolean useFileCreationTimeForDateAdded) { + this.useFileCreationTimeForDateAdded = useFileCreationTimeForDateAdded; + return this; + } + + /** + * Get useFileCreationTimeForDateAdded + * @return useFileCreationTimeForDateAdded + */ + @javax.annotation.Nullable + public Boolean getUseFileCreationTimeForDateAdded() { + return useFileCreationTimeForDateAdded; + } + + public void setUseFileCreationTimeForDateAdded(@javax.annotation.Nullable Boolean useFileCreationTimeForDateAdded) { + this.useFileCreationTimeForDateAdded = useFileCreationTimeForDateAdded; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataConfiguration metadataConfiguration = (MetadataConfiguration) o; + return Objects.equals(this.useFileCreationTimeForDateAdded, metadataConfiguration.useFileCreationTimeForDateAdded); + } + + @Override + public int hashCode() { + return Objects.hash(useFileCreationTimeForDateAdded); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataConfiguration {\n"); + sb.append(" useFileCreationTimeForDateAdded: ").append(toIndentedString(useFileCreationTimeForDateAdded)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UseFileCreationTimeForDateAdded"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataConfiguration is not found in the empty JSON string", MetadataConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataConfiguration + * @throws IOException if the JSON string is invalid with respect to MetadataConfiguration + */ + public static MetadataConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataConfiguration.class); + } + + /** + * Convert an instance of MetadataConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java new file mode 100644 index 0000000000000..d3596071c1fda --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java @@ -0,0 +1,472 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CollectionType; +import org.openapitools.client.model.CountryInfo; +import org.openapitools.client.model.CultureDto; +import org.openapitools.client.model.ExternalIdInfo; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.ParentalRating; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MetadataEditorInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataEditorInfo { + public static final String SERIALIZED_NAME_PARENTAL_RATING_OPTIONS = "ParentalRatingOptions"; + @SerializedName(SERIALIZED_NAME_PARENTAL_RATING_OPTIONS) + @javax.annotation.Nullable + private List parentalRatingOptions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_COUNTRIES = "Countries"; + @SerializedName(SERIALIZED_NAME_COUNTRIES) + @javax.annotation.Nullable + private List countries = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CULTURES = "Cultures"; + @SerializedName(SERIALIZED_NAME_CULTURES) + @javax.annotation.Nullable + private List cultures = new ArrayList<>(); + + public static final String SERIALIZED_NAME_EXTERNAL_ID_INFOS = "ExternalIdInfos"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID_INFOS) + @javax.annotation.Nullable + private List externalIdInfos = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTENT_TYPE = "ContentType"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPE) + @javax.annotation.Nullable + private CollectionType contentType; + + public static final String SERIALIZED_NAME_CONTENT_TYPE_OPTIONS = "ContentTypeOptions"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPE_OPTIONS) + @javax.annotation.Nullable + private List contentTypeOptions = new ArrayList<>(); + + public MetadataEditorInfo() { + } + + public MetadataEditorInfo parentalRatingOptions(@javax.annotation.Nullable List parentalRatingOptions) { + this.parentalRatingOptions = parentalRatingOptions; + return this; + } + + public MetadataEditorInfo addParentalRatingOptionsItem(ParentalRating parentalRatingOptionsItem) { + if (this.parentalRatingOptions == null) { + this.parentalRatingOptions = new ArrayList<>(); + } + this.parentalRatingOptions.add(parentalRatingOptionsItem); + return this; + } + + /** + * Get parentalRatingOptions + * @return parentalRatingOptions + */ + @javax.annotation.Nullable + public List getParentalRatingOptions() { + return parentalRatingOptions; + } + + public void setParentalRatingOptions(@javax.annotation.Nullable List parentalRatingOptions) { + this.parentalRatingOptions = parentalRatingOptions; + } + + + public MetadataEditorInfo countries(@javax.annotation.Nullable List countries) { + this.countries = countries; + return this; + } + + public MetadataEditorInfo addCountriesItem(CountryInfo countriesItem) { + if (this.countries == null) { + this.countries = new ArrayList<>(); + } + this.countries.add(countriesItem); + return this; + } + + /** + * Get countries + * @return countries + */ + @javax.annotation.Nullable + public List getCountries() { + return countries; + } + + public void setCountries(@javax.annotation.Nullable List countries) { + this.countries = countries; + } + + + public MetadataEditorInfo cultures(@javax.annotation.Nullable List cultures) { + this.cultures = cultures; + return this; + } + + public MetadataEditorInfo addCulturesItem(CultureDto culturesItem) { + if (this.cultures == null) { + this.cultures = new ArrayList<>(); + } + this.cultures.add(culturesItem); + return this; + } + + /** + * Get cultures + * @return cultures + */ + @javax.annotation.Nullable + public List getCultures() { + return cultures; + } + + public void setCultures(@javax.annotation.Nullable List cultures) { + this.cultures = cultures; + } + + + public MetadataEditorInfo externalIdInfos(@javax.annotation.Nullable List externalIdInfos) { + this.externalIdInfos = externalIdInfos; + return this; + } + + public MetadataEditorInfo addExternalIdInfosItem(ExternalIdInfo externalIdInfosItem) { + if (this.externalIdInfos == null) { + this.externalIdInfos = new ArrayList<>(); + } + this.externalIdInfos.add(externalIdInfosItem); + return this; + } + + /** + * Get externalIdInfos + * @return externalIdInfos + */ + @javax.annotation.Nullable + public List getExternalIdInfos() { + return externalIdInfos; + } + + public void setExternalIdInfos(@javax.annotation.Nullable List externalIdInfos) { + this.externalIdInfos = externalIdInfos; + } + + + public MetadataEditorInfo contentType(@javax.annotation.Nullable CollectionType contentType) { + this.contentType = contentType; + return this; + } + + /** + * Get contentType + * @return contentType + */ + @javax.annotation.Nullable + public CollectionType getContentType() { + return contentType; + } + + public void setContentType(@javax.annotation.Nullable CollectionType contentType) { + this.contentType = contentType; + } + + + public MetadataEditorInfo contentTypeOptions(@javax.annotation.Nullable List contentTypeOptions) { + this.contentTypeOptions = contentTypeOptions; + return this; + } + + public MetadataEditorInfo addContentTypeOptionsItem(NameValuePair contentTypeOptionsItem) { + if (this.contentTypeOptions == null) { + this.contentTypeOptions = new ArrayList<>(); + } + this.contentTypeOptions.add(contentTypeOptionsItem); + return this; + } + + /** + * Get contentTypeOptions + * @return contentTypeOptions + */ + @javax.annotation.Nullable + public List getContentTypeOptions() { + return contentTypeOptions; + } + + public void setContentTypeOptions(@javax.annotation.Nullable List contentTypeOptions) { + this.contentTypeOptions = contentTypeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataEditorInfo metadataEditorInfo = (MetadataEditorInfo) o; + return Objects.equals(this.parentalRatingOptions, metadataEditorInfo.parentalRatingOptions) && + Objects.equals(this.countries, metadataEditorInfo.countries) && + Objects.equals(this.cultures, metadataEditorInfo.cultures) && + Objects.equals(this.externalIdInfos, metadataEditorInfo.externalIdInfos) && + Objects.equals(this.contentType, metadataEditorInfo.contentType) && + Objects.equals(this.contentTypeOptions, metadataEditorInfo.contentTypeOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(parentalRatingOptions, countries, cultures, externalIdInfos, contentType, contentTypeOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataEditorInfo {\n"); + sb.append(" parentalRatingOptions: ").append(toIndentedString(parentalRatingOptions)).append("\n"); + sb.append(" countries: ").append(toIndentedString(countries)).append("\n"); + sb.append(" cultures: ").append(toIndentedString(cultures)).append("\n"); + sb.append(" externalIdInfos: ").append(toIndentedString(externalIdInfos)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" contentTypeOptions: ").append(toIndentedString(contentTypeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ParentalRatingOptions"); + openapiFields.add("Countries"); + openapiFields.add("Cultures"); + openapiFields.add("ExternalIdInfos"); + openapiFields.add("ContentType"); + openapiFields.add("ContentTypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataEditorInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataEditorInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataEditorInfo is not found in the empty JSON string", MetadataEditorInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataEditorInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataEditorInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("ParentalRatingOptions") != null && !jsonObj.get("ParentalRatingOptions").isJsonNull()) { + JsonArray jsonArrayparentalRatingOptions = jsonObj.getAsJsonArray("ParentalRatingOptions"); + if (jsonArrayparentalRatingOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ParentalRatingOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentalRatingOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ParentalRatingOptions").toString())); + } + + // validate the optional field `ParentalRatingOptions` (array) + for (int i = 0; i < jsonArrayparentalRatingOptions.size(); i++) { + ParentalRating.validateJsonElement(jsonArrayparentalRatingOptions.get(i)); + }; + } + } + if (jsonObj.get("Countries") != null && !jsonObj.get("Countries").isJsonNull()) { + JsonArray jsonArraycountries = jsonObj.getAsJsonArray("Countries"); + if (jsonArraycountries != null) { + // ensure the json data is an array + if (!jsonObj.get("Countries").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Countries` to be an array in the JSON string but got `%s`", jsonObj.get("Countries").toString())); + } + + // validate the optional field `Countries` (array) + for (int i = 0; i < jsonArraycountries.size(); i++) { + CountryInfo.validateJsonElement(jsonArraycountries.get(i)); + }; + } + } + if (jsonObj.get("Cultures") != null && !jsonObj.get("Cultures").isJsonNull()) { + JsonArray jsonArraycultures = jsonObj.getAsJsonArray("Cultures"); + if (jsonArraycultures != null) { + // ensure the json data is an array + if (!jsonObj.get("Cultures").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Cultures` to be an array in the JSON string but got `%s`", jsonObj.get("Cultures").toString())); + } + + // validate the optional field `Cultures` (array) + for (int i = 0; i < jsonArraycultures.size(); i++) { + CultureDto.validateJsonElement(jsonArraycultures.get(i)); + }; + } + } + if (jsonObj.get("ExternalIdInfos") != null && !jsonObj.get("ExternalIdInfos").isJsonNull()) { + JsonArray jsonArrayexternalIdInfos = jsonObj.getAsJsonArray("ExternalIdInfos"); + if (jsonArrayexternalIdInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("ExternalIdInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalIdInfos` to be an array in the JSON string but got `%s`", jsonObj.get("ExternalIdInfos").toString())); + } + + // validate the optional field `ExternalIdInfos` (array) + for (int i = 0; i < jsonArrayexternalIdInfos.size(); i++) { + ExternalIdInfo.validateJsonElement(jsonArrayexternalIdInfos.get(i)); + }; + } + } + // validate the optional field `ContentType` + if (jsonObj.get("ContentType") != null && !jsonObj.get("ContentType").isJsonNull()) { + CollectionType.validateJsonElement(jsonObj.get("ContentType")); + } + if (jsonObj.get("ContentTypeOptions") != null && !jsonObj.get("ContentTypeOptions").isJsonNull()) { + JsonArray jsonArraycontentTypeOptions = jsonObj.getAsJsonArray("ContentTypeOptions"); + if (jsonArraycontentTypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ContentTypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypeOptions").toString())); + } + + // validate the optional field `ContentTypeOptions` (array) + for (int i = 0; i < jsonArraycontentTypeOptions.size(); i++) { + NameValuePair.validateJsonElement(jsonArraycontentTypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataEditorInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataEditorInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataEditorInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataEditorInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataEditorInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataEditorInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataEditorInfo + * @throws IOException if the JSON string is invalid with respect to MetadataEditorInfo + */ + public static MetadataEditorInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataEditorInfo.class); + } + + /** + * Convert an instance of MetadataEditorInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataField.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataField.java new file mode 100644 index 0000000000000..0e47f01b2a811 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataField.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum MetadataFields. + */ +@JsonAdapter(MetadataField.Adapter.class) +public enum MetadataField { + + CAST("Cast"), + + GENRES("Genres"), + + PRODUCTION_LOCATIONS("ProductionLocations"), + + STUDIOS("Studios"), + + TAGS("Tags"), + + NAME("Name"), + + OVERVIEW("Overview"), + + RUNTIME("Runtime"), + + OFFICIAL_RATING("OfficialRating"); + + private String value; + + MetadataField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MetadataField fromValue(String value) { + for (MetadataField b : MetadataField.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MetadataField enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MetadataField read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MetadataField.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MetadataField.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataOptions.java new file mode 100644 index 0000000000000..f83419e2aea75 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataOptions.java @@ -0,0 +1,454 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MetadataOptions. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataOptions { + public static final String SERIALIZED_NAME_ITEM_TYPE = "ItemType"; + @SerializedName(SERIALIZED_NAME_ITEM_TYPE) + @javax.annotation.Nullable + private String itemType; + + public static final String SERIALIZED_NAME_DISABLED_METADATA_SAVERS = "DisabledMetadataSavers"; + @SerializedName(SERIALIZED_NAME_DISABLED_METADATA_SAVERS) + @javax.annotation.Nullable + private List disabledMetadataSavers; + + public static final String SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER = "LocalMetadataReaderOrder"; + @SerializedName(SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER) + @javax.annotation.Nullable + private List localMetadataReaderOrder; + + public static final String SERIALIZED_NAME_DISABLED_METADATA_FETCHERS = "DisabledMetadataFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_METADATA_FETCHERS) + @javax.annotation.Nullable + private List disabledMetadataFetchers; + + public static final String SERIALIZED_NAME_METADATA_FETCHER_ORDER = "MetadataFetcherOrder"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHER_ORDER) + @javax.annotation.Nullable + private List metadataFetcherOrder; + + public static final String SERIALIZED_NAME_DISABLED_IMAGE_FETCHERS = "DisabledImageFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List disabledImageFetchers; + + public static final String SERIALIZED_NAME_IMAGE_FETCHER_ORDER = "ImageFetcherOrder"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHER_ORDER) + @javax.annotation.Nullable + private List imageFetcherOrder; + + public MetadataOptions() { + } + + public MetadataOptions itemType(@javax.annotation.Nullable String itemType) { + this.itemType = itemType; + return this; + } + + /** + * Get itemType + * @return itemType + */ + @javax.annotation.Nullable + public String getItemType() { + return itemType; + } + + public void setItemType(@javax.annotation.Nullable String itemType) { + this.itemType = itemType; + } + + + public MetadataOptions disabledMetadataSavers(@javax.annotation.Nullable List disabledMetadataSavers) { + this.disabledMetadataSavers = disabledMetadataSavers; + return this; + } + + public MetadataOptions addDisabledMetadataSaversItem(String disabledMetadataSaversItem) { + if (this.disabledMetadataSavers == null) { + this.disabledMetadataSavers = new ArrayList<>(); + } + this.disabledMetadataSavers.add(disabledMetadataSaversItem); + return this; + } + + /** + * Get disabledMetadataSavers + * @return disabledMetadataSavers + */ + @javax.annotation.Nullable + public List getDisabledMetadataSavers() { + return disabledMetadataSavers; + } + + public void setDisabledMetadataSavers(@javax.annotation.Nullable List disabledMetadataSavers) { + this.disabledMetadataSavers = disabledMetadataSavers; + } + + + public MetadataOptions localMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + return this; + } + + public MetadataOptions addLocalMetadataReaderOrderItem(String localMetadataReaderOrderItem) { + if (this.localMetadataReaderOrder == null) { + this.localMetadataReaderOrder = new ArrayList<>(); + } + this.localMetadataReaderOrder.add(localMetadataReaderOrderItem); + return this; + } + + /** + * Get localMetadataReaderOrder + * @return localMetadataReaderOrder + */ + @javax.annotation.Nullable + public List getLocalMetadataReaderOrder() { + return localMetadataReaderOrder; + } + + public void setLocalMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + } + + + public MetadataOptions disabledMetadataFetchers(@javax.annotation.Nullable List disabledMetadataFetchers) { + this.disabledMetadataFetchers = disabledMetadataFetchers; + return this; + } + + public MetadataOptions addDisabledMetadataFetchersItem(String disabledMetadataFetchersItem) { + if (this.disabledMetadataFetchers == null) { + this.disabledMetadataFetchers = new ArrayList<>(); + } + this.disabledMetadataFetchers.add(disabledMetadataFetchersItem); + return this; + } + + /** + * Get disabledMetadataFetchers + * @return disabledMetadataFetchers + */ + @javax.annotation.Nullable + public List getDisabledMetadataFetchers() { + return disabledMetadataFetchers; + } + + public void setDisabledMetadataFetchers(@javax.annotation.Nullable List disabledMetadataFetchers) { + this.disabledMetadataFetchers = disabledMetadataFetchers; + } + + + public MetadataOptions metadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + return this; + } + + public MetadataOptions addMetadataFetcherOrderItem(String metadataFetcherOrderItem) { + if (this.metadataFetcherOrder == null) { + this.metadataFetcherOrder = new ArrayList<>(); + } + this.metadataFetcherOrder.add(metadataFetcherOrderItem); + return this; + } + + /** + * Get metadataFetcherOrder + * @return metadataFetcherOrder + */ + @javax.annotation.Nullable + public List getMetadataFetcherOrder() { + return metadataFetcherOrder; + } + + public void setMetadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + } + + + public MetadataOptions disabledImageFetchers(@javax.annotation.Nullable List disabledImageFetchers) { + this.disabledImageFetchers = disabledImageFetchers; + return this; + } + + public MetadataOptions addDisabledImageFetchersItem(String disabledImageFetchersItem) { + if (this.disabledImageFetchers == null) { + this.disabledImageFetchers = new ArrayList<>(); + } + this.disabledImageFetchers.add(disabledImageFetchersItem); + return this; + } + + /** + * Get disabledImageFetchers + * @return disabledImageFetchers + */ + @javax.annotation.Nullable + public List getDisabledImageFetchers() { + return disabledImageFetchers; + } + + public void setDisabledImageFetchers(@javax.annotation.Nullable List disabledImageFetchers) { + this.disabledImageFetchers = disabledImageFetchers; + } + + + public MetadataOptions imageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + return this; + } + + public MetadataOptions addImageFetcherOrderItem(String imageFetcherOrderItem) { + if (this.imageFetcherOrder == null) { + this.imageFetcherOrder = new ArrayList<>(); + } + this.imageFetcherOrder.add(imageFetcherOrderItem); + return this; + } + + /** + * Get imageFetcherOrder + * @return imageFetcherOrder + */ + @javax.annotation.Nullable + public List getImageFetcherOrder() { + return imageFetcherOrder; + } + + public void setImageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataOptions metadataOptions = (MetadataOptions) o; + return Objects.equals(this.itemType, metadataOptions.itemType) && + Objects.equals(this.disabledMetadataSavers, metadataOptions.disabledMetadataSavers) && + Objects.equals(this.localMetadataReaderOrder, metadataOptions.localMetadataReaderOrder) && + Objects.equals(this.disabledMetadataFetchers, metadataOptions.disabledMetadataFetchers) && + Objects.equals(this.metadataFetcherOrder, metadataOptions.metadataFetcherOrder) && + Objects.equals(this.disabledImageFetchers, metadataOptions.disabledImageFetchers) && + Objects.equals(this.imageFetcherOrder, metadataOptions.imageFetcherOrder); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemType, disabledMetadataSavers, localMetadataReaderOrder, disabledMetadataFetchers, metadataFetcherOrder, disabledImageFetchers, imageFetcherOrder); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataOptions {\n"); + sb.append(" itemType: ").append(toIndentedString(itemType)).append("\n"); + sb.append(" disabledMetadataSavers: ").append(toIndentedString(disabledMetadataSavers)).append("\n"); + sb.append(" localMetadataReaderOrder: ").append(toIndentedString(localMetadataReaderOrder)).append("\n"); + sb.append(" disabledMetadataFetchers: ").append(toIndentedString(disabledMetadataFetchers)).append("\n"); + sb.append(" metadataFetcherOrder: ").append(toIndentedString(metadataFetcherOrder)).append("\n"); + sb.append(" disabledImageFetchers: ").append(toIndentedString(disabledImageFetchers)).append("\n"); + sb.append(" imageFetcherOrder: ").append(toIndentedString(imageFetcherOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemType"); + openapiFields.add("DisabledMetadataSavers"); + openapiFields.add("LocalMetadataReaderOrder"); + openapiFields.add("DisabledMetadataFetchers"); + openapiFields.add("MetadataFetcherOrder"); + openapiFields.add("DisabledImageFetchers"); + openapiFields.add("ImageFetcherOrder"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataOptions is not found in the empty JSON string", MetadataOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ItemType") != null && !jsonObj.get("ItemType").isJsonNull()) && !jsonObj.get("ItemType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemType").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMetadataSavers") != null && !jsonObj.get("DisabledMetadataSavers").isJsonNull() && !jsonObj.get("DisabledMetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMetadataSavers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalMetadataReaderOrder") != null && !jsonObj.get("LocalMetadataReaderOrder").isJsonNull() && !jsonObj.get("LocalMetadataReaderOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalMetadataReaderOrder` to be an array in the JSON string but got `%s`", jsonObj.get("LocalMetadataReaderOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMetadataFetchers") != null && !jsonObj.get("DisabledMetadataFetchers").isJsonNull() && !jsonObj.get("DisabledMetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMetadataFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetcherOrder") != null && !jsonObj.get("MetadataFetcherOrder").isJsonNull() && !jsonObj.get("MetadataFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledImageFetchers") != null && !jsonObj.get("DisabledImageFetchers").isJsonNull() && !jsonObj.get("DisabledImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledImageFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetcherOrder") != null && !jsonObj.get("ImageFetcherOrder").isJsonNull() && !jsonObj.get("ImageFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetcherOrder").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataOptions + * @throws IOException if the JSON string is invalid with respect to MetadataOptions + */ + public static MetadataOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataOptions.class); + } + + /** + * Convert an instance of MetadataOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java new file mode 100644 index 0000000000000..9d39e7e644653 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MetadataRefreshMode + */ +@JsonAdapter(MetadataRefreshMode.Adapter.class) +public enum MetadataRefreshMode { + + NONE("None"), + + VALIDATION_ONLY("ValidationOnly"), + + DEFAULT("Default"), + + FULL_REFRESH("FullRefresh"); + + private String value; + + MetadataRefreshMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MetadataRefreshMode fromValue(String value) { + for (MetadataRefreshMode b : MetadataRefreshMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MetadataRefreshMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MetadataRefreshMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MetadataRefreshMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MetadataRefreshMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java new file mode 100644 index 0000000000000..7b4e7d03dda87 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java @@ -0,0 +1,234 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MovePlaylistItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovePlaylistItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public static final String SERIALIZED_NAME_NEW_INDEX = "NewIndex"; + @SerializedName(SERIALIZED_NAME_NEW_INDEX) + @javax.annotation.Nullable + private Integer newIndex; + + public MovePlaylistItemRequestDto() { + } + + public MovePlaylistItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist identifier of the item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public MovePlaylistItemRequestDto newIndex(@javax.annotation.Nullable Integer newIndex) { + this.newIndex = newIndex; + return this; + } + + /** + * Gets or sets the new position. + * @return newIndex + */ + @javax.annotation.Nullable + public Integer getNewIndex() { + return newIndex; + } + + public void setNewIndex(@javax.annotation.Nullable Integer newIndex) { + this.newIndex = newIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovePlaylistItemRequestDto movePlaylistItemRequestDto = (MovePlaylistItemRequestDto) o; + return Objects.equals(this.playlistItemId, movePlaylistItemRequestDto.playlistItemId) && + Objects.equals(this.newIndex, movePlaylistItemRequestDto.newIndex); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId, newIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovePlaylistItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" newIndex: ").append(toIndentedString(newIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + openapiFields.add("NewIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovePlaylistItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovePlaylistItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovePlaylistItemRequestDto is not found in the empty JSON string", MovePlaylistItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovePlaylistItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovePlaylistItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovePlaylistItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovePlaylistItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovePlaylistItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovePlaylistItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovePlaylistItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovePlaylistItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovePlaylistItemRequestDto + * @throws IOException if the JSON string is invalid with respect to MovePlaylistItemRequestDto + */ + public static MovePlaylistItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovePlaylistItemRequestDto.class); + } + + /** + * Convert an instance of MovePlaylistItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfo.java new file mode 100644 index 0000000000000..78026333c75e6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MovieInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovieInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public MovieInfo() { + } + + public MovieInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MovieInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public MovieInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MovieInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public MovieInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public MovieInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public MovieInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public MovieInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public MovieInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public MovieInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public MovieInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public MovieInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovieInfo movieInfo = (MovieInfo) o; + return Objects.equals(this.name, movieInfo.name) && + Objects.equals(this.originalTitle, movieInfo.originalTitle) && + Objects.equals(this.path, movieInfo.path) && + Objects.equals(this.metadataLanguage, movieInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, movieInfo.metadataCountryCode) && + Objects.equals(this.providerIds, movieInfo.providerIds) && + Objects.equals(this.year, movieInfo.year) && + Objects.equals(this.indexNumber, movieInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, movieInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, movieInfo.premiereDate) && + Objects.equals(this.isAutomated, movieInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovieInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovieInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovieInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovieInfo is not found in the empty JSON string", MovieInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovieInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovieInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovieInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovieInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovieInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovieInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovieInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovieInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovieInfo + * @throws IOException if the JSON string is invalid with respect to MovieInfo + */ + public static MovieInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovieInfo.class); + } + + /** + * Convert an instance of MovieInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..17f93cb704f86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.MovieInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MovieInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovieInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private MovieInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public MovieInfoRemoteSearchQuery() { + } + + public MovieInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable MovieInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public MovieInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable MovieInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public MovieInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public MovieInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public MovieInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery = (MovieInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, movieInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, movieInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, movieInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, movieInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovieInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovieInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovieInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovieInfoRemoteSearchQuery is not found in the empty JSON string", MovieInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovieInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovieInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + MovieInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovieInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovieInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovieInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovieInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovieInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovieInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovieInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to MovieInfoRemoteSearchQuery + */ + public static MovieInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovieInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of MovieInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfo.java new file mode 100644 index 0000000000000..4e3899b17b810 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfo.java @@ -0,0 +1,552 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MusicVideoInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MusicVideoInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public MusicVideoInfo() { + } + + public MusicVideoInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MusicVideoInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public MusicVideoInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MusicVideoInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public MusicVideoInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public MusicVideoInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public MusicVideoInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public MusicVideoInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public MusicVideoInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public MusicVideoInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public MusicVideoInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public MusicVideoInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public MusicVideoInfo artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public MusicVideoInfo addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MusicVideoInfo musicVideoInfo = (MusicVideoInfo) o; + return Objects.equals(this.name, musicVideoInfo.name) && + Objects.equals(this.originalTitle, musicVideoInfo.originalTitle) && + Objects.equals(this.path, musicVideoInfo.path) && + Objects.equals(this.metadataLanguage, musicVideoInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, musicVideoInfo.metadataCountryCode) && + Objects.equals(this.providerIds, musicVideoInfo.providerIds) && + Objects.equals(this.year, musicVideoInfo.year) && + Objects.equals(this.indexNumber, musicVideoInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, musicVideoInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, musicVideoInfo.premiereDate) && + Objects.equals(this.isAutomated, musicVideoInfo.isAutomated) && + Objects.equals(this.artists, musicVideoInfo.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MusicVideoInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MusicVideoInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MusicVideoInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MusicVideoInfo is not found in the empty JSON string", MusicVideoInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MusicVideoInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MusicVideoInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MusicVideoInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MusicVideoInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MusicVideoInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MusicVideoInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MusicVideoInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MusicVideoInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MusicVideoInfo + * @throws IOException if the JSON string is invalid with respect to MusicVideoInfo + */ + public static MusicVideoInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MusicVideoInfo.class); + } + + /** + * Convert an instance of MusicVideoInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..5964be946eb03 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.MusicVideoInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MusicVideoInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MusicVideoInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private MusicVideoInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public MusicVideoInfoRemoteSearchQuery() { + } + + public MusicVideoInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable MusicVideoInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public MusicVideoInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable MusicVideoInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public MusicVideoInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public MusicVideoInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public MusicVideoInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery = (MusicVideoInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, musicVideoInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, musicVideoInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, musicVideoInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, musicVideoInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MusicVideoInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MusicVideoInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MusicVideoInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MusicVideoInfoRemoteSearchQuery is not found in the empty JSON string", MusicVideoInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MusicVideoInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MusicVideoInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + MusicVideoInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MusicVideoInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MusicVideoInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MusicVideoInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MusicVideoInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MusicVideoInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MusicVideoInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of MusicVideoInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to MusicVideoInfoRemoteSearchQuery + */ + public static MusicVideoInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MusicVideoInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of MusicVideoInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameGuidPair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameGuidPair.java new file mode 100644 index 0000000000000..38244682a3747 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameGuidPair.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameGuidPair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameGuidPair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public NameGuidPair() { + } + + public NameGuidPair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameGuidPair id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameGuidPair nameGuidPair = (NameGuidPair) o; + return Objects.equals(this.name, nameGuidPair.name) && + Objects.equals(this.id, nameGuidPair.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameGuidPair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameGuidPair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameGuidPair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameGuidPair is not found in the empty JSON string", NameGuidPair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameGuidPair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameGuidPair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameGuidPair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameGuidPair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameGuidPair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameGuidPair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameGuidPair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameGuidPair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameGuidPair + * @throws IOException if the JSON string is invalid with respect to NameGuidPair + */ + public static NameGuidPair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameGuidPair.class); + } + + /** + * Convert an instance of NameGuidPair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameIdPair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameIdPair.java new file mode 100644 index 0000000000000..db1316b5eee51 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameIdPair.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameIdPair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameIdPair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public NameIdPair() { + } + + public NameIdPair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameIdPair id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameIdPair nameIdPair = (NameIdPair) o; + return Objects.equals(this.name, nameIdPair.name) && + Objects.equals(this.id, nameIdPair.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameIdPair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameIdPair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameIdPair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameIdPair is not found in the empty JSON string", NameIdPair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameIdPair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameIdPair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameIdPair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameIdPair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameIdPair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameIdPair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameIdPair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameIdPair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameIdPair + * @throws IOException if the JSON string is invalid with respect to NameIdPair + */ + public static NameIdPair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameIdPair.class); + } + + /** + * Convert an instance of NameIdPair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameValuePair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameValuePair.java new file mode 100644 index 0000000000000..653f4f0ca23b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NameValuePair.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameValuePair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameValuePair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public NameValuePair() { + } + + public NameValuePair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameValuePair value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Gets or sets the value. + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameValuePair nameValuePair = (NameValuePair) o; + return Objects.equals(this.name, nameValuePair.name) && + Objects.equals(this.value, nameValuePair.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameValuePair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameValuePair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameValuePair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameValuePair is not found in the empty JSON string", NameValuePair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameValuePair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameValuePair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameValuePair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameValuePair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameValuePair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameValuePair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameValuePair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameValuePair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameValuePair + * @throws IOException if the JSON string is invalid with respect to NameValuePair + */ + public static NameValuePair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameValuePair.class); + } + + /** + * Convert an instance of NameValuePair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NetworkConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NetworkConfiguration.java new file mode 100644 index 0000000000000..6560538a6f5eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NetworkConfiguration.java @@ -0,0 +1,880 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Common.Net.NetworkConfiguration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NetworkConfiguration { + public static final String SERIALIZED_NAME_BASE_URL = "BaseUrl"; + @SerializedName(SERIALIZED_NAME_BASE_URL) + @javax.annotation.Nullable + private String baseUrl; + + public static final String SERIALIZED_NAME_ENABLE_HTTPS = "EnableHttps"; + @SerializedName(SERIALIZED_NAME_ENABLE_HTTPS) + @javax.annotation.Nullable + private Boolean enableHttps; + + public static final String SERIALIZED_NAME_REQUIRE_HTTPS = "RequireHttps"; + @SerializedName(SERIALIZED_NAME_REQUIRE_HTTPS) + @javax.annotation.Nullable + private Boolean requireHttps; + + public static final String SERIALIZED_NAME_CERTIFICATE_PATH = "CertificatePath"; + @SerializedName(SERIALIZED_NAME_CERTIFICATE_PATH) + @javax.annotation.Nullable + private String certificatePath; + + public static final String SERIALIZED_NAME_CERTIFICATE_PASSWORD = "CertificatePassword"; + @SerializedName(SERIALIZED_NAME_CERTIFICATE_PASSWORD) + @javax.annotation.Nullable + private String certificatePassword; + + public static final String SERIALIZED_NAME_INTERNAL_HTTP_PORT = "InternalHttpPort"; + @SerializedName(SERIALIZED_NAME_INTERNAL_HTTP_PORT) + @javax.annotation.Nullable + private Integer internalHttpPort; + + public static final String SERIALIZED_NAME_INTERNAL_HTTPS_PORT = "InternalHttpsPort"; + @SerializedName(SERIALIZED_NAME_INTERNAL_HTTPS_PORT) + @javax.annotation.Nullable + private Integer internalHttpsPort; + + public static final String SERIALIZED_NAME_PUBLIC_HTTP_PORT = "PublicHttpPort"; + @SerializedName(SERIALIZED_NAME_PUBLIC_HTTP_PORT) + @javax.annotation.Nullable + private Integer publicHttpPort; + + public static final String SERIALIZED_NAME_PUBLIC_HTTPS_PORT = "PublicHttpsPort"; + @SerializedName(SERIALIZED_NAME_PUBLIC_HTTPS_PORT) + @javax.annotation.Nullable + private Integer publicHttpsPort; + + public static final String SERIALIZED_NAME_AUTO_DISCOVERY = "AutoDiscovery"; + @SerializedName(SERIALIZED_NAME_AUTO_DISCOVERY) + @javax.annotation.Nullable + private Boolean autoDiscovery; + + public static final String SERIALIZED_NAME_ENABLE_U_PN_P = "EnableUPnP"; + @SerializedName(SERIALIZED_NAME_ENABLE_U_PN_P) + @javax.annotation.Nullable + private Boolean enableUPnP; + + public static final String SERIALIZED_NAME_ENABLE_I_PV4 = "EnableIPv4"; + @SerializedName(SERIALIZED_NAME_ENABLE_I_PV4) + @javax.annotation.Nullable + private Boolean enableIPv4; + + public static final String SERIALIZED_NAME_ENABLE_I_PV6 = "EnableIPv6"; + @SerializedName(SERIALIZED_NAME_ENABLE_I_PV6) + @javax.annotation.Nullable + private Boolean enableIPv6; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nullable + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_LOCAL_NETWORK_SUBNETS = "LocalNetworkSubnets"; + @SerializedName(SERIALIZED_NAME_LOCAL_NETWORK_SUBNETS) + @javax.annotation.Nullable + private List localNetworkSubnets = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LOCAL_NETWORK_ADDRESSES = "LocalNetworkAddresses"; + @SerializedName(SERIALIZED_NAME_LOCAL_NETWORK_ADDRESSES) + @javax.annotation.Nullable + private List localNetworkAddresses = new ArrayList<>(); + + public static final String SERIALIZED_NAME_KNOWN_PROXIES = "KnownProxies"; + @SerializedName(SERIALIZED_NAME_KNOWN_PROXIES) + @javax.annotation.Nullable + private List knownProxies = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IGNORE_VIRTUAL_INTERFACES = "IgnoreVirtualInterfaces"; + @SerializedName(SERIALIZED_NAME_IGNORE_VIRTUAL_INTERFACES) + @javax.annotation.Nullable + private Boolean ignoreVirtualInterfaces; + + public static final String SERIALIZED_NAME_VIRTUAL_INTERFACE_NAMES = "VirtualInterfaceNames"; + @SerializedName(SERIALIZED_NAME_VIRTUAL_INTERFACE_NAMES) + @javax.annotation.Nullable + private List virtualInterfaceNames = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_PUBLISHED_SERVER_URI_BY_REQUEST = "EnablePublishedServerUriByRequest"; + @SerializedName(SERIALIZED_NAME_ENABLE_PUBLISHED_SERVER_URI_BY_REQUEST) + @javax.annotation.Nullable + private Boolean enablePublishedServerUriByRequest; + + public static final String SERIALIZED_NAME_PUBLISHED_SERVER_URI_BY_SUBNET = "PublishedServerUriBySubnet"; + @SerializedName(SERIALIZED_NAME_PUBLISHED_SERVER_URI_BY_SUBNET) + @javax.annotation.Nullable + private List publishedServerUriBySubnet = new ArrayList<>(); + + public static final String SERIALIZED_NAME_REMOTE_I_P_FILTER = "RemoteIPFilter"; + @SerializedName(SERIALIZED_NAME_REMOTE_I_P_FILTER) + @javax.annotation.Nullable + private List remoteIPFilter = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_REMOTE_I_P_FILTER_BLACKLIST = "IsRemoteIPFilterBlacklist"; + @SerializedName(SERIALIZED_NAME_IS_REMOTE_I_P_FILTER_BLACKLIST) + @javax.annotation.Nullable + private Boolean isRemoteIPFilterBlacklist; + + public NetworkConfiguration() { + } + + public NetworkConfiguration baseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + /** + * Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. + * @return baseUrl + */ + @javax.annotation.Nullable + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + } + + + public NetworkConfiguration enableHttps(@javax.annotation.Nullable Boolean enableHttps) { + this.enableHttps = enableHttps; + return this; + } + + /** + * Gets or sets a value indicating whether to use HTTPS. + * @return enableHttps + */ + @javax.annotation.Nullable + public Boolean getEnableHttps() { + return enableHttps; + } + + public void setEnableHttps(@javax.annotation.Nullable Boolean enableHttps) { + this.enableHttps = enableHttps; + } + + + public NetworkConfiguration requireHttps(@javax.annotation.Nullable Boolean requireHttps) { + this.requireHttps = requireHttps; + return this; + } + + /** + * Gets or sets a value indicating whether the server should force connections over HTTPS. + * @return requireHttps + */ + @javax.annotation.Nullable + public Boolean getRequireHttps() { + return requireHttps; + } + + public void setRequireHttps(@javax.annotation.Nullable Boolean requireHttps) { + this.requireHttps = requireHttps; + } + + + public NetworkConfiguration certificatePath(@javax.annotation.Nullable String certificatePath) { + this.certificatePath = certificatePath; + return this; + } + + /** + * Gets or sets the filesystem path of an X.509 certificate to use for SSL. + * @return certificatePath + */ + @javax.annotation.Nullable + public String getCertificatePath() { + return certificatePath; + } + + public void setCertificatePath(@javax.annotation.Nullable String certificatePath) { + this.certificatePath = certificatePath; + } + + + public NetworkConfiguration certificatePassword(@javax.annotation.Nullable String certificatePassword) { + this.certificatePassword = certificatePassword; + return this; + } + + /** + * Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Common.Net.NetworkConfiguration.CertificatePath. + * @return certificatePassword + */ + @javax.annotation.Nullable + public String getCertificatePassword() { + return certificatePassword; + } + + public void setCertificatePassword(@javax.annotation.Nullable String certificatePassword) { + this.certificatePassword = certificatePassword; + } + + + public NetworkConfiguration internalHttpPort(@javax.annotation.Nullable Integer internalHttpPort) { + this.internalHttpPort = internalHttpPort; + return this; + } + + /** + * Gets or sets the internal HTTP server port. + * @return internalHttpPort + */ + @javax.annotation.Nullable + public Integer getInternalHttpPort() { + return internalHttpPort; + } + + public void setInternalHttpPort(@javax.annotation.Nullable Integer internalHttpPort) { + this.internalHttpPort = internalHttpPort; + } + + + public NetworkConfiguration internalHttpsPort(@javax.annotation.Nullable Integer internalHttpsPort) { + this.internalHttpsPort = internalHttpsPort; + return this; + } + + /** + * Gets or sets the internal HTTPS server port. + * @return internalHttpsPort + */ + @javax.annotation.Nullable + public Integer getInternalHttpsPort() { + return internalHttpsPort; + } + + public void setInternalHttpsPort(@javax.annotation.Nullable Integer internalHttpsPort) { + this.internalHttpsPort = internalHttpsPort; + } + + + public NetworkConfiguration publicHttpPort(@javax.annotation.Nullable Integer publicHttpPort) { + this.publicHttpPort = publicHttpPort; + return this; + } + + /** + * Gets or sets the public HTTP port. + * @return publicHttpPort + */ + @javax.annotation.Nullable + public Integer getPublicHttpPort() { + return publicHttpPort; + } + + public void setPublicHttpPort(@javax.annotation.Nullable Integer publicHttpPort) { + this.publicHttpPort = publicHttpPort; + } + + + public NetworkConfiguration publicHttpsPort(@javax.annotation.Nullable Integer publicHttpsPort) { + this.publicHttpsPort = publicHttpsPort; + return this; + } + + /** + * Gets or sets the public HTTPS port. + * @return publicHttpsPort + */ + @javax.annotation.Nullable + public Integer getPublicHttpsPort() { + return publicHttpsPort; + } + + public void setPublicHttpsPort(@javax.annotation.Nullable Integer publicHttpsPort) { + this.publicHttpsPort = publicHttpsPort; + } + + + public NetworkConfiguration autoDiscovery(@javax.annotation.Nullable Boolean autoDiscovery) { + this.autoDiscovery = autoDiscovery; + return this; + } + + /** + * Gets or sets a value indicating whether Autodiscovery is enabled. + * @return autoDiscovery + */ + @javax.annotation.Nullable + public Boolean getAutoDiscovery() { + return autoDiscovery; + } + + public void setAutoDiscovery(@javax.annotation.Nullable Boolean autoDiscovery) { + this.autoDiscovery = autoDiscovery; + } + + + public NetworkConfiguration enableUPnP(@javax.annotation.Nullable Boolean enableUPnP) { + this.enableUPnP = enableUPnP; + return this; + } + + /** + * Gets or sets a value indicating whether to enable automatic port forwarding. + * @return enableUPnP + */ + @javax.annotation.Nullable + public Boolean getEnableUPnP() { + return enableUPnP; + } + + public void setEnableUPnP(@javax.annotation.Nullable Boolean enableUPnP) { + this.enableUPnP = enableUPnP; + } + + + public NetworkConfiguration enableIPv4(@javax.annotation.Nullable Boolean enableIPv4) { + this.enableIPv4 = enableIPv4; + return this; + } + + /** + * Gets or sets a value indicating whether IPv6 is enabled. + * @return enableIPv4 + */ + @javax.annotation.Nullable + public Boolean getEnableIPv4() { + return enableIPv4; + } + + public void setEnableIPv4(@javax.annotation.Nullable Boolean enableIPv4) { + this.enableIPv4 = enableIPv4; + } + + + public NetworkConfiguration enableIPv6(@javax.annotation.Nullable Boolean enableIPv6) { + this.enableIPv6 = enableIPv6; + return this; + } + + /** + * Gets or sets a value indicating whether IPv6 is enabled. + * @return enableIPv6 + */ + @javax.annotation.Nullable + public Boolean getEnableIPv6() { + return enableIPv6; + } + + public void setEnableIPv6(@javax.annotation.Nullable Boolean enableIPv6) { + this.enableIPv6 = enableIPv6; + } + + + public NetworkConfiguration enableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Gets or sets a value indicating whether access from outside of the LAN is permitted. + * @return enableRemoteAccess + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public NetworkConfiguration localNetworkSubnets(@javax.annotation.Nullable List localNetworkSubnets) { + this.localNetworkSubnets = localNetworkSubnets; + return this; + } + + public NetworkConfiguration addLocalNetworkSubnetsItem(String localNetworkSubnetsItem) { + if (this.localNetworkSubnets == null) { + this.localNetworkSubnets = new ArrayList<>(); + } + this.localNetworkSubnets.add(localNetworkSubnetsItem); + return this; + } + + /** + * Gets or sets the subnets that are deemed to make up the LAN. + * @return localNetworkSubnets + */ + @javax.annotation.Nullable + public List getLocalNetworkSubnets() { + return localNetworkSubnets; + } + + public void setLocalNetworkSubnets(@javax.annotation.Nullable List localNetworkSubnets) { + this.localNetworkSubnets = localNetworkSubnets; + } + + + public NetworkConfiguration localNetworkAddresses(@javax.annotation.Nullable List localNetworkAddresses) { + this.localNetworkAddresses = localNetworkAddresses; + return this; + } + + public NetworkConfiguration addLocalNetworkAddressesItem(String localNetworkAddressesItem) { + if (this.localNetworkAddresses == null) { + this.localNetworkAddresses = new ArrayList<>(); + } + this.localNetworkAddresses.add(localNetworkAddressesItem); + return this; + } + + /** + * Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. + * @return localNetworkAddresses + */ + @javax.annotation.Nullable + public List getLocalNetworkAddresses() { + return localNetworkAddresses; + } + + public void setLocalNetworkAddresses(@javax.annotation.Nullable List localNetworkAddresses) { + this.localNetworkAddresses = localNetworkAddresses; + } + + + public NetworkConfiguration knownProxies(@javax.annotation.Nullable List knownProxies) { + this.knownProxies = knownProxies; + return this; + } + + public NetworkConfiguration addKnownProxiesItem(String knownProxiesItem) { + if (this.knownProxies == null) { + this.knownProxies = new ArrayList<>(); + } + this.knownProxies.add(knownProxiesItem); + return this; + } + + /** + * Gets or sets the known proxies. + * @return knownProxies + */ + @javax.annotation.Nullable + public List getKnownProxies() { + return knownProxies; + } + + public void setKnownProxies(@javax.annotation.Nullable List knownProxies) { + this.knownProxies = knownProxies; + } + + + public NetworkConfiguration ignoreVirtualInterfaces(@javax.annotation.Nullable Boolean ignoreVirtualInterfaces) { + this.ignoreVirtualInterfaces = ignoreVirtualInterfaces; + return this; + } + + /** + * Gets or sets a value indicating whether address names that match MediaBrowser.Common.Net.NetworkConfiguration.VirtualInterfaceNames should be ignored for the purposes of binding. + * @return ignoreVirtualInterfaces + */ + @javax.annotation.Nullable + public Boolean getIgnoreVirtualInterfaces() { + return ignoreVirtualInterfaces; + } + + public void setIgnoreVirtualInterfaces(@javax.annotation.Nullable Boolean ignoreVirtualInterfaces) { + this.ignoreVirtualInterfaces = ignoreVirtualInterfaces; + } + + + public NetworkConfiguration virtualInterfaceNames(@javax.annotation.Nullable List virtualInterfaceNames) { + this.virtualInterfaceNames = virtualInterfaceNames; + return this; + } + + public NetworkConfiguration addVirtualInterfaceNamesItem(String virtualInterfaceNamesItem) { + if (this.virtualInterfaceNames == null) { + this.virtualInterfaceNames = new ArrayList<>(); + } + this.virtualInterfaceNames.add(virtualInterfaceNamesItem); + return this; + } + + /** + * Gets or sets a value indicating the interface name prefixes that should be ignored. The list can be comma separated and values are case-insensitive. <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.IgnoreVirtualInterfaces\" />. + * @return virtualInterfaceNames + */ + @javax.annotation.Nullable + public List getVirtualInterfaceNames() { + return virtualInterfaceNames; + } + + public void setVirtualInterfaceNames(@javax.annotation.Nullable List virtualInterfaceNames) { + this.virtualInterfaceNames = virtualInterfaceNames; + } + + + public NetworkConfiguration enablePublishedServerUriByRequest(@javax.annotation.Nullable Boolean enablePublishedServerUriByRequest) { + this.enablePublishedServerUriByRequest = enablePublishedServerUriByRequest; + return this; + } + + /** + * Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. + * @return enablePublishedServerUriByRequest + */ + @javax.annotation.Nullable + public Boolean getEnablePublishedServerUriByRequest() { + return enablePublishedServerUriByRequest; + } + + public void setEnablePublishedServerUriByRequest(@javax.annotation.Nullable Boolean enablePublishedServerUriByRequest) { + this.enablePublishedServerUriByRequest = enablePublishedServerUriByRequest; + } + + + public NetworkConfiguration publishedServerUriBySubnet(@javax.annotation.Nullable List publishedServerUriBySubnet) { + this.publishedServerUriBySubnet = publishedServerUriBySubnet; + return this; + } + + public NetworkConfiguration addPublishedServerUriBySubnetItem(String publishedServerUriBySubnetItem) { + if (this.publishedServerUriBySubnet == null) { + this.publishedServerUriBySubnet = new ArrayList<>(); + } + this.publishedServerUriBySubnet.add(publishedServerUriBySubnetItem); + return this; + } + + /** + * Gets or sets the PublishedServerUriBySubnet Gets or sets PublishedServerUri to advertise for specific subnets. + * @return publishedServerUriBySubnet + */ + @javax.annotation.Nullable + public List getPublishedServerUriBySubnet() { + return publishedServerUriBySubnet; + } + + public void setPublishedServerUriBySubnet(@javax.annotation.Nullable List publishedServerUriBySubnet) { + this.publishedServerUriBySubnet = publishedServerUriBySubnet; + } + + + public NetworkConfiguration remoteIPFilter(@javax.annotation.Nullable List remoteIPFilter) { + this.remoteIPFilter = remoteIPFilter; + return this; + } + + public NetworkConfiguration addRemoteIPFilterItem(String remoteIPFilterItem) { + if (this.remoteIPFilter == null) { + this.remoteIPFilter = new ArrayList<>(); + } + this.remoteIPFilter.add(remoteIPFilterItem); + return this; + } + + /** + * Gets or sets the filter for remote IP connectivity. Used in conjunction with <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.IsRemoteIPFilterBlacklist\" />. + * @return remoteIPFilter + */ + @javax.annotation.Nullable + public List getRemoteIPFilter() { + return remoteIPFilter; + } + + public void setRemoteIPFilter(@javax.annotation.Nullable List remoteIPFilter) { + this.remoteIPFilter = remoteIPFilter; + } + + + public NetworkConfiguration isRemoteIPFilterBlacklist(@javax.annotation.Nullable Boolean isRemoteIPFilterBlacklist) { + this.isRemoteIPFilterBlacklist = isRemoteIPFilterBlacklist; + return this; + } + + /** + * Gets or sets a value indicating whether <seealso cref=\"P:MediaBrowser.Common.Net.NetworkConfiguration.RemoteIPFilter\" /> contains a blacklist or a whitelist. Default is a whitelist. + * @return isRemoteIPFilterBlacklist + */ + @javax.annotation.Nullable + public Boolean getIsRemoteIPFilterBlacklist() { + return isRemoteIPFilterBlacklist; + } + + public void setIsRemoteIPFilterBlacklist(@javax.annotation.Nullable Boolean isRemoteIPFilterBlacklist) { + this.isRemoteIPFilterBlacklist = isRemoteIPFilterBlacklist; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NetworkConfiguration networkConfiguration = (NetworkConfiguration) o; + return Objects.equals(this.baseUrl, networkConfiguration.baseUrl) && + Objects.equals(this.enableHttps, networkConfiguration.enableHttps) && + Objects.equals(this.requireHttps, networkConfiguration.requireHttps) && + Objects.equals(this.certificatePath, networkConfiguration.certificatePath) && + Objects.equals(this.certificatePassword, networkConfiguration.certificatePassword) && + Objects.equals(this.internalHttpPort, networkConfiguration.internalHttpPort) && + Objects.equals(this.internalHttpsPort, networkConfiguration.internalHttpsPort) && + Objects.equals(this.publicHttpPort, networkConfiguration.publicHttpPort) && + Objects.equals(this.publicHttpsPort, networkConfiguration.publicHttpsPort) && + Objects.equals(this.autoDiscovery, networkConfiguration.autoDiscovery) && + Objects.equals(this.enableUPnP, networkConfiguration.enableUPnP) && + Objects.equals(this.enableIPv4, networkConfiguration.enableIPv4) && + Objects.equals(this.enableIPv6, networkConfiguration.enableIPv6) && + Objects.equals(this.enableRemoteAccess, networkConfiguration.enableRemoteAccess) && + Objects.equals(this.localNetworkSubnets, networkConfiguration.localNetworkSubnets) && + Objects.equals(this.localNetworkAddresses, networkConfiguration.localNetworkAddresses) && + Objects.equals(this.knownProxies, networkConfiguration.knownProxies) && + Objects.equals(this.ignoreVirtualInterfaces, networkConfiguration.ignoreVirtualInterfaces) && + Objects.equals(this.virtualInterfaceNames, networkConfiguration.virtualInterfaceNames) && + Objects.equals(this.enablePublishedServerUriByRequest, networkConfiguration.enablePublishedServerUriByRequest) && + Objects.equals(this.publishedServerUriBySubnet, networkConfiguration.publishedServerUriBySubnet) && + Objects.equals(this.remoteIPFilter, networkConfiguration.remoteIPFilter) && + Objects.equals(this.isRemoteIPFilterBlacklist, networkConfiguration.isRemoteIPFilterBlacklist); + } + + @Override + public int hashCode() { + return Objects.hash(baseUrl, enableHttps, requireHttps, certificatePath, certificatePassword, internalHttpPort, internalHttpsPort, publicHttpPort, publicHttpsPort, autoDiscovery, enableUPnP, enableIPv4, enableIPv6, enableRemoteAccess, localNetworkSubnets, localNetworkAddresses, knownProxies, ignoreVirtualInterfaces, virtualInterfaceNames, enablePublishedServerUriByRequest, publishedServerUriBySubnet, remoteIPFilter, isRemoteIPFilterBlacklist); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NetworkConfiguration {\n"); + sb.append(" baseUrl: ").append(toIndentedString(baseUrl)).append("\n"); + sb.append(" enableHttps: ").append(toIndentedString(enableHttps)).append("\n"); + sb.append(" requireHttps: ").append(toIndentedString(requireHttps)).append("\n"); + sb.append(" certificatePath: ").append(toIndentedString(certificatePath)).append("\n"); + sb.append(" certificatePassword: ").append(toIndentedString(certificatePassword)).append("\n"); + sb.append(" internalHttpPort: ").append(toIndentedString(internalHttpPort)).append("\n"); + sb.append(" internalHttpsPort: ").append(toIndentedString(internalHttpsPort)).append("\n"); + sb.append(" publicHttpPort: ").append(toIndentedString(publicHttpPort)).append("\n"); + sb.append(" publicHttpsPort: ").append(toIndentedString(publicHttpsPort)).append("\n"); + sb.append(" autoDiscovery: ").append(toIndentedString(autoDiscovery)).append("\n"); + sb.append(" enableUPnP: ").append(toIndentedString(enableUPnP)).append("\n"); + sb.append(" enableIPv4: ").append(toIndentedString(enableIPv4)).append("\n"); + sb.append(" enableIPv6: ").append(toIndentedString(enableIPv6)).append("\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" localNetworkSubnets: ").append(toIndentedString(localNetworkSubnets)).append("\n"); + sb.append(" localNetworkAddresses: ").append(toIndentedString(localNetworkAddresses)).append("\n"); + sb.append(" knownProxies: ").append(toIndentedString(knownProxies)).append("\n"); + sb.append(" ignoreVirtualInterfaces: ").append(toIndentedString(ignoreVirtualInterfaces)).append("\n"); + sb.append(" virtualInterfaceNames: ").append(toIndentedString(virtualInterfaceNames)).append("\n"); + sb.append(" enablePublishedServerUriByRequest: ").append(toIndentedString(enablePublishedServerUriByRequest)).append("\n"); + sb.append(" publishedServerUriBySubnet: ").append(toIndentedString(publishedServerUriBySubnet)).append("\n"); + sb.append(" remoteIPFilter: ").append(toIndentedString(remoteIPFilter)).append("\n"); + sb.append(" isRemoteIPFilterBlacklist: ").append(toIndentedString(isRemoteIPFilterBlacklist)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("BaseUrl"); + openapiFields.add("EnableHttps"); + openapiFields.add("RequireHttps"); + openapiFields.add("CertificatePath"); + openapiFields.add("CertificatePassword"); + openapiFields.add("InternalHttpPort"); + openapiFields.add("InternalHttpsPort"); + openapiFields.add("PublicHttpPort"); + openapiFields.add("PublicHttpsPort"); + openapiFields.add("AutoDiscovery"); + openapiFields.add("EnableUPnP"); + openapiFields.add("EnableIPv4"); + openapiFields.add("EnableIPv6"); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("LocalNetworkSubnets"); + openapiFields.add("LocalNetworkAddresses"); + openapiFields.add("KnownProxies"); + openapiFields.add("IgnoreVirtualInterfaces"); + openapiFields.add("VirtualInterfaceNames"); + openapiFields.add("EnablePublishedServerUriByRequest"); + openapiFields.add("PublishedServerUriBySubnet"); + openapiFields.add("RemoteIPFilter"); + openapiFields.add("IsRemoteIPFilterBlacklist"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NetworkConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NetworkConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NetworkConfiguration is not found in the empty JSON string", NetworkConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NetworkConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NetworkConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("BaseUrl") != null && !jsonObj.get("BaseUrl").isJsonNull()) && !jsonObj.get("BaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaseUrl").toString())); + } + if ((jsonObj.get("CertificatePath") != null && !jsonObj.get("CertificatePath").isJsonNull()) && !jsonObj.get("CertificatePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CertificatePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CertificatePath").toString())); + } + if ((jsonObj.get("CertificatePassword") != null && !jsonObj.get("CertificatePassword").isJsonNull()) && !jsonObj.get("CertificatePassword").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CertificatePassword` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CertificatePassword").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalNetworkSubnets") != null && !jsonObj.get("LocalNetworkSubnets").isJsonNull() && !jsonObj.get("LocalNetworkSubnets").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalNetworkSubnets` to be an array in the JSON string but got `%s`", jsonObj.get("LocalNetworkSubnets").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalNetworkAddresses") != null && !jsonObj.get("LocalNetworkAddresses").isJsonNull() && !jsonObj.get("LocalNetworkAddresses").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalNetworkAddresses` to be an array in the JSON string but got `%s`", jsonObj.get("LocalNetworkAddresses").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("KnownProxies") != null && !jsonObj.get("KnownProxies").isJsonNull() && !jsonObj.get("KnownProxies").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `KnownProxies` to be an array in the JSON string but got `%s`", jsonObj.get("KnownProxies").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("VirtualInterfaceNames") != null && !jsonObj.get("VirtualInterfaceNames").isJsonNull() && !jsonObj.get("VirtualInterfaceNames").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `VirtualInterfaceNames` to be an array in the JSON string but got `%s`", jsonObj.get("VirtualInterfaceNames").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PublishedServerUriBySubnet") != null && !jsonObj.get("PublishedServerUriBySubnet").isJsonNull() && !jsonObj.get("PublishedServerUriBySubnet").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PublishedServerUriBySubnet` to be an array in the JSON string but got `%s`", jsonObj.get("PublishedServerUriBySubnet").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("RemoteIPFilter") != null && !jsonObj.get("RemoteIPFilter").isJsonNull() && !jsonObj.get("RemoteIPFilter").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteIPFilter` to be an array in the JSON string but got `%s`", jsonObj.get("RemoteIPFilter").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NetworkConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NetworkConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NetworkConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NetworkConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NetworkConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NetworkConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of NetworkConfiguration + * @throws IOException if the JSON string is invalid with respect to NetworkConfiguration + */ + public static NetworkConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NetworkConfiguration.class); + } + + /** + * Convert an instance of NetworkConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java new file mode 100644 index 0000000000000..34a827b7ed298 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class NewGroupRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NewGroupRequestDto { + public static final String SERIALIZED_NAME_GROUP_NAME = "GroupName"; + @SerializedName(SERIALIZED_NAME_GROUP_NAME) + @javax.annotation.Nullable + private String groupName; + + public NewGroupRequestDto() { + } + + public NewGroupRequestDto groupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + return this; + } + + /** + * Gets or sets the group name. + * @return groupName + */ + @javax.annotation.Nullable + public String getGroupName() { + return groupName; + } + + public void setGroupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewGroupRequestDto newGroupRequestDto = (NewGroupRequestDto) o; + return Objects.equals(this.groupName, newGroupRequestDto.groupName); + } + + @Override + public int hashCode() { + return Objects.hash(groupName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewGroupRequestDto {\n"); + sb.append(" groupName: ").append(toIndentedString(groupName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewGroupRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewGroupRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewGroupRequestDto is not found in the empty JSON string", NewGroupRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewGroupRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewGroupRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupName") != null && !jsonObj.get("GroupName").isJsonNull()) && !jsonObj.get("GroupName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewGroupRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewGroupRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewGroupRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewGroupRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewGroupRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewGroupRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewGroupRequestDto + * @throws IOException if the JSON string is invalid with respect to NewGroupRequestDto + */ + public static NewGroupRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewGroupRequestDto.class); + } + + /** + * Convert an instance of NewGroupRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NextItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NextItemRequestDto.java new file mode 100644 index 0000000000000..680028f6b3bfd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/NextItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class NextItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NextItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public NextItemRequestDto() { + } + + public NextItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playing item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NextItemRequestDto nextItemRequestDto = (NextItemRequestDto) o; + return Objects.equals(this.playlistItemId, nextItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NextItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NextItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NextItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NextItemRequestDto is not found in the empty JSON string", NextItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NextItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NextItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NextItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NextItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NextItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NextItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NextItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NextItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NextItemRequestDto + * @throws IOException if the JSON string is invalid with respect to NextItemRequestDto + */ + public static NextItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NextItemRequestDto.class); + } + + /** + * Convert an instance of NextItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java new file mode 100644 index 0000000000000..a084979b775b5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java @@ -0,0 +1,599 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.MediaProtocol; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Open live stream dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class OpenLiveStreamDto { + public static final String SERIALIZED_NAME_OPEN_TOKEN = "OpenToken"; + @SerializedName(SERIALIZED_NAME_OPEN_TOKEN) + @javax.annotation.Nullable + private String openToken; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_START_TIME_TICKS = "StartTimeTicks"; + @SerializedName(SERIALIZED_NAME_START_TIME_TICKS) + @javax.annotation.Nullable + private Long startTimeTicks; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer maxAudioChannels; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_PLAY = "EnableDirectPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean enableDirectPlay; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_STREAM = "EnableDirectStream"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean enableDirectStream; + + public static final String SERIALIZED_NAME_ALWAYS_BURN_IN_SUBTITLE_WHEN_TRANSCODING = "AlwaysBurnInSubtitleWhenTranscoding"; + @SerializedName(SERIALIZED_NAME_ALWAYS_BURN_IN_SUBTITLE_WHEN_TRANSCODING) + @javax.annotation.Nullable + private Boolean alwaysBurnInSubtitleWhenTranscoding; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_DIRECT_PLAY_PROTOCOLS = "DirectPlayProtocols"; + @SerializedName(SERIALIZED_NAME_DIRECT_PLAY_PROTOCOLS) + @javax.annotation.Nullable + private List directPlayProtocols = new ArrayList<>(); + + public OpenLiveStreamDto() { + } + + public OpenLiveStreamDto openToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + return this; + } + + /** + * Gets or sets the open token. + * @return openToken + */ + @javax.annotation.Nullable + public String getOpenToken() { + return openToken; + } + + public void setOpenToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + } + + + public OpenLiveStreamDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public OpenLiveStreamDto playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session id. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public OpenLiveStreamDto maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the max streaming bitrate. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public OpenLiveStreamDto startTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + return this; + } + + /** + * Gets or sets the start time in ticks. + * @return startTimeTicks + */ + @javax.annotation.Nullable + public Long getStartTimeTicks() { + return startTimeTicks; + } + + public void setStartTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + } + + + public OpenLiveStreamDto audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the audio stream index. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public OpenLiveStreamDto subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the subtitle stream index. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public OpenLiveStreamDto maxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Gets or sets the max audio channels. + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public Integer getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public OpenLiveStreamDto itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item id. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public OpenLiveStreamDto enableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct play. + * @return enableDirectPlay + */ + @javax.annotation.Nullable + public Boolean getEnableDirectPlay() { + return enableDirectPlay; + } + + public void setEnableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + } + + + public OpenLiveStreamDto enableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + return this; + } + + /** + * Gets or sets a value indicating whether to enale direct stream. + * @return enableDirectStream + */ + @javax.annotation.Nullable + public Boolean getEnableDirectStream() { + return enableDirectStream; + } + + public void setEnableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + } + + + public OpenLiveStreamDto alwaysBurnInSubtitleWhenTranscoding(@javax.annotation.Nullable Boolean alwaysBurnInSubtitleWhenTranscoding) { + this.alwaysBurnInSubtitleWhenTranscoding = alwaysBurnInSubtitleWhenTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether always burn in subtitles when transcoding. + * @return alwaysBurnInSubtitleWhenTranscoding + */ + @javax.annotation.Nullable + public Boolean getAlwaysBurnInSubtitleWhenTranscoding() { + return alwaysBurnInSubtitleWhenTranscoding; + } + + public void setAlwaysBurnInSubtitleWhenTranscoding(@javax.annotation.Nullable Boolean alwaysBurnInSubtitleWhenTranscoding) { + this.alwaysBurnInSubtitleWhenTranscoding = alwaysBurnInSubtitleWhenTranscoding; + } + + + public OpenLiveStreamDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * Gets or sets the device profile. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public OpenLiveStreamDto directPlayProtocols(@javax.annotation.Nullable List directPlayProtocols) { + this.directPlayProtocols = directPlayProtocols; + return this; + } + + public OpenLiveStreamDto addDirectPlayProtocolsItem(MediaProtocol directPlayProtocolsItem) { + if (this.directPlayProtocols == null) { + this.directPlayProtocols = new ArrayList<>(); + } + this.directPlayProtocols.add(directPlayProtocolsItem); + return this; + } + + /** + * Gets or sets the device play protocols. + * @return directPlayProtocols + */ + @javax.annotation.Nullable + public List getDirectPlayProtocols() { + return directPlayProtocols; + } + + public void setDirectPlayProtocols(@javax.annotation.Nullable List directPlayProtocols) { + this.directPlayProtocols = directPlayProtocols; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OpenLiveStreamDto openLiveStreamDto = (OpenLiveStreamDto) o; + return Objects.equals(this.openToken, openLiveStreamDto.openToken) && + Objects.equals(this.userId, openLiveStreamDto.userId) && + Objects.equals(this.playSessionId, openLiveStreamDto.playSessionId) && + Objects.equals(this.maxStreamingBitrate, openLiveStreamDto.maxStreamingBitrate) && + Objects.equals(this.startTimeTicks, openLiveStreamDto.startTimeTicks) && + Objects.equals(this.audioStreamIndex, openLiveStreamDto.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, openLiveStreamDto.subtitleStreamIndex) && + Objects.equals(this.maxAudioChannels, openLiveStreamDto.maxAudioChannels) && + Objects.equals(this.itemId, openLiveStreamDto.itemId) && + Objects.equals(this.enableDirectPlay, openLiveStreamDto.enableDirectPlay) && + Objects.equals(this.enableDirectStream, openLiveStreamDto.enableDirectStream) && + Objects.equals(this.alwaysBurnInSubtitleWhenTranscoding, openLiveStreamDto.alwaysBurnInSubtitleWhenTranscoding) && + Objects.equals(this.deviceProfile, openLiveStreamDto.deviceProfile) && + Objects.equals(this.directPlayProtocols, openLiveStreamDto.directPlayProtocols); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, alwaysBurnInSubtitleWhenTranscoding, deviceProfile, directPlayProtocols); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OpenLiveStreamDto {\n"); + sb.append(" openToken: ").append(toIndentedString(openToken)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" startTimeTicks: ").append(toIndentedString(startTimeTicks)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" enableDirectPlay: ").append(toIndentedString(enableDirectPlay)).append("\n"); + sb.append(" enableDirectStream: ").append(toIndentedString(enableDirectStream)).append("\n"); + sb.append(" alwaysBurnInSubtitleWhenTranscoding: ").append(toIndentedString(alwaysBurnInSubtitleWhenTranscoding)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" directPlayProtocols: ").append(toIndentedString(directPlayProtocols)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OpenToken"); + openapiFields.add("UserId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("StartTimeTicks"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("ItemId"); + openapiFields.add("EnableDirectPlay"); + openapiFields.add("EnableDirectStream"); + openapiFields.add("AlwaysBurnInSubtitleWhenTranscoding"); + openapiFields.add("DeviceProfile"); + openapiFields.add("DirectPlayProtocols"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OpenLiveStreamDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OpenLiveStreamDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OpenLiveStreamDto is not found in the empty JSON string", OpenLiveStreamDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OpenLiveStreamDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OpenLiveStreamDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("OpenToken") != null && !jsonObj.get("OpenToken").isJsonNull()) && !jsonObj.get("OpenToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenToken").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DirectPlayProtocols") != null && !jsonObj.get("DirectPlayProtocols").isJsonNull() && !jsonObj.get("DirectPlayProtocols").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DirectPlayProtocols` to be an array in the JSON string but got `%s`", jsonObj.get("DirectPlayProtocols").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OpenLiveStreamDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OpenLiveStreamDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OpenLiveStreamDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OpenLiveStreamDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OpenLiveStreamDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OpenLiveStreamDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of OpenLiveStreamDto + * @throws IOException if the JSON string is invalid with respect to OpenLiveStreamDto + */ + public static OpenLiveStreamDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OpenLiveStreamDto.class); + } + + /** + * Convert an instance of OpenLiveStreamDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundKeepAliveMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundKeepAliveMessage.java new file mode 100644 index 0000000000000..867efa217ed1a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundKeepAliveMessage.java @@ -0,0 +1,238 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Keep alive websocket messages. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class OutboundKeepAliveMessage { + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.KEEP_ALIVE; + + public OutboundKeepAliveMessage() { + } + + public OutboundKeepAliveMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public OutboundKeepAliveMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OutboundKeepAliveMessage outboundKeepAliveMessage = (OutboundKeepAliveMessage) o; + return Objects.equals(this.messageId, outboundKeepAliveMessage.messageId) && + Objects.equals(this.messageType, outboundKeepAliveMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OutboundKeepAliveMessage {\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OutboundKeepAliveMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OutboundKeepAliveMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OutboundKeepAliveMessage is not found in the empty JSON string", OutboundKeepAliveMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OutboundKeepAliveMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OutboundKeepAliveMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OutboundKeepAliveMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OutboundKeepAliveMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OutboundKeepAliveMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OutboundKeepAliveMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OutboundKeepAliveMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OutboundKeepAliveMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of OutboundKeepAliveMessage + * @throws IOException if the JSON string is invalid with respect to OutboundKeepAliveMessage + */ + public static OutboundKeepAliveMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OutboundKeepAliveMessage.class); + } + + /** + * Convert an instance of OutboundKeepAliveMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundWebSocketMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundWebSocketMessage.java new file mode 100644 index 0000000000000..39eee249d269c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/OutboundWebSocketMessage.java @@ -0,0 +1,1449 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.ActivityLogEntryMessage; +import org.openapitools.client.model.ForceKeepAliveMessage; +import org.openapitools.client.model.GeneralCommandMessage; +import org.openapitools.client.model.LibraryChangedMessage; +import org.openapitools.client.model.OutboundKeepAliveMessage; +import org.openapitools.client.model.PlayMessage; +import org.openapitools.client.model.PlaystateMessage; +import org.openapitools.client.model.PluginInstallationCancelledMessage; +import org.openapitools.client.model.PluginInstallationCompletedMessage; +import org.openapitools.client.model.PluginInstallationFailedMessage; +import org.openapitools.client.model.PluginInstallingMessage; +import org.openapitools.client.model.PluginUninstalledMessage; +import org.openapitools.client.model.RefreshProgressMessage; +import org.openapitools.client.model.RestartRequiredMessage; +import org.openapitools.client.model.ScheduledTaskEndedMessage; +import org.openapitools.client.model.ScheduledTasksInfoMessage; +import org.openapitools.client.model.SeriesTimerCancelledMessage; +import org.openapitools.client.model.SeriesTimerCreatedMessage; +import org.openapitools.client.model.ServerRestartingMessage; +import org.openapitools.client.model.ServerShuttingDownMessage; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.SessionsMessage; +import org.openapitools.client.model.SyncPlayCommandMessage; +import org.openapitools.client.model.SyncPlayGroupUpdateCommandMessage; +import org.openapitools.client.model.TimerCancelledMessage; +import org.openapitools.client.model.TimerCreatedMessage; +import org.openapitools.client.model.UserDataChangedMessage; +import org.openapitools.client.model.UserDeletedMessage; +import org.openapitools.client.model.UserDto; +import org.openapitools.client.model.UserUpdatedMessage; +import org.openapitools.jackson.nullable.JsonNullable; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import org.openapitools.client.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class OutboundWebSocketMessage extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(OutboundWebSocketMessage.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OutboundWebSocketMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OutboundWebSocketMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterActivityLogEntryMessage = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryMessage.class)); + final TypeAdapter adapterForceKeepAliveMessage = gson.getDelegateAdapter(this, TypeToken.get(ForceKeepAliveMessage.class)); + final TypeAdapter adapterGeneralCommandMessage = gson.getDelegateAdapter(this, TypeToken.get(GeneralCommandMessage.class)); + final TypeAdapter adapterLibraryChangedMessage = gson.getDelegateAdapter(this, TypeToken.get(LibraryChangedMessage.class)); + final TypeAdapter adapterOutboundKeepAliveMessage = gson.getDelegateAdapter(this, TypeToken.get(OutboundKeepAliveMessage.class)); + final TypeAdapter adapterPlayMessage = gson.getDelegateAdapter(this, TypeToken.get(PlayMessage.class)); + final TypeAdapter adapterPlaystateMessage = gson.getDelegateAdapter(this, TypeToken.get(PlaystateMessage.class)); + final TypeAdapter adapterPluginInstallationCancelledMessage = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationCancelledMessage.class)); + final TypeAdapter adapterPluginInstallationCompletedMessage = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationCompletedMessage.class)); + final TypeAdapter adapterPluginInstallationFailedMessage = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationFailedMessage.class)); + final TypeAdapter adapterPluginInstallingMessage = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallingMessage.class)); + final TypeAdapter adapterPluginUninstalledMessage = gson.getDelegateAdapter(this, TypeToken.get(PluginUninstalledMessage.class)); + final TypeAdapter adapterRefreshProgressMessage = gson.getDelegateAdapter(this, TypeToken.get(RefreshProgressMessage.class)); + final TypeAdapter adapterRestartRequiredMessage = gson.getDelegateAdapter(this, TypeToken.get(RestartRequiredMessage.class)); + final TypeAdapter adapterScheduledTaskEndedMessage = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTaskEndedMessage.class)); + final TypeAdapter adapterScheduledTasksInfoMessage = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoMessage.class)); + final TypeAdapter adapterSeriesTimerCancelledMessage = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerCancelledMessage.class)); + final TypeAdapter adapterSeriesTimerCreatedMessage = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerCreatedMessage.class)); + final TypeAdapter adapterServerRestartingMessage = gson.getDelegateAdapter(this, TypeToken.get(ServerRestartingMessage.class)); + final TypeAdapter adapterServerShuttingDownMessage = gson.getDelegateAdapter(this, TypeToken.get(ServerShuttingDownMessage.class)); + final TypeAdapter adapterSessionsMessage = gson.getDelegateAdapter(this, TypeToken.get(SessionsMessage.class)); + final TypeAdapter adapterSyncPlayCommandMessage = gson.getDelegateAdapter(this, TypeToken.get(SyncPlayCommandMessage.class)); + final TypeAdapter adapterSyncPlayGroupUpdateCommandMessage = gson.getDelegateAdapter(this, TypeToken.get(SyncPlayGroupUpdateCommandMessage.class)); + final TypeAdapter adapterTimerCancelledMessage = gson.getDelegateAdapter(this, TypeToken.get(TimerCancelledMessage.class)); + final TypeAdapter adapterTimerCreatedMessage = gson.getDelegateAdapter(this, TypeToken.get(TimerCreatedMessage.class)); + final TypeAdapter adapterUserDataChangedMessage = gson.getDelegateAdapter(this, TypeToken.get(UserDataChangedMessage.class)); + final TypeAdapter adapterUserDeletedMessage = gson.getDelegateAdapter(this, TypeToken.get(UserDeletedMessage.class)); + final TypeAdapter adapterUserUpdatedMessage = gson.getDelegateAdapter(this, TypeToken.get(UserUpdatedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OutboundWebSocketMessage value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ActivityLogEntryMessage` + if (value.getActualInstance() instanceof ActivityLogEntryMessage) { + JsonElement element = adapterActivityLogEntryMessage.toJsonTree((ActivityLogEntryMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ForceKeepAliveMessage` + if (value.getActualInstance() instanceof ForceKeepAliveMessage) { + JsonElement element = adapterForceKeepAliveMessage.toJsonTree((ForceKeepAliveMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GeneralCommandMessage` + if (value.getActualInstance() instanceof GeneralCommandMessage) { + JsonElement element = adapterGeneralCommandMessage.toJsonTree((GeneralCommandMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `LibraryChangedMessage` + if (value.getActualInstance() instanceof LibraryChangedMessage) { + JsonElement element = adapterLibraryChangedMessage.toJsonTree((LibraryChangedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `OutboundKeepAliveMessage` + if (value.getActualInstance() instanceof OutboundKeepAliveMessage) { + JsonElement element = adapterOutboundKeepAliveMessage.toJsonTree((OutboundKeepAliveMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PlayMessage` + if (value.getActualInstance() instanceof PlayMessage) { + JsonElement element = adapterPlayMessage.toJsonTree((PlayMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PlaystateMessage` + if (value.getActualInstance() instanceof PlaystateMessage) { + JsonElement element = adapterPlaystateMessage.toJsonTree((PlaystateMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PluginInstallationCancelledMessage` + if (value.getActualInstance() instanceof PluginInstallationCancelledMessage) { + JsonElement element = adapterPluginInstallationCancelledMessage.toJsonTree((PluginInstallationCancelledMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PluginInstallationCompletedMessage` + if (value.getActualInstance() instanceof PluginInstallationCompletedMessage) { + JsonElement element = adapterPluginInstallationCompletedMessage.toJsonTree((PluginInstallationCompletedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PluginInstallationFailedMessage` + if (value.getActualInstance() instanceof PluginInstallationFailedMessage) { + JsonElement element = adapterPluginInstallationFailedMessage.toJsonTree((PluginInstallationFailedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PluginInstallingMessage` + if (value.getActualInstance() instanceof PluginInstallingMessage) { + JsonElement element = adapterPluginInstallingMessage.toJsonTree((PluginInstallingMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PluginUninstalledMessage` + if (value.getActualInstance() instanceof PluginUninstalledMessage) { + JsonElement element = adapterPluginUninstalledMessage.toJsonTree((PluginUninstalledMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RefreshProgressMessage` + if (value.getActualInstance() instanceof RefreshProgressMessage) { + JsonElement element = adapterRefreshProgressMessage.toJsonTree((RefreshProgressMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RestartRequiredMessage` + if (value.getActualInstance() instanceof RestartRequiredMessage) { + JsonElement element = adapterRestartRequiredMessage.toJsonTree((RestartRequiredMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ScheduledTaskEndedMessage` + if (value.getActualInstance() instanceof ScheduledTaskEndedMessage) { + JsonElement element = adapterScheduledTaskEndedMessage.toJsonTree((ScheduledTaskEndedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ScheduledTasksInfoMessage` + if (value.getActualInstance() instanceof ScheduledTasksInfoMessage) { + JsonElement element = adapterScheduledTasksInfoMessage.toJsonTree((ScheduledTasksInfoMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SeriesTimerCancelledMessage` + if (value.getActualInstance() instanceof SeriesTimerCancelledMessage) { + JsonElement element = adapterSeriesTimerCancelledMessage.toJsonTree((SeriesTimerCancelledMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SeriesTimerCreatedMessage` + if (value.getActualInstance() instanceof SeriesTimerCreatedMessage) { + JsonElement element = adapterSeriesTimerCreatedMessage.toJsonTree((SeriesTimerCreatedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ServerRestartingMessage` + if (value.getActualInstance() instanceof ServerRestartingMessage) { + JsonElement element = adapterServerRestartingMessage.toJsonTree((ServerRestartingMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ServerShuttingDownMessage` + if (value.getActualInstance() instanceof ServerShuttingDownMessage) { + JsonElement element = adapterServerShuttingDownMessage.toJsonTree((ServerShuttingDownMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SessionsMessage` + if (value.getActualInstance() instanceof SessionsMessage) { + JsonElement element = adapterSessionsMessage.toJsonTree((SessionsMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SyncPlayCommandMessage` + if (value.getActualInstance() instanceof SyncPlayCommandMessage) { + JsonElement element = adapterSyncPlayCommandMessage.toJsonTree((SyncPlayCommandMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SyncPlayGroupUpdateCommandMessage` + if (value.getActualInstance() instanceof SyncPlayGroupUpdateCommandMessage) { + JsonElement element = adapterSyncPlayGroupUpdateCommandMessage.toJsonTree((SyncPlayGroupUpdateCommandMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TimerCancelledMessage` + if (value.getActualInstance() instanceof TimerCancelledMessage) { + JsonElement element = adapterTimerCancelledMessage.toJsonTree((TimerCancelledMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TimerCreatedMessage` + if (value.getActualInstance() instanceof TimerCreatedMessage) { + JsonElement element = adapterTimerCreatedMessage.toJsonTree((TimerCreatedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `UserDataChangedMessage` + if (value.getActualInstance() instanceof UserDataChangedMessage) { + JsonElement element = adapterUserDataChangedMessage.toJsonTree((UserDataChangedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `UserDeletedMessage` + if (value.getActualInstance() instanceof UserDeletedMessage) { + JsonElement element = adapterUserDeletedMessage.toJsonTree((UserDeletedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `UserUpdatedMessage` + if (value.getActualInstance() instanceof UserUpdatedMessage) { + JsonElement element = adapterUserUpdatedMessage.toJsonTree((UserUpdatedMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage"); + } + + @Override + public OutboundWebSocketMessage read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ActivityLogEntryMessage + try { + // validate the JSON object to see if any exception is thrown + ActivityLogEntryMessage.validateJsonElement(jsonElement); + actualAdapter = adapterActivityLogEntryMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ActivityLogEntryMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ActivityLogEntryMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ActivityLogEntryMessage'", e); + } + // deserialize ForceKeepAliveMessage + try { + // validate the JSON object to see if any exception is thrown + ForceKeepAliveMessage.validateJsonElement(jsonElement); + actualAdapter = adapterForceKeepAliveMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ForceKeepAliveMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ForceKeepAliveMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ForceKeepAliveMessage'", e); + } + // deserialize GeneralCommandMessage + try { + // validate the JSON object to see if any exception is thrown + GeneralCommandMessage.validateJsonElement(jsonElement); + actualAdapter = adapterGeneralCommandMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'GeneralCommandMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GeneralCommandMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GeneralCommandMessage'", e); + } + // deserialize LibraryChangedMessage + try { + // validate the JSON object to see if any exception is thrown + LibraryChangedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterLibraryChangedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'LibraryChangedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for LibraryChangedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'LibraryChangedMessage'", e); + } + // deserialize OutboundKeepAliveMessage + try { + // validate the JSON object to see if any exception is thrown + OutboundKeepAliveMessage.validateJsonElement(jsonElement); + actualAdapter = adapterOutboundKeepAliveMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'OutboundKeepAliveMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for OutboundKeepAliveMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'OutboundKeepAliveMessage'", e); + } + // deserialize PlayMessage + try { + // validate the JSON object to see if any exception is thrown + PlayMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPlayMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PlayMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PlayMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PlayMessage'", e); + } + // deserialize PlaystateMessage + try { + // validate the JSON object to see if any exception is thrown + PlaystateMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPlaystateMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PlaystateMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PlaystateMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PlaystateMessage'", e); + } + // deserialize PluginInstallationCancelledMessage + try { + // validate the JSON object to see if any exception is thrown + PluginInstallationCancelledMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPluginInstallationCancelledMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PluginInstallationCancelledMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PluginInstallationCancelledMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PluginInstallationCancelledMessage'", e); + } + // deserialize PluginInstallationCompletedMessage + try { + // validate the JSON object to see if any exception is thrown + PluginInstallationCompletedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPluginInstallationCompletedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PluginInstallationCompletedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PluginInstallationCompletedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PluginInstallationCompletedMessage'", e); + } + // deserialize PluginInstallationFailedMessage + try { + // validate the JSON object to see if any exception is thrown + PluginInstallationFailedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPluginInstallationFailedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PluginInstallationFailedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PluginInstallationFailedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PluginInstallationFailedMessage'", e); + } + // deserialize PluginInstallingMessage + try { + // validate the JSON object to see if any exception is thrown + PluginInstallingMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPluginInstallingMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PluginInstallingMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PluginInstallingMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PluginInstallingMessage'", e); + } + // deserialize PluginUninstalledMessage + try { + // validate the JSON object to see if any exception is thrown + PluginUninstalledMessage.validateJsonElement(jsonElement); + actualAdapter = adapterPluginUninstalledMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'PluginUninstalledMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PluginUninstalledMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PluginUninstalledMessage'", e); + } + // deserialize RefreshProgressMessage + try { + // validate the JSON object to see if any exception is thrown + RefreshProgressMessage.validateJsonElement(jsonElement); + actualAdapter = adapterRefreshProgressMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'RefreshProgressMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for RefreshProgressMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RefreshProgressMessage'", e); + } + // deserialize RestartRequiredMessage + try { + // validate the JSON object to see if any exception is thrown + RestartRequiredMessage.validateJsonElement(jsonElement); + actualAdapter = adapterRestartRequiredMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'RestartRequiredMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for RestartRequiredMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RestartRequiredMessage'", e); + } + // deserialize ScheduledTaskEndedMessage + try { + // validate the JSON object to see if any exception is thrown + ScheduledTaskEndedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterScheduledTaskEndedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ScheduledTaskEndedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ScheduledTaskEndedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ScheduledTaskEndedMessage'", e); + } + // deserialize ScheduledTasksInfoMessage + try { + // validate the JSON object to see if any exception is thrown + ScheduledTasksInfoMessage.validateJsonElement(jsonElement); + actualAdapter = adapterScheduledTasksInfoMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ScheduledTasksInfoMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ScheduledTasksInfoMessage'", e); + } + // deserialize SeriesTimerCancelledMessage + try { + // validate the JSON object to see if any exception is thrown + SeriesTimerCancelledMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSeriesTimerCancelledMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SeriesTimerCancelledMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SeriesTimerCancelledMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SeriesTimerCancelledMessage'", e); + } + // deserialize SeriesTimerCreatedMessage + try { + // validate the JSON object to see if any exception is thrown + SeriesTimerCreatedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSeriesTimerCreatedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SeriesTimerCreatedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SeriesTimerCreatedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SeriesTimerCreatedMessage'", e); + } + // deserialize ServerRestartingMessage + try { + // validate the JSON object to see if any exception is thrown + ServerRestartingMessage.validateJsonElement(jsonElement); + actualAdapter = adapterServerRestartingMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ServerRestartingMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ServerRestartingMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ServerRestartingMessage'", e); + } + // deserialize ServerShuttingDownMessage + try { + // validate the JSON object to see if any exception is thrown + ServerShuttingDownMessage.validateJsonElement(jsonElement); + actualAdapter = adapterServerShuttingDownMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'ServerShuttingDownMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ServerShuttingDownMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ServerShuttingDownMessage'", e); + } + // deserialize SessionsMessage + try { + // validate the JSON object to see if any exception is thrown + SessionsMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSessionsMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SessionsMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SessionsMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SessionsMessage'", e); + } + // deserialize SyncPlayCommandMessage + try { + // validate the JSON object to see if any exception is thrown + SyncPlayCommandMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSyncPlayCommandMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SyncPlayCommandMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SyncPlayCommandMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SyncPlayCommandMessage'", e); + } + // deserialize SyncPlayGroupUpdateCommandMessage + try { + // validate the JSON object to see if any exception is thrown + SyncPlayGroupUpdateCommandMessage.validateJsonElement(jsonElement); + actualAdapter = adapterSyncPlayGroupUpdateCommandMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'SyncPlayGroupUpdateCommandMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SyncPlayGroupUpdateCommandMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SyncPlayGroupUpdateCommandMessage'", e); + } + // deserialize TimerCancelledMessage + try { + // validate the JSON object to see if any exception is thrown + TimerCancelledMessage.validateJsonElement(jsonElement); + actualAdapter = adapterTimerCancelledMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'TimerCancelledMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for TimerCancelledMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TimerCancelledMessage'", e); + } + // deserialize TimerCreatedMessage + try { + // validate the JSON object to see if any exception is thrown + TimerCreatedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterTimerCreatedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'TimerCreatedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for TimerCreatedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TimerCreatedMessage'", e); + } + // deserialize UserDataChangedMessage + try { + // validate the JSON object to see if any exception is thrown + UserDataChangedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterUserDataChangedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'UserDataChangedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for UserDataChangedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'UserDataChangedMessage'", e); + } + // deserialize UserDeletedMessage + try { + // validate the JSON object to see if any exception is thrown + UserDeletedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterUserDeletedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'UserDeletedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for UserDeletedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'UserDeletedMessage'", e); + } + // deserialize UserUpdatedMessage + try { + // validate the JSON object to see if any exception is thrown + UserUpdatedMessage.validateJsonElement(jsonElement); + actualAdapter = adapterUserUpdatedMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'UserUpdatedMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for UserUpdatedMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'UserUpdatedMessage'", e); + } + + if (match == 1) { + OutboundWebSocketMessage ret = new OutboundWebSocketMessage(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for OutboundWebSocketMessage: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public OutboundWebSocketMessage() { + super("oneOf", Boolean.FALSE); + } + + public OutboundWebSocketMessage(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ActivityLogEntryMessage", ActivityLogEntryMessage.class); + schemas.put("ForceKeepAliveMessage", ForceKeepAliveMessage.class); + schemas.put("GeneralCommandMessage", GeneralCommandMessage.class); + schemas.put("LibraryChangedMessage", LibraryChangedMessage.class); + schemas.put("OutboundKeepAliveMessage", OutboundKeepAliveMessage.class); + schemas.put("PlayMessage", PlayMessage.class); + schemas.put("PlaystateMessage", PlaystateMessage.class); + schemas.put("PluginInstallationCancelledMessage", PluginInstallationCancelledMessage.class); + schemas.put("PluginInstallationCompletedMessage", PluginInstallationCompletedMessage.class); + schemas.put("PluginInstallationFailedMessage", PluginInstallationFailedMessage.class); + schemas.put("PluginInstallingMessage", PluginInstallingMessage.class); + schemas.put("PluginUninstalledMessage", PluginUninstalledMessage.class); + schemas.put("RefreshProgressMessage", RefreshProgressMessage.class); + schemas.put("RestartRequiredMessage", RestartRequiredMessage.class); + schemas.put("ScheduledTaskEndedMessage", ScheduledTaskEndedMessage.class); + schemas.put("ScheduledTasksInfoMessage", ScheduledTasksInfoMessage.class); + schemas.put("SeriesTimerCancelledMessage", SeriesTimerCancelledMessage.class); + schemas.put("SeriesTimerCreatedMessage", SeriesTimerCreatedMessage.class); + schemas.put("ServerRestartingMessage", ServerRestartingMessage.class); + schemas.put("ServerShuttingDownMessage", ServerShuttingDownMessage.class); + schemas.put("SessionsMessage", SessionsMessage.class); + schemas.put("SyncPlayCommandMessage", SyncPlayCommandMessage.class); + schemas.put("SyncPlayGroupUpdateCommandMessage", SyncPlayGroupUpdateCommandMessage.class); + schemas.put("TimerCancelledMessage", TimerCancelledMessage.class); + schemas.put("TimerCreatedMessage", TimerCreatedMessage.class); + schemas.put("UserDataChangedMessage", UserDataChangedMessage.class); + schemas.put("UserDeletedMessage", UserDeletedMessage.class); + schemas.put("UserUpdatedMessage", UserUpdatedMessage.class); + } + + @Override + public Map> getSchemas() { + return OutboundWebSocketMessage.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ActivityLogEntryMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ForceKeepAliveMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof GeneralCommandMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof LibraryChangedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof OutboundKeepAliveMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PlayMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PlaystateMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PluginInstallationCancelledMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PluginInstallationCompletedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PluginInstallationFailedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PluginInstallingMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PluginUninstalledMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RefreshProgressMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RestartRequiredMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ScheduledTaskEndedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ScheduledTasksInfoMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SeriesTimerCancelledMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SeriesTimerCreatedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ServerRestartingMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ServerShuttingDownMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SessionsMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SyncPlayCommandMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SyncPlayGroupUpdateCommandMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TimerCancelledMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TimerCreatedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof UserDataChangedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof UserDeletedMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof UserUpdatedMessage) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage"); + } + + /** + * Get the actual instance, which can be the following: + * ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage + * + * @return The actual instance (ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ActivityLogEntryMessage`. If the actual instance is not `ActivityLogEntryMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ActivityLogEntryMessage` + * @throws ClassCastException if the instance is not `ActivityLogEntryMessage` + */ + public ActivityLogEntryMessage getActivityLogEntryMessage() throws ClassCastException { + return (ActivityLogEntryMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ForceKeepAliveMessage`. If the actual instance is not `ForceKeepAliveMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ForceKeepAliveMessage` + * @throws ClassCastException if the instance is not `ForceKeepAliveMessage` + */ + public ForceKeepAliveMessage getForceKeepAliveMessage() throws ClassCastException { + return (ForceKeepAliveMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `GeneralCommandMessage`. If the actual instance is not `GeneralCommandMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GeneralCommandMessage` + * @throws ClassCastException if the instance is not `GeneralCommandMessage` + */ + public GeneralCommandMessage getGeneralCommandMessage() throws ClassCastException { + return (GeneralCommandMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `LibraryChangedMessage`. If the actual instance is not `LibraryChangedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `LibraryChangedMessage` + * @throws ClassCastException if the instance is not `LibraryChangedMessage` + */ + public LibraryChangedMessage getLibraryChangedMessage() throws ClassCastException { + return (LibraryChangedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `OutboundKeepAliveMessage`. If the actual instance is not `OutboundKeepAliveMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `OutboundKeepAliveMessage` + * @throws ClassCastException if the instance is not `OutboundKeepAliveMessage` + */ + public OutboundKeepAliveMessage getOutboundKeepAliveMessage() throws ClassCastException { + return (OutboundKeepAliveMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PlayMessage`. If the actual instance is not `PlayMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PlayMessage` + * @throws ClassCastException if the instance is not `PlayMessage` + */ + public PlayMessage getPlayMessage() throws ClassCastException { + return (PlayMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PlaystateMessage`. If the actual instance is not `PlaystateMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PlaystateMessage` + * @throws ClassCastException if the instance is not `PlaystateMessage` + */ + public PlaystateMessage getPlaystateMessage() throws ClassCastException { + return (PlaystateMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PluginInstallationCancelledMessage`. If the actual instance is not `PluginInstallationCancelledMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PluginInstallationCancelledMessage` + * @throws ClassCastException if the instance is not `PluginInstallationCancelledMessage` + */ + public PluginInstallationCancelledMessage getPluginInstallationCancelledMessage() throws ClassCastException { + return (PluginInstallationCancelledMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PluginInstallationCompletedMessage`. If the actual instance is not `PluginInstallationCompletedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PluginInstallationCompletedMessage` + * @throws ClassCastException if the instance is not `PluginInstallationCompletedMessage` + */ + public PluginInstallationCompletedMessage getPluginInstallationCompletedMessage() throws ClassCastException { + return (PluginInstallationCompletedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PluginInstallationFailedMessage`. If the actual instance is not `PluginInstallationFailedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PluginInstallationFailedMessage` + * @throws ClassCastException if the instance is not `PluginInstallationFailedMessage` + */ + public PluginInstallationFailedMessage getPluginInstallationFailedMessage() throws ClassCastException { + return (PluginInstallationFailedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PluginInstallingMessage`. If the actual instance is not `PluginInstallingMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PluginInstallingMessage` + * @throws ClassCastException if the instance is not `PluginInstallingMessage` + */ + public PluginInstallingMessage getPluginInstallingMessage() throws ClassCastException { + return (PluginInstallingMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `PluginUninstalledMessage`. If the actual instance is not `PluginUninstalledMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PluginUninstalledMessage` + * @throws ClassCastException if the instance is not `PluginUninstalledMessage` + */ + public PluginUninstalledMessage getPluginUninstalledMessage() throws ClassCastException { + return (PluginUninstalledMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `RefreshProgressMessage`. If the actual instance is not `RefreshProgressMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RefreshProgressMessage` + * @throws ClassCastException if the instance is not `RefreshProgressMessage` + */ + public RefreshProgressMessage getRefreshProgressMessage() throws ClassCastException { + return (RefreshProgressMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `RestartRequiredMessage`. If the actual instance is not `RestartRequiredMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RestartRequiredMessage` + * @throws ClassCastException if the instance is not `RestartRequiredMessage` + */ + public RestartRequiredMessage getRestartRequiredMessage() throws ClassCastException { + return (RestartRequiredMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ScheduledTaskEndedMessage`. If the actual instance is not `ScheduledTaskEndedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ScheduledTaskEndedMessage` + * @throws ClassCastException if the instance is not `ScheduledTaskEndedMessage` + */ + public ScheduledTaskEndedMessage getScheduledTaskEndedMessage() throws ClassCastException { + return (ScheduledTaskEndedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ScheduledTasksInfoMessage`. If the actual instance is not `ScheduledTasksInfoMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ScheduledTasksInfoMessage` + * @throws ClassCastException if the instance is not `ScheduledTasksInfoMessage` + */ + public ScheduledTasksInfoMessage getScheduledTasksInfoMessage() throws ClassCastException { + return (ScheduledTasksInfoMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SeriesTimerCancelledMessage`. If the actual instance is not `SeriesTimerCancelledMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SeriesTimerCancelledMessage` + * @throws ClassCastException if the instance is not `SeriesTimerCancelledMessage` + */ + public SeriesTimerCancelledMessage getSeriesTimerCancelledMessage() throws ClassCastException { + return (SeriesTimerCancelledMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SeriesTimerCreatedMessage`. If the actual instance is not `SeriesTimerCreatedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SeriesTimerCreatedMessage` + * @throws ClassCastException if the instance is not `SeriesTimerCreatedMessage` + */ + public SeriesTimerCreatedMessage getSeriesTimerCreatedMessage() throws ClassCastException { + return (SeriesTimerCreatedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ServerRestartingMessage`. If the actual instance is not `ServerRestartingMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ServerRestartingMessage` + * @throws ClassCastException if the instance is not `ServerRestartingMessage` + */ + public ServerRestartingMessage getServerRestartingMessage() throws ClassCastException { + return (ServerRestartingMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `ServerShuttingDownMessage`. If the actual instance is not `ServerShuttingDownMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ServerShuttingDownMessage` + * @throws ClassCastException if the instance is not `ServerShuttingDownMessage` + */ + public ServerShuttingDownMessage getServerShuttingDownMessage() throws ClassCastException { + return (ServerShuttingDownMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SessionsMessage`. If the actual instance is not `SessionsMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SessionsMessage` + * @throws ClassCastException if the instance is not `SessionsMessage` + */ + public SessionsMessage getSessionsMessage() throws ClassCastException { + return (SessionsMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SyncPlayCommandMessage`. If the actual instance is not `SyncPlayCommandMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SyncPlayCommandMessage` + * @throws ClassCastException if the instance is not `SyncPlayCommandMessage` + */ + public SyncPlayCommandMessage getSyncPlayCommandMessage() throws ClassCastException { + return (SyncPlayCommandMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `SyncPlayGroupUpdateCommandMessage`. If the actual instance is not `SyncPlayGroupUpdateCommandMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SyncPlayGroupUpdateCommandMessage` + * @throws ClassCastException if the instance is not `SyncPlayGroupUpdateCommandMessage` + */ + public SyncPlayGroupUpdateCommandMessage getSyncPlayGroupUpdateCommandMessage() throws ClassCastException { + return (SyncPlayGroupUpdateCommandMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `TimerCancelledMessage`. If the actual instance is not `TimerCancelledMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `TimerCancelledMessage` + * @throws ClassCastException if the instance is not `TimerCancelledMessage` + */ + public TimerCancelledMessage getTimerCancelledMessage() throws ClassCastException { + return (TimerCancelledMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `TimerCreatedMessage`. If the actual instance is not `TimerCreatedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `TimerCreatedMessage` + * @throws ClassCastException if the instance is not `TimerCreatedMessage` + */ + public TimerCreatedMessage getTimerCreatedMessage() throws ClassCastException { + return (TimerCreatedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `UserDataChangedMessage`. If the actual instance is not `UserDataChangedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `UserDataChangedMessage` + * @throws ClassCastException if the instance is not `UserDataChangedMessage` + */ + public UserDataChangedMessage getUserDataChangedMessage() throws ClassCastException { + return (UserDataChangedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `UserDeletedMessage`. If the actual instance is not `UserDeletedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `UserDeletedMessage` + * @throws ClassCastException if the instance is not `UserDeletedMessage` + */ + public UserDeletedMessage getUserDeletedMessage() throws ClassCastException { + return (UserDeletedMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `UserUpdatedMessage`. If the actual instance is not `UserUpdatedMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `UserUpdatedMessage` + * @throws ClassCastException if the instance is not `UserUpdatedMessage` + */ + public UserUpdatedMessage getUserUpdatedMessage() throws ClassCastException { + return (UserUpdatedMessage)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OutboundWebSocketMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ActivityLogEntryMessage + try { + ActivityLogEntryMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ActivityLogEntryMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ForceKeepAliveMessage + try { + ForceKeepAliveMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ForceKeepAliveMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with GeneralCommandMessage + try { + GeneralCommandMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GeneralCommandMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with LibraryChangedMessage + try { + LibraryChangedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for LibraryChangedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with OutboundKeepAliveMessage + try { + OutboundKeepAliveMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for OutboundKeepAliveMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PlayMessage + try { + PlayMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PlayMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PlaystateMessage + try { + PlaystateMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PlaystateMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PluginInstallationCancelledMessage + try { + PluginInstallationCancelledMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PluginInstallationCancelledMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PluginInstallationCompletedMessage + try { + PluginInstallationCompletedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PluginInstallationCompletedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PluginInstallationFailedMessage + try { + PluginInstallationFailedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PluginInstallationFailedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PluginInstallingMessage + try { + PluginInstallingMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PluginInstallingMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PluginUninstalledMessage + try { + PluginUninstalledMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PluginUninstalledMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RefreshProgressMessage + try { + RefreshProgressMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for RefreshProgressMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RestartRequiredMessage + try { + RestartRequiredMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for RestartRequiredMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ScheduledTaskEndedMessage + try { + ScheduledTaskEndedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ScheduledTaskEndedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ScheduledTasksInfoMessage + try { + ScheduledTasksInfoMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ScheduledTasksInfoMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SeriesTimerCancelledMessage + try { + SeriesTimerCancelledMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SeriesTimerCancelledMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SeriesTimerCreatedMessage + try { + SeriesTimerCreatedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SeriesTimerCreatedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ServerRestartingMessage + try { + ServerRestartingMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ServerRestartingMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ServerShuttingDownMessage + try { + ServerShuttingDownMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ServerShuttingDownMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SessionsMessage + try { + SessionsMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SessionsMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SyncPlayCommandMessage + try { + SyncPlayCommandMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SyncPlayCommandMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SyncPlayGroupUpdateCommandMessage + try { + SyncPlayGroupUpdateCommandMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SyncPlayGroupUpdateCommandMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with TimerCancelledMessage + try { + TimerCancelledMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for TimerCancelledMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with TimerCreatedMessage + try { + TimerCreatedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for TimerCreatedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with UserDataChangedMessage + try { + UserDataChangedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for UserDataChangedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with UserDeletedMessage + try { + UserDeletedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for UserDeletedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with UserUpdatedMessage + try { + UserUpdatedMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for UserUpdatedMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for OutboundWebSocketMessage with oneOf schemas: ActivityLogEntryMessage, ForceKeepAliveMessage, GeneralCommandMessage, LibraryChangedMessage, OutboundKeepAliveMessage, PlayMessage, PlaystateMessage, PluginInstallationCancelledMessage, PluginInstallationCompletedMessage, PluginInstallationFailedMessage, PluginInstallingMessage, PluginUninstalledMessage, RefreshProgressMessage, RestartRequiredMessage, ScheduledTaskEndedMessage, ScheduledTasksInfoMessage, SeriesTimerCancelledMessage, SeriesTimerCreatedMessage, ServerRestartingMessage, ServerShuttingDownMessage, SessionsMessage, SyncPlayCommandMessage, SyncPlayGroupUpdateCommandMessage, TimerCancelledMessage, TimerCreatedMessage, UserDataChangedMessage, UserDeletedMessage, UserUpdatedMessage. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of OutboundWebSocketMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of OutboundWebSocketMessage + * @throws IOException if the JSON string is invalid with respect to OutboundWebSocketMessage + */ + public static OutboundWebSocketMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OutboundWebSocketMessage.class); + } + + /** + * Convert an instance of OutboundWebSocketMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PackageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PackageInfo.java new file mode 100644 index 0000000000000..ae77e3274f21c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PackageInfo.java @@ -0,0 +1,451 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.VersionInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PackageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PackageInfo { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_OVERVIEW = "overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_OWNER = "owner"; + @SerializedName(SERIALIZED_NAME_OWNER) + @javax.annotation.Nullable + private String owner; + + public static final String SERIALIZED_NAME_CATEGORY = "category"; + @SerializedName(SERIALIZED_NAME_CATEGORY) + @javax.annotation.Nullable + private String category; + + public static final String SERIALIZED_NAME_GUID = "guid"; + @SerializedName(SERIALIZED_NAME_GUID) + @javax.annotation.Nullable + private UUID guid; + + public static final String SERIALIZED_NAME_VERSIONS = "versions"; + @SerializedName(SERIALIZED_NAME_VERSIONS) + @javax.annotation.Nullable + private List versions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IMAGE_URL = "imageUrl"; + @SerializedName(SERIALIZED_NAME_IMAGE_URL) + @javax.annotation.Nullable + private String imageUrl; + + public PackageInfo() { + } + + public PackageInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PackageInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets a long description of the plugin containing features or helpful explanations. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public PackageInfo overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets a short overview of what the plugin does. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public PackageInfo owner(@javax.annotation.Nullable String owner) { + this.owner = owner; + return this; + } + + /** + * Gets or sets the owner. + * @return owner + */ + @javax.annotation.Nullable + public String getOwner() { + return owner; + } + + public void setOwner(@javax.annotation.Nullable String owner) { + this.owner = owner; + } + + + public PackageInfo category(@javax.annotation.Nullable String category) { + this.category = category; + return this; + } + + /** + * Gets or sets the category. + * @return category + */ + @javax.annotation.Nullable + public String getCategory() { + return category; + } + + public void setCategory(@javax.annotation.Nullable String category) { + this.category = category; + } + + + public PackageInfo guid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + return this; + } + + /** + * Gets or sets the guid of the assembly associated with this plugin. This is used to identify the proper item for automatic updates. + * @return guid + */ + @javax.annotation.Nullable + public UUID getGuid() { + return guid; + } + + public void setGuid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + } + + + public PackageInfo versions(@javax.annotation.Nullable List versions) { + this.versions = versions; + return this; + } + + public PackageInfo addVersionsItem(VersionInfo versionsItem) { + if (this.versions == null) { + this.versions = new ArrayList<>(); + } + this.versions.add(versionsItem); + return this; + } + + /** + * Gets or sets the versions. + * @return versions + */ + @javax.annotation.Nullable + public List getVersions() { + return versions; + } + + public void setVersions(@javax.annotation.Nullable List versions) { + this.versions = versions; + } + + + public PackageInfo imageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + /** + * Gets or sets the image url for the package. + * @return imageUrl + */ + @javax.annotation.Nullable + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PackageInfo packageInfo = (PackageInfo) o; + return Objects.equals(this.name, packageInfo.name) && + Objects.equals(this.description, packageInfo.description) && + Objects.equals(this.overview, packageInfo.overview) && + Objects.equals(this.owner, packageInfo.owner) && + Objects.equals(this.category, packageInfo.category) && + Objects.equals(this.guid, packageInfo.guid) && + Objects.equals(this.versions, packageInfo.versions) && + Objects.equals(this.imageUrl, packageInfo.imageUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, overview, owner, category, guid, versions, imageUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PackageInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" owner: ").append(toIndentedString(owner)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" guid: ").append(toIndentedString(guid)).append("\n"); + sb.append(" versions: ").append(toIndentedString(versions)).append("\n"); + sb.append(" imageUrl: ").append(toIndentedString(imageUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("overview"); + openapiFields.add("owner"); + openapiFields.add("category"); + openapiFields.add("guid"); + openapiFields.add("versions"); + openapiFields.add("imageUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PackageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PackageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PackageInfo is not found in the empty JSON string", PackageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PackageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PackageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("overview") != null && !jsonObj.get("overview").isJsonNull()) && !jsonObj.get("overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("overview").toString())); + } + if ((jsonObj.get("owner") != null && !jsonObj.get("owner").isJsonNull()) && !jsonObj.get("owner").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `owner` to be a primitive type in the JSON string but got `%s`", jsonObj.get("owner").toString())); + } + if ((jsonObj.get("category") != null && !jsonObj.get("category").isJsonNull()) && !jsonObj.get("category").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("category").toString())); + } + if ((jsonObj.get("guid") != null && !jsonObj.get("guid").isJsonNull()) && !jsonObj.get("guid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `guid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("guid").toString())); + } + if (jsonObj.get("versions") != null && !jsonObj.get("versions").isJsonNull()) { + JsonArray jsonArrayversions = jsonObj.getAsJsonArray("versions"); + if (jsonArrayversions != null) { + // ensure the json data is an array + if (!jsonObj.get("versions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `versions` to be an array in the JSON string but got `%s`", jsonObj.get("versions").toString())); + } + + // validate the optional field `versions` (array) + for (int i = 0; i < jsonArrayversions.size(); i++) { + VersionInfo.validateJsonElement(jsonArrayversions.get(i)); + }; + } + } + if ((jsonObj.get("imageUrl") != null && !jsonObj.get("imageUrl").isJsonNull()) && !jsonObj.get("imageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `imageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("imageUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PackageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PackageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PackageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PackageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PackageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PackageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PackageInfo + * @throws IOException if the JSON string is invalid with respect to PackageInfo + */ + public static PackageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PackageInfo.class); + } + + /** + * Convert an instance of PackageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ParentalRating.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ParentalRating.java new file mode 100644 index 0000000000000..7e8e4b43c1460 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ParentalRating.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ParentalRating. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ParentalRating { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private Integer value; + + public ParentalRating() { + } + + public ParentalRating name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ParentalRating value(@javax.annotation.Nullable Integer value) { + this.value = value; + return this; + } + + /** + * Gets or sets the value. + * @return value + */ + @javax.annotation.Nullable + public Integer getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable Integer value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ParentalRating parentalRating = (ParentalRating) o; + return Objects.equals(this.name, parentalRating.name) && + Objects.equals(this.value, parentalRating.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ParentalRating {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ParentalRating + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ParentalRating.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ParentalRating is not found in the empty JSON string", ParentalRating.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ParentalRating.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ParentalRating` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ParentalRating.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ParentalRating' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ParentalRating.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ParentalRating value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ParentalRating read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ParentalRating given an JSON string + * + * @param jsonString JSON string + * @return An instance of ParentalRating + * @throws IOException if the JSON string is invalid with respect to ParentalRating + */ + public static ParentalRating fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ParentalRating.class); + } + + /** + * Convert an instance of ParentalRating to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PathSubstitution.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PathSubstitution.java new file mode 100644 index 0000000000000..0d202622b0831 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PathSubstitution.java @@ -0,0 +1,236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Configuration.PathSubstitution. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PathSubstitution { + public static final String SERIALIZED_NAME_FROM = "From"; + @SerializedName(SERIALIZED_NAME_FROM) + @javax.annotation.Nullable + private String from; + + public static final String SERIALIZED_NAME_TO = "To"; + @SerializedName(SERIALIZED_NAME_TO) + @javax.annotation.Nullable + private String to; + + public PathSubstitution() { + } + + public PathSubstitution from(@javax.annotation.Nullable String from) { + this.from = from; + return this; + } + + /** + * Gets or sets the value to substitute. + * @return from + */ + @javax.annotation.Nullable + public String getFrom() { + return from; + } + + public void setFrom(@javax.annotation.Nullable String from) { + this.from = from; + } + + + public PathSubstitution to(@javax.annotation.Nullable String to) { + this.to = to; + return this; + } + + /** + * Gets or sets the value to substitution with. + * @return to + */ + @javax.annotation.Nullable + public String getTo() { + return to; + } + + public void setTo(@javax.annotation.Nullable String to) { + this.to = to; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PathSubstitution pathSubstitution = (PathSubstitution) o; + return Objects.equals(this.from, pathSubstitution.from) && + Objects.equals(this.to, pathSubstitution.to); + } + + @Override + public int hashCode() { + return Objects.hash(from, to); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PathSubstitution {\n"); + sb.append(" from: ").append(toIndentedString(from)).append("\n"); + sb.append(" to: ").append(toIndentedString(to)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("From"); + openapiFields.add("To"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PathSubstitution + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PathSubstitution.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PathSubstitution is not found in the empty JSON string", PathSubstitution.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PathSubstitution.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PathSubstitution` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("From") != null && !jsonObj.get("From").isJsonNull()) && !jsonObj.get("From").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `From` to be a primitive type in the JSON string but got `%s`", jsonObj.get("From").toString())); + } + if ((jsonObj.get("To") != null && !jsonObj.get("To").isJsonNull()) && !jsonObj.get("To").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `To` to be a primitive type in the JSON string but got `%s`", jsonObj.get("To").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PathSubstitution.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PathSubstitution' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PathSubstitution.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PathSubstitution value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PathSubstitution read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PathSubstitution given an JSON string + * + * @param jsonString JSON string + * @return An instance of PathSubstitution + * @throws IOException if the JSON string is invalid with respect to PathSubstitution + */ + public static PathSubstitution fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PathSubstitution.class); + } + + /** + * Convert an instance of PathSubstitution to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonKind.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonKind.java new file mode 100644 index 0000000000000..db29a3267d06c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonKind.java @@ -0,0 +1,124 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The person kind. + */ +@JsonAdapter(PersonKind.Adapter.class) +public enum PersonKind { + + UNKNOWN("Unknown"), + + ACTOR("Actor"), + + DIRECTOR("Director"), + + COMPOSER("Composer"), + + WRITER("Writer"), + + GUEST_STAR("GuestStar"), + + PRODUCER("Producer"), + + CONDUCTOR("Conductor"), + + LYRICIST("Lyricist"), + + ARRANGER("Arranger"), + + ENGINEER("Engineer"), + + MIXER("Mixer"), + + REMIXER("Remixer"), + + CREATOR("Creator"), + + ARTIST("Artist"), + + ALBUM_ARTIST("AlbumArtist"), + + AUTHOR("Author"), + + ILLUSTRATOR("Illustrator"), + + PENCILLER("Penciller"), + + INKER("Inker"), + + COLORIST("Colorist"), + + LETTERER("Letterer"), + + COVER_ARTIST("CoverArtist"), + + EDITOR("Editor"), + + TRANSLATOR("Translator"); + + private String value; + + PersonKind(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PersonKind fromValue(String value) { + for (PersonKind b : PersonKind.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PersonKind enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PersonKind read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PersonKind.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PersonKind.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfo.java new file mode 100644 index 0000000000000..345bd912134d1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PersonLookupInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PersonLookupInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public PersonLookupInfo() { + } + + public PersonLookupInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PersonLookupInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public PersonLookupInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public PersonLookupInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public PersonLookupInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public PersonLookupInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public PersonLookupInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public PersonLookupInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public PersonLookupInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public PersonLookupInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public PersonLookupInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public PersonLookupInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PersonLookupInfo personLookupInfo = (PersonLookupInfo) o; + return Objects.equals(this.name, personLookupInfo.name) && + Objects.equals(this.originalTitle, personLookupInfo.originalTitle) && + Objects.equals(this.path, personLookupInfo.path) && + Objects.equals(this.metadataLanguage, personLookupInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, personLookupInfo.metadataCountryCode) && + Objects.equals(this.providerIds, personLookupInfo.providerIds) && + Objects.equals(this.year, personLookupInfo.year) && + Objects.equals(this.indexNumber, personLookupInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, personLookupInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, personLookupInfo.premiereDate) && + Objects.equals(this.isAutomated, personLookupInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PersonLookupInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PersonLookupInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PersonLookupInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PersonLookupInfo is not found in the empty JSON string", PersonLookupInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PersonLookupInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PersonLookupInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PersonLookupInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PersonLookupInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PersonLookupInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PersonLookupInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PersonLookupInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PersonLookupInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PersonLookupInfo + * @throws IOException if the JSON string is invalid with respect to PersonLookupInfo + */ + public static PersonLookupInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PersonLookupInfo.class); + } + + /** + * Convert an instance of PersonLookupInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..7fb590697b98c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PersonLookupInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PersonLookupInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PersonLookupInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private PersonLookupInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public PersonLookupInfoRemoteSearchQuery() { + } + + public PersonLookupInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable PersonLookupInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public PersonLookupInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable PersonLookupInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public PersonLookupInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PersonLookupInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public PersonLookupInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery = (PersonLookupInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, personLookupInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, personLookupInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, personLookupInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, personLookupInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PersonLookupInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PersonLookupInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PersonLookupInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PersonLookupInfoRemoteSearchQuery is not found in the empty JSON string", PersonLookupInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PersonLookupInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PersonLookupInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + PersonLookupInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PersonLookupInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PersonLookupInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PersonLookupInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PersonLookupInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PersonLookupInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PersonLookupInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of PersonLookupInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to PersonLookupInfoRemoteSearchQuery + */ + public static PersonLookupInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PersonLookupInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of PersonLookupInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PinRedeemResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PinRedeemResult.java new file mode 100644 index 0000000000000..541a680527f23 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PinRedeemResult.java @@ -0,0 +1,244 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PinRedeemResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PinRedeemResult { + public static final String SERIALIZED_NAME_SUCCESS = "Success"; + @SerializedName(SERIALIZED_NAME_SUCCESS) + @javax.annotation.Nullable + private Boolean success; + + public static final String SERIALIZED_NAME_USERS_RESET = "UsersReset"; + @SerializedName(SERIALIZED_NAME_USERS_RESET) + @javax.annotation.Nullable + private List usersReset = new ArrayList<>(); + + public PinRedeemResult() { + } + + public PinRedeemResult success(@javax.annotation.Nullable Boolean success) { + this.success = success; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. + * @return success + */ + @javax.annotation.Nullable + public Boolean getSuccess() { + return success; + } + + public void setSuccess(@javax.annotation.Nullable Boolean success) { + this.success = success; + } + + + public PinRedeemResult usersReset(@javax.annotation.Nullable List usersReset) { + this.usersReset = usersReset; + return this; + } + + public PinRedeemResult addUsersResetItem(String usersResetItem) { + if (this.usersReset == null) { + this.usersReset = new ArrayList<>(); + } + this.usersReset.add(usersResetItem); + return this; + } + + /** + * Gets or sets the users reset. + * @return usersReset + */ + @javax.annotation.Nullable + public List getUsersReset() { + return usersReset; + } + + public void setUsersReset(@javax.annotation.Nullable List usersReset) { + this.usersReset = usersReset; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PinRedeemResult pinRedeemResult = (PinRedeemResult) o; + return Objects.equals(this.success, pinRedeemResult.success) && + Objects.equals(this.usersReset, pinRedeemResult.usersReset); + } + + @Override + public int hashCode() { + return Objects.hash(success, usersReset); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PinRedeemResult {\n"); + sb.append(" success: ").append(toIndentedString(success)).append("\n"); + sb.append(" usersReset: ").append(toIndentedString(usersReset)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Success"); + openapiFields.add("UsersReset"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PinRedeemResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PinRedeemResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PinRedeemResult is not found in the empty JSON string", PinRedeemResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PinRedeemResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PinRedeemResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("UsersReset") != null && !jsonObj.get("UsersReset").isJsonNull() && !jsonObj.get("UsersReset").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `UsersReset` to be an array in the JSON string but got `%s`", jsonObj.get("UsersReset").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PinRedeemResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PinRedeemResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PinRedeemResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PinRedeemResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PinRedeemResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PinRedeemResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of PinRedeemResult + * @throws IOException if the JSON string is invalid with respect to PinRedeemResult + */ + public static PinRedeemResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PinRedeemResult.class); + } + + /** + * Convert an instance of PinRedeemResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PingRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PingRequestDto.java new file mode 100644 index 0000000000000..3d4af2dbaec4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PingRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PingRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PingRequestDto { + public static final String SERIALIZED_NAME_PING = "Ping"; + @SerializedName(SERIALIZED_NAME_PING) + @javax.annotation.Nullable + private Long ping; + + public PingRequestDto() { + } + + public PingRequestDto ping(@javax.annotation.Nullable Long ping) { + this.ping = ping; + return this; + } + + /** + * Gets or sets the ping time. + * @return ping + */ + @javax.annotation.Nullable + public Long getPing() { + return ping; + } + + public void setPing(@javax.annotation.Nullable Long ping) { + this.ping = ping; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PingRequestDto pingRequestDto = (PingRequestDto) o; + return Objects.equals(this.ping, pingRequestDto.ping); + } + + @Override + public int hashCode() { + return Objects.hash(ping); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PingRequestDto {\n"); + sb.append(" ping: ").append(toIndentedString(ping)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Ping"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PingRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PingRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PingRequestDto is not found in the empty JSON string", PingRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PingRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PingRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PingRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PingRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PingRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PingRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PingRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PingRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PingRequestDto + * @throws IOException if the JSON string is invalid with respect to PingRequestDto + */ + public static PingRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PingRequestDto.class); + } + + /** + * Convert an instance of PingRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayAccess.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayAccess.java new file mode 100644 index 0000000000000..19d30a3f17072 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayAccess.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlayAccess + */ +@JsonAdapter(PlayAccess.Adapter.class) +public enum PlayAccess { + + FULL("Full"), + + NONE("None"); + + private String value; + + PlayAccess(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayAccess fromValue(String value) { + for (PlayAccess b : PlayAccess.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayAccess enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayAccess read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayAccess.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayAccess.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayCommand.java new file mode 100644 index 0000000000000..d2fff1a7b77f5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayCommand.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlayCommand. + */ +@JsonAdapter(PlayCommand.Adapter.class) +public enum PlayCommand { + + PLAY_NOW("PlayNow"), + + PLAY_NEXT("PlayNext"), + + PLAY_LAST("PlayLast"), + + PLAY_INSTANT_MIX("PlayInstantMix"), + + PLAY_SHUFFLE("PlayShuffle"); + + private String value; + + PlayCommand(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayCommand fromValue(String value) { + for (PlayCommand b : PlayCommand.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayCommand enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayCommand read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayCommand.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayCommand.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMessage.java new file mode 100644 index 0000000000000..cdadfaadfc679 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PlayRequest; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Play command websocket message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private PlayRequest data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PLAY; + + public PlayMessage() { + } + + public PlayMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PlayMessage data(@javax.annotation.Nullable PlayRequest data) { + this.data = data; + return this; + } + + /** + * Class PlayRequest. + * @return data + */ + @javax.annotation.Nullable + public PlayRequest getData() { + return data; + } + + public void setData(@javax.annotation.Nullable PlayRequest data) { + this.data = data; + } + + + public PlayMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayMessage playMessage = (PlayMessage) o; + return Objects.equals(this.data, playMessage.data) && + Objects.equals(this.messageId, playMessage.messageId) && + Objects.equals(this.messageType, playMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayMessage is not found in the empty JSON string", PlayMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + PlayRequest.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayMessage + * @throws IOException if the JSON string is invalid with respect to PlayMessage + */ + public static PlayMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayMessage.class); + } + + /** + * Convert an instance of PlayMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMethod.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMethod.java new file mode 100644 index 0000000000000..be1bb9fb7691d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayMethod.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlayMethod + */ +@JsonAdapter(PlayMethod.Adapter.class) +public enum PlayMethod { + + TRANSCODE("Transcode"), + + DIRECT_STREAM("DirectStream"), + + DIRECT_PLAY("DirectPlay"); + + private String value; + + PlayMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayMethod fromValue(String value) { + for (PlayMethod b : PlayMethod.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayMethod enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayMethod read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayMethod.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayMethod.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdate.java new file mode 100644 index 0000000000000..1542d3c2195a9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdate.java @@ -0,0 +1,433 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.GroupRepeatMode; +import org.openapitools.client.model.GroupShuffleMode; +import org.openapitools.client.model.PlayQueueUpdateReason; +import org.openapitools.client.model.SyncPlayQueueItem; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlayQueueUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayQueueUpdate { + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + @javax.annotation.Nullable + private PlayQueueUpdateReason reason; + + public static final String SERIALIZED_NAME_LAST_UPDATE = "LastUpdate"; + @SerializedName(SERIALIZED_NAME_LAST_UPDATE) + @javax.annotation.Nullable + private OffsetDateTime lastUpdate; + + public static final String SERIALIZED_NAME_PLAYLIST = "Playlist"; + @SerializedName(SERIALIZED_NAME_PLAYLIST) + @javax.annotation.Nullable + private List playlist = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLAYING_ITEM_INDEX = "PlayingItemIndex"; + @SerializedName(SERIALIZED_NAME_PLAYING_ITEM_INDEX) + @javax.annotation.Nullable + private Integer playingItemIndex; + + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public static final String SERIALIZED_NAME_IS_PLAYING = "IsPlaying"; + @SerializedName(SERIALIZED_NAME_IS_PLAYING) + @javax.annotation.Nullable + private Boolean isPlaying; + + public static final String SERIALIZED_NAME_SHUFFLE_MODE = "ShuffleMode"; + @SerializedName(SERIALIZED_NAME_SHUFFLE_MODE) + @javax.annotation.Nullable + private GroupShuffleMode shuffleMode; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private GroupRepeatMode repeatMode; + + public PlayQueueUpdate() { + } + + public PlayQueueUpdate reason(@javax.annotation.Nullable PlayQueueUpdateReason reason) { + this.reason = reason; + return this; + } + + /** + * Gets the request type that originated this update. + * @return reason + */ + @javax.annotation.Nullable + public PlayQueueUpdateReason getReason() { + return reason; + } + + public void setReason(@javax.annotation.Nullable PlayQueueUpdateReason reason) { + this.reason = reason; + } + + + public PlayQueueUpdate lastUpdate(@javax.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + /** + * Gets the UTC time of the last change to the playing queue. + * @return lastUpdate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(@javax.annotation.Nullable OffsetDateTime lastUpdate) { + this.lastUpdate = lastUpdate; + } + + + public PlayQueueUpdate playlist(@javax.annotation.Nullable List playlist) { + this.playlist = playlist; + return this; + } + + public PlayQueueUpdate addPlaylistItem(SyncPlayQueueItem playlistItem) { + if (this.playlist == null) { + this.playlist = new ArrayList<>(); + } + this.playlist.add(playlistItem); + return this; + } + + /** + * Gets the playlist. + * @return playlist + */ + @javax.annotation.Nullable + public List getPlaylist() { + return playlist; + } + + public void setPlaylist(@javax.annotation.Nullable List playlist) { + this.playlist = playlist; + } + + + public PlayQueueUpdate playingItemIndex(@javax.annotation.Nullable Integer playingItemIndex) { + this.playingItemIndex = playingItemIndex; + return this; + } + + /** + * Gets the playing item index in the playlist. + * @return playingItemIndex + */ + @javax.annotation.Nullable + public Integer getPlayingItemIndex() { + return playingItemIndex; + } + + public void setPlayingItemIndex(@javax.annotation.Nullable Integer playingItemIndex) { + this.playingItemIndex = playingItemIndex; + } + + + public PlayQueueUpdate startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets the start position ticks. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + public PlayQueueUpdate isPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + return this; + } + + /** + * Gets a value indicating whether the current item is playing. + * @return isPlaying + */ + @javax.annotation.Nullable + public Boolean getIsPlaying() { + return isPlaying; + } + + public void setIsPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + } + + + public PlayQueueUpdate shuffleMode(@javax.annotation.Nullable GroupShuffleMode shuffleMode) { + this.shuffleMode = shuffleMode; + return this; + } + + /** + * Gets the shuffle mode. + * @return shuffleMode + */ + @javax.annotation.Nullable + public GroupShuffleMode getShuffleMode() { + return shuffleMode; + } + + public void setShuffleMode(@javax.annotation.Nullable GroupShuffleMode shuffleMode) { + this.shuffleMode = shuffleMode; + } + + + public PlayQueueUpdate repeatMode(@javax.annotation.Nullable GroupRepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public GroupRepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable GroupRepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayQueueUpdate playQueueUpdate = (PlayQueueUpdate) o; + return Objects.equals(this.reason, playQueueUpdate.reason) && + Objects.equals(this.lastUpdate, playQueueUpdate.lastUpdate) && + Objects.equals(this.playlist, playQueueUpdate.playlist) && + Objects.equals(this.playingItemIndex, playQueueUpdate.playingItemIndex) && + Objects.equals(this.startPositionTicks, playQueueUpdate.startPositionTicks) && + Objects.equals(this.isPlaying, playQueueUpdate.isPlaying) && + Objects.equals(this.shuffleMode, playQueueUpdate.shuffleMode) && + Objects.equals(this.repeatMode, playQueueUpdate.repeatMode); + } + + @Override + public int hashCode() { + return Objects.hash(reason, lastUpdate, playlist, playingItemIndex, startPositionTicks, isPlaying, shuffleMode, repeatMode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayQueueUpdate {\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" lastUpdate: ").append(toIndentedString(lastUpdate)).append("\n"); + sb.append(" playlist: ").append(toIndentedString(playlist)).append("\n"); + sb.append(" playingItemIndex: ").append(toIndentedString(playingItemIndex)).append("\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append(" isPlaying: ").append(toIndentedString(isPlaying)).append("\n"); + sb.append(" shuffleMode: ").append(toIndentedString(shuffleMode)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Reason"); + openapiFields.add("LastUpdate"); + openapiFields.add("Playlist"); + openapiFields.add("PlayingItemIndex"); + openapiFields.add("StartPositionTicks"); + openapiFields.add("IsPlaying"); + openapiFields.add("ShuffleMode"); + openapiFields.add("RepeatMode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayQueueUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayQueueUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayQueueUpdate is not found in the empty JSON string", PlayQueueUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayQueueUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayQueueUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Reason` + if (jsonObj.get("Reason") != null && !jsonObj.get("Reason").isJsonNull()) { + PlayQueueUpdateReason.validateJsonElement(jsonObj.get("Reason")); + } + if (jsonObj.get("Playlist") != null && !jsonObj.get("Playlist").isJsonNull()) { + JsonArray jsonArrayplaylist = jsonObj.getAsJsonArray("Playlist"); + if (jsonArrayplaylist != null) { + // ensure the json data is an array + if (!jsonObj.get("Playlist").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Playlist` to be an array in the JSON string but got `%s`", jsonObj.get("Playlist").toString())); + } + + // validate the optional field `Playlist` (array) + for (int i = 0; i < jsonArrayplaylist.size(); i++) { + SyncPlayQueueItem.validateJsonElement(jsonArrayplaylist.get(i)); + }; + } + } + // validate the optional field `ShuffleMode` + if (jsonObj.get("ShuffleMode") != null && !jsonObj.get("ShuffleMode").isJsonNull()) { + GroupShuffleMode.validateJsonElement(jsonObj.get("ShuffleMode")); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + GroupRepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayQueueUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayQueueUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayQueueUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayQueueUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayQueueUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayQueueUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayQueueUpdate + * @throws IOException if the JSON string is invalid with respect to PlayQueueUpdate + */ + public static PlayQueueUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayQueueUpdate.class); + } + + /** + * Convert an instance of PlayQueueUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateGroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateGroupUpdate.java new file mode 100644 index 0000000000000..482e179a7d6ef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateGroupUpdate.java @@ -0,0 +1,270 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupUpdateType; +import org.openapitools.client.model.PlayQueueUpdate; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayQueueUpdateGroupUpdate { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private GroupUpdateType type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private PlayQueueUpdate data; + + public PlayQueueUpdateGroupUpdate() { + } + + public PlayQueueUpdateGroupUpdate( + UUID groupId + ) { + this(); + this.groupId = groupId; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + + + public PlayQueueUpdateGroupUpdate type(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + return this; + } + + /** + * Gets the update type. + * @return type + */ + @javax.annotation.Nullable + public GroupUpdateType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + } + + + public PlayQueueUpdateGroupUpdate data(@javax.annotation.Nullable PlayQueueUpdate data) { + this.data = data; + return this; + } + + /** + * Gets the update data. + * @return data + */ + @javax.annotation.Nullable + public PlayQueueUpdate getData() { + return data; + } + + public void setData(@javax.annotation.Nullable PlayQueueUpdate data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayQueueUpdateGroupUpdate playQueueUpdateGroupUpdate = (PlayQueueUpdateGroupUpdate) o; + return Objects.equals(this.groupId, playQueueUpdateGroupUpdate.groupId) && + Objects.equals(this.type, playQueueUpdateGroupUpdate.type) && + Objects.equals(this.data, playQueueUpdateGroupUpdate.data); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayQueueUpdateGroupUpdate {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayQueueUpdateGroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayQueueUpdateGroupUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayQueueUpdateGroupUpdate is not found in the empty JSON string", PlayQueueUpdateGroupUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayQueueUpdateGroupUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayQueueUpdateGroupUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + GroupUpdateType.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + PlayQueueUpdate.validateJsonElement(jsonObj.get("Data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayQueueUpdateGroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayQueueUpdateGroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayQueueUpdateGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayQueueUpdateGroupUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayQueueUpdateGroupUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayQueueUpdateGroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayQueueUpdateGroupUpdate + * @throws IOException if the JSON string is invalid with respect to PlayQueueUpdateGroupUpdate + */ + public static PlayQueueUpdateGroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayQueueUpdateGroupUpdate.class); + } + + /** + * Convert an instance of PlayQueueUpdateGroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateReason.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateReason.java new file mode 100644 index 0000000000000..bb401af175bb7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayQueueUpdateReason.java @@ -0,0 +1,94 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlayQueueUpdateReason. + */ +@JsonAdapter(PlayQueueUpdateReason.Adapter.class) +public enum PlayQueueUpdateReason { + + NEW_PLAYLIST("NewPlaylist"), + + SET_CURRENT_ITEM("SetCurrentItem"), + + REMOVE_ITEMS("RemoveItems"), + + MOVE_ITEM("MoveItem"), + + QUEUE("Queue"), + + QUEUE_NEXT("QueueNext"), + + NEXT_ITEM("NextItem"), + + PREVIOUS_ITEM("PreviousItem"), + + REPEAT_MODE("RepeatMode"), + + SHUFFLE_MODE("ShuffleMode"); + + private String value; + + PlayQueueUpdateReason(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayQueueUpdateReason fromValue(String value) { + for (PlayQueueUpdateReason b : PlayQueueUpdateReason.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayQueueUpdateReason enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayQueueUpdateReason read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayQueueUpdateReason.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayQueueUpdateReason.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequest.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequest.java new file mode 100644 index 0000000000000..872216f32e14d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequest.java @@ -0,0 +1,430 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.PlayCommand; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlayRequest. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayRequest { + public static final String SERIALIZED_NAME_ITEM_IDS = "ItemIds"; + @SerializedName(SERIALIZED_NAME_ITEM_IDS) + @javax.annotation.Nullable + private List itemIds; + + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public static final String SERIALIZED_NAME_PLAY_COMMAND = "PlayCommand"; + @SerializedName(SERIALIZED_NAME_PLAY_COMMAND) + @javax.annotation.Nullable + private PlayCommand playCommand; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private UUID controllingUserId; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public PlayRequest() { + } + + public PlayRequest itemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + return this; + } + + public PlayRequest addItemIdsItem(UUID itemIdsItem) { + if (this.itemIds == null) { + this.itemIds = new ArrayList<>(); + } + this.itemIds.add(itemIdsItem); + return this; + } + + /** + * Gets or sets the item ids. + * @return itemIds + */ + @javax.annotation.Nullable + public List getItemIds() { + return itemIds; + } + + public void setItemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + } + + + public PlayRequest startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks that the first item should be played at. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + public PlayRequest playCommand(@javax.annotation.Nullable PlayCommand playCommand) { + this.playCommand = playCommand; + return this; + } + + /** + * Gets or sets the play command. + * @return playCommand + */ + @javax.annotation.Nullable + public PlayCommand getPlayCommand() { + return playCommand; + } + + public void setPlayCommand(@javax.annotation.Nullable PlayCommand playCommand) { + this.playCommand = playCommand; + } + + + public PlayRequest controllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Gets or sets the controlling user identifier. + * @return controllingUserId + */ + @javax.annotation.Nullable + public UUID getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + public PlayRequest subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Get subtitleStreamIndex + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlayRequest audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Get audioStreamIndex + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlayRequest mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Get mediaSourceId + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlayRequest startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Get startIndex + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayRequest playRequest = (PlayRequest) o; + return Objects.equals(this.itemIds, playRequest.itemIds) && + Objects.equals(this.startPositionTicks, playRequest.startPositionTicks) && + Objects.equals(this.playCommand, playRequest.playCommand) && + Objects.equals(this.controllingUserId, playRequest.controllingUserId) && + Objects.equals(this.subtitleStreamIndex, playRequest.subtitleStreamIndex) && + Objects.equals(this.audioStreamIndex, playRequest.audioStreamIndex) && + Objects.equals(this.mediaSourceId, playRequest.mediaSourceId) && + Objects.equals(this.startIndex, playRequest.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemIds, startPositionTicks, playCommand, controllingUserId, subtitleStreamIndex, audioStreamIndex, mediaSourceId, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayRequest {\n"); + sb.append(" itemIds: ").append(toIndentedString(itemIds)).append("\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append(" playCommand: ").append(toIndentedString(playCommand)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemIds"); + openapiFields.add("StartPositionTicks"); + openapiFields.add("PlayCommand"); + openapiFields.add("ControllingUserId"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("MediaSourceId"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayRequest is not found in the empty JSON string", PlayRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ItemIds") != null && !jsonObj.get("ItemIds").isJsonNull() && !jsonObj.get("ItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("ItemIds").toString())); + } + // validate the optional field `PlayCommand` + if (jsonObj.get("PlayCommand") != null && !jsonObj.get("PlayCommand").isJsonNull()) { + PlayCommand.validateJsonElement(jsonObj.get("PlayCommand")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayRequest + * @throws IOException if the JSON string is invalid with respect to PlayRequest + */ + public static PlayRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayRequest.class); + } + + /** + * Convert an instance of PlayRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequestDto.java new file mode 100644 index 0000000000000..470be917be077 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayRequestDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlayRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayRequestDto { + public static final String SERIALIZED_NAME_PLAYING_QUEUE = "PlayingQueue"; + @SerializedName(SERIALIZED_NAME_PLAYING_QUEUE) + @javax.annotation.Nullable + private List playingQueue = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLAYING_ITEM_POSITION = "PlayingItemPosition"; + @SerializedName(SERIALIZED_NAME_PLAYING_ITEM_POSITION) + @javax.annotation.Nullable + private Integer playingItemPosition; + + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public PlayRequestDto() { + } + + public PlayRequestDto playingQueue(@javax.annotation.Nullable List playingQueue) { + this.playingQueue = playingQueue; + return this; + } + + public PlayRequestDto addPlayingQueueItem(UUID playingQueueItem) { + if (this.playingQueue == null) { + this.playingQueue = new ArrayList<>(); + } + this.playingQueue.add(playingQueueItem); + return this; + } + + /** + * Gets or sets the playing queue. + * @return playingQueue + */ + @javax.annotation.Nullable + public List getPlayingQueue() { + return playingQueue; + } + + public void setPlayingQueue(@javax.annotation.Nullable List playingQueue) { + this.playingQueue = playingQueue; + } + + + public PlayRequestDto playingItemPosition(@javax.annotation.Nullable Integer playingItemPosition) { + this.playingItemPosition = playingItemPosition; + return this; + } + + /** + * Gets or sets the position of the playing item in the queue. + * @return playingItemPosition + */ + @javax.annotation.Nullable + public Integer getPlayingItemPosition() { + return playingItemPosition; + } + + public void setPlayingItemPosition(@javax.annotation.Nullable Integer playingItemPosition) { + this.playingItemPosition = playingItemPosition; + } + + + public PlayRequestDto startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayRequestDto playRequestDto = (PlayRequestDto) o; + return Objects.equals(this.playingQueue, playRequestDto.playingQueue) && + Objects.equals(this.playingItemPosition, playRequestDto.playingItemPosition) && + Objects.equals(this.startPositionTicks, playRequestDto.startPositionTicks); + } + + @Override + public int hashCode() { + return Objects.hash(playingQueue, playingItemPosition, startPositionTicks); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayRequestDto {\n"); + sb.append(" playingQueue: ").append(toIndentedString(playingQueue)).append("\n"); + sb.append(" playingItemPosition: ").append(toIndentedString(playingItemPosition)).append("\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayingQueue"); + openapiFields.add("PlayingItemPosition"); + openapiFields.add("StartPositionTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayRequestDto is not found in the empty JSON string", PlayRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlayingQueue") != null && !jsonObj.get("PlayingQueue").isJsonNull() && !jsonObj.get("PlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("PlayingQueue").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayRequestDto + * @throws IOException if the JSON string is invalid with respect to PlayRequestDto + */ + public static PlayRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayRequestDto.class); + } + + /** + * Convert an instance of PlayRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java new file mode 100644 index 0000000000000..a6e96de7f15ef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlaybackErrorCode + */ +@JsonAdapter(PlaybackErrorCode.Adapter.class) +public enum PlaybackErrorCode { + + NOT_ALLOWED("NotAllowed"), + + NO_COMPATIBLE_STREAM("NoCompatibleStream"), + + RATE_LIMIT_EXCEEDED("RateLimitExceeded"); + + private String value; + + PlaybackErrorCode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaybackErrorCode fromValue(String value) { + for (PlaybackErrorCode b : PlaybackErrorCode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaybackErrorCode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaybackErrorCode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaybackErrorCode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaybackErrorCode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java new file mode 100644 index 0000000000000..9b6129ccc6e6e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java @@ -0,0 +1,635 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plabyback info dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackInfoDto { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_START_TIME_TICKS = "StartTimeTicks"; + @SerializedName(SERIALIZED_NAME_START_TIME_TICKS) + @javax.annotation.Nullable + private Long startTimeTicks; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer maxAudioChannels; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_PLAY = "EnableDirectPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean enableDirectPlay; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_STREAM = "EnableDirectStream"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean enableDirectStream; + + public static final String SERIALIZED_NAME_ENABLE_TRANSCODING = "EnableTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableTranscoding; + + public static final String SERIALIZED_NAME_ALLOW_VIDEO_STREAM_COPY = "AllowVideoStreamCopy"; + @SerializedName(SERIALIZED_NAME_ALLOW_VIDEO_STREAM_COPY) + @javax.annotation.Nullable + private Boolean allowVideoStreamCopy; + + public static final String SERIALIZED_NAME_ALLOW_AUDIO_STREAM_COPY = "AllowAudioStreamCopy"; + @SerializedName(SERIALIZED_NAME_ALLOW_AUDIO_STREAM_COPY) + @javax.annotation.Nullable + private Boolean allowAudioStreamCopy; + + public static final String SERIALIZED_NAME_AUTO_OPEN_LIVE_STREAM = "AutoOpenLiveStream"; + @SerializedName(SERIALIZED_NAME_AUTO_OPEN_LIVE_STREAM) + @javax.annotation.Nullable + private Boolean autoOpenLiveStream; + + public static final String SERIALIZED_NAME_ALWAYS_BURN_IN_SUBTITLE_WHEN_TRANSCODING = "AlwaysBurnInSubtitleWhenTranscoding"; + @SerializedName(SERIALIZED_NAME_ALWAYS_BURN_IN_SUBTITLE_WHEN_TRANSCODING) + @javax.annotation.Nullable + private Boolean alwaysBurnInSubtitleWhenTranscoding; + + public PlaybackInfoDto() { + } + + public PlaybackInfoDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the playback userId. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public PlaybackInfoDto maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the max streaming bitrate. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public PlaybackInfoDto startTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + return this; + } + + /** + * Gets or sets the start time in ticks. + * @return startTimeTicks + */ + @javax.annotation.Nullable + public Long getStartTimeTicks() { + return startTimeTicks; + } + + public void setStartTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + } + + + public PlaybackInfoDto audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the audio stream index. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackInfoDto subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the subtitle stream index. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackInfoDto maxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Gets or sets the max audio channels. + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public Integer getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public PlaybackInfoDto mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media source id. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackInfoDto liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream id. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackInfoDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * Gets or sets the device profile. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public PlaybackInfoDto enableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct play. + * @return enableDirectPlay + */ + @javax.annotation.Nullable + public Boolean getEnableDirectPlay() { + return enableDirectPlay; + } + + public void setEnableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + } + + + public PlaybackInfoDto enableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct stream. + * @return enableDirectStream + */ + @javax.annotation.Nullable + public Boolean getEnableDirectStream() { + return enableDirectStream; + } + + public void setEnableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + } + + + public PlaybackInfoDto enableTranscoding(@javax.annotation.Nullable Boolean enableTranscoding) { + this.enableTranscoding = enableTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether to enable transcoding. + * @return enableTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableTranscoding() { + return enableTranscoding; + } + + public void setEnableTranscoding(@javax.annotation.Nullable Boolean enableTranscoding) { + this.enableTranscoding = enableTranscoding; + } + + + public PlaybackInfoDto allowVideoStreamCopy(@javax.annotation.Nullable Boolean allowVideoStreamCopy) { + this.allowVideoStreamCopy = allowVideoStreamCopy; + return this; + } + + /** + * Gets or sets a value indicating whether to enable video stream copy. + * @return allowVideoStreamCopy + */ + @javax.annotation.Nullable + public Boolean getAllowVideoStreamCopy() { + return allowVideoStreamCopy; + } + + public void setAllowVideoStreamCopy(@javax.annotation.Nullable Boolean allowVideoStreamCopy) { + this.allowVideoStreamCopy = allowVideoStreamCopy; + } + + + public PlaybackInfoDto allowAudioStreamCopy(@javax.annotation.Nullable Boolean allowAudioStreamCopy) { + this.allowAudioStreamCopy = allowAudioStreamCopy; + return this; + } + + /** + * Gets or sets a value indicating whether to allow audio stream copy. + * @return allowAudioStreamCopy + */ + @javax.annotation.Nullable + public Boolean getAllowAudioStreamCopy() { + return allowAudioStreamCopy; + } + + public void setAllowAudioStreamCopy(@javax.annotation.Nullable Boolean allowAudioStreamCopy) { + this.allowAudioStreamCopy = allowAudioStreamCopy; + } + + + public PlaybackInfoDto autoOpenLiveStream(@javax.annotation.Nullable Boolean autoOpenLiveStream) { + this.autoOpenLiveStream = autoOpenLiveStream; + return this; + } + + /** + * Gets or sets a value indicating whether to auto open the live stream. + * @return autoOpenLiveStream + */ + @javax.annotation.Nullable + public Boolean getAutoOpenLiveStream() { + return autoOpenLiveStream; + } + + public void setAutoOpenLiveStream(@javax.annotation.Nullable Boolean autoOpenLiveStream) { + this.autoOpenLiveStream = autoOpenLiveStream; + } + + + public PlaybackInfoDto alwaysBurnInSubtitleWhenTranscoding(@javax.annotation.Nullable Boolean alwaysBurnInSubtitleWhenTranscoding) { + this.alwaysBurnInSubtitleWhenTranscoding = alwaysBurnInSubtitleWhenTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether always burn in subtitles when transcoding. + * @return alwaysBurnInSubtitleWhenTranscoding + */ + @javax.annotation.Nullable + public Boolean getAlwaysBurnInSubtitleWhenTranscoding() { + return alwaysBurnInSubtitleWhenTranscoding; + } + + public void setAlwaysBurnInSubtitleWhenTranscoding(@javax.annotation.Nullable Boolean alwaysBurnInSubtitleWhenTranscoding) { + this.alwaysBurnInSubtitleWhenTranscoding = alwaysBurnInSubtitleWhenTranscoding; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackInfoDto playbackInfoDto = (PlaybackInfoDto) o; + return Objects.equals(this.userId, playbackInfoDto.userId) && + Objects.equals(this.maxStreamingBitrate, playbackInfoDto.maxStreamingBitrate) && + Objects.equals(this.startTimeTicks, playbackInfoDto.startTimeTicks) && + Objects.equals(this.audioStreamIndex, playbackInfoDto.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackInfoDto.subtitleStreamIndex) && + Objects.equals(this.maxAudioChannels, playbackInfoDto.maxAudioChannels) && + Objects.equals(this.mediaSourceId, playbackInfoDto.mediaSourceId) && + Objects.equals(this.liveStreamId, playbackInfoDto.liveStreamId) && + Objects.equals(this.deviceProfile, playbackInfoDto.deviceProfile) && + Objects.equals(this.enableDirectPlay, playbackInfoDto.enableDirectPlay) && + Objects.equals(this.enableDirectStream, playbackInfoDto.enableDirectStream) && + Objects.equals(this.enableTranscoding, playbackInfoDto.enableTranscoding) && + Objects.equals(this.allowVideoStreamCopy, playbackInfoDto.allowVideoStreamCopy) && + Objects.equals(this.allowAudioStreamCopy, playbackInfoDto.allowAudioStreamCopy) && + Objects.equals(this.autoOpenLiveStream, playbackInfoDto.autoOpenLiveStream) && + Objects.equals(this.alwaysBurnInSubtitleWhenTranscoding, playbackInfoDto.alwaysBurnInSubtitleWhenTranscoding); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, deviceProfile, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, autoOpenLiveStream, alwaysBurnInSubtitleWhenTranscoding); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackInfoDto {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" startTimeTicks: ").append(toIndentedString(startTimeTicks)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" enableDirectPlay: ").append(toIndentedString(enableDirectPlay)).append("\n"); + sb.append(" enableDirectStream: ").append(toIndentedString(enableDirectStream)).append("\n"); + sb.append(" enableTranscoding: ").append(toIndentedString(enableTranscoding)).append("\n"); + sb.append(" allowVideoStreamCopy: ").append(toIndentedString(allowVideoStreamCopy)).append("\n"); + sb.append(" allowAudioStreamCopy: ").append(toIndentedString(allowAudioStreamCopy)).append("\n"); + sb.append(" autoOpenLiveStream: ").append(toIndentedString(autoOpenLiveStream)).append("\n"); + sb.append(" alwaysBurnInSubtitleWhenTranscoding: ").append(toIndentedString(alwaysBurnInSubtitleWhenTranscoding)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("StartTimeTicks"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("MediaSourceId"); + openapiFields.add("LiveStreamId"); + openapiFields.add("DeviceProfile"); + openapiFields.add("EnableDirectPlay"); + openapiFields.add("EnableDirectStream"); + openapiFields.add("EnableTranscoding"); + openapiFields.add("AllowVideoStreamCopy"); + openapiFields.add("AllowAudioStreamCopy"); + openapiFields.add("AutoOpenLiveStream"); + openapiFields.add("AlwaysBurnInSubtitleWhenTranscoding"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackInfoDto is not found in the empty JSON string", PlaybackInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackInfoDto + * @throws IOException if the JSON string is invalid with respect to PlaybackInfoDto + */ + public static PlaybackInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackInfoDto.class); + } + + /** + * Convert an instance of PlaybackInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java new file mode 100644 index 0000000000000..b8b99ba3d49a8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.MediaSourceInfo; +import org.openapitools.client.model.PlaybackErrorCode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackInfoResponse. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackInfoResponse { + public static final String SERIALIZED_NAME_MEDIA_SOURCES = "MediaSources"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCES) + @javax.annotation.Nullable + private List mediaSources = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_ERROR_CODE = "ErrorCode"; + @SerializedName(SERIALIZED_NAME_ERROR_CODE) + @javax.annotation.Nullable + private PlaybackErrorCode errorCode; + + public PlaybackInfoResponse() { + } + + public PlaybackInfoResponse mediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + return this; + } + + public PlaybackInfoResponse addMediaSourcesItem(MediaSourceInfo mediaSourcesItem) { + if (this.mediaSources == null) { + this.mediaSources = new ArrayList<>(); + } + this.mediaSources.add(mediaSourcesItem); + return this; + } + + /** + * Gets or sets the media sources. + * @return mediaSources + */ + @javax.annotation.Nullable + public List getMediaSources() { + return mediaSources; + } + + public void setMediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + } + + + public PlaybackInfoResponse playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackInfoResponse errorCode(@javax.annotation.Nullable PlaybackErrorCode errorCode) { + this.errorCode = errorCode; + return this; + } + + /** + * Gets or sets the error code. + * @return errorCode + */ + @javax.annotation.Nullable + public PlaybackErrorCode getErrorCode() { + return errorCode; + } + + public void setErrorCode(@javax.annotation.Nullable PlaybackErrorCode errorCode) { + this.errorCode = errorCode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackInfoResponse playbackInfoResponse = (PlaybackInfoResponse) o; + return Objects.equals(this.mediaSources, playbackInfoResponse.mediaSources) && + Objects.equals(this.playSessionId, playbackInfoResponse.playSessionId) && + Objects.equals(this.errorCode, playbackInfoResponse.errorCode); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(mediaSources, playSessionId, errorCode); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackInfoResponse {\n"); + sb.append(" mediaSources: ").append(toIndentedString(mediaSources)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MediaSources"); + openapiFields.add("PlaySessionId"); + openapiFields.add("ErrorCode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackInfoResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackInfoResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackInfoResponse is not found in the empty JSON string", PlaybackInfoResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackInfoResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackInfoResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("MediaSources") != null && !jsonObj.get("MediaSources").isJsonNull()) { + JsonArray jsonArraymediaSources = jsonObj.getAsJsonArray("MediaSources"); + if (jsonArraymediaSources != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaSources").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSources` to be an array in the JSON string but got `%s`", jsonObj.get("MediaSources").toString())); + } + + // validate the optional field `MediaSources` (array) + for (int i = 0; i < jsonArraymediaSources.size(); i++) { + MediaSourceInfo.validateJsonElement(jsonArraymediaSources.get(i)); + }; + } + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `ErrorCode` + if (jsonObj.get("ErrorCode") != null && !jsonObj.get("ErrorCode").isJsonNull()) { + PlaybackErrorCode.validateJsonElement(jsonObj.get("ErrorCode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackInfoResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackInfoResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackInfoResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackInfoResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackInfoResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackInfoResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackInfoResponse + * @throws IOException if the JSON string is invalid with respect to PlaybackInfoResponse + */ + public static PlaybackInfoResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackInfoResponse.class); + } + + /** + * Convert an instance of PlaybackInfoResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackOrder.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackOrder.java new file mode 100644 index 0000000000000..0a6e7a8c647d4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackOrder.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlaybackOrder. + */ +@JsonAdapter(PlaybackOrder.Adapter.class) +public enum PlaybackOrder { + + DEFAULT("Default"), + + SHUFFLE("Shuffle"); + + private String value; + + PlaybackOrder(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaybackOrder fromValue(String value) { + for (PlaybackOrder b : PlaybackOrder.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaybackOrder enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaybackOrder read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaybackOrder.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaybackOrder.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java new file mode 100644 index 0000000000000..179e0dcbc9bc4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java @@ -0,0 +1,822 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.PlaybackOrder; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackProgressInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackProgressInfo { + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS = "PlaybackStartTimeTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS) + @javax.annotation.Nullable + private Long playbackStartTimeTicks; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_BRIGHTNESS = "Brightness"; + @SerializedName(SERIALIZED_NAME_BRIGHTNESS) + @javax.annotation.Nullable + private Integer brightness; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_PLAYBACK_ORDER = "PlaybackOrder"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_ORDER) + @javax.annotation.Nullable + private PlaybackOrder playbackOrder; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public PlaybackProgressInfo() { + } + + public PlaybackProgressInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlaybackProgressInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackProgressInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackProgressInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackProgressInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackProgressInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackProgressInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackProgressInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlaybackProgressInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlaybackProgressInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackProgressInfo playbackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + return this; + } + + /** + * Get playbackStartTimeTicks + * @return playbackStartTimeTicks + */ + @javax.annotation.Nullable + public Long getPlaybackStartTimeTicks() { + return playbackStartTimeTicks; + } + + public void setPlaybackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + } + + + public PlaybackProgressInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlaybackProgressInfo brightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + return this; + } + + /** + * Get brightness + * @return brightness + */ + @javax.annotation.Nullable + public Integer getBrightness() { + return brightness; + } + + public void setBrightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + } + + + public PlaybackProgressInfo aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Get aspectRatio + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public PlaybackProgressInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlaybackProgressInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackProgressInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackProgressInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlaybackProgressInfo playbackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + return this; + } + + /** + * Gets or sets the playback order. + * @return playbackOrder + */ + @javax.annotation.Nullable + public PlaybackOrder getPlaybackOrder() { + return playbackOrder; + } + + public void setPlaybackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + } + + + public PlaybackProgressInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackProgressInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public PlaybackProgressInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackProgressInfo playbackProgressInfo = (PlaybackProgressInfo) o; + return Objects.equals(this.canSeek, playbackProgressInfo.canSeek) && + Objects.equals(this.item, playbackProgressInfo.item) && + Objects.equals(this.itemId, playbackProgressInfo.itemId) && + Objects.equals(this.sessionId, playbackProgressInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackProgressInfo.mediaSourceId) && + Objects.equals(this.audioStreamIndex, playbackProgressInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackProgressInfo.subtitleStreamIndex) && + Objects.equals(this.isPaused, playbackProgressInfo.isPaused) && + Objects.equals(this.isMuted, playbackProgressInfo.isMuted) && + Objects.equals(this.positionTicks, playbackProgressInfo.positionTicks) && + Objects.equals(this.playbackStartTimeTicks, playbackProgressInfo.playbackStartTimeTicks) && + Objects.equals(this.volumeLevel, playbackProgressInfo.volumeLevel) && + Objects.equals(this.brightness, playbackProgressInfo.brightness) && + Objects.equals(this.aspectRatio, playbackProgressInfo.aspectRatio) && + Objects.equals(this.playMethod, playbackProgressInfo.playMethod) && + Objects.equals(this.liveStreamId, playbackProgressInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackProgressInfo.playSessionId) && + Objects.equals(this.repeatMode, playbackProgressInfo.repeatMode) && + Objects.equals(this.playbackOrder, playbackProgressInfo.playbackOrder) && + Objects.equals(this.nowPlayingQueue, playbackProgressInfo.nowPlayingQueue) && + Objects.equals(this.playlistItemId, playbackProgressInfo.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(canSeek, item, itemId, sessionId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, isPaused, isMuted, positionTicks, playbackStartTimeTicks, volumeLevel, brightness, aspectRatio, playMethod, liveStreamId, playSessionId, repeatMode, playbackOrder, nowPlayingQueue, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackProgressInfo {\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" playbackStartTimeTicks: ").append(toIndentedString(playbackStartTimeTicks)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" brightness: ").append(toIndentedString(brightness)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" playbackOrder: ").append(toIndentedString(playbackOrder)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CanSeek"); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("PositionTicks"); + openapiFields.add("PlaybackStartTimeTicks"); + openapiFields.add("VolumeLevel"); + openapiFields.add("Brightness"); + openapiFields.add("AspectRatio"); + openapiFields.add("PlayMethod"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("RepeatMode"); + openapiFields.add("PlaybackOrder"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackProgressInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackProgressInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackProgressInfo is not found in the empty JSON string", PlaybackProgressInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackProgressInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackProgressInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + // validate the optional field `PlaybackOrder` + if (jsonObj.get("PlaybackOrder") != null && !jsonObj.get("PlaybackOrder").isJsonNull()) { + PlaybackOrder.validateJsonElement(jsonObj.get("PlaybackOrder")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackProgressInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackProgressInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackProgressInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackProgressInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackProgressInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackProgressInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackProgressInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackProgressInfo + */ + public static PlaybackProgressInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackProgressInfo.class); + } + + /** + * Convert an instance of PlaybackProgressInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackRequestType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackRequestType.java new file mode 100644 index 0000000000000..edc7f933f94dc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackRequestType.java @@ -0,0 +1,108 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlaybackRequestType. + */ +@JsonAdapter(PlaybackRequestType.Adapter.class) +public enum PlaybackRequestType { + + PLAY("Play"), + + SET_PLAYLIST_ITEM("SetPlaylistItem"), + + REMOVE_FROM_PLAYLIST("RemoveFromPlaylist"), + + MOVE_PLAYLIST_ITEM("MovePlaylistItem"), + + QUEUE("Queue"), + + UNPAUSE("Unpause"), + + PAUSE("Pause"), + + STOP("Stop"), + + SEEK("Seek"), + + BUFFER("Buffer"), + + READY("Ready"), + + NEXT_ITEM("NextItem"), + + PREVIOUS_ITEM("PreviousItem"), + + SET_REPEAT_MODE("SetRepeatMode"), + + SET_SHUFFLE_MODE("SetShuffleMode"), + + PING("Ping"), + + IGNORE_WAIT("IgnoreWait"); + + private String value; + + PlaybackRequestType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaybackRequestType fromValue(String value) { + for (PlaybackRequestType b : PlaybackRequestType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaybackRequestType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaybackRequestType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaybackRequestType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaybackRequestType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java new file mode 100644 index 0000000000000..30b9bc7ea3445 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java @@ -0,0 +1,822 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.PlaybackOrder; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackStartInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackStartInfo { + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS = "PlaybackStartTimeTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS) + @javax.annotation.Nullable + private Long playbackStartTimeTicks; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_BRIGHTNESS = "Brightness"; + @SerializedName(SERIALIZED_NAME_BRIGHTNESS) + @javax.annotation.Nullable + private Integer brightness; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_PLAYBACK_ORDER = "PlaybackOrder"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_ORDER) + @javax.annotation.Nullable + private PlaybackOrder playbackOrder; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public PlaybackStartInfo() { + } + + public PlaybackStartInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlaybackStartInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackStartInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackStartInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackStartInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackStartInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackStartInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackStartInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlaybackStartInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlaybackStartInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackStartInfo playbackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + return this; + } + + /** + * Get playbackStartTimeTicks + * @return playbackStartTimeTicks + */ + @javax.annotation.Nullable + public Long getPlaybackStartTimeTicks() { + return playbackStartTimeTicks; + } + + public void setPlaybackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + } + + + public PlaybackStartInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlaybackStartInfo brightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + return this; + } + + /** + * Get brightness + * @return brightness + */ + @javax.annotation.Nullable + public Integer getBrightness() { + return brightness; + } + + public void setBrightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + } + + + public PlaybackStartInfo aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Get aspectRatio + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public PlaybackStartInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlaybackStartInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackStartInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackStartInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlaybackStartInfo playbackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + return this; + } + + /** + * Gets or sets the playback order. + * @return playbackOrder + */ + @javax.annotation.Nullable + public PlaybackOrder getPlaybackOrder() { + return playbackOrder; + } + + public void setPlaybackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + } + + + public PlaybackStartInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackStartInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public PlaybackStartInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackStartInfo playbackStartInfo = (PlaybackStartInfo) o; + return Objects.equals(this.canSeek, playbackStartInfo.canSeek) && + Objects.equals(this.item, playbackStartInfo.item) && + Objects.equals(this.itemId, playbackStartInfo.itemId) && + Objects.equals(this.sessionId, playbackStartInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackStartInfo.mediaSourceId) && + Objects.equals(this.audioStreamIndex, playbackStartInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackStartInfo.subtitleStreamIndex) && + Objects.equals(this.isPaused, playbackStartInfo.isPaused) && + Objects.equals(this.isMuted, playbackStartInfo.isMuted) && + Objects.equals(this.positionTicks, playbackStartInfo.positionTicks) && + Objects.equals(this.playbackStartTimeTicks, playbackStartInfo.playbackStartTimeTicks) && + Objects.equals(this.volumeLevel, playbackStartInfo.volumeLevel) && + Objects.equals(this.brightness, playbackStartInfo.brightness) && + Objects.equals(this.aspectRatio, playbackStartInfo.aspectRatio) && + Objects.equals(this.playMethod, playbackStartInfo.playMethod) && + Objects.equals(this.liveStreamId, playbackStartInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackStartInfo.playSessionId) && + Objects.equals(this.repeatMode, playbackStartInfo.repeatMode) && + Objects.equals(this.playbackOrder, playbackStartInfo.playbackOrder) && + Objects.equals(this.nowPlayingQueue, playbackStartInfo.nowPlayingQueue) && + Objects.equals(this.playlistItemId, playbackStartInfo.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(canSeek, item, itemId, sessionId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, isPaused, isMuted, positionTicks, playbackStartTimeTicks, volumeLevel, brightness, aspectRatio, playMethod, liveStreamId, playSessionId, repeatMode, playbackOrder, nowPlayingQueue, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackStartInfo {\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" playbackStartTimeTicks: ").append(toIndentedString(playbackStartTimeTicks)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" brightness: ").append(toIndentedString(brightness)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" playbackOrder: ").append(toIndentedString(playbackOrder)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CanSeek"); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("PositionTicks"); + openapiFields.add("PlaybackStartTimeTicks"); + openapiFields.add("VolumeLevel"); + openapiFields.add("Brightness"); + openapiFields.add("AspectRatio"); + openapiFields.add("PlayMethod"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("RepeatMode"); + openapiFields.add("PlaybackOrder"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackStartInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackStartInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackStartInfo is not found in the empty JSON string", PlaybackStartInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackStartInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackStartInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + // validate the optional field `PlaybackOrder` + if (jsonObj.get("PlaybackOrder") != null && !jsonObj.get("PlaybackOrder").isJsonNull()) { + PlaybackOrder.validateJsonElement(jsonObj.get("PlaybackOrder")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackStartInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackStartInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackStartInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackStartInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackStartInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackStartInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackStartInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackStartInfo + */ + public static PlaybackStartInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackStartInfo.class); + } + + /** + * Convert an instance of PlaybackStartInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java new file mode 100644 index 0000000000000..c4d5ae135baaf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java @@ -0,0 +1,537 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.QueueItem; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackStopInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackStopInfo { + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_FAILED = "Failed"; + @SerializedName(SERIALIZED_NAME_FAILED) + @javax.annotation.Nullable + private Boolean failed; + + public static final String SERIALIZED_NAME_NEXT_MEDIA_TYPE = "NextMediaType"; + @SerializedName(SERIALIZED_NAME_NEXT_MEDIA_TYPE) + @javax.annotation.Nullable + private String nextMediaType; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public PlaybackStopInfo() { + } + + public PlaybackStopInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackStopInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackStopInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackStopInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackStopInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackStopInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackStopInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackStopInfo failed(@javax.annotation.Nullable Boolean failed) { + this.failed = failed; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. + * @return failed + */ + @javax.annotation.Nullable + public Boolean getFailed() { + return failed; + } + + public void setFailed(@javax.annotation.Nullable Boolean failed) { + this.failed = failed; + } + + + public PlaybackStopInfo nextMediaType(@javax.annotation.Nullable String nextMediaType) { + this.nextMediaType = nextMediaType; + return this; + } + + /** + * Get nextMediaType + * @return nextMediaType + */ + @javax.annotation.Nullable + public String getNextMediaType() { + return nextMediaType; + } + + public void setNextMediaType(@javax.annotation.Nullable String nextMediaType) { + this.nextMediaType = nextMediaType; + } + + + public PlaybackStopInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public PlaybackStopInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackStopInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackStopInfo playbackStopInfo = (PlaybackStopInfo) o; + return Objects.equals(this.item, playbackStopInfo.item) && + Objects.equals(this.itemId, playbackStopInfo.itemId) && + Objects.equals(this.sessionId, playbackStopInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackStopInfo.mediaSourceId) && + Objects.equals(this.positionTicks, playbackStopInfo.positionTicks) && + Objects.equals(this.liveStreamId, playbackStopInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackStopInfo.playSessionId) && + Objects.equals(this.failed, playbackStopInfo.failed) && + Objects.equals(this.nextMediaType, playbackStopInfo.nextMediaType) && + Objects.equals(this.playlistItemId, playbackStopInfo.playlistItemId) && + Objects.equals(this.nowPlayingQueue, playbackStopInfo.nowPlayingQueue); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(item, itemId, sessionId, mediaSourceId, positionTicks, liveStreamId, playSessionId, failed, nextMediaType, playlistItemId, nowPlayingQueue); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackStopInfo {\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" failed: ").append(toIndentedString(failed)).append("\n"); + sb.append(" nextMediaType: ").append(toIndentedString(nextMediaType)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("PositionTicks"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("Failed"); + openapiFields.add("NextMediaType"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("NowPlayingQueue"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackStopInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackStopInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackStopInfo is not found in the empty JSON string", PlaybackStopInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackStopInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackStopInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + if ((jsonObj.get("NextMediaType") != null && !jsonObj.get("NextMediaType").isJsonNull()) && !jsonObj.get("NextMediaType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NextMediaType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NextMediaType").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackStopInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackStopInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackStopInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackStopInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackStopInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackStopInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackStopInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackStopInfo + */ + public static PlaybackStopInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackStopInfo.class); + } + + /** + * Convert an instance of PlaybackStopInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayerStateInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayerStateInfo.java new file mode 100644 index 0000000000000..387c518a6dd99 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlayerStateInfo.java @@ -0,0 +1,533 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.PlaybackOrder; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlayerStateInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayerStateInfo { + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_PLAYBACK_ORDER = "PlaybackOrder"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_ORDER) + @javax.annotation.Nullable + private PlaybackOrder playbackOrder; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public PlayerStateInfo() { + } + + public PlayerStateInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the now playing position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlayerStateInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlayerStateInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlayerStateInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlayerStateInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlayerStateInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the now playing audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlayerStateInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the now playing subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlayerStateInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the now playing media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlayerStateInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlayerStateInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlayerStateInfo playbackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + return this; + } + + /** + * Gets or sets the playback order. + * @return playbackOrder + */ + @javax.annotation.Nullable + public PlaybackOrder getPlaybackOrder() { + return playbackOrder; + } + + public void setPlaybackOrder(@javax.annotation.Nullable PlaybackOrder playbackOrder) { + this.playbackOrder = playbackOrder; + } + + + public PlayerStateInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the now playing live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayerStateInfo playerStateInfo = (PlayerStateInfo) o; + return Objects.equals(this.positionTicks, playerStateInfo.positionTicks) && + Objects.equals(this.canSeek, playerStateInfo.canSeek) && + Objects.equals(this.isPaused, playerStateInfo.isPaused) && + Objects.equals(this.isMuted, playerStateInfo.isMuted) && + Objects.equals(this.volumeLevel, playerStateInfo.volumeLevel) && + Objects.equals(this.audioStreamIndex, playerStateInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playerStateInfo.subtitleStreamIndex) && + Objects.equals(this.mediaSourceId, playerStateInfo.mediaSourceId) && + Objects.equals(this.playMethod, playerStateInfo.playMethod) && + Objects.equals(this.repeatMode, playerStateInfo.repeatMode) && + Objects.equals(this.playbackOrder, playerStateInfo.playbackOrder) && + Objects.equals(this.liveStreamId, playerStateInfo.liveStreamId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(positionTicks, canSeek, isPaused, isMuted, volumeLevel, audioStreamIndex, subtitleStreamIndex, mediaSourceId, playMethod, repeatMode, playbackOrder, liveStreamId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayerStateInfo {\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" playbackOrder: ").append(toIndentedString(playbackOrder)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PositionTicks"); + openapiFields.add("CanSeek"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("VolumeLevel"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MediaSourceId"); + openapiFields.add("PlayMethod"); + openapiFields.add("RepeatMode"); + openapiFields.add("PlaybackOrder"); + openapiFields.add("LiveStreamId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayerStateInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayerStateInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayerStateInfo is not found in the empty JSON string", PlayerStateInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayerStateInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayerStateInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + // validate the optional field `PlaybackOrder` + if (jsonObj.get("PlaybackOrder") != null && !jsonObj.get("PlaybackOrder").isJsonNull()) { + PlaybackOrder.validateJsonElement(jsonObj.get("PlaybackOrder")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayerStateInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayerStateInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayerStateInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayerStateInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayerStateInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayerStateInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayerStateInfo + * @throws IOException if the JSON string is invalid with respect to PlayerStateInfo + */ + public static PlayerStateInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayerStateInfo.class); + } + + /** + * Convert an instance of PlayerStateInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java new file mode 100644 index 0000000000000..3e5b4ebd17a5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlaylistCreationResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaylistCreationResult { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public PlaylistCreationResult() { + } + + public PlaylistCreationResult id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaylistCreationResult playlistCreationResult = (PlaylistCreationResult) o; + return Objects.equals(this.id, playlistCreationResult.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaylistCreationResult {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaylistCreationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaylistCreationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaylistCreationResult is not found in the empty JSON string", PlaylistCreationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaylistCreationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaylistCreationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaylistCreationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaylistCreationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaylistCreationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaylistCreationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaylistCreationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaylistCreationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaylistCreationResult + * @throws IOException if the JSON string is invalid with respect to PlaylistCreationResult + */ + public static PlaylistCreationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaylistCreationResult.class); + } + + /** + * Convert an instance of PlaylistCreationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistDto.java new file mode 100644 index 0000000000000..804b89f5e1bcf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistDto.java @@ -0,0 +1,295 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.PlaylistUserPermissions; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DTO for playlists. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaylistDto { + public static final String SERIALIZED_NAME_OPEN_ACCESS = "OpenAccess"; + @SerializedName(SERIALIZED_NAME_OPEN_ACCESS) + @javax.annotation.Nullable + private Boolean openAccess; + + public static final String SERIALIZED_NAME_SHARES = "Shares"; + @SerializedName(SERIALIZED_NAME_SHARES) + @javax.annotation.Nullable + private List shares = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEM_IDS = "ItemIds"; + @SerializedName(SERIALIZED_NAME_ITEM_IDS) + @javax.annotation.Nullable + private List itemIds = new ArrayList<>(); + + public PlaylistDto() { + } + + public PlaylistDto openAccess(@javax.annotation.Nullable Boolean openAccess) { + this.openAccess = openAccess; + return this; + } + + /** + * Gets or sets a value indicating whether the playlist is publicly readable. + * @return openAccess + */ + @javax.annotation.Nullable + public Boolean getOpenAccess() { + return openAccess; + } + + public void setOpenAccess(@javax.annotation.Nullable Boolean openAccess) { + this.openAccess = openAccess; + } + + + public PlaylistDto shares(@javax.annotation.Nullable List shares) { + this.shares = shares; + return this; + } + + public PlaylistDto addSharesItem(PlaylistUserPermissions sharesItem) { + if (this.shares == null) { + this.shares = new ArrayList<>(); + } + this.shares.add(sharesItem); + return this; + } + + /** + * Gets or sets the share permissions. + * @return shares + */ + @javax.annotation.Nullable + public List getShares() { + return shares; + } + + public void setShares(@javax.annotation.Nullable List shares) { + this.shares = shares; + } + + + public PlaylistDto itemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + return this; + } + + public PlaylistDto addItemIdsItem(UUID itemIdsItem) { + if (this.itemIds == null) { + this.itemIds = new ArrayList<>(); + } + this.itemIds.add(itemIdsItem); + return this; + } + + /** + * Gets or sets the item ids. + * @return itemIds + */ + @javax.annotation.Nullable + public List getItemIds() { + return itemIds; + } + + public void setItemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaylistDto playlistDto = (PlaylistDto) o; + return Objects.equals(this.openAccess, playlistDto.openAccess) && + Objects.equals(this.shares, playlistDto.shares) && + Objects.equals(this.itemIds, playlistDto.itemIds); + } + + @Override + public int hashCode() { + return Objects.hash(openAccess, shares, itemIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaylistDto {\n"); + sb.append(" openAccess: ").append(toIndentedString(openAccess)).append("\n"); + sb.append(" shares: ").append(toIndentedString(shares)).append("\n"); + sb.append(" itemIds: ").append(toIndentedString(itemIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OpenAccess"); + openapiFields.add("Shares"); + openapiFields.add("ItemIds"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaylistDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaylistDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaylistDto is not found in the empty JSON string", PlaylistDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaylistDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaylistDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Shares") != null && !jsonObj.get("Shares").isJsonNull()) { + JsonArray jsonArrayshares = jsonObj.getAsJsonArray("Shares"); + if (jsonArrayshares != null) { + // ensure the json data is an array + if (!jsonObj.get("Shares").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Shares` to be an array in the JSON string but got `%s`", jsonObj.get("Shares").toString())); + } + + // validate the optional field `Shares` (array) + for (int i = 0; i < jsonArrayshares.size(); i++) { + PlaylistUserPermissions.validateJsonElement(jsonArrayshares.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemIds") != null && !jsonObj.get("ItemIds").isJsonNull() && !jsonObj.get("ItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("ItemIds").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaylistDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaylistDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaylistDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaylistDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaylistDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaylistDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaylistDto + * @throws IOException if the JSON string is invalid with respect to PlaylistDto + */ + public static PlaylistDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaylistDto.class); + } + + /** + * Convert an instance of PlaylistDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistUserPermissions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistUserPermissions.java new file mode 100644 index 0000000000000..4f86061b487e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaylistUserPermissions.java @@ -0,0 +1,234 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class to hold data on user permissions for playlists. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaylistUserPermissions { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_CAN_EDIT = "CanEdit"; + @SerializedName(SERIALIZED_NAME_CAN_EDIT) + @javax.annotation.Nullable + private Boolean canEdit; + + public PlaylistUserPermissions() { + } + + public PlaylistUserPermissions userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public PlaylistUserPermissions canEdit(@javax.annotation.Nullable Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + /** + * Gets or sets a value indicating whether the user has edit permissions. + * @return canEdit + */ + @javax.annotation.Nullable + public Boolean getCanEdit() { + return canEdit; + } + + public void setCanEdit(@javax.annotation.Nullable Boolean canEdit) { + this.canEdit = canEdit; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaylistUserPermissions playlistUserPermissions = (PlaylistUserPermissions) o; + return Objects.equals(this.userId, playlistUserPermissions.userId) && + Objects.equals(this.canEdit, playlistUserPermissions.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(userId, canEdit); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaylistUserPermissions {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" canEdit: ").append(toIndentedString(canEdit)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("CanEdit"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaylistUserPermissions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaylistUserPermissions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaylistUserPermissions is not found in the empty JSON string", PlaylistUserPermissions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaylistUserPermissions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaylistUserPermissions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaylistUserPermissions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaylistUserPermissions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaylistUserPermissions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaylistUserPermissions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaylistUserPermissions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaylistUserPermissions given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaylistUserPermissions + * @throws IOException if the JSON string is invalid with respect to PlaylistUserPermissions + */ + public static PlaylistUserPermissions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaylistUserPermissions.class); + } + + /** + * Convert an instance of PlaylistUserPermissions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateCommand.java new file mode 100644 index 0000000000000..7e2059132bd9d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateCommand.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlaystateCommand. + */ +@JsonAdapter(PlaystateCommand.Adapter.class) +public enum PlaystateCommand { + + STOP("Stop"), + + PAUSE("Pause"), + + UNPAUSE("Unpause"), + + NEXT_TRACK("NextTrack"), + + PREVIOUS_TRACK("PreviousTrack"), + + SEEK("Seek"), + + REWIND("Rewind"), + + FAST_FORWARD("FastForward"), + + PLAY_PAUSE("PlayPause"); + + private String value; + + PlaystateCommand(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaystateCommand fromValue(String value) { + for (PlaystateCommand b : PlaystateCommand.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaystateCommand enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaystateCommand read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaystateCommand.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaystateCommand.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateMessage.java new file mode 100644 index 0000000000000..5c2d8780953db --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PlaystateRequest; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Playstate message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaystateMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private PlaystateRequest data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PLAYSTATE; + + public PlaystateMessage() { + } + + public PlaystateMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PlaystateMessage data(@javax.annotation.Nullable PlaystateRequest data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public PlaystateRequest getData() { + return data; + } + + public void setData(@javax.annotation.Nullable PlaystateRequest data) { + this.data = data; + } + + + public PlaystateMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaystateMessage playstateMessage = (PlaystateMessage) o; + return Objects.equals(this.data, playstateMessage.data) && + Objects.equals(this.messageId, playstateMessage.messageId) && + Objects.equals(this.messageType, playstateMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaystateMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaystateMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaystateMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaystateMessage is not found in the empty JSON string", PlaystateMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaystateMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaystateMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + PlaystateRequest.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaystateMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaystateMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaystateMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaystateMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaystateMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaystateMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaystateMessage + * @throws IOException if the JSON string is invalid with respect to PlaystateMessage + */ + public static PlaystateMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaystateMessage.class); + } + + /** + * Convert an instance of PlaystateMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateRequest.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateRequest.java new file mode 100644 index 0000000000000..d37a6c0439863 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PlaystateRequest.java @@ -0,0 +1,277 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.PlaystateCommand; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlaystateRequest + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaystateRequest { + public static final String SERIALIZED_NAME_COMMAND = "Command"; + @SerializedName(SERIALIZED_NAME_COMMAND) + @javax.annotation.Nullable + private PlaystateCommand command; + + public static final String SERIALIZED_NAME_SEEK_POSITION_TICKS = "SeekPositionTicks"; + @SerializedName(SERIALIZED_NAME_SEEK_POSITION_TICKS) + @javax.annotation.Nullable + private Long seekPositionTicks; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private String controllingUserId; + + public PlaystateRequest() { + } + + public PlaystateRequest command(@javax.annotation.Nullable PlaystateCommand command) { + this.command = command; + return this; + } + + /** + * Enum PlaystateCommand. + * @return command + */ + @javax.annotation.Nullable + public PlaystateCommand getCommand() { + return command; + } + + public void setCommand(@javax.annotation.Nullable PlaystateCommand command) { + this.command = command; + } + + + public PlaystateRequest seekPositionTicks(@javax.annotation.Nullable Long seekPositionTicks) { + this.seekPositionTicks = seekPositionTicks; + return this; + } + + /** + * Get seekPositionTicks + * @return seekPositionTicks + */ + @javax.annotation.Nullable + public Long getSeekPositionTicks() { + return seekPositionTicks; + } + + public void setSeekPositionTicks(@javax.annotation.Nullable Long seekPositionTicks) { + this.seekPositionTicks = seekPositionTicks; + } + + + public PlaystateRequest controllingUserId(@javax.annotation.Nullable String controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Gets or sets the controlling user identifier. + * @return controllingUserId + */ + @javax.annotation.Nullable + public String getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable String controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaystateRequest playstateRequest = (PlaystateRequest) o; + return Objects.equals(this.command, playstateRequest.command) && + Objects.equals(this.seekPositionTicks, playstateRequest.seekPositionTicks) && + Objects.equals(this.controllingUserId, playstateRequest.controllingUserId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(command, seekPositionTicks, controllingUserId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaystateRequest {\n"); + sb.append(" command: ").append(toIndentedString(command)).append("\n"); + sb.append(" seekPositionTicks: ").append(toIndentedString(seekPositionTicks)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Command"); + openapiFields.add("SeekPositionTicks"); + openapiFields.add("ControllingUserId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaystateRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaystateRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaystateRequest is not found in the empty JSON string", PlaystateRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaystateRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaystateRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Command` + if (jsonObj.get("Command") != null && !jsonObj.get("Command").isJsonNull()) { + PlaystateCommand.validateJsonElement(jsonObj.get("Command")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaystateRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaystateRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaystateRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaystateRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaystateRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaystateRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaystateRequest + * @throws IOException if the JSON string is invalid with respect to PlaystateRequest + */ + public static PlaystateRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaystateRequest.class); + } + + /** + * Convert an instance of PlaystateRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInfo.java new file mode 100644 index 0000000000000..e1288e47d6f2b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInfo.java @@ -0,0 +1,425 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PluginStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is a serializable stub class that is used by the api to provide information about installed plugins. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_CONFIGURATION_FILE_NAME = "ConfigurationFileName"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION_FILE_NAME) + @javax.annotation.Nullable + private String configurationFileName; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_CAN_UNINSTALL = "CanUninstall"; + @SerializedName(SERIALIZED_NAME_CAN_UNINSTALL) + @javax.annotation.Nullable + private Boolean canUninstall; + + public static final String SERIALIZED_NAME_HAS_IMAGE = "HasImage"; + @SerializedName(SERIALIZED_NAME_HAS_IMAGE) + @javax.annotation.Nullable + private Boolean hasImage; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private PluginStatus status; + + public PluginInfo() { + } + + public PluginInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PluginInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public PluginInfo configurationFileName(@javax.annotation.Nullable String configurationFileName) { + this.configurationFileName = configurationFileName; + return this; + } + + /** + * Gets or sets the name of the configuration file. + * @return configurationFileName + */ + @javax.annotation.Nullable + public String getConfigurationFileName() { + return configurationFileName; + } + + public void setConfigurationFileName(@javax.annotation.Nullable String configurationFileName) { + this.configurationFileName = configurationFileName; + } + + + public PluginInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public PluginInfo id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the unique id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public PluginInfo canUninstall(@javax.annotation.Nullable Boolean canUninstall) { + this.canUninstall = canUninstall; + return this; + } + + /** + * Gets or sets a value indicating whether the plugin can be uninstalled. + * @return canUninstall + */ + @javax.annotation.Nullable + public Boolean getCanUninstall() { + return canUninstall; + } + + public void setCanUninstall(@javax.annotation.Nullable Boolean canUninstall) { + this.canUninstall = canUninstall; + } + + + public PluginInfo hasImage(@javax.annotation.Nullable Boolean hasImage) { + this.hasImage = hasImage; + return this; + } + + /** + * Gets or sets a value indicating whether this plugin has a valid image. + * @return hasImage + */ + @javax.annotation.Nullable + public Boolean getHasImage() { + return hasImage; + } + + public void setHasImage(@javax.annotation.Nullable Boolean hasImage) { + this.hasImage = hasImage; + } + + + public PluginInfo status(@javax.annotation.Nullable PluginStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets a value indicating the status of the plugin. + * @return status + */ + @javax.annotation.Nullable + public PluginStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable PluginStatus status) { + this.status = status; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInfo pluginInfo = (PluginInfo) o; + return Objects.equals(this.name, pluginInfo.name) && + Objects.equals(this.version, pluginInfo.version) && + Objects.equals(this.configurationFileName, pluginInfo.configurationFileName) && + Objects.equals(this.description, pluginInfo.description) && + Objects.equals(this.id, pluginInfo.id) && + Objects.equals(this.canUninstall, pluginInfo.canUninstall) && + Objects.equals(this.hasImage, pluginInfo.hasImage) && + Objects.equals(this.status, pluginInfo.status); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, version, configurationFileName, description, id, canUninstall, hasImage, status); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" configurationFileName: ").append(toIndentedString(configurationFileName)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" canUninstall: ").append(toIndentedString(canUninstall)).append("\n"); + sb.append(" hasImage: ").append(toIndentedString(hasImage)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Version"); + openapiFields.add("ConfigurationFileName"); + openapiFields.add("Description"); + openapiFields.add("Id"); + openapiFields.add("CanUninstall"); + openapiFields.add("HasImage"); + openapiFields.add("Status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInfo is not found in the empty JSON string", PluginInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ConfigurationFileName") != null && !jsonObj.get("ConfigurationFileName").isJsonNull()) && !jsonObj.get("ConfigurationFileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ConfigurationFileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ConfigurationFileName").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + PluginStatus.validateJsonElement(jsonObj.get("Status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInfo + * @throws IOException if the JSON string is invalid with respect to PluginInfo + */ + public static PluginInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInfo.class); + } + + /** + * Convert an instance of PluginInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCancelledMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCancelledMessage.java new file mode 100644 index 0000000000000..f1961b2c04116 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCancelledMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plugin installation cancelled message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInstallationCancelledMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private InstallationInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PACKAGE_INSTALLATION_CANCELLED; + + public PluginInstallationCancelledMessage() { + } + + public PluginInstallationCancelledMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PluginInstallationCancelledMessage data(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + return this; + } + + /** + * Class InstallationInfo. + * @return data + */ + @javax.annotation.Nullable + public InstallationInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + } + + + public PluginInstallationCancelledMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInstallationCancelledMessage pluginInstallationCancelledMessage = (PluginInstallationCancelledMessage) o; + return Objects.equals(this.data, pluginInstallationCancelledMessage.data) && + Objects.equals(this.messageId, pluginInstallationCancelledMessage.messageId) && + Objects.equals(this.messageType, pluginInstallationCancelledMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInstallationCancelledMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInstallationCancelledMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInstallationCancelledMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInstallationCancelledMessage is not found in the empty JSON string", PluginInstallationCancelledMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInstallationCancelledMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInstallationCancelledMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + InstallationInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInstallationCancelledMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInstallationCancelledMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationCancelledMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInstallationCancelledMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInstallationCancelledMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInstallationCancelledMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInstallationCancelledMessage + * @throws IOException if the JSON string is invalid with respect to PluginInstallationCancelledMessage + */ + public static PluginInstallationCancelledMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInstallationCancelledMessage.class); + } + + /** + * Convert an instance of PluginInstallationCancelledMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCompletedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCompletedMessage.java new file mode 100644 index 0000000000000..7dde35ef943b8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationCompletedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plugin installation completed message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInstallationCompletedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private InstallationInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PACKAGE_INSTALLATION_COMPLETED; + + public PluginInstallationCompletedMessage() { + } + + public PluginInstallationCompletedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PluginInstallationCompletedMessage data(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + return this; + } + + /** + * Class InstallationInfo. + * @return data + */ + @javax.annotation.Nullable + public InstallationInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + } + + + public PluginInstallationCompletedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInstallationCompletedMessage pluginInstallationCompletedMessage = (PluginInstallationCompletedMessage) o; + return Objects.equals(this.data, pluginInstallationCompletedMessage.data) && + Objects.equals(this.messageId, pluginInstallationCompletedMessage.messageId) && + Objects.equals(this.messageType, pluginInstallationCompletedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInstallationCompletedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInstallationCompletedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInstallationCompletedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInstallationCompletedMessage is not found in the empty JSON string", PluginInstallationCompletedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInstallationCompletedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInstallationCompletedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + InstallationInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInstallationCompletedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInstallationCompletedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationCompletedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInstallationCompletedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInstallationCompletedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInstallationCompletedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInstallationCompletedMessage + * @throws IOException if the JSON string is invalid with respect to PluginInstallationCompletedMessage + */ + public static PluginInstallationCompletedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInstallationCompletedMessage.class); + } + + /** + * Convert an instance of PluginInstallationCompletedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationFailedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationFailedMessage.java new file mode 100644 index 0000000000000..769e1c1bc01cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallationFailedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plugin installation failed message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInstallationFailedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private InstallationInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PACKAGE_INSTALLATION_FAILED; + + public PluginInstallationFailedMessage() { + } + + public PluginInstallationFailedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PluginInstallationFailedMessage data(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + return this; + } + + /** + * Class InstallationInfo. + * @return data + */ + @javax.annotation.Nullable + public InstallationInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + } + + + public PluginInstallationFailedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInstallationFailedMessage pluginInstallationFailedMessage = (PluginInstallationFailedMessage) o; + return Objects.equals(this.data, pluginInstallationFailedMessage.data) && + Objects.equals(this.messageId, pluginInstallationFailedMessage.messageId) && + Objects.equals(this.messageType, pluginInstallationFailedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInstallationFailedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInstallationFailedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInstallationFailedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInstallationFailedMessage is not found in the empty JSON string", PluginInstallationFailedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInstallationFailedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInstallationFailedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + InstallationInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInstallationFailedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInstallationFailedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallationFailedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInstallationFailedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInstallationFailedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInstallationFailedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInstallationFailedMessage + * @throws IOException if the JSON string is invalid with respect to PluginInstallationFailedMessage + */ + public static PluginInstallationFailedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInstallationFailedMessage.class); + } + + /** + * Convert an instance of PluginInstallationFailedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallingMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallingMessage.java new file mode 100644 index 0000000000000..2e56a1aca32dc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginInstallingMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Package installing message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInstallingMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private InstallationInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PACKAGE_INSTALLING; + + public PluginInstallingMessage() { + } + + public PluginInstallingMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PluginInstallingMessage data(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + return this; + } + + /** + * Class InstallationInfo. + * @return data + */ + @javax.annotation.Nullable + public InstallationInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable InstallationInfo data) { + this.data = data; + } + + + public PluginInstallingMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInstallingMessage pluginInstallingMessage = (PluginInstallingMessage) o; + return Objects.equals(this.data, pluginInstallingMessage.data) && + Objects.equals(this.messageId, pluginInstallingMessage.messageId) && + Objects.equals(this.messageType, pluginInstallingMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInstallingMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInstallingMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInstallingMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInstallingMessage is not found in the empty JSON string", PluginInstallingMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInstallingMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInstallingMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + InstallationInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInstallingMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInstallingMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInstallingMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInstallingMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInstallingMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInstallingMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInstallingMessage + * @throws IOException if the JSON string is invalid with respect to PluginInstallingMessage + */ + public static PluginInstallingMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInstallingMessage.class); + } + + /** + * Convert an instance of PluginInstallingMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginStatus.java new file mode 100644 index 0000000000000..190a95d8a2fd6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginStatus.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Plugin load status. + */ +@JsonAdapter(PluginStatus.Adapter.class) +public enum PluginStatus { + + ACTIVE("Active"), + + RESTART("Restart"), + + DELETED("Deleted"), + + SUPERCEDED("Superceded"), + + MALFUNCTIONED("Malfunctioned"), + + NOT_SUPPORTED("NotSupported"), + + DISABLED("Disabled"); + + private String value; + + PluginStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PluginStatus fromValue(String value) { + for (PluginStatus b : PluginStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PluginStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PluginStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PluginStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PluginStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginUninstalledMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginUninstalledMessage.java new file mode 100644 index 0000000000000..beb8a22e367b5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PluginUninstalledMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PluginInfo; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plugin uninstalled message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginUninstalledMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private PluginInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.PACKAGE_UNINSTALLED; + + public PluginUninstalledMessage() { + } + + public PluginUninstalledMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public PluginUninstalledMessage data(@javax.annotation.Nullable PluginInfo data) { + this.data = data; + return this; + } + + /** + * This is a serializable stub class that is used by the api to provide information about installed plugins. + * @return data + */ + @javax.annotation.Nullable + public PluginInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable PluginInfo data) { + this.data = data; + } + + + public PluginUninstalledMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginUninstalledMessage pluginUninstalledMessage = (PluginUninstalledMessage) o; + return Objects.equals(this.data, pluginUninstalledMessage.data) && + Objects.equals(this.messageId, pluginUninstalledMessage.messageId) && + Objects.equals(this.messageType, pluginUninstalledMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginUninstalledMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginUninstalledMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginUninstalledMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginUninstalledMessage is not found in the empty JSON string", PluginUninstalledMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginUninstalledMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginUninstalledMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + PluginInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginUninstalledMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginUninstalledMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginUninstalledMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginUninstalledMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginUninstalledMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginUninstalledMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginUninstalledMessage + * @throws IOException if the JSON string is invalid with respect to PluginUninstalledMessage + */ + public static PluginUninstalledMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginUninstalledMessage.class); + } + + /** + * Convert an instance of PluginUninstalledMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java new file mode 100644 index 0000000000000..c0b2c4815d13a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PreviousItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PreviousItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public PreviousItemRequestDto() { + } + + public PreviousItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playing item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PreviousItemRequestDto previousItemRequestDto = (PreviousItemRequestDto) o; + return Objects.equals(this.playlistItemId, previousItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PreviousItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PreviousItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PreviousItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PreviousItemRequestDto is not found in the empty JSON string", PreviousItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PreviousItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PreviousItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PreviousItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PreviousItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PreviousItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PreviousItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PreviousItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PreviousItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PreviousItemRequestDto + * @throws IOException if the JSON string is invalid with respect to PreviousItemRequestDto + */ + public static PreviousItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PreviousItemRequestDto.class); + } + + /** + * Convert an instance of PreviousItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProblemDetails.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProblemDetails.java new file mode 100644 index 0000000000000..a89f45ffc144a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProblemDetails.java @@ -0,0 +1,416 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ProblemDetails + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ProblemDetails { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @javax.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private Integer status; + + public static final String SERIALIZED_NAME_DETAIL = "detail"; + @SerializedName(SERIALIZED_NAME_DETAIL) + @javax.annotation.Nullable + private String detail; + + public static final String SERIALIZED_NAME_INSTANCE = "instance"; + @SerializedName(SERIALIZED_NAME_INSTANCE) + @javax.annotation.Nullable + private String instance; + + public ProblemDetails() { + } + + public ProblemDetails type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ProblemDetails title(@javax.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @javax.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@javax.annotation.Nullable String title) { + this.title = title; + } + + + public ProblemDetails status(@javax.annotation.Nullable Integer status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + */ + @javax.annotation.Nullable + public Integer getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable Integer status) { + this.status = status; + } + + + public ProblemDetails detail(@javax.annotation.Nullable String detail) { + this.detail = detail; + return this; + } + + /** + * Get detail + * @return detail + */ + @javax.annotation.Nullable + public String getDetail() { + return detail; + } + + public void setDetail(@javax.annotation.Nullable String detail) { + this.detail = detail; + } + + + public ProblemDetails instance(@javax.annotation.Nullable String instance) { + this.instance = instance; + return this; + } + + /** + * Get instance + * @return instance + */ + @javax.annotation.Nullable + public String getInstance() { + return instance; + } + + public void setInstance(@javax.annotation.Nullable String instance) { + this.instance = instance; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the ProblemDetails instance itself + */ + public ProblemDetails putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProblemDetails problemDetails = (ProblemDetails) o; + return Objects.equals(this.type, problemDetails.type) && + Objects.equals(this.title, problemDetails.title) && + Objects.equals(this.status, problemDetails.status) && + Objects.equals(this.detail, problemDetails.detail) && + Objects.equals(this.instance, problemDetails.instance)&& + Objects.equals(this.additionalProperties, problemDetails.additionalProperties); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, title, status, detail, instance, additionalProperties); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProblemDetails {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" detail: ").append(toIndentedString(detail)).append("\n"); + sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("title"); + openapiFields.add("status"); + openapiFields.add("detail"); + openapiFields.add("instance"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProblemDetails + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProblemDetails.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ProblemDetails is not found in the empty JSON string", ProblemDetails.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("detail") != null && !jsonObj.get("detail").isJsonNull()) && !jsonObj.get("detail").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `detail` to be a primitive type in the JSON string but got `%s`", jsonObj.get("detail").toString())); + } + if ((jsonObj.get("instance") != null && !jsonObj.get("instance").isJsonNull()) && !jsonObj.get("instance").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `instance` to be a primitive type in the JSON string but got `%s`", jsonObj.get("instance").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProblemDetails.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProblemDetails' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ProblemDetails.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ProblemDetails value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ProblemDetails read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ProblemDetails instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ProblemDetails given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProblemDetails + * @throws IOException if the JSON string is invalid with respect to ProblemDetails + */ + public static ProblemDetails fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProblemDetails.class); + } + + /** + * Convert an instance of ProblemDetails to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProcessPriorityClass.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProcessPriorityClass.java new file mode 100644 index 0000000000000..01334cae01ae3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProcessPriorityClass.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProcessPriorityClass + */ +@JsonAdapter(ProcessPriorityClass.Adapter.class) +public enum ProcessPriorityClass { + + NORMAL("Normal"), + + IDLE("Idle"), + + HIGH("High"), + + REAL_TIME("RealTime"), + + BELOW_NORMAL("BelowNormal"), + + ABOVE_NORMAL("AboveNormal"); + + private String value; + + ProcessPriorityClass(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProcessPriorityClass fromValue(String value) { + for (ProcessPriorityClass b : ProcessPriorityClass.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProcessPriorityClass enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProcessPriorityClass read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProcessPriorityClass.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProcessPriorityClass.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileCondition.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileCondition.java new file mode 100644 index 0000000000000..292667ffd648a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileCondition.java @@ -0,0 +1,309 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ProfileConditionType; +import org.openapitools.client.model.ProfileConditionValue; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ProfileCondition + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ProfileCondition { + public static final String SERIALIZED_NAME_CONDITION = "Condition"; + @SerializedName(SERIALIZED_NAME_CONDITION) + @javax.annotation.Nullable + private ProfileConditionType condition; + + public static final String SERIALIZED_NAME_PROPERTY = "Property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private ProfileConditionValue property; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public static final String SERIALIZED_NAME_IS_REQUIRED = "IsRequired"; + @SerializedName(SERIALIZED_NAME_IS_REQUIRED) + @javax.annotation.Nullable + private Boolean isRequired; + + public ProfileCondition() { + } + + public ProfileCondition condition(@javax.annotation.Nullable ProfileConditionType condition) { + this.condition = condition; + return this; + } + + /** + * Get condition + * @return condition + */ + @javax.annotation.Nullable + public ProfileConditionType getCondition() { + return condition; + } + + public void setCondition(@javax.annotation.Nullable ProfileConditionType condition) { + this.condition = condition; + } + + + public ProfileCondition property(@javax.annotation.Nullable ProfileConditionValue property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public ProfileConditionValue getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable ProfileConditionValue property) { + this.property = property; + } + + + public ProfileCondition value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + public ProfileCondition isRequired(@javax.annotation.Nullable Boolean isRequired) { + this.isRequired = isRequired; + return this; + } + + /** + * Get isRequired + * @return isRequired + */ + @javax.annotation.Nullable + public Boolean getIsRequired() { + return isRequired; + } + + public void setIsRequired(@javax.annotation.Nullable Boolean isRequired) { + this.isRequired = isRequired; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProfileCondition profileCondition = (ProfileCondition) o; + return Objects.equals(this.condition, profileCondition.condition) && + Objects.equals(this.property, profileCondition.property) && + Objects.equals(this.value, profileCondition.value) && + Objects.equals(this.isRequired, profileCondition.isRequired); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(condition, property, value, isRequired); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProfileCondition {\n"); + sb.append(" condition: ").append(toIndentedString(condition)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" isRequired: ").append(toIndentedString(isRequired)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Condition"); + openapiFields.add("Property"); + openapiFields.add("Value"); + openapiFields.add("IsRequired"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProfileCondition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProfileCondition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ProfileCondition is not found in the empty JSON string", ProfileCondition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProfileCondition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ProfileCondition` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Condition` + if (jsonObj.get("Condition") != null && !jsonObj.get("Condition").isJsonNull()) { + ProfileConditionType.validateJsonElement(jsonObj.get("Condition")); + } + // validate the optional field `Property` + if (jsonObj.get("Property") != null && !jsonObj.get("Property").isJsonNull()) { + ProfileConditionValue.validateJsonElement(jsonObj.get("Property")); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProfileCondition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProfileCondition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ProfileCondition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ProfileCondition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProfileCondition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ProfileCondition given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProfileCondition + * @throws IOException if the JSON string is invalid with respect to ProfileCondition + */ + public static ProfileCondition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProfileCondition.class); + } + + /** + * Convert an instance of ProfileCondition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionType.java new file mode 100644 index 0000000000000..0b6c8513a665c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionType.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProfileConditionType + */ +@JsonAdapter(ProfileConditionType.Adapter.class) +public enum ProfileConditionType { + + EQUALS("Equals"), + + NOT_EQUALS("NotEquals"), + + LESS_THAN_EQUAL("LessThanEqual"), + + GREATER_THAN_EQUAL("GreaterThanEqual"), + + EQUALS_ANY("EqualsAny"); + + private String value; + + ProfileConditionType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProfileConditionType fromValue(String value) { + for (ProfileConditionType b : ProfileConditionType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProfileConditionType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProfileConditionType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProfileConditionType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProfileConditionType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionValue.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionValue.java new file mode 100644 index 0000000000000..96dc8f6eb3f62 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProfileConditionValue.java @@ -0,0 +1,122 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProfileConditionValue + */ +@JsonAdapter(ProfileConditionValue.Adapter.class) +public enum ProfileConditionValue { + + AUDIO_CHANNELS("AudioChannels"), + + AUDIO_BITRATE("AudioBitrate"), + + AUDIO_PROFILE("AudioProfile"), + + WIDTH("Width"), + + HEIGHT("Height"), + + HAS64_BIT_OFFSETS("Has64BitOffsets"), + + PACKET_LENGTH("PacketLength"), + + VIDEO_BIT_DEPTH("VideoBitDepth"), + + VIDEO_BITRATE("VideoBitrate"), + + VIDEO_FRAMERATE("VideoFramerate"), + + VIDEO_LEVEL("VideoLevel"), + + VIDEO_PROFILE("VideoProfile"), + + VIDEO_TIMESTAMP("VideoTimestamp"), + + IS_ANAMORPHIC("IsAnamorphic"), + + REF_FRAMES("RefFrames"), + + NUM_AUDIO_STREAMS("NumAudioStreams"), + + NUM_VIDEO_STREAMS("NumVideoStreams"), + + IS_SECONDARY_AUDIO("IsSecondaryAudio"), + + VIDEO_CODEC_TAG("VideoCodecTag"), + + IS_AVC("IsAvc"), + + IS_INTERLACED("IsInterlaced"), + + AUDIO_SAMPLE_RATE("AudioSampleRate"), + + AUDIO_BIT_DEPTH("AudioBitDepth"), + + VIDEO_RANGE_TYPE("VideoRangeType"); + + private String value; + + ProfileConditionValue(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProfileConditionValue fromValue(String value) { + for (ProfileConditionValue b : ProfileConditionValue.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProfileConditionValue enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProfileConditionValue read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProfileConditionValue.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProfileConditionValue.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProgramAudio.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProgramAudio.java new file mode 100644 index 0000000000000..8ea14502d1ca3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ProgramAudio.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProgramAudio + */ +@JsonAdapter(ProgramAudio.Adapter.class) +public enum ProgramAudio { + + MONO("Mono"), + + STEREO("Stereo"), + + DOLBY("Dolby"), + + DOLBY_DIGITAL("DolbyDigital"), + + THX("Thx"), + + ATMOS("Atmos"); + + private String value; + + ProgramAudio(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProgramAudio fromValue(String value) { + for (ProgramAudio b : ProgramAudio.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProgramAudio enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProgramAudio read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProgramAudio.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProgramAudio.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PublicSystemInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PublicSystemInfo.java new file mode 100644 index 0000000000000..cfda1715b6169 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/PublicSystemInfo.java @@ -0,0 +1,400 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PublicSystemInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PublicSystemInfo { + public static final String SERIALIZED_NAME_LOCAL_ADDRESS = "LocalAddress"; + @SerializedName(SERIALIZED_NAME_LOCAL_ADDRESS) + @javax.annotation.Nullable + private String localAddress; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_PRODUCT_NAME = "ProductName"; + @SerializedName(SERIALIZED_NAME_PRODUCT_NAME) + @javax.annotation.Nullable + private String productName; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM = "OperatingSystem"; + @Deprecated + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM) + @javax.annotation.Nullable + private String operatingSystem; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED = "StartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean startupWizardCompleted; + + public PublicSystemInfo() { + } + + public PublicSystemInfo localAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + return this; + } + + /** + * Gets or sets the local address. + * @return localAddress + */ + @javax.annotation.Nullable + public String getLocalAddress() { + return localAddress; + } + + public void setLocalAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + } + + + public PublicSystemInfo serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public PublicSystemInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the server version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public PublicSystemInfo productName(@javax.annotation.Nullable String productName) { + this.productName = productName; + return this; + } + + /** + * Gets or sets the product name. This is the AssemblyProduct name. + * @return productName + */ + @javax.annotation.Nullable + public String getProductName() { + return productName; + } + + public void setProductName(@javax.annotation.Nullable String productName) { + this.productName = productName; + } + + + @Deprecated + public PublicSystemInfo operatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + return this; + } + + /** + * Gets or sets the operating system. + * @return operatingSystem + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getOperatingSystem() { + return operatingSystem; + } + + @Deprecated + public void setOperatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + } + + + public PublicSystemInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public PublicSystemInfo startupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether the startup wizard is completed. + * @return startupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getStartupWizardCompleted() { + return startupWizardCompleted; + } + + public void setStartupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PublicSystemInfo publicSystemInfo = (PublicSystemInfo) o; + return Objects.equals(this.localAddress, publicSystemInfo.localAddress) && + Objects.equals(this.serverName, publicSystemInfo.serverName) && + Objects.equals(this.version, publicSystemInfo.version) && + Objects.equals(this.productName, publicSystemInfo.productName) && + Objects.equals(this.operatingSystem, publicSystemInfo.operatingSystem) && + Objects.equals(this.id, publicSystemInfo.id) && + Objects.equals(this.startupWizardCompleted, publicSystemInfo.startupWizardCompleted); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(localAddress, serverName, version, productName, operatingSystem, id, startupWizardCompleted); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PublicSystemInfo {\n"); + sb.append(" localAddress: ").append(toIndentedString(localAddress)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productName: ").append(toIndentedString(productName)).append("\n"); + sb.append(" operatingSystem: ").append(toIndentedString(operatingSystem)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" startupWizardCompleted: ").append(toIndentedString(startupWizardCompleted)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LocalAddress"); + openapiFields.add("ServerName"); + openapiFields.add("Version"); + openapiFields.add("ProductName"); + openapiFields.add("OperatingSystem"); + openapiFields.add("Id"); + openapiFields.add("StartupWizardCompleted"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PublicSystemInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PublicSystemInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PublicSystemInfo is not found in the empty JSON string", PublicSystemInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PublicSystemInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PublicSystemInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LocalAddress") != null && !jsonObj.get("LocalAddress").isJsonNull()) && !jsonObj.get("LocalAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalAddress").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ProductName") != null && !jsonObj.get("ProductName").isJsonNull()) && !jsonObj.get("ProductName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProductName").toString())); + } + if ((jsonObj.get("OperatingSystem") != null && !jsonObj.get("OperatingSystem").isJsonNull()) && !jsonObj.get("OperatingSystem").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystem` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystem").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PublicSystemInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PublicSystemInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PublicSystemInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PublicSystemInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PublicSystemInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PublicSystemInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PublicSystemInfo + * @throws IOException if the JSON string is invalid with respect to PublicSystemInfo + */ + public static PublicSystemInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PublicSystemInfo.class); + } + + /** + * Convert an instance of PublicSystemInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFilters.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFilters.java new file mode 100644 index 0000000000000..916fc946d2f72 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFilters.java @@ -0,0 +1,279 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameGuidPair; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueryFilters + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueryFilters { + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public QueryFilters() { + } + + public QueryFilters genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public QueryFilters addGenresItem(NameGuidPair genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Get genres + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public QueryFilters tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public QueryFilters addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Get tags + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryFilters queryFilters = (QueryFilters) o; + return Objects.equals(this.genres, queryFilters.genres) && + Objects.equals(this.tags, queryFilters.tags); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(genres, tags); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueryFilters {\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Genres"); + openapiFields.add("Tags"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueryFilters + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueryFilters.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueryFilters is not found in the empty JSON string", QueryFilters.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueryFilters.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueryFilters` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull()) { + JsonArray jsonArraygenres = jsonObj.getAsJsonArray("Genres"); + if (jsonArraygenres != null) { + // ensure the json data is an array + if (!jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + + // validate the optional field `Genres` (array) + for (int i = 0; i < jsonArraygenres.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraygenres.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueryFilters.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueryFilters' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueryFilters.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueryFilters value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueryFilters read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueryFilters given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueryFilters + * @throws IOException if the JSON string is invalid with respect to QueryFilters + */ + public static QueryFilters fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueryFilters.class); + } + + /** + * Convert an instance of QueryFilters to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java new file mode 100644 index 0000000000000..8207e2b101ec7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java @@ -0,0 +1,346 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueryFiltersLegacy + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueryFiltersLegacy { + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public static final String SERIALIZED_NAME_OFFICIAL_RATINGS = "OfficialRatings"; + @SerializedName(SERIALIZED_NAME_OFFICIAL_RATINGS) + @javax.annotation.Nullable + private List officialRatings; + + public static final String SERIALIZED_NAME_YEARS = "Years"; + @SerializedName(SERIALIZED_NAME_YEARS) + @javax.annotation.Nullable + private List years; + + public QueryFiltersLegacy() { + } + + public QueryFiltersLegacy genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public QueryFiltersLegacy addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Get genres + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public QueryFiltersLegacy tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public QueryFiltersLegacy addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Get tags + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + public QueryFiltersLegacy officialRatings(@javax.annotation.Nullable List officialRatings) { + this.officialRatings = officialRatings; + return this; + } + + public QueryFiltersLegacy addOfficialRatingsItem(String officialRatingsItem) { + if (this.officialRatings == null) { + this.officialRatings = new ArrayList<>(); + } + this.officialRatings.add(officialRatingsItem); + return this; + } + + /** + * Get officialRatings + * @return officialRatings + */ + @javax.annotation.Nullable + public List getOfficialRatings() { + return officialRatings; + } + + public void setOfficialRatings(@javax.annotation.Nullable List officialRatings) { + this.officialRatings = officialRatings; + } + + + public QueryFiltersLegacy years(@javax.annotation.Nullable List years) { + this.years = years; + return this; + } + + public QueryFiltersLegacy addYearsItem(Integer yearsItem) { + if (this.years == null) { + this.years = new ArrayList<>(); + } + this.years.add(yearsItem); + return this; + } + + /** + * Get years + * @return years + */ + @javax.annotation.Nullable + public List getYears() { + return years; + } + + public void setYears(@javax.annotation.Nullable List years) { + this.years = years; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryFiltersLegacy queryFiltersLegacy = (QueryFiltersLegacy) o; + return Objects.equals(this.genres, queryFiltersLegacy.genres) && + Objects.equals(this.tags, queryFiltersLegacy.tags) && + Objects.equals(this.officialRatings, queryFiltersLegacy.officialRatings) && + Objects.equals(this.years, queryFiltersLegacy.years); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(genres, tags, officialRatings, years); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueryFiltersLegacy {\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" officialRatings: ").append(toIndentedString(officialRatings)).append("\n"); + sb.append(" years: ").append(toIndentedString(years)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Genres"); + openapiFields.add("Tags"); + openapiFields.add("OfficialRatings"); + openapiFields.add("Years"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueryFiltersLegacy + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueryFiltersLegacy.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueryFiltersLegacy is not found in the empty JSON string", QueryFiltersLegacy.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueryFiltersLegacy.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueryFiltersLegacy` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("OfficialRatings") != null && !jsonObj.get("OfficialRatings").isJsonNull() && !jsonObj.get("OfficialRatings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `OfficialRatings` to be an array in the JSON string but got `%s`", jsonObj.get("OfficialRatings").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Years") != null && !jsonObj.get("Years").isJsonNull() && !jsonObj.get("Years").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Years` to be an array in the JSON string but got `%s`", jsonObj.get("Years").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueryFiltersLegacy.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueryFiltersLegacy' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueryFiltersLegacy.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueryFiltersLegacy value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueryFiltersLegacy read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueryFiltersLegacy given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueryFiltersLegacy + * @throws IOException if the JSON string is invalid with respect to QueryFiltersLegacy + */ + public static QueryFiltersLegacy fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueryFiltersLegacy.class); + } + + /** + * Convert an instance of QueryFiltersLegacy to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueItem.java new file mode 100644 index 0000000000000..3e5239d785f11 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueItem.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueueItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueueItem { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public QueueItem() { + } + + public QueueItem id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public QueueItem playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueueItem queueItem = (QueueItem) o; + return Objects.equals(this.id, queueItem.id) && + Objects.equals(this.playlistItemId, queueItem.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueueItem {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueueItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueueItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueueItem is not found in the empty JSON string", QueueItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueueItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueueItem` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueueItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueueItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueueItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueueItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueueItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueueItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueueItem + * @throws IOException if the JSON string is invalid with respect to QueueItem + */ + public static QueueItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueueItem.class); + } + + /** + * Convert an instance of QueueItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueRequestDto.java new file mode 100644 index 0000000000000..43510af6dce0f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QueueRequestDto.java @@ -0,0 +1,250 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.GroupQueueMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class QueueRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueueRequestDto { + public static final String SERIALIZED_NAME_ITEM_IDS = "ItemIds"; + @SerializedName(SERIALIZED_NAME_ITEM_IDS) + @javax.annotation.Nullable + private List itemIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupQueueMode mode; + + public QueueRequestDto() { + } + + public QueueRequestDto itemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + return this; + } + + public QueueRequestDto addItemIdsItem(UUID itemIdsItem) { + if (this.itemIds == null) { + this.itemIds = new ArrayList<>(); + } + this.itemIds.add(itemIdsItem); + return this; + } + + /** + * Gets or sets the items to enqueue. + * @return itemIds + */ + @javax.annotation.Nullable + public List getItemIds() { + return itemIds; + } + + public void setItemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + } + + + public QueueRequestDto mode(@javax.annotation.Nullable GroupQueueMode mode) { + this.mode = mode; + return this; + } + + /** + * Gets or sets the mode in which to add the new items. + * @return mode + */ + @javax.annotation.Nullable + public GroupQueueMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupQueueMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueueRequestDto queueRequestDto = (QueueRequestDto) o; + return Objects.equals(this.itemIds, queueRequestDto.itemIds) && + Objects.equals(this.mode, queueRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(itemIds, mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueueRequestDto {\n"); + sb.append(" itemIds: ").append(toIndentedString(itemIds)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemIds"); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueueRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueueRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueueRequestDto is not found in the empty JSON string", QueueRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueueRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueueRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ItemIds") != null && !jsonObj.get("ItemIds").isJsonNull() && !jsonObj.get("ItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("ItemIds").toString())); + } + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupQueueMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueueRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueueRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueueRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueueRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueueRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueueRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueueRequestDto + * @throws IOException if the JSON string is invalid with respect to QueueRequestDto + */ + public static QueueRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueueRequestDto.class); + } + + /** + * Convert an instance of QueueRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectDto.java new file mode 100644 index 0000000000000..6c482f9604247 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The quick connect request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QuickConnectDto { + public static final String SERIALIZED_NAME_SECRET = "Secret"; + @SerializedName(SERIALIZED_NAME_SECRET) + @javax.annotation.Nonnull + private String secret; + + public QuickConnectDto() { + } + + public QuickConnectDto secret(@javax.annotation.Nonnull String secret) { + this.secret = secret; + return this; + } + + /** + * Gets or sets the quick connect secret. + * @return secret + */ + @javax.annotation.Nonnull + public String getSecret() { + return secret; + } + + public void setSecret(@javax.annotation.Nonnull String secret) { + this.secret = secret; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuickConnectDto quickConnectDto = (QuickConnectDto) o; + return Objects.equals(this.secret, quickConnectDto.secret); + } + + @Override + public int hashCode() { + return Objects.hash(secret); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuickConnectDto {\n"); + sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Secret"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Secret"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QuickConnectDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QuickConnectDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QuickConnectDto is not found in the empty JSON string", QuickConnectDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QuickConnectDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QuickConnectDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : QuickConnectDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Secret").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Secret` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Secret").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QuickConnectDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QuickConnectDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QuickConnectDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QuickConnectDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QuickConnectDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QuickConnectDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of QuickConnectDto + * @throws IOException if the JSON string is invalid with respect to QuickConnectDto + */ + public static QuickConnectDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QuickConnectDto.class); + } + + /** + * Convert an instance of QuickConnectDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectResult.java new file mode 100644 index 0000000000000..e1b8ccf291f4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/QuickConnectResult.java @@ -0,0 +1,411 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Stores the state of an quick connect request. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QuickConnectResult { + public static final String SERIALIZED_NAME_AUTHENTICATED = "Authenticated"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATED) + @javax.annotation.Nullable + private Boolean authenticated; + + public static final String SERIALIZED_NAME_SECRET = "Secret"; + @SerializedName(SERIALIZED_NAME_SECRET) + @javax.annotation.Nullable + private String secret; + + public static final String SERIALIZED_NAME_CODE = "Code"; + @SerializedName(SERIALIZED_NAME_CODE) + @javax.annotation.Nullable + private String code; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_DATE_ADDED = "DateAdded"; + @SerializedName(SERIALIZED_NAME_DATE_ADDED) + @javax.annotation.Nullable + private OffsetDateTime dateAdded; + + public QuickConnectResult() { + } + + public QuickConnectResult authenticated(@javax.annotation.Nullable Boolean authenticated) { + this.authenticated = authenticated; + return this; + } + + /** + * Gets or sets a value indicating whether this request is authorized. + * @return authenticated + */ + @javax.annotation.Nullable + public Boolean getAuthenticated() { + return authenticated; + } + + public void setAuthenticated(@javax.annotation.Nullable Boolean authenticated) { + this.authenticated = authenticated; + } + + + public QuickConnectResult secret(@javax.annotation.Nullable String secret) { + this.secret = secret; + return this; + } + + /** + * Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. + * @return secret + */ + @javax.annotation.Nullable + public String getSecret() { + return secret; + } + + public void setSecret(@javax.annotation.Nullable String secret) { + this.secret = secret; + } + + + public QuickConnectResult code(@javax.annotation.Nullable String code) { + this.code = code; + return this; + } + + /** + * Gets the user facing code used so the user can quickly differentiate this request from others. + * @return code + */ + @javax.annotation.Nullable + public String getCode() { + return code; + } + + public void setCode(@javax.annotation.Nullable String code) { + this.code = code; + } + + + public QuickConnectResult deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets the requesting device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public QuickConnectResult deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets the requesting device name. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public QuickConnectResult appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets the requesting app name. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public QuickConnectResult appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets the requesting app version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public QuickConnectResult dateAdded(@javax.annotation.Nullable OffsetDateTime dateAdded) { + this.dateAdded = dateAdded; + return this; + } + + /** + * Gets or sets the DateTime that this request was created. + * @return dateAdded + */ + @javax.annotation.Nullable + public OffsetDateTime getDateAdded() { + return dateAdded; + } + + public void setDateAdded(@javax.annotation.Nullable OffsetDateTime dateAdded) { + this.dateAdded = dateAdded; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuickConnectResult quickConnectResult = (QuickConnectResult) o; + return Objects.equals(this.authenticated, quickConnectResult.authenticated) && + Objects.equals(this.secret, quickConnectResult.secret) && + Objects.equals(this.code, quickConnectResult.code) && + Objects.equals(this.deviceId, quickConnectResult.deviceId) && + Objects.equals(this.deviceName, quickConnectResult.deviceName) && + Objects.equals(this.appName, quickConnectResult.appName) && + Objects.equals(this.appVersion, quickConnectResult.appVersion) && + Objects.equals(this.dateAdded, quickConnectResult.dateAdded); + } + + @Override + public int hashCode() { + return Objects.hash(authenticated, secret, code, deviceId, deviceName, appName, appVersion, dateAdded); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuickConnectResult {\n"); + sb.append(" authenticated: ").append(toIndentedString(authenticated)).append("\n"); + sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" dateAdded: ").append(toIndentedString(dateAdded)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Authenticated"); + openapiFields.add("Secret"); + openapiFields.add("Code"); + openapiFields.add("DeviceId"); + openapiFields.add("DeviceName"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("DateAdded"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QuickConnectResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QuickConnectResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QuickConnectResult is not found in the empty JSON string", QuickConnectResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QuickConnectResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QuickConnectResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Secret") != null && !jsonObj.get("Secret").isJsonNull()) && !jsonObj.get("Secret").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Secret` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Secret").toString())); + } + if ((jsonObj.get("Code") != null && !jsonObj.get("Code").isJsonNull()) && !jsonObj.get("Code").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Code").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QuickConnectResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QuickConnectResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QuickConnectResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QuickConnectResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QuickConnectResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QuickConnectResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of QuickConnectResult + * @throws IOException if the JSON string is invalid with respect to QuickConnectResult + */ + public static QuickConnectResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QuickConnectResult.class); + } + + /** + * Convert an instance of QuickConnectResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RatingType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RatingType.java new file mode 100644 index 0000000000000..68cc3f307ae67 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RatingType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RatingType + */ +@JsonAdapter(RatingType.Adapter.class) +public enum RatingType { + + SCORE("Score"), + + LIKES("Likes"); + + private String value; + + RatingType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RatingType fromValue(String value) { + for (RatingType b : RatingType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RatingType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RatingType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RatingType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RatingType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ReadyRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ReadyRequestDto.java new file mode 100644 index 0000000000000..bb7d35023d59f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ReadyRequestDto.java @@ -0,0 +1,289 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ReadyRequest. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ReadyRequestDto { + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_IS_PLAYING = "IsPlaying"; + @SerializedName(SERIALIZED_NAME_IS_PLAYING) + @javax.annotation.Nullable + private Boolean isPlaying; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public ReadyRequestDto() { + } + + public ReadyRequestDto when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets when the request has been made by the client. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public ReadyRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public ReadyRequestDto isPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + return this; + } + + /** + * Gets or sets a value indicating whether the client playback is unpaused. + * @return isPlaying + */ + @javax.annotation.Nullable + public Boolean getIsPlaying() { + return isPlaying; + } + + public void setIsPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + } + + + public ReadyRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReadyRequestDto readyRequestDto = (ReadyRequestDto) o; + return Objects.equals(this.when, readyRequestDto.when) && + Objects.equals(this.positionTicks, readyRequestDto.positionTicks) && + Objects.equals(this.isPlaying, readyRequestDto.isPlaying) && + Objects.equals(this.playlistItemId, readyRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(when, positionTicks, isPlaying, playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReadyRequestDto {\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" isPlaying: ").append(toIndentedString(isPlaying)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("IsPlaying"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ReadyRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ReadyRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ReadyRequestDto is not found in the empty JSON string", ReadyRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ReadyRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ReadyRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ReadyRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ReadyRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ReadyRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ReadyRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ReadyRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ReadyRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ReadyRequestDto + * @throws IOException if the JSON string is invalid with respect to ReadyRequestDto + */ + public static ReadyRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ReadyRequestDto.class); + } + + /** + * Convert an instance of ReadyRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationDto.java new file mode 100644 index 0000000000000..b05772730a603 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationDto.java @@ -0,0 +1,333 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.RecommendationType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RecommendationDto + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RecommendationDto { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_RECOMMENDATION_TYPE = "RecommendationType"; + @SerializedName(SERIALIZED_NAME_RECOMMENDATION_TYPE) + @javax.annotation.Nullable + private RecommendationType recommendationType; + + public static final String SERIALIZED_NAME_BASELINE_ITEM_NAME = "BaselineItemName"; + @SerializedName(SERIALIZED_NAME_BASELINE_ITEM_NAME) + @javax.annotation.Nullable + private String baselineItemName; + + public static final String SERIALIZED_NAME_CATEGORY_ID = "CategoryId"; + @SerializedName(SERIALIZED_NAME_CATEGORY_ID) + @javax.annotation.Nullable + private UUID categoryId; + + public RecommendationDto() { + } + + public RecommendationDto items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public RecommendationDto addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Get items + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public RecommendationDto recommendationType(@javax.annotation.Nullable RecommendationType recommendationType) { + this.recommendationType = recommendationType; + return this; + } + + /** + * Get recommendationType + * @return recommendationType + */ + @javax.annotation.Nullable + public RecommendationType getRecommendationType() { + return recommendationType; + } + + public void setRecommendationType(@javax.annotation.Nullable RecommendationType recommendationType) { + this.recommendationType = recommendationType; + } + + + public RecommendationDto baselineItemName(@javax.annotation.Nullable String baselineItemName) { + this.baselineItemName = baselineItemName; + return this; + } + + /** + * Get baselineItemName + * @return baselineItemName + */ + @javax.annotation.Nullable + public String getBaselineItemName() { + return baselineItemName; + } + + public void setBaselineItemName(@javax.annotation.Nullable String baselineItemName) { + this.baselineItemName = baselineItemName; + } + + + public RecommendationDto categoryId(@javax.annotation.Nullable UUID categoryId) { + this.categoryId = categoryId; + return this; + } + + /** + * Get categoryId + * @return categoryId + */ + @javax.annotation.Nullable + public UUID getCategoryId() { + return categoryId; + } + + public void setCategoryId(@javax.annotation.Nullable UUID categoryId) { + this.categoryId = categoryId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RecommendationDto recommendationDto = (RecommendationDto) o; + return Objects.equals(this.items, recommendationDto.items) && + Objects.equals(this.recommendationType, recommendationDto.recommendationType) && + Objects.equals(this.baselineItemName, recommendationDto.baselineItemName) && + Objects.equals(this.categoryId, recommendationDto.categoryId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, recommendationType, baselineItemName, categoryId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RecommendationDto {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" recommendationType: ").append(toIndentedString(recommendationType)).append("\n"); + sb.append(" baselineItemName: ").append(toIndentedString(baselineItemName)).append("\n"); + sb.append(" categoryId: ").append(toIndentedString(categoryId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("RecommendationType"); + openapiFields.add("BaselineItemName"); + openapiFields.add("CategoryId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RecommendationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RecommendationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RecommendationDto is not found in the empty JSON string", RecommendationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RecommendationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RecommendationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + // validate the optional field `RecommendationType` + if (jsonObj.get("RecommendationType") != null && !jsonObj.get("RecommendationType").isJsonNull()) { + RecommendationType.validateJsonElement(jsonObj.get("RecommendationType")); + } + if ((jsonObj.get("BaselineItemName") != null && !jsonObj.get("BaselineItemName").isJsonNull()) && !jsonObj.get("BaselineItemName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaselineItemName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaselineItemName").toString())); + } + if ((jsonObj.get("CategoryId") != null && !jsonObj.get("CategoryId").isJsonNull()) && !jsonObj.get("CategoryId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CategoryId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CategoryId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RecommendationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RecommendationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RecommendationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RecommendationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RecommendationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RecommendationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of RecommendationDto + * @throws IOException if the JSON string is invalid with respect to RecommendationDto + */ + public static RecommendationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RecommendationDto.class); + } + + /** + * Convert an instance of RecommendationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationType.java new file mode 100644 index 0000000000000..f72c0acd4a7d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecommendationType.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RecommendationType + */ +@JsonAdapter(RecommendationType.Adapter.class) +public enum RecommendationType { + + SIMILAR_TO_RECENTLY_PLAYED("SimilarToRecentlyPlayed"), + + SIMILAR_TO_LIKED_ITEM("SimilarToLikedItem"), + + HAS_DIRECTOR_FROM_RECENTLY_PLAYED("HasDirectorFromRecentlyPlayed"), + + HAS_ACTOR_FROM_RECENTLY_PLAYED("HasActorFromRecentlyPlayed"), + + HAS_LIKED_DIRECTOR("HasLikedDirector"), + + HAS_LIKED_ACTOR("HasLikedActor"); + + private String value; + + RecommendationType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecommendationType fromValue(String value) { + for (RecommendationType b : RecommendationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecommendationType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecommendationType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecommendationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecommendationType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecordingStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecordingStatus.java new file mode 100644 index 0000000000000..7015ca4f5059f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RecordingStatus.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RecordingStatus + */ +@JsonAdapter(RecordingStatus.Adapter.class) +public enum RecordingStatus { + + NEW("New"), + + IN_PROGRESS("InProgress"), + + COMPLETED("Completed"), + + CANCELLED("Cancelled"), + + CONFLICTED_OK("ConflictedOk"), + + CONFLICTED_NOT_OK("ConflictedNotOk"), + + ERROR("Error"); + + private String value; + + RecordingStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingStatus fromValue(String value) { + for (RecordingStatus b : RecordingStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RefreshProgressMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RefreshProgressMessage.java new file mode 100644 index 0000000000000..746e032fa302c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RefreshProgressMessage.java @@ -0,0 +1,287 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Refresh progress message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RefreshProgressMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private Map data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.REFRESH_PROGRESS; + + public RefreshProgressMessage() { + } + + public RefreshProgressMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public RefreshProgressMessage data(@javax.annotation.Nullable Map data) { + this.data = data; + return this; + } + + public RefreshProgressMessage putDataItem(String key, String dataItem) { + if (this.data == null) { + this.data = new HashMap<>(); + } + this.data.put(key, dataItem); + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public Map getData() { + return data; + } + + public void setData(@javax.annotation.Nullable Map data) { + this.data = data; + } + + + public RefreshProgressMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RefreshProgressMessage refreshProgressMessage = (RefreshProgressMessage) o; + return Objects.equals(this.data, refreshProgressMessage.data) && + Objects.equals(this.messageId, refreshProgressMessage.messageId) && + Objects.equals(this.messageType, refreshProgressMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RefreshProgressMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RefreshProgressMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RefreshProgressMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RefreshProgressMessage is not found in the empty JSON string", RefreshProgressMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RefreshProgressMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RefreshProgressMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RefreshProgressMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RefreshProgressMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RefreshProgressMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RefreshProgressMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RefreshProgressMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RefreshProgressMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of RefreshProgressMessage + * @throws IOException if the JSON string is invalid with respect to RefreshProgressMessage + */ + public static RefreshProgressMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RefreshProgressMessage.class); + } + + /** + * Convert an instance of RefreshProgressMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageInfo.java new file mode 100644 index 0000000000000..148f211ea1e29 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageInfo.java @@ -0,0 +1,480 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.RatingType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoteImageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteImageInfo { + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_THUMBNAIL_URL = "ThumbnailUrl"; + @SerializedName(SERIALIZED_NAME_THUMBNAIL_URL) + @javax.annotation.Nullable + private String thumbnailUrl; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Double communityRating; + + public static final String SERIALIZED_NAME_VOTE_COUNT = "VoteCount"; + @SerializedName(SERIALIZED_NAME_VOTE_COUNT) + @javax.annotation.Nullable + private Integer voteCount; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ImageType type; + + public static final String SERIALIZED_NAME_RATING_TYPE = "RatingType"; + @SerializedName(SERIALIZED_NAME_RATING_TYPE) + @javax.annotation.Nullable + private RatingType ratingType; + + public RemoteImageInfo() { + } + + public RemoteImageInfo providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Gets or sets the name of the provider. + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + public RemoteImageInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the URL. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public RemoteImageInfo thumbnailUrl(@javax.annotation.Nullable String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + return this; + } + + /** + * Gets or sets a url used for previewing a smaller version. + * @return thumbnailUrl + */ + @javax.annotation.Nullable + public String getThumbnailUrl() { + return thumbnailUrl; + } + + public void setThumbnailUrl(@javax.annotation.Nullable String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + } + + + public RemoteImageInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public RemoteImageInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public RemoteImageInfo communityRating(@javax.annotation.Nullable Double communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Gets or sets the community rating. + * @return communityRating + */ + @javax.annotation.Nullable + public Double getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Double communityRating) { + this.communityRating = communityRating; + } + + + public RemoteImageInfo voteCount(@javax.annotation.Nullable Integer voteCount) { + this.voteCount = voteCount; + return this; + } + + /** + * Gets or sets the vote count. + * @return voteCount + */ + @javax.annotation.Nullable + public Integer getVoteCount() { + return voteCount; + } + + public void setVoteCount(@javax.annotation.Nullable Integer voteCount) { + this.voteCount = voteCount; + } + + + public RemoteImageInfo language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the language. + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public RemoteImageInfo type(@javax.annotation.Nullable ImageType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public ImageType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ImageType type) { + this.type = type; + } + + + public RemoteImageInfo ratingType(@javax.annotation.Nullable RatingType ratingType) { + this.ratingType = ratingType; + return this; + } + + /** + * Gets or sets the type of the rating. + * @return ratingType + */ + @javax.annotation.Nullable + public RatingType getRatingType() { + return ratingType; + } + + public void setRatingType(@javax.annotation.Nullable RatingType ratingType) { + this.ratingType = ratingType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteImageInfo remoteImageInfo = (RemoteImageInfo) o; + return Objects.equals(this.providerName, remoteImageInfo.providerName) && + Objects.equals(this.url, remoteImageInfo.url) && + Objects.equals(this.thumbnailUrl, remoteImageInfo.thumbnailUrl) && + Objects.equals(this.height, remoteImageInfo.height) && + Objects.equals(this.width, remoteImageInfo.width) && + Objects.equals(this.communityRating, remoteImageInfo.communityRating) && + Objects.equals(this.voteCount, remoteImageInfo.voteCount) && + Objects.equals(this.language, remoteImageInfo.language) && + Objects.equals(this.type, remoteImageInfo.type) && + Objects.equals(this.ratingType, remoteImageInfo.ratingType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(providerName, url, thumbnailUrl, height, width, communityRating, voteCount, language, type, ratingType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteImageInfo {\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" thumbnailUrl: ").append(toIndentedString(thumbnailUrl)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" voteCount: ").append(toIndentedString(voteCount)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" ratingType: ").append(toIndentedString(ratingType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ProviderName"); + openapiFields.add("Url"); + openapiFields.add("ThumbnailUrl"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("CommunityRating"); + openapiFields.add("VoteCount"); + openapiFields.add("Language"); + openapiFields.add("Type"); + openapiFields.add("RatingType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteImageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteImageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteImageInfo is not found in the empty JSON string", RemoteImageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteImageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteImageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("ThumbnailUrl") != null && !jsonObj.get("ThumbnailUrl").isJsonNull()) && !jsonObj.get("ThumbnailUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbnailUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbnailUrl").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `RatingType` + if (jsonObj.get("RatingType") != null && !jsonObj.get("RatingType").isJsonNull()) { + RatingType.validateJsonElement(jsonObj.get("RatingType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteImageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteImageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteImageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteImageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteImageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteImageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteImageInfo + * @throws IOException if the JSON string is invalid with respect to RemoteImageInfo + */ + public static RemoteImageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteImageInfo.class); + } + + /** + * Convert an instance of RemoteImageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageResult.java new file mode 100644 index 0000000000000..33737c51507c6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteImageResult.java @@ -0,0 +1,306 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.RemoteImageInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoteImageResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteImageResult { + public static final String SERIALIZED_NAME_IMAGES = "Images"; + @SerializedName(SERIALIZED_NAME_IMAGES) + @javax.annotation.Nullable + private List images; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_PROVIDERS = "Providers"; + @SerializedName(SERIALIZED_NAME_PROVIDERS) + @javax.annotation.Nullable + private List providers; + + public RemoteImageResult() { + } + + public RemoteImageResult images(@javax.annotation.Nullable List images) { + this.images = images; + return this; + } + + public RemoteImageResult addImagesItem(RemoteImageInfo imagesItem) { + if (this.images == null) { + this.images = new ArrayList<>(); + } + this.images.add(imagesItem); + return this; + } + + /** + * Gets or sets the images. + * @return images + */ + @javax.annotation.Nullable + public List getImages() { + return images; + } + + public void setImages(@javax.annotation.Nullable List images) { + this.images = images; + } + + + public RemoteImageResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total record count. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public RemoteImageResult providers(@javax.annotation.Nullable List providers) { + this.providers = providers; + return this; + } + + public RemoteImageResult addProvidersItem(String providersItem) { + if (this.providers == null) { + this.providers = new ArrayList<>(); + } + this.providers.add(providersItem); + return this; + } + + /** + * Gets or sets the providers. + * @return providers + */ + @javax.annotation.Nullable + public List getProviders() { + return providers; + } + + public void setProviders(@javax.annotation.Nullable List providers) { + this.providers = providers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteImageResult remoteImageResult = (RemoteImageResult) o; + return Objects.equals(this.images, remoteImageResult.images) && + Objects.equals(this.totalRecordCount, remoteImageResult.totalRecordCount) && + Objects.equals(this.providers, remoteImageResult.providers); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(images, totalRecordCount, providers); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteImageResult {\n"); + sb.append(" images: ").append(toIndentedString(images)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" providers: ").append(toIndentedString(providers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Images"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("Providers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteImageResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteImageResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteImageResult is not found in the empty JSON string", RemoteImageResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteImageResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteImageResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Images") != null && !jsonObj.get("Images").isJsonNull()) { + JsonArray jsonArrayimages = jsonObj.getAsJsonArray("Images"); + if (jsonArrayimages != null) { + // ensure the json data is an array + if (!jsonObj.get("Images").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Images` to be an array in the JSON string but got `%s`", jsonObj.get("Images").toString())); + } + + // validate the optional field `Images` (array) + for (int i = 0; i < jsonArrayimages.size(); i++) { + RemoteImageInfo.validateJsonElement(jsonArrayimages.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Providers") != null && !jsonObj.get("Providers").isJsonNull() && !jsonObj.get("Providers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Providers` to be an array in the JSON string but got `%s`", jsonObj.get("Providers").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteImageResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteImageResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteImageResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteImageResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteImageResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteImageResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteImageResult + * @throws IOException if the JSON string is invalid with respect to RemoteImageResult + */ + public static RemoteImageResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteImageResult.class); + } + + /** + * Convert an instance of RemoteImageResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteLyricInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteLyricInfoDto.java new file mode 100644 index 0000000000000..5761b1f4f0c37 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteLyricInfoDto.java @@ -0,0 +1,268 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.LyricDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The remote lyric info dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteLyricInfoDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public static final String SERIALIZED_NAME_LYRICS = "Lyrics"; + @SerializedName(SERIALIZED_NAME_LYRICS) + @javax.annotation.Nullable + private LyricDto lyrics; + + public RemoteLyricInfoDto() { + } + + public RemoteLyricInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id for the lyric. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public RemoteLyricInfoDto providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Gets the provider name. + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + public RemoteLyricInfoDto lyrics(@javax.annotation.Nullable LyricDto lyrics) { + this.lyrics = lyrics; + return this; + } + + /** + * Gets the lyrics. + * @return lyrics + */ + @javax.annotation.Nullable + public LyricDto getLyrics() { + return lyrics; + } + + public void setLyrics(@javax.annotation.Nullable LyricDto lyrics) { + this.lyrics = lyrics; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteLyricInfoDto remoteLyricInfoDto = (RemoteLyricInfoDto) o; + return Objects.equals(this.id, remoteLyricInfoDto.id) && + Objects.equals(this.providerName, remoteLyricInfoDto.providerName) && + Objects.equals(this.lyrics, remoteLyricInfoDto.lyrics); + } + + @Override + public int hashCode() { + return Objects.hash(id, providerName, lyrics); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteLyricInfoDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" lyrics: ").append(toIndentedString(lyrics)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ProviderName"); + openapiFields.add("Lyrics"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteLyricInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteLyricInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteLyricInfoDto is not found in the empty JSON string", RemoteLyricInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteLyricInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteLyricInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + // validate the optional field `Lyrics` + if (jsonObj.get("Lyrics") != null && !jsonObj.get("Lyrics").isJsonNull()) { + LyricDto.validateJsonElement(jsonObj.get("Lyrics")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteLyricInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteLyricInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteLyricInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteLyricInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteLyricInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteLyricInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteLyricInfoDto + * @throws IOException if the JSON string is invalid with respect to RemoteLyricInfoDto + */ + public static RemoteLyricInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteLyricInfoDto.class); + } + + /** + * Convert an instance of RemoteLyricInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSearchResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSearchResult.java new file mode 100644 index 0000000000000..10db9c3569359 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSearchResult.java @@ -0,0 +1,563 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RemoteSearchResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteSearchResult { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER_END = "IndexNumberEnd"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER_END) + @javax.annotation.Nullable + private Integer indexNumberEnd; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IMAGE_URL = "ImageUrl"; + @SerializedName(SERIALIZED_NAME_IMAGE_URL) + @javax.annotation.Nullable + private String imageUrl; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private RemoteSearchResult albumArtist; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public RemoteSearchResult() { + } + + public RemoteSearchResult name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RemoteSearchResult providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public RemoteSearchResult putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public RemoteSearchResult productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public RemoteSearchResult indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public RemoteSearchResult indexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + return this; + } + + /** + * Get indexNumberEnd + * @return indexNumberEnd + */ + @javax.annotation.Nullable + public Integer getIndexNumberEnd() { + return indexNumberEnd; + } + + public void setIndexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + } + + + public RemoteSearchResult parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public RemoteSearchResult premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public RemoteSearchResult imageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + /** + * Get imageUrl + * @return imageUrl + */ + @javax.annotation.Nullable + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + } + + + public RemoteSearchResult searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Get searchProviderName + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public RemoteSearchResult overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Get overview + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public RemoteSearchResult albumArtist(@javax.annotation.Nullable RemoteSearchResult albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Get albumArtist + * @return albumArtist + */ + @javax.annotation.Nullable + public RemoteSearchResult getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable RemoteSearchResult albumArtist) { + this.albumArtist = albumArtist; + } + + + public RemoteSearchResult artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public RemoteSearchResult addArtistsItem(RemoteSearchResult artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteSearchResult remoteSearchResult = (RemoteSearchResult) o; + return Objects.equals(this.name, remoteSearchResult.name) && + Objects.equals(this.providerIds, remoteSearchResult.providerIds) && + Objects.equals(this.productionYear, remoteSearchResult.productionYear) && + Objects.equals(this.indexNumber, remoteSearchResult.indexNumber) && + Objects.equals(this.indexNumberEnd, remoteSearchResult.indexNumberEnd) && + Objects.equals(this.parentIndexNumber, remoteSearchResult.parentIndexNumber) && + Objects.equals(this.premiereDate, remoteSearchResult.premiereDate) && + Objects.equals(this.imageUrl, remoteSearchResult.imageUrl) && + Objects.equals(this.searchProviderName, remoteSearchResult.searchProviderName) && + Objects.equals(this.overview, remoteSearchResult.overview) && + Objects.equals(this.albumArtist, remoteSearchResult.albumArtist) && + Objects.equals(this.artists, remoteSearchResult.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, providerIds, productionYear, indexNumber, indexNumberEnd, parentIndexNumber, premiereDate, imageUrl, searchProviderName, overview, albumArtist, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteSearchResult {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" indexNumberEnd: ").append(toIndentedString(indexNumberEnd)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" imageUrl: ").append(toIndentedString(imageUrl)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ProviderIds"); + openapiFields.add("ProductionYear"); + openapiFields.add("IndexNumber"); + openapiFields.add("IndexNumberEnd"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("ImageUrl"); + openapiFields.add("SearchProviderName"); + openapiFields.add("Overview"); + openapiFields.add("AlbumArtist"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteSearchResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteSearchResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteSearchResult is not found in the empty JSON string", RemoteSearchResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteSearchResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteSearchResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ImageUrl") != null && !jsonObj.get("ImageUrl").isJsonNull()) && !jsonObj.get("ImageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageUrl").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + // validate the optional field `AlbumArtist` + if (jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) { + RemoteSearchResult.validateJsonElement(jsonObj.get("AlbumArtist")); + } + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull()) { + JsonArray jsonArrayartists = jsonObj.getAsJsonArray("Artists"); + if (jsonArrayartists != null) { + // ensure the json data is an array + if (!jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + + // validate the optional field `Artists` (array) + for (int i = 0; i < jsonArrayartists.size(); i++) { + RemoteSearchResult.validateJsonElement(jsonArrayartists.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteSearchResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteSearchResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteSearchResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteSearchResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteSearchResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteSearchResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteSearchResult + * @throws IOException if the JSON string is invalid with respect to RemoteSearchResult + */ + public static RemoteSearchResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteSearchResult.class); + } + + /** + * Convert an instance of RemoteSearchResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java new file mode 100644 index 0000000000000..660252e9f2aa7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java @@ -0,0 +1,642 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RemoteSubtitleInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteSubtitleInfo { + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME = "ThreeLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String threeLetterISOLanguageName; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable + private String format; + + public static final String SERIALIZED_NAME_AUTHOR = "Author"; + @SerializedName(SERIALIZED_NAME_AUTHOR) + @javax.annotation.Nullable + private String author; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Float communityRating; + + public static final String SERIALIZED_NAME_FRAME_RATE = "FrameRate"; + @SerializedName(SERIALIZED_NAME_FRAME_RATE) + @javax.annotation.Nullable + private Float frameRate; + + public static final String SERIALIZED_NAME_DOWNLOAD_COUNT = "DownloadCount"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_COUNT) + @javax.annotation.Nullable + private Integer downloadCount; + + public static final String SERIALIZED_NAME_IS_HASH_MATCH = "IsHashMatch"; + @SerializedName(SERIALIZED_NAME_IS_HASH_MATCH) + @javax.annotation.Nullable + private Boolean isHashMatch; + + public static final String SERIALIZED_NAME_AI_TRANSLATED = "AiTranslated"; + @SerializedName(SERIALIZED_NAME_AI_TRANSLATED) + @javax.annotation.Nullable + private Boolean aiTranslated; + + public static final String SERIALIZED_NAME_MACHINE_TRANSLATED = "MachineTranslated"; + @SerializedName(SERIALIZED_NAME_MACHINE_TRANSLATED) + @javax.annotation.Nullable + private Boolean machineTranslated; + + public static final String SERIALIZED_NAME_FORCED = "Forced"; + @SerializedName(SERIALIZED_NAME_FORCED) + @javax.annotation.Nullable + private Boolean forced; + + public static final String SERIALIZED_NAME_HEARING_IMPAIRED = "HearingImpaired"; + @SerializedName(SERIALIZED_NAME_HEARING_IMPAIRED) + @javax.annotation.Nullable + private Boolean hearingImpaired; + + public RemoteSubtitleInfo() { + } + + public RemoteSubtitleInfo threeLetterISOLanguageName(@javax.annotation.Nullable String threeLetterISOLanguageName) { + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + return this; + } + + /** + * Get threeLetterISOLanguageName + * @return threeLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getThreeLetterISOLanguageName() { + return threeLetterISOLanguageName; + } + + public void setThreeLetterISOLanguageName(@javax.annotation.Nullable String threeLetterISOLanguageName) { + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + } + + + public RemoteSubtitleInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public RemoteSubtitleInfo providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Get providerName + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + public RemoteSubtitleInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RemoteSubtitleInfo format(@javax.annotation.Nullable String format) { + this.format = format; + return this; + } + + /** + * Get format + * @return format + */ + @javax.annotation.Nullable + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nullable String format) { + this.format = format; + } + + + public RemoteSubtitleInfo author(@javax.annotation.Nullable String author) { + this.author = author; + return this; + } + + /** + * Get author + * @return author + */ + @javax.annotation.Nullable + public String getAuthor() { + return author; + } + + public void setAuthor(@javax.annotation.Nullable String author) { + this.author = author; + } + + + public RemoteSubtitleInfo comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Get comment + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public RemoteSubtitleInfo dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Get dateCreated + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public RemoteSubtitleInfo communityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Get communityRating + * @return communityRating + */ + @javax.annotation.Nullable + public Float getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + } + + + public RemoteSubtitleInfo frameRate(@javax.annotation.Nullable Float frameRate) { + this.frameRate = frameRate; + return this; + } + + /** + * Get frameRate + * @return frameRate + */ + @javax.annotation.Nullable + public Float getFrameRate() { + return frameRate; + } + + public void setFrameRate(@javax.annotation.Nullable Float frameRate) { + this.frameRate = frameRate; + } + + + public RemoteSubtitleInfo downloadCount(@javax.annotation.Nullable Integer downloadCount) { + this.downloadCount = downloadCount; + return this; + } + + /** + * Get downloadCount + * @return downloadCount + */ + @javax.annotation.Nullable + public Integer getDownloadCount() { + return downloadCount; + } + + public void setDownloadCount(@javax.annotation.Nullable Integer downloadCount) { + this.downloadCount = downloadCount; + } + + + public RemoteSubtitleInfo isHashMatch(@javax.annotation.Nullable Boolean isHashMatch) { + this.isHashMatch = isHashMatch; + return this; + } + + /** + * Get isHashMatch + * @return isHashMatch + */ + @javax.annotation.Nullable + public Boolean getIsHashMatch() { + return isHashMatch; + } + + public void setIsHashMatch(@javax.annotation.Nullable Boolean isHashMatch) { + this.isHashMatch = isHashMatch; + } + + + public RemoteSubtitleInfo aiTranslated(@javax.annotation.Nullable Boolean aiTranslated) { + this.aiTranslated = aiTranslated; + return this; + } + + /** + * Get aiTranslated + * @return aiTranslated + */ + @javax.annotation.Nullable + public Boolean getAiTranslated() { + return aiTranslated; + } + + public void setAiTranslated(@javax.annotation.Nullable Boolean aiTranslated) { + this.aiTranslated = aiTranslated; + } + + + public RemoteSubtitleInfo machineTranslated(@javax.annotation.Nullable Boolean machineTranslated) { + this.machineTranslated = machineTranslated; + return this; + } + + /** + * Get machineTranslated + * @return machineTranslated + */ + @javax.annotation.Nullable + public Boolean getMachineTranslated() { + return machineTranslated; + } + + public void setMachineTranslated(@javax.annotation.Nullable Boolean machineTranslated) { + this.machineTranslated = machineTranslated; + } + + + public RemoteSubtitleInfo forced(@javax.annotation.Nullable Boolean forced) { + this.forced = forced; + return this; + } + + /** + * Get forced + * @return forced + */ + @javax.annotation.Nullable + public Boolean getForced() { + return forced; + } + + public void setForced(@javax.annotation.Nullable Boolean forced) { + this.forced = forced; + } + + + public RemoteSubtitleInfo hearingImpaired(@javax.annotation.Nullable Boolean hearingImpaired) { + this.hearingImpaired = hearingImpaired; + return this; + } + + /** + * Get hearingImpaired + * @return hearingImpaired + */ + @javax.annotation.Nullable + public Boolean getHearingImpaired() { + return hearingImpaired; + } + + public void setHearingImpaired(@javax.annotation.Nullable Boolean hearingImpaired) { + this.hearingImpaired = hearingImpaired; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteSubtitleInfo remoteSubtitleInfo = (RemoteSubtitleInfo) o; + return Objects.equals(this.threeLetterISOLanguageName, remoteSubtitleInfo.threeLetterISOLanguageName) && + Objects.equals(this.id, remoteSubtitleInfo.id) && + Objects.equals(this.providerName, remoteSubtitleInfo.providerName) && + Objects.equals(this.name, remoteSubtitleInfo.name) && + Objects.equals(this.format, remoteSubtitleInfo.format) && + Objects.equals(this.author, remoteSubtitleInfo.author) && + Objects.equals(this.comment, remoteSubtitleInfo.comment) && + Objects.equals(this.dateCreated, remoteSubtitleInfo.dateCreated) && + Objects.equals(this.communityRating, remoteSubtitleInfo.communityRating) && + Objects.equals(this.frameRate, remoteSubtitleInfo.frameRate) && + Objects.equals(this.downloadCount, remoteSubtitleInfo.downloadCount) && + Objects.equals(this.isHashMatch, remoteSubtitleInfo.isHashMatch) && + Objects.equals(this.aiTranslated, remoteSubtitleInfo.aiTranslated) && + Objects.equals(this.machineTranslated, remoteSubtitleInfo.machineTranslated) && + Objects.equals(this.forced, remoteSubtitleInfo.forced) && + Objects.equals(this.hearingImpaired, remoteSubtitleInfo.hearingImpaired); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(threeLetterISOLanguageName, id, providerName, name, format, author, comment, dateCreated, communityRating, frameRate, downloadCount, isHashMatch, aiTranslated, machineTranslated, forced, hearingImpaired); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteSubtitleInfo {\n"); + sb.append(" threeLetterISOLanguageName: ").append(toIndentedString(threeLetterISOLanguageName)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" author: ").append(toIndentedString(author)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" frameRate: ").append(toIndentedString(frameRate)).append("\n"); + sb.append(" downloadCount: ").append(toIndentedString(downloadCount)).append("\n"); + sb.append(" isHashMatch: ").append(toIndentedString(isHashMatch)).append("\n"); + sb.append(" aiTranslated: ").append(toIndentedString(aiTranslated)).append("\n"); + sb.append(" machineTranslated: ").append(toIndentedString(machineTranslated)).append("\n"); + sb.append(" forced: ").append(toIndentedString(forced)).append("\n"); + sb.append(" hearingImpaired: ").append(toIndentedString(hearingImpaired)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ThreeLetterISOLanguageName"); + openapiFields.add("Id"); + openapiFields.add("ProviderName"); + openapiFields.add("Name"); + openapiFields.add("Format"); + openapiFields.add("Author"); + openapiFields.add("Comment"); + openapiFields.add("DateCreated"); + openapiFields.add("CommunityRating"); + openapiFields.add("FrameRate"); + openapiFields.add("DownloadCount"); + openapiFields.add("IsHashMatch"); + openapiFields.add("AiTranslated"); + openapiFields.add("MachineTranslated"); + openapiFields.add("Forced"); + openapiFields.add("HearingImpaired"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteSubtitleInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteSubtitleInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteSubtitleInfo is not found in the empty JSON string", RemoteSubtitleInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteSubtitleInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteSubtitleInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ThreeLetterISOLanguageName") != null && !jsonObj.get("ThreeLetterISOLanguageName").isJsonNull()) && !jsonObj.get("ThreeLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageName").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) && !jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + if ((jsonObj.get("Author") != null && !jsonObj.get("Author").isJsonNull()) && !jsonObj.get("Author").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Author` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Author").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteSubtitleInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteSubtitleInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteSubtitleInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteSubtitleInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteSubtitleInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteSubtitleInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteSubtitleInfo + * @throws IOException if the JSON string is invalid with respect to RemoteSubtitleInfo + */ + public static RemoteSubtitleInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteSubtitleInfo.class); + } + + /** + * Convert an instance of RemoteSubtitleInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java new file mode 100644 index 0000000000000..9ad17340d6604 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoveFromPlaylistRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoveFromPlaylistRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_IDS = "PlaylistItemIds"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_IDS) + @javax.annotation.Nullable + private List playlistItemIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CLEAR_PLAYLIST = "ClearPlaylist"; + @SerializedName(SERIALIZED_NAME_CLEAR_PLAYLIST) + @javax.annotation.Nullable + private Boolean clearPlaylist; + + public static final String SERIALIZED_NAME_CLEAR_PLAYING_ITEM = "ClearPlayingItem"; + @SerializedName(SERIALIZED_NAME_CLEAR_PLAYING_ITEM) + @javax.annotation.Nullable + private Boolean clearPlayingItem; + + public RemoveFromPlaylistRequestDto() { + } + + public RemoveFromPlaylistRequestDto playlistItemIds(@javax.annotation.Nullable List playlistItemIds) { + this.playlistItemIds = playlistItemIds; + return this; + } + + public RemoveFromPlaylistRequestDto addPlaylistItemIdsItem(UUID playlistItemIdsItem) { + if (this.playlistItemIds == null) { + this.playlistItemIds = new ArrayList<>(); + } + this.playlistItemIds.add(playlistItemIdsItem); + return this; + } + + /** + * Gets or sets the playlist identifiers of the items. Ignored when clearing the playlist. + * @return playlistItemIds + */ + @javax.annotation.Nullable + public List getPlaylistItemIds() { + return playlistItemIds; + } + + public void setPlaylistItemIds(@javax.annotation.Nullable List playlistItemIds) { + this.playlistItemIds = playlistItemIds; + } + + + public RemoveFromPlaylistRequestDto clearPlaylist(@javax.annotation.Nullable Boolean clearPlaylist) { + this.clearPlaylist = clearPlaylist; + return this; + } + + /** + * Gets or sets a value indicating whether the entire playlist should be cleared. + * @return clearPlaylist + */ + @javax.annotation.Nullable + public Boolean getClearPlaylist() { + return clearPlaylist; + } + + public void setClearPlaylist(@javax.annotation.Nullable Boolean clearPlaylist) { + this.clearPlaylist = clearPlaylist; + } + + + public RemoveFromPlaylistRequestDto clearPlayingItem(@javax.annotation.Nullable Boolean clearPlayingItem) { + this.clearPlayingItem = clearPlayingItem; + return this; + } + + /** + * Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. + * @return clearPlayingItem + */ + @javax.annotation.Nullable + public Boolean getClearPlayingItem() { + return clearPlayingItem; + } + + public void setClearPlayingItem(@javax.annotation.Nullable Boolean clearPlayingItem) { + this.clearPlayingItem = clearPlayingItem; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto = (RemoveFromPlaylistRequestDto) o; + return Objects.equals(this.playlistItemIds, removeFromPlaylistRequestDto.playlistItemIds) && + Objects.equals(this.clearPlaylist, removeFromPlaylistRequestDto.clearPlaylist) && + Objects.equals(this.clearPlayingItem, removeFromPlaylistRequestDto.clearPlayingItem); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemIds, clearPlaylist, clearPlayingItem); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoveFromPlaylistRequestDto {\n"); + sb.append(" playlistItemIds: ").append(toIndentedString(playlistItemIds)).append("\n"); + sb.append(" clearPlaylist: ").append(toIndentedString(clearPlaylist)).append("\n"); + sb.append(" clearPlayingItem: ").append(toIndentedString(clearPlayingItem)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemIds"); + openapiFields.add("ClearPlaylist"); + openapiFields.add("ClearPlayingItem"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoveFromPlaylistRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoveFromPlaylistRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoveFromPlaylistRequestDto is not found in the empty JSON string", RemoveFromPlaylistRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoveFromPlaylistRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoveFromPlaylistRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlaylistItemIds") != null && !jsonObj.get("PlaylistItemIds").isJsonNull() && !jsonObj.get("PlaylistItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("PlaylistItemIds").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoveFromPlaylistRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoveFromPlaylistRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoveFromPlaylistRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoveFromPlaylistRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoveFromPlaylistRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoveFromPlaylistRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoveFromPlaylistRequestDto + * @throws IOException if the JSON string is invalid with respect to RemoveFromPlaylistRequestDto + */ + public static RemoveFromPlaylistRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoveFromPlaylistRequestDto.class); + } + + /** + * Convert an instance of RemoveFromPlaylistRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepeatMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepeatMode.java new file mode 100644 index 0000000000000..3e023c3aa0340 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepeatMode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RepeatMode + */ +@JsonAdapter(RepeatMode.Adapter.class) +public enum RepeatMode { + + REPEAT_NONE("RepeatNone"), + + REPEAT_ALL("RepeatAll"), + + REPEAT_ONE("RepeatOne"); + + private String value; + + RepeatMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RepeatMode fromValue(String value) { + for (RepeatMode b : RepeatMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RepeatMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RepeatMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RepeatMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RepeatMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepositoryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepositoryInfo.java new file mode 100644 index 0000000000000..38c261c5503e3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RepositoryInfo.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RepositoryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RepositoryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_ENABLED = "Enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public RepositoryInfo() { + } + + public RepositoryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RepositoryInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the URL. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public RepositoryInfo enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Gets or sets a value indicating whether the repository is enabled. + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RepositoryInfo repositoryInfo = (RepositoryInfo) o; + return Objects.equals(this.name, repositoryInfo.name) && + Objects.equals(this.url, repositoryInfo.url) && + Objects.equals(this.enabled, repositoryInfo.enabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, url, enabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RepositoryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Url"); + openapiFields.add("Enabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RepositoryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RepositoryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RepositoryInfo is not found in the empty JSON string", RepositoryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RepositoryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RepositoryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RepositoryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RepositoryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RepositoryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RepositoryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RepositoryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RepositoryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RepositoryInfo + * @throws IOException if the JSON string is invalid with respect to RepositoryInfo + */ + public static RepositoryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RepositoryInfo.class); + } + + /** + * Convert an instance of RepositoryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RestartRequiredMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RestartRequiredMessage.java new file mode 100644 index 0000000000000..f813df31915b2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/RestartRequiredMessage.java @@ -0,0 +1,238 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Restart required. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RestartRequiredMessage { + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.RESTART_REQUIRED; + + public RestartRequiredMessage() { + } + + public RestartRequiredMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public RestartRequiredMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestartRequiredMessage restartRequiredMessage = (RestartRequiredMessage) o; + return Objects.equals(this.messageId, restartRequiredMessage.messageId) && + Objects.equals(this.messageType, restartRequiredMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RestartRequiredMessage {\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RestartRequiredMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RestartRequiredMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RestartRequiredMessage is not found in the empty JSON string", RestartRequiredMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RestartRequiredMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RestartRequiredMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RestartRequiredMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RestartRequiredMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RestartRequiredMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RestartRequiredMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RestartRequiredMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RestartRequiredMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of RestartRequiredMessage + * @throws IOException if the JSON string is invalid with respect to RestartRequiredMessage + */ + public static RestartRequiredMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RestartRequiredMessage.class); + } + + /** + * Convert an instance of RestartRequiredMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTaskEndedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTaskEndedMessage.java new file mode 100644 index 0000000000000..6d7182606e7d1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTaskEndedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TaskResult; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Scheduled task ended message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ScheduledTaskEndedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private TaskResult data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SCHEDULED_TASK_ENDED; + + public ScheduledTaskEndedMessage() { + } + + public ScheduledTaskEndedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ScheduledTaskEndedMessage data(@javax.annotation.Nullable TaskResult data) { + this.data = data; + return this; + } + + /** + * Class TaskExecutionInfo. + * @return data + */ + @javax.annotation.Nullable + public TaskResult getData() { + return data; + } + + public void setData(@javax.annotation.Nullable TaskResult data) { + this.data = data; + } + + + public ScheduledTaskEndedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScheduledTaskEndedMessage scheduledTaskEndedMessage = (ScheduledTaskEndedMessage) o; + return Objects.equals(this.data, scheduledTaskEndedMessage.data) && + Objects.equals(this.messageId, scheduledTaskEndedMessage.messageId) && + Objects.equals(this.messageType, scheduledTaskEndedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScheduledTaskEndedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ScheduledTaskEndedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ScheduledTaskEndedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ScheduledTaskEndedMessage is not found in the empty JSON string", ScheduledTaskEndedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ScheduledTaskEndedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ScheduledTaskEndedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + TaskResult.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ScheduledTaskEndedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ScheduledTaskEndedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTaskEndedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ScheduledTaskEndedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ScheduledTaskEndedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ScheduledTaskEndedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ScheduledTaskEndedMessage + * @throws IOException if the JSON string is invalid with respect to ScheduledTaskEndedMessage + */ + public static ScheduledTaskEndedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ScheduledTaskEndedMessage.class); + } + + /** + * Convert an instance of ScheduledTaskEndedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoMessage.java new file mode 100644 index 0000000000000..d3dfe057a05f0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoMessage.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TaskInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Scheduled tasks info message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ScheduledTasksInfoMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SCHEDULED_TASKS_INFO; + + public ScheduledTasksInfoMessage() { + } + + public ScheduledTasksInfoMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ScheduledTasksInfoMessage data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public ScheduledTasksInfoMessage addDataItem(TaskInfo dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable List data) { + this.data = data; + } + + + public ScheduledTasksInfoMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScheduledTasksInfoMessage scheduledTasksInfoMessage = (ScheduledTasksInfoMessage) o; + return Objects.equals(this.data, scheduledTasksInfoMessage.data) && + Objects.equals(this.messageId, scheduledTasksInfoMessage.messageId) && + Objects.equals(this.messageType, scheduledTasksInfoMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScheduledTasksInfoMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ScheduledTasksInfoMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ScheduledTasksInfoMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ScheduledTasksInfoMessage is not found in the empty JSON string", ScheduledTasksInfoMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ScheduledTasksInfoMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ScheduledTasksInfoMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("Data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("Data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be an array in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + + // validate the optional field `Data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + TaskInfo.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ScheduledTasksInfoMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ScheduledTasksInfoMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ScheduledTasksInfoMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ScheduledTasksInfoMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ScheduledTasksInfoMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ScheduledTasksInfoMessage + * @throws IOException if the JSON string is invalid with respect to ScheduledTasksInfoMessage + */ + public static ScheduledTasksInfoMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ScheduledTasksInfoMessage.class); + } + + /** + * Convert an instance of ScheduledTasksInfoMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStartMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStartMessage.java new file mode 100644 index 0000000000000..6dee9b44a507f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStartMessage.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Scheduled tasks info start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ScheduledTasksInfoStartMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private String data; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SCHEDULED_TASKS_INFO_START; + + public ScheduledTasksInfoStartMessage() { + } + + public ScheduledTasksInfoStartMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ScheduledTasksInfoStartMessage data(@javax.annotation.Nullable String data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nullable String data) { + this.data = data; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScheduledTasksInfoStartMessage scheduledTasksInfoStartMessage = (ScheduledTasksInfoStartMessage) o; + return Objects.equals(this.data, scheduledTasksInfoStartMessage.data) && + Objects.equals(this.messageType, scheduledTasksInfoStartMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScheduledTasksInfoStartMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ScheduledTasksInfoStartMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ScheduledTasksInfoStartMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ScheduledTasksInfoStartMessage is not found in the empty JSON string", ScheduledTasksInfoStartMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ScheduledTasksInfoStartMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ScheduledTasksInfoStartMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ScheduledTasksInfoStartMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ScheduledTasksInfoStartMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoStartMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ScheduledTasksInfoStartMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ScheduledTasksInfoStartMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ScheduledTasksInfoStartMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ScheduledTasksInfoStartMessage + * @throws IOException if the JSON string is invalid with respect to ScheduledTasksInfoStartMessage + */ + public static ScheduledTasksInfoStartMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ScheduledTasksInfoStartMessage.class); + } + + /** + * Convert an instance of ScheduledTasksInfoStartMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStopMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStopMessage.java new file mode 100644 index 0000000000000..b53b22855c473 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScheduledTasksInfoStopMessage.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Scheduled tasks info stop message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ScheduledTasksInfoStopMessage { + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SCHEDULED_TASKS_INFO_STOP; + + public ScheduledTasksInfoStopMessage() { + } + + public ScheduledTasksInfoStopMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScheduledTasksInfoStopMessage scheduledTasksInfoStopMessage = (ScheduledTasksInfoStopMessage) o; + return Objects.equals(this.messageType, scheduledTasksInfoStopMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScheduledTasksInfoStopMessage {\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ScheduledTasksInfoStopMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ScheduledTasksInfoStopMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ScheduledTasksInfoStopMessage is not found in the empty JSON string", ScheduledTasksInfoStopMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ScheduledTasksInfoStopMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ScheduledTasksInfoStopMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ScheduledTasksInfoStopMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ScheduledTasksInfoStopMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ScheduledTasksInfoStopMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ScheduledTasksInfoStopMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ScheduledTasksInfoStopMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ScheduledTasksInfoStopMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ScheduledTasksInfoStopMessage + * @throws IOException if the JSON string is invalid with respect to ScheduledTasksInfoStopMessage + */ + public static ScheduledTasksInfoStopMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ScheduledTasksInfoStopMessage.class); + } + + /** + * Convert an instance of ScheduledTasksInfoStopMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScrollDirection.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScrollDirection.java new file mode 100644 index 0000000000000..0b47c90fcbebe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ScrollDirection.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the axis that should be scrolled. + */ +@JsonAdapter(ScrollDirection.Adapter.class) +public enum ScrollDirection { + + HORIZONTAL("Horizontal"), + + VERTICAL("Vertical"); + + private String value; + + ScrollDirection(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScrollDirection fromValue(String value) { + for (ScrollDirection b : ScrollDirection.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ScrollDirection enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScrollDirection read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScrollDirection.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ScrollDirection.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHint.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHint.java new file mode 100644 index 0000000000000..21ae37722b77c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHint.java @@ -0,0 +1,1050 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.MediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SearchHintResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SearchHint { + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @Deprecated + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_MATCHED_TERM = "MatchedTerm"; + @SerializedName(SERIALIZED_NAME_MATCHED_TERM) + @javax.annotation.Nullable + private String matchedTerm; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_THUMB_IMAGE_TAG = "ThumbImageTag"; + @SerializedName(SERIALIZED_NAME_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String thumbImageTag; + + public static final String SERIALIZED_NAME_THUMB_IMAGE_ITEM_ID = "ThumbImageItemId"; + @SerializedName(SERIALIZED_NAME_THUMB_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String thumbImageItemId; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_TAG = "BackdropImageTag"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_TAG) + @javax.annotation.Nullable + private String backdropImageTag; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_ITEM_ID = "BackdropImageItemId"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String backdropImageItemId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private BaseItemKind type; + + public static final String SERIALIZED_NAME_IS_FOLDER = "IsFolder"; + @SerializedName(SERIALIZED_NAME_IS_FOLDER) + @javax.annotation.Nullable + private Boolean isFolder; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private MediaType mediaType; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERIES = "Series"; + @SerializedName(SERIALIZED_NAME_SERIES) + @javax.annotation.Nullable + private String series; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_ALBUM_ID = "AlbumId"; + @SerializedName(SERIALIZED_NAME_ALBUM_ID) + @javax.annotation.Nullable + private UUID albumId; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private String albumArtist; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public SearchHint() { + } + + @Deprecated + public SearchHint itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item id. + * @return itemId + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + @Deprecated + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public SearchHint id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the item id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public SearchHint name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SearchHint matchedTerm(@javax.annotation.Nullable String matchedTerm) { + this.matchedTerm = matchedTerm; + return this; + } + + /** + * Gets or sets the matched term. + * @return matchedTerm + */ + @javax.annotation.Nullable + public String getMatchedTerm() { + return matchedTerm; + } + + public void setMatchedTerm(@javax.annotation.Nullable String matchedTerm) { + this.matchedTerm = matchedTerm; + } + + + public SearchHint indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Gets or sets the index number. + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SearchHint productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the production year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public SearchHint parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Gets or sets the parent index number. + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SearchHint primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public SearchHint thumbImageTag(@javax.annotation.Nullable String thumbImageTag) { + this.thumbImageTag = thumbImageTag; + return this; + } + + /** + * Gets or sets the thumb image tag. + * @return thumbImageTag + */ + @javax.annotation.Nullable + public String getThumbImageTag() { + return thumbImageTag; + } + + public void setThumbImageTag(@javax.annotation.Nullable String thumbImageTag) { + this.thumbImageTag = thumbImageTag; + } + + + public SearchHint thumbImageItemId(@javax.annotation.Nullable String thumbImageItemId) { + this.thumbImageItemId = thumbImageItemId; + return this; + } + + /** + * Gets or sets the thumb image item identifier. + * @return thumbImageItemId + */ + @javax.annotation.Nullable + public String getThumbImageItemId() { + return thumbImageItemId; + } + + public void setThumbImageItemId(@javax.annotation.Nullable String thumbImageItemId) { + this.thumbImageItemId = thumbImageItemId; + } + + + public SearchHint backdropImageTag(@javax.annotation.Nullable String backdropImageTag) { + this.backdropImageTag = backdropImageTag; + return this; + } + + /** + * Gets or sets the backdrop image tag. + * @return backdropImageTag + */ + @javax.annotation.Nullable + public String getBackdropImageTag() { + return backdropImageTag; + } + + public void setBackdropImageTag(@javax.annotation.Nullable String backdropImageTag) { + this.backdropImageTag = backdropImageTag; + } + + + public SearchHint backdropImageItemId(@javax.annotation.Nullable String backdropImageItemId) { + this.backdropImageItemId = backdropImageItemId; + return this; + } + + /** + * Gets or sets the backdrop image item identifier. + * @return backdropImageItemId + */ + @javax.annotation.Nullable + public String getBackdropImageItemId() { + return backdropImageItemId; + } + + public void setBackdropImageItemId(@javax.annotation.Nullable String backdropImageItemId) { + this.backdropImageItemId = backdropImageItemId; + } + + + public SearchHint type(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + return this; + } + + /** + * The base item kind. + * @return type + */ + @javax.annotation.Nullable + public BaseItemKind getType() { + return type; + } + + public void setType(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + } + + + public SearchHint isFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is folder. + * @return isFolder + */ + @javax.annotation.Nullable + public Boolean getIsFolder() { + return isFolder; + } + + public void setIsFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + } + + + public SearchHint runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public SearchHint mediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Media types. + * @return mediaType + */ + @javax.annotation.Nullable + public MediaType getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable MediaType mediaType) { + this.mediaType = mediaType; + } + + + public SearchHint startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public SearchHint endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public SearchHint series(@javax.annotation.Nullable String series) { + this.series = series; + return this; + } + + /** + * Gets or sets the series. + * @return series + */ + @javax.annotation.Nullable + public String getSeries() { + return series; + } + + public void setSeries(@javax.annotation.Nullable String series) { + this.series = series; + } + + + public SearchHint status(@javax.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable String status) { + this.status = status; + } + + + public SearchHint album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Gets or sets the album. + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public SearchHint albumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + return this; + } + + /** + * Gets or sets the album id. + * @return albumId + */ + @javax.annotation.Nullable + public UUID getAlbumId() { + return albumId; + } + + public void setAlbumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + } + + + public SearchHint albumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtist + */ + @javax.annotation.Nullable + public String getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + } + + + public SearchHint artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public SearchHint addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Gets or sets the artists. + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + public SearchHint songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public SearchHint episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public SearchHint channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel identifier. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public SearchHint channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the name of the channel. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public SearchHint primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchHint searchHint = (SearchHint) o; + return Objects.equals(this.itemId, searchHint.itemId) && + Objects.equals(this.id, searchHint.id) && + Objects.equals(this.name, searchHint.name) && + Objects.equals(this.matchedTerm, searchHint.matchedTerm) && + Objects.equals(this.indexNumber, searchHint.indexNumber) && + Objects.equals(this.productionYear, searchHint.productionYear) && + Objects.equals(this.parentIndexNumber, searchHint.parentIndexNumber) && + Objects.equals(this.primaryImageTag, searchHint.primaryImageTag) && + Objects.equals(this.thumbImageTag, searchHint.thumbImageTag) && + Objects.equals(this.thumbImageItemId, searchHint.thumbImageItemId) && + Objects.equals(this.backdropImageTag, searchHint.backdropImageTag) && + Objects.equals(this.backdropImageItemId, searchHint.backdropImageItemId) && + Objects.equals(this.type, searchHint.type) && + Objects.equals(this.isFolder, searchHint.isFolder) && + Objects.equals(this.runTimeTicks, searchHint.runTimeTicks) && + Objects.equals(this.mediaType, searchHint.mediaType) && + Objects.equals(this.startDate, searchHint.startDate) && + Objects.equals(this.endDate, searchHint.endDate) && + Objects.equals(this.series, searchHint.series) && + Objects.equals(this.status, searchHint.status) && + Objects.equals(this.album, searchHint.album) && + Objects.equals(this.albumId, searchHint.albumId) && + Objects.equals(this.albumArtist, searchHint.albumArtist) && + Objects.equals(this.artists, searchHint.artists) && + Objects.equals(this.songCount, searchHint.songCount) && + Objects.equals(this.episodeCount, searchHint.episodeCount) && + Objects.equals(this.channelId, searchHint.channelId) && + Objects.equals(this.channelName, searchHint.channelName) && + Objects.equals(this.primaryImageAspectRatio, searchHint.primaryImageAspectRatio); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemId, id, name, matchedTerm, indexNumber, productionYear, parentIndexNumber, primaryImageTag, thumbImageTag, thumbImageItemId, backdropImageTag, backdropImageItemId, type, isFolder, runTimeTicks, mediaType, startDate, endDate, series, status, album, albumId, albumArtist, artists, songCount, episodeCount, channelId, channelName, primaryImageAspectRatio); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchHint {\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" matchedTerm: ").append(toIndentedString(matchedTerm)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" thumbImageTag: ").append(toIndentedString(thumbImageTag)).append("\n"); + sb.append(" thumbImageItemId: ").append(toIndentedString(thumbImageItemId)).append("\n"); + sb.append(" backdropImageTag: ").append(toIndentedString(backdropImageTag)).append("\n"); + sb.append(" backdropImageItemId: ").append(toIndentedString(backdropImageItemId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" isFolder: ").append(toIndentedString(isFolder)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" series: ").append(toIndentedString(series)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" albumId: ").append(toIndentedString(albumId)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemId"); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("MatchedTerm"); + openapiFields.add("IndexNumber"); + openapiFields.add("ProductionYear"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("ThumbImageTag"); + openapiFields.add("ThumbImageItemId"); + openapiFields.add("BackdropImageTag"); + openapiFields.add("BackdropImageItemId"); + openapiFields.add("Type"); + openapiFields.add("IsFolder"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("MediaType"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("Series"); + openapiFields.add("Status"); + openapiFields.add("Album"); + openapiFields.add("AlbumId"); + openapiFields.add("AlbumArtist"); + openapiFields.add("Artists"); + openapiFields.add("SongCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("ChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("PrimaryImageAspectRatio"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SearchHint + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SearchHint.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SearchHint is not found in the empty JSON string", SearchHint.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SearchHint.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SearchHint` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("MatchedTerm") != null && !jsonObj.get("MatchedTerm").isJsonNull()) && !jsonObj.get("MatchedTerm").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MatchedTerm` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MatchedTerm").toString())); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + if ((jsonObj.get("ThumbImageTag") != null && !jsonObj.get("ThumbImageTag").isJsonNull()) && !jsonObj.get("ThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbImageTag").toString())); + } + if ((jsonObj.get("ThumbImageItemId") != null && !jsonObj.get("ThumbImageItemId").isJsonNull()) && !jsonObj.get("ThumbImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbImageItemId").toString())); + } + if ((jsonObj.get("BackdropImageTag") != null && !jsonObj.get("BackdropImageTag").isJsonNull()) && !jsonObj.get("BackdropImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BackdropImageTag").toString())); + } + if ((jsonObj.get("BackdropImageItemId") != null && !jsonObj.get("BackdropImageItemId").isJsonNull()) && !jsonObj.get("BackdropImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BackdropImageItemId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + BaseItemKind.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `MediaType` + if (jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) { + MediaType.validateJsonElement(jsonObj.get("MediaType")); + } + if ((jsonObj.get("Series") != null && !jsonObj.get("Series").isJsonNull()) && !jsonObj.get("Series").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Series` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Series").toString())); + } + if ((jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) && !jsonObj.get("Status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Status").toString())); + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + if ((jsonObj.get("AlbumId") != null && !jsonObj.get("AlbumId").isJsonNull()) && !jsonObj.get("AlbumId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumId").toString())); + } + if ((jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) && !jsonObj.get("AlbumArtist").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtist` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumArtist").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SearchHint.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SearchHint' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SearchHint.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SearchHint value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SearchHint read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SearchHint given an JSON string + * + * @param jsonString JSON string + * @return An instance of SearchHint + * @throws IOException if the JSON string is invalid with respect to SearchHint + */ + public static SearchHint fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SearchHint.class); + } + + /** + * Convert an instance of SearchHint to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHintResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHintResult.java new file mode 100644 index 0000000000000..5e21fb50630a4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SearchHintResult.java @@ -0,0 +1,255 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SearchHint; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SearchHintResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SearchHintResult { + public static final String SERIALIZED_NAME_SEARCH_HINTS = "SearchHints"; + @SerializedName(SERIALIZED_NAME_SEARCH_HINTS) + @javax.annotation.Nullable + private List searchHints = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public SearchHintResult() { + } + + public SearchHintResult searchHints(@javax.annotation.Nullable List searchHints) { + this.searchHints = searchHints; + return this; + } + + public SearchHintResult addSearchHintsItem(SearchHint searchHintsItem) { + if (this.searchHints == null) { + this.searchHints = new ArrayList<>(); + } + this.searchHints.add(searchHintsItem); + return this; + } + + /** + * Gets the search hints. + * @return searchHints + */ + @javax.annotation.Nullable + public List getSearchHints() { + return searchHints; + } + + public void setSearchHints(@javax.annotation.Nullable List searchHints) { + this.searchHints = searchHints; + } + + + public SearchHintResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets the total record count. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchHintResult searchHintResult = (SearchHintResult) o; + return Objects.equals(this.searchHints, searchHintResult.searchHints) && + Objects.equals(this.totalRecordCount, searchHintResult.totalRecordCount); + } + + @Override + public int hashCode() { + return Objects.hash(searchHints, totalRecordCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchHintResult {\n"); + sb.append(" searchHints: ").append(toIndentedString(searchHints)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchHints"); + openapiFields.add("TotalRecordCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SearchHintResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SearchHintResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SearchHintResult is not found in the empty JSON string", SearchHintResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SearchHintResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SearchHintResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("SearchHints") != null && !jsonObj.get("SearchHints").isJsonNull()) { + JsonArray jsonArraysearchHints = jsonObj.getAsJsonArray("SearchHints"); + if (jsonArraysearchHints != null) { + // ensure the json data is an array + if (!jsonObj.get("SearchHints").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchHints` to be an array in the JSON string but got `%s`", jsonObj.get("SearchHints").toString())); + } + + // validate the optional field `SearchHints` (array) + for (int i = 0; i < jsonArraysearchHints.size(); i++) { + SearchHint.validateJsonElement(jsonArraysearchHints.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SearchHintResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SearchHintResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SearchHintResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SearchHintResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SearchHintResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SearchHintResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SearchHintResult + * @throws IOException if the JSON string is invalid with respect to SearchHintResult + */ + public static SearchHintResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SearchHintResult.class); + } + + /** + * Convert an instance of SearchHintResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeekRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeekRequestDto.java new file mode 100644 index 0000000000000..543618e8eec16 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeekRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SeekRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeekRequestDto { + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public SeekRequestDto() { + } + + public SeekRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeekRequestDto seekRequestDto = (SeekRequestDto) o; + return Objects.equals(this.positionTicks, seekRequestDto.positionTicks); + } + + @Override + public int hashCode() { + return Objects.hash(positionTicks); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeekRequestDto {\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PositionTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeekRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeekRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeekRequestDto is not found in the empty JSON string", SeekRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeekRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeekRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeekRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeekRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeekRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeekRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeekRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeekRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeekRequestDto + * @throws IOException if the JSON string is invalid with respect to SeekRequestDto + */ + public static SeekRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeekRequestDto.class); + } + + /** + * Convert an instance of SeekRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommand.java new file mode 100644 index 0000000000000..7ec2269a32fec --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommand.java @@ -0,0 +1,363 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SendCommandType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SendCommand. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SendCommand { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_COMMAND = "Command"; + @SerializedName(SERIALIZED_NAME_COMMAND) + @javax.annotation.Nullable + private SendCommandType command; + + public static final String SERIALIZED_NAME_EMITTED_AT = "EmittedAt"; + @SerializedName(SERIALIZED_NAME_EMITTED_AT) + @javax.annotation.Nullable + private OffsetDateTime emittedAt; + + public SendCommand() { + } + + public SendCommand groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + public SendCommand playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets the playlist identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public SendCommand when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets the UTC time when to execute the command. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public SendCommand positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public SendCommand command(@javax.annotation.Nullable SendCommandType command) { + this.command = command; + return this; + } + + /** + * Gets the command. + * @return command + */ + @javax.annotation.Nullable + public SendCommandType getCommand() { + return command; + } + + public void setCommand(@javax.annotation.Nullable SendCommandType command) { + this.command = command; + } + + + public SendCommand emittedAt(@javax.annotation.Nullable OffsetDateTime emittedAt) { + this.emittedAt = emittedAt; + return this; + } + + /** + * Gets the UTC time when this command has been emitted. + * @return emittedAt + */ + @javax.annotation.Nullable + public OffsetDateTime getEmittedAt() { + return emittedAt; + } + + public void setEmittedAt(@javax.annotation.Nullable OffsetDateTime emittedAt) { + this.emittedAt = emittedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SendCommand sendCommand = (SendCommand) o; + return Objects.equals(this.groupId, sendCommand.groupId) && + Objects.equals(this.playlistItemId, sendCommand.playlistItemId) && + Objects.equals(this.when, sendCommand.when) && + Objects.equals(this.positionTicks, sendCommand.positionTicks) && + Objects.equals(this.command, sendCommand.command) && + Objects.equals(this.emittedAt, sendCommand.emittedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, playlistItemId, when, positionTicks, command, emittedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SendCommand {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" command: ").append(toIndentedString(command)).append("\n"); + sb.append(" emittedAt: ").append(toIndentedString(emittedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("Command"); + openapiFields.add("EmittedAt"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SendCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SendCommand is not found in the empty JSON string", SendCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SendCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + // validate the optional field `Command` + if (jsonObj.get("Command") != null && !jsonObj.get("Command").isJsonNull()) { + SendCommandType.validateJsonElement(jsonObj.get("Command")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SendCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SendCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SendCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendCommand + * @throws IOException if the JSON string is invalid with respect to SendCommand + */ + public static SendCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendCommand.class); + } + + /** + * Convert an instance of SendCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommandType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommandType.java new file mode 100644 index 0000000000000..d61cbd8d0bee3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SendCommandType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum SendCommandType. + */ +@JsonAdapter(SendCommandType.Adapter.class) +public enum SendCommandType { + + UNPAUSE("Unpause"), + + PAUSE("Pause"), + + STOP("Stop"), + + SEEK("Seek"); + + private String value; + + SendCommandType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SendCommandType fromValue(String value) { + for (SendCommandType b : SendCommandType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SendCommandType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SendCommandType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SendCommandType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SendCommandType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfo.java new file mode 100644 index 0000000000000..3cfa1eabe4d60 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SeriesInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public SeriesInfo() { + } + + public SeriesInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SeriesInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public SeriesInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public SeriesInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public SeriesInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public SeriesInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public SeriesInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public SeriesInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public SeriesInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SeriesInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SeriesInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public SeriesInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesInfo seriesInfo = (SeriesInfo) o; + return Objects.equals(this.name, seriesInfo.name) && + Objects.equals(this.originalTitle, seriesInfo.originalTitle) && + Objects.equals(this.path, seriesInfo.path) && + Objects.equals(this.metadataLanguage, seriesInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, seriesInfo.metadataCountryCode) && + Objects.equals(this.providerIds, seriesInfo.providerIds) && + Objects.equals(this.year, seriesInfo.year) && + Objects.equals(this.indexNumber, seriesInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, seriesInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, seriesInfo.premiereDate) && + Objects.equals(this.isAutomated, seriesInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesInfo is not found in the empty JSON string", SeriesInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesInfo + * @throws IOException if the JSON string is invalid with respect to SeriesInfo + */ + public static SeriesInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesInfo.class); + } + + /** + * Convert an instance of SeriesInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..322cbc0c15872 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SeriesInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SeriesInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private SeriesInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public SeriesInfoRemoteSearchQuery() { + } + + public SeriesInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable SeriesInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public SeriesInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable SeriesInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public SeriesInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public SeriesInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public SeriesInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery = (SeriesInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, seriesInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, seriesInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, seriesInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, seriesInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesInfoRemoteSearchQuery is not found in the empty JSON string", SeriesInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + SeriesInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to SeriesInfoRemoteSearchQuery + */ + public static SeriesInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of SeriesInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesStatus.java new file mode 100644 index 0000000000000..64a7862e1dc2f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesStatus.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The status of a series. + */ +@JsonAdapter(SeriesStatus.Adapter.class) +public enum SeriesStatus { + + CONTINUING("Continuing"), + + ENDED("Ended"), + + UNRELEASED("Unreleased"); + + private String value; + + SeriesStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SeriesStatus fromValue(String value) { + for (SeriesStatus b : SeriesStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SeriesStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SeriesStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SeriesStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SeriesStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCancelledMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCancelledMessage.java new file mode 100644 index 0000000000000..4b8dce3b4aa36 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCancelledMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TimerEventInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Series timer cancelled message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerCancelledMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private TimerEventInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SERIES_TIMER_CANCELLED; + + public SeriesTimerCancelledMessage() { + } + + public SeriesTimerCancelledMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SeriesTimerCancelledMessage data(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public TimerEventInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + } + + + public SeriesTimerCancelledMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerCancelledMessage seriesTimerCancelledMessage = (SeriesTimerCancelledMessage) o; + return Objects.equals(this.data, seriesTimerCancelledMessage.data) && + Objects.equals(this.messageId, seriesTimerCancelledMessage.messageId) && + Objects.equals(this.messageType, seriesTimerCancelledMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerCancelledMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerCancelledMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerCancelledMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerCancelledMessage is not found in the empty JSON string", SeriesTimerCancelledMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerCancelledMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerCancelledMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + TimerEventInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerCancelledMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerCancelledMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerCancelledMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerCancelledMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerCancelledMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerCancelledMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerCancelledMessage + * @throws IOException if the JSON string is invalid with respect to SeriesTimerCancelledMessage + */ + public static SeriesTimerCancelledMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerCancelledMessage.class); + } + + /** + * Convert an instance of SeriesTimerCancelledMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCreatedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCreatedMessage.java new file mode 100644 index 0000000000000..8509e9137741c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerCreatedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TimerEventInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Series timer created message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerCreatedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private TimerEventInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SERIES_TIMER_CREATED; + + public SeriesTimerCreatedMessage() { + } + + public SeriesTimerCreatedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SeriesTimerCreatedMessage data(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public TimerEventInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + } + + + public SeriesTimerCreatedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerCreatedMessage seriesTimerCreatedMessage = (SeriesTimerCreatedMessage) o; + return Objects.equals(this.data, seriesTimerCreatedMessage.data) && + Objects.equals(this.messageId, seriesTimerCreatedMessage.messageId) && + Objects.equals(this.messageType, seriesTimerCreatedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerCreatedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerCreatedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerCreatedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerCreatedMessage is not found in the empty JSON string", SeriesTimerCreatedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerCreatedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerCreatedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + TimerEventInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerCreatedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerCreatedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerCreatedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerCreatedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerCreatedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerCreatedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerCreatedMessage + * @throws IOException if the JSON string is invalid with respect to SeriesTimerCreatedMessage + */ + public static SeriesTimerCreatedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerCreatedMessage.class); + } + + /** + * Convert an instance of SeriesTimerCreatedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java new file mode 100644 index 0000000000000..66497e3d59776 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java @@ -0,0 +1,1236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.client.model.DayPattern; +import org.openapitools.client.model.KeepUntil; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SeriesTimerInfoDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerInfoDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "ExternalId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @javax.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_EXTERNAL_CHANNEL_ID = "ExternalChannelId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_CHANNEL_ID) + @javax.annotation.Nullable + private String externalChannelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_EXTERNAL_PROGRAM_ID = "ExternalProgramId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_PROGRAM_ID) + @javax.annotation.Nullable + private String externalProgramId; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERVICE_NAME = "ServiceName"; + @SerializedName(SERIALIZED_NAME_SERVICE_NAME) + @javax.annotation.Nullable + private String serviceName; + + public static final String SERIALIZED_NAME_PRIORITY = "Priority"; + @SerializedName(SERIALIZED_NAME_PRIORITY) + @javax.annotation.Nullable + private Integer priority; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED = "IsPrePaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPrePaddingRequired; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private String parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_IS_POST_PADDING_REQUIRED = "IsPostPaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_POST_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPostPaddingRequired; + + public static final String SERIALIZED_NAME_KEEP_UNTIL = "KeepUntil"; + @SerializedName(SERIALIZED_NAME_KEEP_UNTIL) + @javax.annotation.Nullable + private KeepUntil keepUntil; + + public static final String SERIALIZED_NAME_RECORD_ANY_TIME = "RecordAnyTime"; + @SerializedName(SERIALIZED_NAME_RECORD_ANY_TIME) + @javax.annotation.Nullable + private Boolean recordAnyTime; + + public static final String SERIALIZED_NAME_SKIP_EPISODES_IN_LIBRARY = "SkipEpisodesInLibrary"; + @SerializedName(SERIALIZED_NAME_SKIP_EPISODES_IN_LIBRARY) + @javax.annotation.Nullable + private Boolean skipEpisodesInLibrary; + + public static final String SERIALIZED_NAME_RECORD_ANY_CHANNEL = "RecordAnyChannel"; + @SerializedName(SERIALIZED_NAME_RECORD_ANY_CHANNEL) + @javax.annotation.Nullable + private Boolean recordAnyChannel; + + public static final String SERIALIZED_NAME_KEEP_UP_TO = "KeepUpTo"; + @SerializedName(SERIALIZED_NAME_KEEP_UP_TO) + @javax.annotation.Nullable + private Integer keepUpTo; + + public static final String SERIALIZED_NAME_RECORD_NEW_ONLY = "RecordNewOnly"; + @SerializedName(SERIALIZED_NAME_RECORD_NEW_ONLY) + @javax.annotation.Nullable + private Boolean recordNewOnly; + + public static final String SERIALIZED_NAME_DAYS = "Days"; + @SerializedName(SERIALIZED_NAME_DAYS) + @javax.annotation.Nullable + private List days; + + public static final String SERIALIZED_NAME_DAY_PATTERN = "DayPattern"; + @SerializedName(SERIALIZED_NAME_DAY_PATTERN) + @javax.annotation.Nullable + private DayPattern dayPattern; + + public static final String SERIALIZED_NAME_IMAGE_TAGS = "ImageTags"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAGS) + @javax.annotation.Nullable + private Map imageTags; + + public static final String SERIALIZED_NAME_PARENT_THUMB_ITEM_ID = "ParentThumbItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_ITEM_ID) + @javax.annotation.Nullable + private String parentThumbItemId; + + public static final String SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG = "ParentThumbImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String parentThumbImageTag; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID = "ParentPrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String parentPrimaryImageItemId; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG = "ParentPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String parentPrimaryImageTag; + + public SeriesTimerInfoDto() { + } + + public SeriesTimerInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the Id of the recording. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SeriesTimerInfoDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public SeriesTimerInfoDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public SeriesTimerInfoDto externalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Gets or sets the external identifier. + * @return externalId + */ + @javax.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public SeriesTimerInfoDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel id of the recording. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public SeriesTimerInfoDto externalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + return this; + } + + /** + * Gets or sets the external channel identifier. + * @return externalChannelId + */ + @javax.annotation.Nullable + public String getExternalChannelId() { + return externalChannelId; + } + + public void setExternalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + } + + + public SeriesTimerInfoDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the channel name of the recording. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public SeriesTimerInfoDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Get channelPrimaryImageTag + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public SeriesTimerInfoDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public SeriesTimerInfoDto externalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + return this; + } + + /** + * Gets or sets the external program identifier. + * @return externalProgramId + */ + @javax.annotation.Nullable + public String getExternalProgramId() { + return externalProgramId; + } + + public void setExternalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + } + + + public SeriesTimerInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the recording. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SeriesTimerInfoDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the description of the recording. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public SeriesTimerInfoDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public SeriesTimerInfoDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date of the recording, in UTC. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public SeriesTimerInfoDto serviceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + return this; + } + + /** + * Gets or sets the name of the service. + * @return serviceName + */ + @javax.annotation.Nullable + public String getServiceName() { + return serviceName; + } + + public void setServiceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + } + + + public SeriesTimerInfoDto priority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + return this; + } + + /** + * Gets or sets the priority. + * @return priority + */ + @javax.annotation.Nullable + public Integer getPriority() { + return priority; + } + + public void setPriority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + } + + + public SeriesTimerInfoDto prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Gets or sets the pre padding seconds. + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public SeriesTimerInfoDto postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Gets or sets the post padding seconds. + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public SeriesTimerInfoDto isPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is pre padding required. + * @return isPrePaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPrePaddingRequired() { + return isPrePaddingRequired; + } + + public void setIsPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + } + + + public SeriesTimerInfoDto parentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public String getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public SeriesTimerInfoDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public SeriesTimerInfoDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public SeriesTimerInfoDto isPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is post padding required. + * @return isPostPaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPostPaddingRequired() { + return isPostPaddingRequired; + } + + public void setIsPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + } + + + public SeriesTimerInfoDto keepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + return this; + } + + /** + * Get keepUntil + * @return keepUntil + */ + @javax.annotation.Nullable + public KeepUntil getKeepUntil() { + return keepUntil; + } + + public void setKeepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + } + + + public SeriesTimerInfoDto recordAnyTime(@javax.annotation.Nullable Boolean recordAnyTime) { + this.recordAnyTime = recordAnyTime; + return this; + } + + /** + * Gets or sets a value indicating whether [record any time]. + * @return recordAnyTime + */ + @javax.annotation.Nullable + public Boolean getRecordAnyTime() { + return recordAnyTime; + } + + public void setRecordAnyTime(@javax.annotation.Nullable Boolean recordAnyTime) { + this.recordAnyTime = recordAnyTime; + } + + + public SeriesTimerInfoDto skipEpisodesInLibrary(@javax.annotation.Nullable Boolean skipEpisodesInLibrary) { + this.skipEpisodesInLibrary = skipEpisodesInLibrary; + return this; + } + + /** + * Get skipEpisodesInLibrary + * @return skipEpisodesInLibrary + */ + @javax.annotation.Nullable + public Boolean getSkipEpisodesInLibrary() { + return skipEpisodesInLibrary; + } + + public void setSkipEpisodesInLibrary(@javax.annotation.Nullable Boolean skipEpisodesInLibrary) { + this.skipEpisodesInLibrary = skipEpisodesInLibrary; + } + + + public SeriesTimerInfoDto recordAnyChannel(@javax.annotation.Nullable Boolean recordAnyChannel) { + this.recordAnyChannel = recordAnyChannel; + return this; + } + + /** + * Gets or sets a value indicating whether [record any channel]. + * @return recordAnyChannel + */ + @javax.annotation.Nullable + public Boolean getRecordAnyChannel() { + return recordAnyChannel; + } + + public void setRecordAnyChannel(@javax.annotation.Nullable Boolean recordAnyChannel) { + this.recordAnyChannel = recordAnyChannel; + } + + + public SeriesTimerInfoDto keepUpTo(@javax.annotation.Nullable Integer keepUpTo) { + this.keepUpTo = keepUpTo; + return this; + } + + /** + * Get keepUpTo + * @return keepUpTo + */ + @javax.annotation.Nullable + public Integer getKeepUpTo() { + return keepUpTo; + } + + public void setKeepUpTo(@javax.annotation.Nullable Integer keepUpTo) { + this.keepUpTo = keepUpTo; + } + + + public SeriesTimerInfoDto recordNewOnly(@javax.annotation.Nullable Boolean recordNewOnly) { + this.recordNewOnly = recordNewOnly; + return this; + } + + /** + * Gets or sets a value indicating whether [record new only]. + * @return recordNewOnly + */ + @javax.annotation.Nullable + public Boolean getRecordNewOnly() { + return recordNewOnly; + } + + public void setRecordNewOnly(@javax.annotation.Nullable Boolean recordNewOnly) { + this.recordNewOnly = recordNewOnly; + } + + + public SeriesTimerInfoDto days(@javax.annotation.Nullable List days) { + this.days = days; + return this; + } + + public SeriesTimerInfoDto addDaysItem(DayOfWeek daysItem) { + if (this.days == null) { + this.days = new ArrayList<>(); + } + this.days.add(daysItem); + return this; + } + + /** + * Gets or sets the days. + * @return days + */ + @javax.annotation.Nullable + public List getDays() { + return days; + } + + public void setDays(@javax.annotation.Nullable List days) { + this.days = days; + } + + + public SeriesTimerInfoDto dayPattern(@javax.annotation.Nullable DayPattern dayPattern) { + this.dayPattern = dayPattern; + return this; + } + + /** + * Gets or sets the day pattern. + * @return dayPattern + */ + @javax.annotation.Nullable + public DayPattern getDayPattern() { + return dayPattern; + } + + public void setDayPattern(@javax.annotation.Nullable DayPattern dayPattern) { + this.dayPattern = dayPattern; + } + + + public SeriesTimerInfoDto imageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + return this; + } + + public SeriesTimerInfoDto putImageTagsItem(String key, String imageTagsItem) { + if (this.imageTags == null) { + this.imageTags = new HashMap<>(); + } + this.imageTags.put(key, imageTagsItem); + return this; + } + + /** + * Gets or sets the image tags. + * @return imageTags + */ + @javax.annotation.Nullable + public Map getImageTags() { + return imageTags; + } + + public void setImageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + } + + + public SeriesTimerInfoDto parentThumbItemId(@javax.annotation.Nullable String parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + return this; + } + + /** + * Gets or sets the parent thumb item id. + * @return parentThumbItemId + */ + @javax.annotation.Nullable + public String getParentThumbItemId() { + return parentThumbItemId; + } + + public void setParentThumbItemId(@javax.annotation.Nullable String parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + } + + + public SeriesTimerInfoDto parentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + return this; + } + + /** + * Gets or sets the parent thumb image tag. + * @return parentThumbImageTag + */ + @javax.annotation.Nullable + public String getParentThumbImageTag() { + return parentThumbImageTag; + } + + public void setParentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + } + + + public SeriesTimerInfoDto parentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + return this; + } + + /** + * Gets or sets the parent primary image item identifier. + * @return parentPrimaryImageItemId + */ + @javax.annotation.Nullable + public String getParentPrimaryImageItemId() { + return parentPrimaryImageItemId; + } + + public void setParentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + } + + + public SeriesTimerInfoDto parentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + return this; + } + + /** + * Gets or sets the parent primary image tag. + * @return parentPrimaryImageTag + */ + @javax.annotation.Nullable + public String getParentPrimaryImageTag() { + return parentPrimaryImageTag; + } + + public void setParentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerInfoDto seriesTimerInfoDto = (SeriesTimerInfoDto) o; + return Objects.equals(this.id, seriesTimerInfoDto.id) && + Objects.equals(this.type, seriesTimerInfoDto.type) && + Objects.equals(this.serverId, seriesTimerInfoDto.serverId) && + Objects.equals(this.externalId, seriesTimerInfoDto.externalId) && + Objects.equals(this.channelId, seriesTimerInfoDto.channelId) && + Objects.equals(this.externalChannelId, seriesTimerInfoDto.externalChannelId) && + Objects.equals(this.channelName, seriesTimerInfoDto.channelName) && + Objects.equals(this.channelPrimaryImageTag, seriesTimerInfoDto.channelPrimaryImageTag) && + Objects.equals(this.programId, seriesTimerInfoDto.programId) && + Objects.equals(this.externalProgramId, seriesTimerInfoDto.externalProgramId) && + Objects.equals(this.name, seriesTimerInfoDto.name) && + Objects.equals(this.overview, seriesTimerInfoDto.overview) && + Objects.equals(this.startDate, seriesTimerInfoDto.startDate) && + Objects.equals(this.endDate, seriesTimerInfoDto.endDate) && + Objects.equals(this.serviceName, seriesTimerInfoDto.serviceName) && + Objects.equals(this.priority, seriesTimerInfoDto.priority) && + Objects.equals(this.prePaddingSeconds, seriesTimerInfoDto.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, seriesTimerInfoDto.postPaddingSeconds) && + Objects.equals(this.isPrePaddingRequired, seriesTimerInfoDto.isPrePaddingRequired) && + Objects.equals(this.parentBackdropItemId, seriesTimerInfoDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, seriesTimerInfoDto.parentBackdropImageTags) && + Objects.equals(this.isPostPaddingRequired, seriesTimerInfoDto.isPostPaddingRequired) && + Objects.equals(this.keepUntil, seriesTimerInfoDto.keepUntil) && + Objects.equals(this.recordAnyTime, seriesTimerInfoDto.recordAnyTime) && + Objects.equals(this.skipEpisodesInLibrary, seriesTimerInfoDto.skipEpisodesInLibrary) && + Objects.equals(this.recordAnyChannel, seriesTimerInfoDto.recordAnyChannel) && + Objects.equals(this.keepUpTo, seriesTimerInfoDto.keepUpTo) && + Objects.equals(this.recordNewOnly, seriesTimerInfoDto.recordNewOnly) && + Objects.equals(this.days, seriesTimerInfoDto.days) && + Objects.equals(this.dayPattern, seriesTimerInfoDto.dayPattern) && + Objects.equals(this.imageTags, seriesTimerInfoDto.imageTags) && + Objects.equals(this.parentThumbItemId, seriesTimerInfoDto.parentThumbItemId) && + Objects.equals(this.parentThumbImageTag, seriesTimerInfoDto.parentThumbImageTag) && + Objects.equals(this.parentPrimaryImageItemId, seriesTimerInfoDto.parentPrimaryImageItemId) && + Objects.equals(this.parentPrimaryImageTag, seriesTimerInfoDto.parentPrimaryImageTag); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, serverId, externalId, channelId, externalChannelId, channelName, channelPrimaryImageTag, programId, externalProgramId, name, overview, startDate, endDate, serviceName, priority, prePaddingSeconds, postPaddingSeconds, isPrePaddingRequired, parentBackdropItemId, parentBackdropImageTags, isPostPaddingRequired, keepUntil, recordAnyTime, skipEpisodesInLibrary, recordAnyChannel, keepUpTo, recordNewOnly, days, dayPattern, imageTags, parentThumbItemId, parentThumbImageTag, parentPrimaryImageItemId, parentPrimaryImageTag); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerInfoDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" externalChannelId: ").append(toIndentedString(externalChannelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" externalProgramId: ").append(toIndentedString(externalProgramId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" isPrePaddingRequired: ").append(toIndentedString(isPrePaddingRequired)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" isPostPaddingRequired: ").append(toIndentedString(isPostPaddingRequired)).append("\n"); + sb.append(" keepUntil: ").append(toIndentedString(keepUntil)).append("\n"); + sb.append(" recordAnyTime: ").append(toIndentedString(recordAnyTime)).append("\n"); + sb.append(" skipEpisodesInLibrary: ").append(toIndentedString(skipEpisodesInLibrary)).append("\n"); + sb.append(" recordAnyChannel: ").append(toIndentedString(recordAnyChannel)).append("\n"); + sb.append(" keepUpTo: ").append(toIndentedString(keepUpTo)).append("\n"); + sb.append(" recordNewOnly: ").append(toIndentedString(recordNewOnly)).append("\n"); + sb.append(" days: ").append(toIndentedString(days)).append("\n"); + sb.append(" dayPattern: ").append(toIndentedString(dayPattern)).append("\n"); + sb.append(" imageTags: ").append(toIndentedString(imageTags)).append("\n"); + sb.append(" parentThumbItemId: ").append(toIndentedString(parentThumbItemId)).append("\n"); + sb.append(" parentThumbImageTag: ").append(toIndentedString(parentThumbImageTag)).append("\n"); + sb.append(" parentPrimaryImageItemId: ").append(toIndentedString(parentPrimaryImageItemId)).append("\n"); + sb.append(" parentPrimaryImageTag: ").append(toIndentedString(parentPrimaryImageTag)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("ServerId"); + openapiFields.add("ExternalId"); + openapiFields.add("ChannelId"); + openapiFields.add("ExternalChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("ProgramId"); + openapiFields.add("ExternalProgramId"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("ServiceName"); + openapiFields.add("Priority"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("IsPrePaddingRequired"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("IsPostPaddingRequired"); + openapiFields.add("KeepUntil"); + openapiFields.add("RecordAnyTime"); + openapiFields.add("SkipEpisodesInLibrary"); + openapiFields.add("RecordAnyChannel"); + openapiFields.add("KeepUpTo"); + openapiFields.add("RecordNewOnly"); + openapiFields.add("Days"); + openapiFields.add("DayPattern"); + openapiFields.add("ImageTags"); + openapiFields.add("ParentThumbItemId"); + openapiFields.add("ParentThumbImageTag"); + openapiFields.add("ParentPrimaryImageItemId"); + openapiFields.add("ParentPrimaryImageTag"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerInfoDto is not found in the empty JSON string", SeriesTimerInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ExternalId") != null && !jsonObj.get("ExternalId").isJsonNull()) && !jsonObj.get("ExternalId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalId").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ExternalChannelId") != null && !jsonObj.get("ExternalChannelId").isJsonNull()) && !jsonObj.get("ExternalChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ExternalProgramId") != null && !jsonObj.get("ExternalProgramId").isJsonNull()) && !jsonObj.get("ExternalProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalProgramId").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ServiceName") != null && !jsonObj.get("ServiceName").isJsonNull()) && !jsonObj.get("ServiceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServiceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServiceName").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `KeepUntil` + if (jsonObj.get("KeepUntil") != null && !jsonObj.get("KeepUntil").isJsonNull()) { + KeepUntil.validateJsonElement(jsonObj.get("KeepUntil")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Days") != null && !jsonObj.get("Days").isJsonNull() && !jsonObj.get("Days").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Days` to be an array in the JSON string but got `%s`", jsonObj.get("Days").toString())); + } + // validate the optional field `DayPattern` + if (jsonObj.get("DayPattern") != null && !jsonObj.get("DayPattern").isJsonNull()) { + DayPattern.validateJsonElement(jsonObj.get("DayPattern")); + } + if ((jsonObj.get("ParentThumbItemId") != null && !jsonObj.get("ParentThumbItemId").isJsonNull()) && !jsonObj.get("ParentThumbItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbItemId").toString())); + } + if ((jsonObj.get("ParentThumbImageTag") != null && !jsonObj.get("ParentThumbImageTag").isJsonNull()) && !jsonObj.get("ParentThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbImageTag").toString())); + } + if ((jsonObj.get("ParentPrimaryImageItemId") != null && !jsonObj.get("ParentPrimaryImageItemId").isJsonNull()) && !jsonObj.get("ParentPrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageItemId").toString())); + } + if ((jsonObj.get("ParentPrimaryImageTag") != null && !jsonObj.get("ParentPrimaryImageTag").isJsonNull()) && !jsonObj.get("ParentPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageTag").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerInfoDto + * @throws IOException if the JSON string is invalid with respect to SeriesTimerInfoDto + */ + public static SeriesTimerInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerInfoDto.class); + } + + /** + * Convert an instance of SeriesTimerInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java new file mode 100644 index 0000000000000..c2927fb23e872 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SeriesTimerInfoDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerInfoDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public SeriesTimerInfoDtoQueryResult() { + } + + public SeriesTimerInfoDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public SeriesTimerInfoDtoQueryResult addItemsItem(SeriesTimerInfoDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public SeriesTimerInfoDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public SeriesTimerInfoDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerInfoDtoQueryResult seriesTimerInfoDtoQueryResult = (SeriesTimerInfoDtoQueryResult) o; + return Objects.equals(this.items, seriesTimerInfoDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, seriesTimerInfoDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, seriesTimerInfoDtoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerInfoDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerInfoDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerInfoDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerInfoDtoQueryResult is not found in the empty JSON string", SeriesTimerInfoDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerInfoDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerInfoDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + SeriesTimerInfoDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerInfoDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerInfoDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerInfoDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerInfoDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerInfoDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerInfoDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerInfoDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to SeriesTimerInfoDtoQueryResult + */ + public static SeriesTimerInfoDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerInfoDtoQueryResult.class); + } + + /** + * Convert an instance of SeriesTimerInfoDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerConfiguration.java new file mode 100644 index 0000000000000..9284d21c4b00e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerConfiguration.java @@ -0,0 +1,1862 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CastReceiverApplication; +import org.openapitools.client.model.ImageResolution; +import org.openapitools.client.model.ImageSavingConvention; +import org.openapitools.client.model.MetadataOptions; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.PathSubstitution; +import org.openapitools.client.model.RepositoryInfo; +import org.openapitools.client.model.TrickplayOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Represents the server configuration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerConfiguration { + public static final String SERIALIZED_NAME_LOG_FILE_RETENTION_DAYS = "LogFileRetentionDays"; + @SerializedName(SERIALIZED_NAME_LOG_FILE_RETENTION_DAYS) + @javax.annotation.Nullable + private Integer logFileRetentionDays; + + public static final String SERIALIZED_NAME_IS_STARTUP_WIZARD_COMPLETED = "IsStartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_IS_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean isStartupWizardCompleted; + + public static final String SERIALIZED_NAME_CACHE_PATH = "CachePath"; + @SerializedName(SERIALIZED_NAME_CACHE_PATH) + @javax.annotation.Nullable + private String cachePath; + + public static final String SERIALIZED_NAME_PREVIOUS_VERSION = "PreviousVersion"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_VERSION) + @javax.annotation.Nullable + private String previousVersion; + + public static final String SERIALIZED_NAME_PREVIOUS_VERSION_STR = "PreviousVersionStr"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_VERSION_STR) + @javax.annotation.Nullable + private String previousVersionStr; + + public static final String SERIALIZED_NAME_ENABLE_METRICS = "EnableMetrics"; + @SerializedName(SERIALIZED_NAME_ENABLE_METRICS) + @javax.annotation.Nullable + private Boolean enableMetrics; + + public static final String SERIALIZED_NAME_ENABLE_NORMALIZED_ITEM_BY_NAME_IDS = "EnableNormalizedItemByNameIds"; + @SerializedName(SERIALIZED_NAME_ENABLE_NORMALIZED_ITEM_BY_NAME_IDS) + @javax.annotation.Nullable + private Boolean enableNormalizedItemByNameIds; + + public static final String SERIALIZED_NAME_IS_PORT_AUTHORIZED = "IsPortAuthorized"; + @SerializedName(SERIALIZED_NAME_IS_PORT_AUTHORIZED) + @javax.annotation.Nullable + private Boolean isPortAuthorized; + + public static final String SERIALIZED_NAME_QUICK_CONNECT_AVAILABLE = "QuickConnectAvailable"; + @SerializedName(SERIALIZED_NAME_QUICK_CONNECT_AVAILABLE) + @javax.annotation.Nullable + private Boolean quickConnectAvailable; + + public static final String SERIALIZED_NAME_ENABLE_CASE_SENSITIVE_ITEM_IDS = "EnableCaseSensitiveItemIds"; + @SerializedName(SERIALIZED_NAME_ENABLE_CASE_SENSITIVE_ITEM_IDS) + @javax.annotation.Nullable + private Boolean enableCaseSensitiveItemIds; + + public static final String SERIALIZED_NAME_DISABLE_LIVE_TV_CHANNEL_USER_DATA_NAME = "DisableLiveTvChannelUserDataName"; + @SerializedName(SERIALIZED_NAME_DISABLE_LIVE_TV_CHANNEL_USER_DATA_NAME) + @javax.annotation.Nullable + private Boolean disableLiveTvChannelUserDataName; + + public static final String SERIALIZED_NAME_METADATA_PATH = "MetadataPath"; + @SerializedName(SERIALIZED_NAME_METADATA_PATH) + @javax.annotation.Nullable + private String metadataPath; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_SORT_REPLACE_CHARACTERS = "SortReplaceCharacters"; + @SerializedName(SERIALIZED_NAME_SORT_REPLACE_CHARACTERS) + @javax.annotation.Nullable + private List sortReplaceCharacters = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SORT_REMOVE_CHARACTERS = "SortRemoveCharacters"; + @SerializedName(SERIALIZED_NAME_SORT_REMOVE_CHARACTERS) + @javax.annotation.Nullable + private List sortRemoveCharacters = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SORT_REMOVE_WORDS = "SortRemoveWords"; + @SerializedName(SERIALIZED_NAME_SORT_REMOVE_WORDS) + @javax.annotation.Nullable + private List sortRemoveWords = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MIN_RESUME_PCT = "MinResumePct"; + @SerializedName(SERIALIZED_NAME_MIN_RESUME_PCT) + @javax.annotation.Nullable + private Integer minResumePct; + + public static final String SERIALIZED_NAME_MAX_RESUME_PCT = "MaxResumePct"; + @SerializedName(SERIALIZED_NAME_MAX_RESUME_PCT) + @javax.annotation.Nullable + private Integer maxResumePct; + + public static final String SERIALIZED_NAME_MIN_RESUME_DURATION_SECONDS = "MinResumeDurationSeconds"; + @SerializedName(SERIALIZED_NAME_MIN_RESUME_DURATION_SECONDS) + @javax.annotation.Nullable + private Integer minResumeDurationSeconds; + + public static final String SERIALIZED_NAME_MIN_AUDIOBOOK_RESUME = "MinAudiobookResume"; + @SerializedName(SERIALIZED_NAME_MIN_AUDIOBOOK_RESUME) + @javax.annotation.Nullable + private Integer minAudiobookResume; + + public static final String SERIALIZED_NAME_MAX_AUDIOBOOK_RESUME = "MaxAudiobookResume"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIOBOOK_RESUME) + @javax.annotation.Nullable + private Integer maxAudiobookResume; + + public static final String SERIALIZED_NAME_INACTIVE_SESSION_THRESHOLD = "InactiveSessionThreshold"; + @SerializedName(SERIALIZED_NAME_INACTIVE_SESSION_THRESHOLD) + @javax.annotation.Nullable + private Integer inactiveSessionThreshold; + + public static final String SERIALIZED_NAME_LIBRARY_MONITOR_DELAY = "LibraryMonitorDelay"; + @SerializedName(SERIALIZED_NAME_LIBRARY_MONITOR_DELAY) + @javax.annotation.Nullable + private Integer libraryMonitorDelay; + + public static final String SERIALIZED_NAME_LIBRARY_UPDATE_DURATION = "LibraryUpdateDuration"; + @SerializedName(SERIALIZED_NAME_LIBRARY_UPDATE_DURATION) + @javax.annotation.Nullable + private Integer libraryUpdateDuration; + + public static final String SERIALIZED_NAME_IMAGE_SAVING_CONVENTION = "ImageSavingConvention"; + @SerializedName(SERIALIZED_NAME_IMAGE_SAVING_CONVENTION) + @javax.annotation.Nullable + private ImageSavingConvention imageSavingConvention; + + public static final String SERIALIZED_NAME_METADATA_OPTIONS = "MetadataOptions"; + @SerializedName(SERIALIZED_NAME_METADATA_OPTIONS) + @javax.annotation.Nullable + private List metadataOptions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SKIP_DESERIALIZATION_FOR_BASIC_TYPES = "SkipDeserializationForBasicTypes"; + @SerializedName(SERIALIZED_NAME_SKIP_DESERIALIZATION_FOR_BASIC_TYPES) + @javax.annotation.Nullable + private Boolean skipDeserializationForBasicTypes; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_UI_CULTURE = "UICulture"; + @SerializedName(SERIALIZED_NAME_UI_CULTURE) + @javax.annotation.Nullable + private String uiCulture; + + public static final String SERIALIZED_NAME_SAVE_METADATA_HIDDEN = "SaveMetadataHidden"; + @SerializedName(SERIALIZED_NAME_SAVE_METADATA_HIDDEN) + @javax.annotation.Nullable + private Boolean saveMetadataHidden; + + public static final String SERIALIZED_NAME_CONTENT_TYPES = "ContentTypes"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPES) + @javax.annotation.Nullable + private List contentTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT = "RemoteClientBitrateLimit"; + @SerializedName(SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT) + @javax.annotation.Nullable + private Integer remoteClientBitrateLimit; + + public static final String SERIALIZED_NAME_ENABLE_FOLDER_VIEW = "EnableFolderView"; + @SerializedName(SERIALIZED_NAME_ENABLE_FOLDER_VIEW) + @javax.annotation.Nullable + private Boolean enableFolderView; + + public static final String SERIALIZED_NAME_ENABLE_GROUPING_INTO_COLLECTIONS = "EnableGroupingIntoCollections"; + @SerializedName(SERIALIZED_NAME_ENABLE_GROUPING_INTO_COLLECTIONS) + @javax.annotation.Nullable + private Boolean enableGroupingIntoCollections; + + public static final String SERIALIZED_NAME_DISPLAY_SPECIALS_WITHIN_SEASONS = "DisplaySpecialsWithinSeasons"; + @SerializedName(SERIALIZED_NAME_DISPLAY_SPECIALS_WITHIN_SEASONS) + @javax.annotation.Nullable + private Boolean displaySpecialsWithinSeasons; + + public static final String SERIALIZED_NAME_CODECS_USED = "CodecsUsed"; + @SerializedName(SERIALIZED_NAME_CODECS_USED) + @javax.annotation.Nullable + private List codecsUsed = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLUGIN_REPOSITORIES = "PluginRepositories"; + @SerializedName(SERIALIZED_NAME_PLUGIN_REPOSITORIES) + @javax.annotation.Nullable + private List pluginRepositories = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_EXTERNAL_CONTENT_IN_SUGGESTIONS = "EnableExternalContentInSuggestions"; + @SerializedName(SERIALIZED_NAME_ENABLE_EXTERNAL_CONTENT_IN_SUGGESTIONS) + @javax.annotation.Nullable + private Boolean enableExternalContentInSuggestions; + + public static final String SERIALIZED_NAME_IMAGE_EXTRACTION_TIMEOUT_MS = "ImageExtractionTimeoutMs"; + @SerializedName(SERIALIZED_NAME_IMAGE_EXTRACTION_TIMEOUT_MS) + @javax.annotation.Nullable + private Integer imageExtractionTimeoutMs; + + public static final String SERIALIZED_NAME_PATH_SUBSTITUTIONS = "PathSubstitutions"; + @SerializedName(SERIALIZED_NAME_PATH_SUBSTITUTIONS) + @javax.annotation.Nullable + private List pathSubstitutions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_SLOW_RESPONSE_WARNING = "EnableSlowResponseWarning"; + @SerializedName(SERIALIZED_NAME_ENABLE_SLOW_RESPONSE_WARNING) + @javax.annotation.Nullable + private Boolean enableSlowResponseWarning; + + public static final String SERIALIZED_NAME_SLOW_RESPONSE_THRESHOLD_MS = "SlowResponseThresholdMs"; + @SerializedName(SERIALIZED_NAME_SLOW_RESPONSE_THRESHOLD_MS) + @javax.annotation.Nullable + private Long slowResponseThresholdMs; + + public static final String SERIALIZED_NAME_CORS_HOSTS = "CorsHosts"; + @SerializedName(SERIALIZED_NAME_CORS_HOSTS) + @javax.annotation.Nullable + private List corsHosts = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ACTIVITY_LOG_RETENTION_DAYS = "ActivityLogRetentionDays"; + @SerializedName(SERIALIZED_NAME_ACTIVITY_LOG_RETENTION_DAYS) + @javax.annotation.Nullable + private Integer activityLogRetentionDays; + + public static final String SERIALIZED_NAME_LIBRARY_SCAN_FANOUT_CONCURRENCY = "LibraryScanFanoutConcurrency"; + @SerializedName(SERIALIZED_NAME_LIBRARY_SCAN_FANOUT_CONCURRENCY) + @javax.annotation.Nullable + private Integer libraryScanFanoutConcurrency; + + public static final String SERIALIZED_NAME_LIBRARY_METADATA_REFRESH_CONCURRENCY = "LibraryMetadataRefreshConcurrency"; + @SerializedName(SERIALIZED_NAME_LIBRARY_METADATA_REFRESH_CONCURRENCY) + @javax.annotation.Nullable + private Integer libraryMetadataRefreshConcurrency; + + public static final String SERIALIZED_NAME_REMOVE_OLD_PLUGINS = "RemoveOldPlugins"; + @SerializedName(SERIALIZED_NAME_REMOVE_OLD_PLUGINS) + @javax.annotation.Nullable + private Boolean removeOldPlugins; + + public static final String SERIALIZED_NAME_ALLOW_CLIENT_LOG_UPLOAD = "AllowClientLogUpload"; + @SerializedName(SERIALIZED_NAME_ALLOW_CLIENT_LOG_UPLOAD) + @javax.annotation.Nullable + private Boolean allowClientLogUpload; + + public static final String SERIALIZED_NAME_DUMMY_CHAPTER_DURATION = "DummyChapterDuration"; + @SerializedName(SERIALIZED_NAME_DUMMY_CHAPTER_DURATION) + @javax.annotation.Nullable + private Integer dummyChapterDuration; + + public static final String SERIALIZED_NAME_CHAPTER_IMAGE_RESOLUTION = "ChapterImageResolution"; + @SerializedName(SERIALIZED_NAME_CHAPTER_IMAGE_RESOLUTION) + @javax.annotation.Nullable + private ImageResolution chapterImageResolution; + + public static final String SERIALIZED_NAME_PARALLEL_IMAGE_ENCODING_LIMIT = "ParallelImageEncodingLimit"; + @SerializedName(SERIALIZED_NAME_PARALLEL_IMAGE_ENCODING_LIMIT) + @javax.annotation.Nullable + private Integer parallelImageEncodingLimit; + + public static final String SERIALIZED_NAME_CAST_RECEIVER_APPLICATIONS = "CastReceiverApplications"; + @SerializedName(SERIALIZED_NAME_CAST_RECEIVER_APPLICATIONS) + @javax.annotation.Nullable + private List castReceiverApplications = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TRICKPLAY_OPTIONS = "TrickplayOptions"; + @SerializedName(SERIALIZED_NAME_TRICKPLAY_OPTIONS) + @javax.annotation.Nullable + private TrickplayOptions trickplayOptions; + + public ServerConfiguration() { + } + + public ServerConfiguration logFileRetentionDays(@javax.annotation.Nullable Integer logFileRetentionDays) { + this.logFileRetentionDays = logFileRetentionDays; + return this; + } + + /** + * Gets or sets the number of days we should retain log files. + * @return logFileRetentionDays + */ + @javax.annotation.Nullable + public Integer getLogFileRetentionDays() { + return logFileRetentionDays; + } + + public void setLogFileRetentionDays(@javax.annotation.Nullable Integer logFileRetentionDays) { + this.logFileRetentionDays = logFileRetentionDays; + } + + + public ServerConfiguration isStartupWizardCompleted(@javax.annotation.Nullable Boolean isStartupWizardCompleted) { + this.isStartupWizardCompleted = isStartupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is first run. + * @return isStartupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getIsStartupWizardCompleted() { + return isStartupWizardCompleted; + } + + public void setIsStartupWizardCompleted(@javax.annotation.Nullable Boolean isStartupWizardCompleted) { + this.isStartupWizardCompleted = isStartupWizardCompleted; + } + + + public ServerConfiguration cachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + return this; + } + + /** + * Gets or sets the cache path. + * @return cachePath + */ + @javax.annotation.Nullable + public String getCachePath() { + return cachePath; + } + + public void setCachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + } + + + public ServerConfiguration previousVersion(@javax.annotation.Nullable String previousVersion) { + this.previousVersion = previousVersion; + return this; + } + + /** + * Gets or sets the last known version that was ran using the configuration. + * @return previousVersion + */ + @javax.annotation.Nullable + public String getPreviousVersion() { + return previousVersion; + } + + public void setPreviousVersion(@javax.annotation.Nullable String previousVersion) { + this.previousVersion = previousVersion; + } + + + public ServerConfiguration previousVersionStr(@javax.annotation.Nullable String previousVersionStr) { + this.previousVersionStr = previousVersionStr; + return this; + } + + /** + * Gets or sets the stringified PreviousVersion to be stored/loaded, because System.Version itself isn't xml-serializable. + * @return previousVersionStr + */ + @javax.annotation.Nullable + public String getPreviousVersionStr() { + return previousVersionStr; + } + + public void setPreviousVersionStr(@javax.annotation.Nullable String previousVersionStr) { + this.previousVersionStr = previousVersionStr; + } + + + public ServerConfiguration enableMetrics(@javax.annotation.Nullable Boolean enableMetrics) { + this.enableMetrics = enableMetrics; + return this; + } + + /** + * Gets or sets a value indicating whether to enable prometheus metrics exporting. + * @return enableMetrics + */ + @javax.annotation.Nullable + public Boolean getEnableMetrics() { + return enableMetrics; + } + + public void setEnableMetrics(@javax.annotation.Nullable Boolean enableMetrics) { + this.enableMetrics = enableMetrics; + } + + + public ServerConfiguration enableNormalizedItemByNameIds(@javax.annotation.Nullable Boolean enableNormalizedItemByNameIds) { + this.enableNormalizedItemByNameIds = enableNormalizedItemByNameIds; + return this; + } + + /** + * Get enableNormalizedItemByNameIds + * @return enableNormalizedItemByNameIds + */ + @javax.annotation.Nullable + public Boolean getEnableNormalizedItemByNameIds() { + return enableNormalizedItemByNameIds; + } + + public void setEnableNormalizedItemByNameIds(@javax.annotation.Nullable Boolean enableNormalizedItemByNameIds) { + this.enableNormalizedItemByNameIds = enableNormalizedItemByNameIds; + } + + + public ServerConfiguration isPortAuthorized(@javax.annotation.Nullable Boolean isPortAuthorized) { + this.isPortAuthorized = isPortAuthorized; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is port authorized. + * @return isPortAuthorized + */ + @javax.annotation.Nullable + public Boolean getIsPortAuthorized() { + return isPortAuthorized; + } + + public void setIsPortAuthorized(@javax.annotation.Nullable Boolean isPortAuthorized) { + this.isPortAuthorized = isPortAuthorized; + } + + + public ServerConfiguration quickConnectAvailable(@javax.annotation.Nullable Boolean quickConnectAvailable) { + this.quickConnectAvailable = quickConnectAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether quick connect is available for use on this server. + * @return quickConnectAvailable + */ + @javax.annotation.Nullable + public Boolean getQuickConnectAvailable() { + return quickConnectAvailable; + } + + public void setQuickConnectAvailable(@javax.annotation.Nullable Boolean quickConnectAvailable) { + this.quickConnectAvailable = quickConnectAvailable; + } + + + public ServerConfiguration enableCaseSensitiveItemIds(@javax.annotation.Nullable Boolean enableCaseSensitiveItemIds) { + this.enableCaseSensitiveItemIds = enableCaseSensitiveItemIds; + return this; + } + + /** + * Gets or sets a value indicating whether [enable case sensitive item ids]. + * @return enableCaseSensitiveItemIds + */ + @javax.annotation.Nullable + public Boolean getEnableCaseSensitiveItemIds() { + return enableCaseSensitiveItemIds; + } + + public void setEnableCaseSensitiveItemIds(@javax.annotation.Nullable Boolean enableCaseSensitiveItemIds) { + this.enableCaseSensitiveItemIds = enableCaseSensitiveItemIds; + } + + + public ServerConfiguration disableLiveTvChannelUserDataName(@javax.annotation.Nullable Boolean disableLiveTvChannelUserDataName) { + this.disableLiveTvChannelUserDataName = disableLiveTvChannelUserDataName; + return this; + } + + /** + * Get disableLiveTvChannelUserDataName + * @return disableLiveTvChannelUserDataName + */ + @javax.annotation.Nullable + public Boolean getDisableLiveTvChannelUserDataName() { + return disableLiveTvChannelUserDataName; + } + + public void setDisableLiveTvChannelUserDataName(@javax.annotation.Nullable Boolean disableLiveTvChannelUserDataName) { + this.disableLiveTvChannelUserDataName = disableLiveTvChannelUserDataName; + } + + + public ServerConfiguration metadataPath(@javax.annotation.Nullable String metadataPath) { + this.metadataPath = metadataPath; + return this; + } + + /** + * Gets or sets the metadata path. + * @return metadataPath + */ + @javax.annotation.Nullable + public String getMetadataPath() { + return metadataPath; + } + + public void setMetadataPath(@javax.annotation.Nullable String metadataPath) { + this.metadataPath = metadataPath; + } + + + public ServerConfiguration preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred metadata language. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public ServerConfiguration metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public ServerConfiguration sortReplaceCharacters(@javax.annotation.Nullable List sortReplaceCharacters) { + this.sortReplaceCharacters = sortReplaceCharacters; + return this; + } + + public ServerConfiguration addSortReplaceCharactersItem(String sortReplaceCharactersItem) { + if (this.sortReplaceCharacters == null) { + this.sortReplaceCharacters = new ArrayList<>(); + } + this.sortReplaceCharacters.add(sortReplaceCharactersItem); + return this; + } + + /** + * Gets or sets characters to be replaced with a ' ' in strings to create a sort name. + * @return sortReplaceCharacters + */ + @javax.annotation.Nullable + public List getSortReplaceCharacters() { + return sortReplaceCharacters; + } + + public void setSortReplaceCharacters(@javax.annotation.Nullable List sortReplaceCharacters) { + this.sortReplaceCharacters = sortReplaceCharacters; + } + + + public ServerConfiguration sortRemoveCharacters(@javax.annotation.Nullable List sortRemoveCharacters) { + this.sortRemoveCharacters = sortRemoveCharacters; + return this; + } + + public ServerConfiguration addSortRemoveCharactersItem(String sortRemoveCharactersItem) { + if (this.sortRemoveCharacters == null) { + this.sortRemoveCharacters = new ArrayList<>(); + } + this.sortRemoveCharacters.add(sortRemoveCharactersItem); + return this; + } + + /** + * Gets or sets characters to be removed from strings to create a sort name. + * @return sortRemoveCharacters + */ + @javax.annotation.Nullable + public List getSortRemoveCharacters() { + return sortRemoveCharacters; + } + + public void setSortRemoveCharacters(@javax.annotation.Nullable List sortRemoveCharacters) { + this.sortRemoveCharacters = sortRemoveCharacters; + } + + + public ServerConfiguration sortRemoveWords(@javax.annotation.Nullable List sortRemoveWords) { + this.sortRemoveWords = sortRemoveWords; + return this; + } + + public ServerConfiguration addSortRemoveWordsItem(String sortRemoveWordsItem) { + if (this.sortRemoveWords == null) { + this.sortRemoveWords = new ArrayList<>(); + } + this.sortRemoveWords.add(sortRemoveWordsItem); + return this; + } + + /** + * Gets or sets words to be removed from strings to create a sort name. + * @return sortRemoveWords + */ + @javax.annotation.Nullable + public List getSortRemoveWords() { + return sortRemoveWords; + } + + public void setSortRemoveWords(@javax.annotation.Nullable List sortRemoveWords) { + this.sortRemoveWords = sortRemoveWords; + } + + + public ServerConfiguration minResumePct(@javax.annotation.Nullable Integer minResumePct) { + this.minResumePct = minResumePct; + return this; + } + + /** + * Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. + * @return minResumePct + */ + @javax.annotation.Nullable + public Integer getMinResumePct() { + return minResumePct; + } + + public void setMinResumePct(@javax.annotation.Nullable Integer minResumePct) { + this.minResumePct = minResumePct; + } + + + public ServerConfiguration maxResumePct(@javax.annotation.Nullable Integer maxResumePct) { + this.maxResumePct = maxResumePct; + return this; + } + + /** + * Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + * @return maxResumePct + */ + @javax.annotation.Nullable + public Integer getMaxResumePct() { + return maxResumePct; + } + + public void setMaxResumePct(@javax.annotation.Nullable Integer maxResumePct) { + this.maxResumePct = maxResumePct; + } + + + public ServerConfiguration minResumeDurationSeconds(@javax.annotation.Nullable Integer minResumeDurationSeconds) { + this.minResumeDurationSeconds = minResumeDurationSeconds; + return this; + } + + /** + * Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. + * @return minResumeDurationSeconds + */ + @javax.annotation.Nullable + public Integer getMinResumeDurationSeconds() { + return minResumeDurationSeconds; + } + + public void setMinResumeDurationSeconds(@javax.annotation.Nullable Integer minResumeDurationSeconds) { + this.minResumeDurationSeconds = minResumeDurationSeconds; + } + + + public ServerConfiguration minAudiobookResume(@javax.annotation.Nullable Integer minAudiobookResume) { + this.minAudiobookResume = minAudiobookResume; + return this; + } + + /** + * Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. + * @return minAudiobookResume + */ + @javax.annotation.Nullable + public Integer getMinAudiobookResume() { + return minAudiobookResume; + } + + public void setMinAudiobookResume(@javax.annotation.Nullable Integer minAudiobookResume) { + this.minAudiobookResume = minAudiobookResume; + } + + + public ServerConfiguration maxAudiobookResume(@javax.annotation.Nullable Integer maxAudiobookResume) { + this.maxAudiobookResume = maxAudiobookResume; + return this; + } + + /** + * Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + * @return maxAudiobookResume + */ + @javax.annotation.Nullable + public Integer getMaxAudiobookResume() { + return maxAudiobookResume; + } + + public void setMaxAudiobookResume(@javax.annotation.Nullable Integer maxAudiobookResume) { + this.maxAudiobookResume = maxAudiobookResume; + } + + + public ServerConfiguration inactiveSessionThreshold(@javax.annotation.Nullable Integer inactiveSessionThreshold) { + this.inactiveSessionThreshold = inactiveSessionThreshold; + return this; + } + + /** + * Gets or sets the threshold in minutes after a inactive session gets closed automatically. If set to 0 the check for inactive sessions gets disabled. + * @return inactiveSessionThreshold + */ + @javax.annotation.Nullable + public Integer getInactiveSessionThreshold() { + return inactiveSessionThreshold; + } + + public void setInactiveSessionThreshold(@javax.annotation.Nullable Integer inactiveSessionThreshold) { + this.inactiveSessionThreshold = inactiveSessionThreshold; + } + + + public ServerConfiguration libraryMonitorDelay(@javax.annotation.Nullable Integer libraryMonitorDelay) { + this.libraryMonitorDelay = libraryMonitorDelay; + return this; + } + + /** + * Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed Some delay is necessary with some items because their creation is not atomic. It involves the creation of several different directories and files. + * @return libraryMonitorDelay + */ + @javax.annotation.Nullable + public Integer getLibraryMonitorDelay() { + return libraryMonitorDelay; + } + + public void setLibraryMonitorDelay(@javax.annotation.Nullable Integer libraryMonitorDelay) { + this.libraryMonitorDelay = libraryMonitorDelay; + } + + + public ServerConfiguration libraryUpdateDuration(@javax.annotation.Nullable Integer libraryUpdateDuration) { + this.libraryUpdateDuration = libraryUpdateDuration; + return this; + } + + /** + * Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification. + * @return libraryUpdateDuration + */ + @javax.annotation.Nullable + public Integer getLibraryUpdateDuration() { + return libraryUpdateDuration; + } + + public void setLibraryUpdateDuration(@javax.annotation.Nullable Integer libraryUpdateDuration) { + this.libraryUpdateDuration = libraryUpdateDuration; + } + + + public ServerConfiguration imageSavingConvention(@javax.annotation.Nullable ImageSavingConvention imageSavingConvention) { + this.imageSavingConvention = imageSavingConvention; + return this; + } + + /** + * Gets or sets the image saving convention. + * @return imageSavingConvention + */ + @javax.annotation.Nullable + public ImageSavingConvention getImageSavingConvention() { + return imageSavingConvention; + } + + public void setImageSavingConvention(@javax.annotation.Nullable ImageSavingConvention imageSavingConvention) { + this.imageSavingConvention = imageSavingConvention; + } + + + public ServerConfiguration metadataOptions(@javax.annotation.Nullable List metadataOptions) { + this.metadataOptions = metadataOptions; + return this; + } + + public ServerConfiguration addMetadataOptionsItem(MetadataOptions metadataOptionsItem) { + if (this.metadataOptions == null) { + this.metadataOptions = new ArrayList<>(); + } + this.metadataOptions.add(metadataOptionsItem); + return this; + } + + /** + * Get metadataOptions + * @return metadataOptions + */ + @javax.annotation.Nullable + public List getMetadataOptions() { + return metadataOptions; + } + + public void setMetadataOptions(@javax.annotation.Nullable List metadataOptions) { + this.metadataOptions = metadataOptions; + } + + + public ServerConfiguration skipDeserializationForBasicTypes(@javax.annotation.Nullable Boolean skipDeserializationForBasicTypes) { + this.skipDeserializationForBasicTypes = skipDeserializationForBasicTypes; + return this; + } + + /** + * Get skipDeserializationForBasicTypes + * @return skipDeserializationForBasicTypes + */ + @javax.annotation.Nullable + public Boolean getSkipDeserializationForBasicTypes() { + return skipDeserializationForBasicTypes; + } + + public void setSkipDeserializationForBasicTypes(@javax.annotation.Nullable Boolean skipDeserializationForBasicTypes) { + this.skipDeserializationForBasicTypes = skipDeserializationForBasicTypes; + } + + + public ServerConfiguration serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Get serverName + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public ServerConfiguration uiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + return this; + } + + /** + * Get uiCulture + * @return uiCulture + */ + @javax.annotation.Nullable + public String getUiCulture() { + return uiCulture; + } + + public void setUiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + } + + + public ServerConfiguration saveMetadataHidden(@javax.annotation.Nullable Boolean saveMetadataHidden) { + this.saveMetadataHidden = saveMetadataHidden; + return this; + } + + /** + * Get saveMetadataHidden + * @return saveMetadataHidden + */ + @javax.annotation.Nullable + public Boolean getSaveMetadataHidden() { + return saveMetadataHidden; + } + + public void setSaveMetadataHidden(@javax.annotation.Nullable Boolean saveMetadataHidden) { + this.saveMetadataHidden = saveMetadataHidden; + } + + + public ServerConfiguration contentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + return this; + } + + public ServerConfiguration addContentTypesItem(NameValuePair contentTypesItem) { + if (this.contentTypes == null) { + this.contentTypes = new ArrayList<>(); + } + this.contentTypes.add(contentTypesItem); + return this; + } + + /** + * Get contentTypes + * @return contentTypes + */ + @javax.annotation.Nullable + public List getContentTypes() { + return contentTypes; + } + + public void setContentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + } + + + public ServerConfiguration remoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + return this; + } + + /** + * Get remoteClientBitrateLimit + * @return remoteClientBitrateLimit + */ + @javax.annotation.Nullable + public Integer getRemoteClientBitrateLimit() { + return remoteClientBitrateLimit; + } + + public void setRemoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + } + + + public ServerConfiguration enableFolderView(@javax.annotation.Nullable Boolean enableFolderView) { + this.enableFolderView = enableFolderView; + return this; + } + + /** + * Get enableFolderView + * @return enableFolderView + */ + @javax.annotation.Nullable + public Boolean getEnableFolderView() { + return enableFolderView; + } + + public void setEnableFolderView(@javax.annotation.Nullable Boolean enableFolderView) { + this.enableFolderView = enableFolderView; + } + + + public ServerConfiguration enableGroupingIntoCollections(@javax.annotation.Nullable Boolean enableGroupingIntoCollections) { + this.enableGroupingIntoCollections = enableGroupingIntoCollections; + return this; + } + + /** + * Get enableGroupingIntoCollections + * @return enableGroupingIntoCollections + */ + @javax.annotation.Nullable + public Boolean getEnableGroupingIntoCollections() { + return enableGroupingIntoCollections; + } + + public void setEnableGroupingIntoCollections(@javax.annotation.Nullable Boolean enableGroupingIntoCollections) { + this.enableGroupingIntoCollections = enableGroupingIntoCollections; + } + + + public ServerConfiguration displaySpecialsWithinSeasons(@javax.annotation.Nullable Boolean displaySpecialsWithinSeasons) { + this.displaySpecialsWithinSeasons = displaySpecialsWithinSeasons; + return this; + } + + /** + * Get displaySpecialsWithinSeasons + * @return displaySpecialsWithinSeasons + */ + @javax.annotation.Nullable + public Boolean getDisplaySpecialsWithinSeasons() { + return displaySpecialsWithinSeasons; + } + + public void setDisplaySpecialsWithinSeasons(@javax.annotation.Nullable Boolean displaySpecialsWithinSeasons) { + this.displaySpecialsWithinSeasons = displaySpecialsWithinSeasons; + } + + + public ServerConfiguration codecsUsed(@javax.annotation.Nullable List codecsUsed) { + this.codecsUsed = codecsUsed; + return this; + } + + public ServerConfiguration addCodecsUsedItem(String codecsUsedItem) { + if (this.codecsUsed == null) { + this.codecsUsed = new ArrayList<>(); + } + this.codecsUsed.add(codecsUsedItem); + return this; + } + + /** + * Get codecsUsed + * @return codecsUsed + */ + @javax.annotation.Nullable + public List getCodecsUsed() { + return codecsUsed; + } + + public void setCodecsUsed(@javax.annotation.Nullable List codecsUsed) { + this.codecsUsed = codecsUsed; + } + + + public ServerConfiguration pluginRepositories(@javax.annotation.Nullable List pluginRepositories) { + this.pluginRepositories = pluginRepositories; + return this; + } + + public ServerConfiguration addPluginRepositoriesItem(RepositoryInfo pluginRepositoriesItem) { + if (this.pluginRepositories == null) { + this.pluginRepositories = new ArrayList<>(); + } + this.pluginRepositories.add(pluginRepositoriesItem); + return this; + } + + /** + * Get pluginRepositories + * @return pluginRepositories + */ + @javax.annotation.Nullable + public List getPluginRepositories() { + return pluginRepositories; + } + + public void setPluginRepositories(@javax.annotation.Nullable List pluginRepositories) { + this.pluginRepositories = pluginRepositories; + } + + + public ServerConfiguration enableExternalContentInSuggestions(@javax.annotation.Nullable Boolean enableExternalContentInSuggestions) { + this.enableExternalContentInSuggestions = enableExternalContentInSuggestions; + return this; + } + + /** + * Get enableExternalContentInSuggestions + * @return enableExternalContentInSuggestions + */ + @javax.annotation.Nullable + public Boolean getEnableExternalContentInSuggestions() { + return enableExternalContentInSuggestions; + } + + public void setEnableExternalContentInSuggestions(@javax.annotation.Nullable Boolean enableExternalContentInSuggestions) { + this.enableExternalContentInSuggestions = enableExternalContentInSuggestions; + } + + + public ServerConfiguration imageExtractionTimeoutMs(@javax.annotation.Nullable Integer imageExtractionTimeoutMs) { + this.imageExtractionTimeoutMs = imageExtractionTimeoutMs; + return this; + } + + /** + * Get imageExtractionTimeoutMs + * @return imageExtractionTimeoutMs + */ + @javax.annotation.Nullable + public Integer getImageExtractionTimeoutMs() { + return imageExtractionTimeoutMs; + } + + public void setImageExtractionTimeoutMs(@javax.annotation.Nullable Integer imageExtractionTimeoutMs) { + this.imageExtractionTimeoutMs = imageExtractionTimeoutMs; + } + + + public ServerConfiguration pathSubstitutions(@javax.annotation.Nullable List pathSubstitutions) { + this.pathSubstitutions = pathSubstitutions; + return this; + } + + public ServerConfiguration addPathSubstitutionsItem(PathSubstitution pathSubstitutionsItem) { + if (this.pathSubstitutions == null) { + this.pathSubstitutions = new ArrayList<>(); + } + this.pathSubstitutions.add(pathSubstitutionsItem); + return this; + } + + /** + * Get pathSubstitutions + * @return pathSubstitutions + */ + @javax.annotation.Nullable + public List getPathSubstitutions() { + return pathSubstitutions; + } + + public void setPathSubstitutions(@javax.annotation.Nullable List pathSubstitutions) { + this.pathSubstitutions = pathSubstitutions; + } + + + public ServerConfiguration enableSlowResponseWarning(@javax.annotation.Nullable Boolean enableSlowResponseWarning) { + this.enableSlowResponseWarning = enableSlowResponseWarning; + return this; + } + + /** + * Gets or sets a value indicating whether slow server responses should be logged as a warning. + * @return enableSlowResponseWarning + */ + @javax.annotation.Nullable + public Boolean getEnableSlowResponseWarning() { + return enableSlowResponseWarning; + } + + public void setEnableSlowResponseWarning(@javax.annotation.Nullable Boolean enableSlowResponseWarning) { + this.enableSlowResponseWarning = enableSlowResponseWarning; + } + + + public ServerConfiguration slowResponseThresholdMs(@javax.annotation.Nullable Long slowResponseThresholdMs) { + this.slowResponseThresholdMs = slowResponseThresholdMs; + return this; + } + + /** + * Gets or sets the threshold for the slow response time warning in ms. + * @return slowResponseThresholdMs + */ + @javax.annotation.Nullable + public Long getSlowResponseThresholdMs() { + return slowResponseThresholdMs; + } + + public void setSlowResponseThresholdMs(@javax.annotation.Nullable Long slowResponseThresholdMs) { + this.slowResponseThresholdMs = slowResponseThresholdMs; + } + + + public ServerConfiguration corsHosts(@javax.annotation.Nullable List corsHosts) { + this.corsHosts = corsHosts; + return this; + } + + public ServerConfiguration addCorsHostsItem(String corsHostsItem) { + if (this.corsHosts == null) { + this.corsHosts = new ArrayList<>(); + } + this.corsHosts.add(corsHostsItem); + return this; + } + + /** + * Gets or sets the cors hosts. + * @return corsHosts + */ + @javax.annotation.Nullable + public List getCorsHosts() { + return corsHosts; + } + + public void setCorsHosts(@javax.annotation.Nullable List corsHosts) { + this.corsHosts = corsHosts; + } + + + public ServerConfiguration activityLogRetentionDays(@javax.annotation.Nullable Integer activityLogRetentionDays) { + this.activityLogRetentionDays = activityLogRetentionDays; + return this; + } + + /** + * Gets or sets the number of days we should retain activity logs. + * @return activityLogRetentionDays + */ + @javax.annotation.Nullable + public Integer getActivityLogRetentionDays() { + return activityLogRetentionDays; + } + + public void setActivityLogRetentionDays(@javax.annotation.Nullable Integer activityLogRetentionDays) { + this.activityLogRetentionDays = activityLogRetentionDays; + } + + + public ServerConfiguration libraryScanFanoutConcurrency(@javax.annotation.Nullable Integer libraryScanFanoutConcurrency) { + this.libraryScanFanoutConcurrency = libraryScanFanoutConcurrency; + return this; + } + + /** + * Gets or sets the how the library scan fans out. + * @return libraryScanFanoutConcurrency + */ + @javax.annotation.Nullable + public Integer getLibraryScanFanoutConcurrency() { + return libraryScanFanoutConcurrency; + } + + public void setLibraryScanFanoutConcurrency(@javax.annotation.Nullable Integer libraryScanFanoutConcurrency) { + this.libraryScanFanoutConcurrency = libraryScanFanoutConcurrency; + } + + + public ServerConfiguration libraryMetadataRefreshConcurrency(@javax.annotation.Nullable Integer libraryMetadataRefreshConcurrency) { + this.libraryMetadataRefreshConcurrency = libraryMetadataRefreshConcurrency; + return this; + } + + /** + * Gets or sets the how many metadata refreshes can run concurrently. + * @return libraryMetadataRefreshConcurrency + */ + @javax.annotation.Nullable + public Integer getLibraryMetadataRefreshConcurrency() { + return libraryMetadataRefreshConcurrency; + } + + public void setLibraryMetadataRefreshConcurrency(@javax.annotation.Nullable Integer libraryMetadataRefreshConcurrency) { + this.libraryMetadataRefreshConcurrency = libraryMetadataRefreshConcurrency; + } + + + public ServerConfiguration removeOldPlugins(@javax.annotation.Nullable Boolean removeOldPlugins) { + this.removeOldPlugins = removeOldPlugins; + return this; + } + + /** + * Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. + * @return removeOldPlugins + */ + @javax.annotation.Nullable + public Boolean getRemoveOldPlugins() { + return removeOldPlugins; + } + + public void setRemoveOldPlugins(@javax.annotation.Nullable Boolean removeOldPlugins) { + this.removeOldPlugins = removeOldPlugins; + } + + + public ServerConfiguration allowClientLogUpload(@javax.annotation.Nullable Boolean allowClientLogUpload) { + this.allowClientLogUpload = allowClientLogUpload; + return this; + } + + /** + * Gets or sets a value indicating whether clients should be allowed to upload logs. + * @return allowClientLogUpload + */ + @javax.annotation.Nullable + public Boolean getAllowClientLogUpload() { + return allowClientLogUpload; + } + + public void setAllowClientLogUpload(@javax.annotation.Nullable Boolean allowClientLogUpload) { + this.allowClientLogUpload = allowClientLogUpload; + } + + + public ServerConfiguration dummyChapterDuration(@javax.annotation.Nullable Integer dummyChapterDuration) { + this.dummyChapterDuration = dummyChapterDuration; + return this; + } + + /** + * Gets or sets the dummy chapter duration in seconds, use 0 (zero) or less to disable generation alltogether. + * @return dummyChapterDuration + */ + @javax.annotation.Nullable + public Integer getDummyChapterDuration() { + return dummyChapterDuration; + } + + public void setDummyChapterDuration(@javax.annotation.Nullable Integer dummyChapterDuration) { + this.dummyChapterDuration = dummyChapterDuration; + } + + + public ServerConfiguration chapterImageResolution(@javax.annotation.Nullable ImageResolution chapterImageResolution) { + this.chapterImageResolution = chapterImageResolution; + return this; + } + + /** + * Gets or sets the chapter image resolution. + * @return chapterImageResolution + */ + @javax.annotation.Nullable + public ImageResolution getChapterImageResolution() { + return chapterImageResolution; + } + + public void setChapterImageResolution(@javax.annotation.Nullable ImageResolution chapterImageResolution) { + this.chapterImageResolution = chapterImageResolution; + } + + + public ServerConfiguration parallelImageEncodingLimit(@javax.annotation.Nullable Integer parallelImageEncodingLimit) { + this.parallelImageEncodingLimit = parallelImageEncodingLimit; + return this; + } + + /** + * Gets or sets the limit for parallel image encoding. + * @return parallelImageEncodingLimit + */ + @javax.annotation.Nullable + public Integer getParallelImageEncodingLimit() { + return parallelImageEncodingLimit; + } + + public void setParallelImageEncodingLimit(@javax.annotation.Nullable Integer parallelImageEncodingLimit) { + this.parallelImageEncodingLimit = parallelImageEncodingLimit; + } + + + public ServerConfiguration castReceiverApplications(@javax.annotation.Nullable List castReceiverApplications) { + this.castReceiverApplications = castReceiverApplications; + return this; + } + + public ServerConfiguration addCastReceiverApplicationsItem(CastReceiverApplication castReceiverApplicationsItem) { + if (this.castReceiverApplications == null) { + this.castReceiverApplications = new ArrayList<>(); + } + this.castReceiverApplications.add(castReceiverApplicationsItem); + return this; + } + + /** + * Gets or sets the list of cast receiver applications. + * @return castReceiverApplications + */ + @javax.annotation.Nullable + public List getCastReceiverApplications() { + return castReceiverApplications; + } + + public void setCastReceiverApplications(@javax.annotation.Nullable List castReceiverApplications) { + this.castReceiverApplications = castReceiverApplications; + } + + + public ServerConfiguration trickplayOptions(@javax.annotation.Nullable TrickplayOptions trickplayOptions) { + this.trickplayOptions = trickplayOptions; + return this; + } + + /** + * Gets or sets the trickplay options. + * @return trickplayOptions + */ + @javax.annotation.Nullable + public TrickplayOptions getTrickplayOptions() { + return trickplayOptions; + } + + public void setTrickplayOptions(@javax.annotation.Nullable TrickplayOptions trickplayOptions) { + this.trickplayOptions = trickplayOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerConfiguration serverConfiguration = (ServerConfiguration) o; + return Objects.equals(this.logFileRetentionDays, serverConfiguration.logFileRetentionDays) && + Objects.equals(this.isStartupWizardCompleted, serverConfiguration.isStartupWizardCompleted) && + Objects.equals(this.cachePath, serverConfiguration.cachePath) && + Objects.equals(this.previousVersion, serverConfiguration.previousVersion) && + Objects.equals(this.previousVersionStr, serverConfiguration.previousVersionStr) && + Objects.equals(this.enableMetrics, serverConfiguration.enableMetrics) && + Objects.equals(this.enableNormalizedItemByNameIds, serverConfiguration.enableNormalizedItemByNameIds) && + Objects.equals(this.isPortAuthorized, serverConfiguration.isPortAuthorized) && + Objects.equals(this.quickConnectAvailable, serverConfiguration.quickConnectAvailable) && + Objects.equals(this.enableCaseSensitiveItemIds, serverConfiguration.enableCaseSensitiveItemIds) && + Objects.equals(this.disableLiveTvChannelUserDataName, serverConfiguration.disableLiveTvChannelUserDataName) && + Objects.equals(this.metadataPath, serverConfiguration.metadataPath) && + Objects.equals(this.preferredMetadataLanguage, serverConfiguration.preferredMetadataLanguage) && + Objects.equals(this.metadataCountryCode, serverConfiguration.metadataCountryCode) && + Objects.equals(this.sortReplaceCharacters, serverConfiguration.sortReplaceCharacters) && + Objects.equals(this.sortRemoveCharacters, serverConfiguration.sortRemoveCharacters) && + Objects.equals(this.sortRemoveWords, serverConfiguration.sortRemoveWords) && + Objects.equals(this.minResumePct, serverConfiguration.minResumePct) && + Objects.equals(this.maxResumePct, serverConfiguration.maxResumePct) && + Objects.equals(this.minResumeDurationSeconds, serverConfiguration.minResumeDurationSeconds) && + Objects.equals(this.minAudiobookResume, serverConfiguration.minAudiobookResume) && + Objects.equals(this.maxAudiobookResume, serverConfiguration.maxAudiobookResume) && + Objects.equals(this.inactiveSessionThreshold, serverConfiguration.inactiveSessionThreshold) && + Objects.equals(this.libraryMonitorDelay, serverConfiguration.libraryMonitorDelay) && + Objects.equals(this.libraryUpdateDuration, serverConfiguration.libraryUpdateDuration) && + Objects.equals(this.imageSavingConvention, serverConfiguration.imageSavingConvention) && + Objects.equals(this.metadataOptions, serverConfiguration.metadataOptions) && + Objects.equals(this.skipDeserializationForBasicTypes, serverConfiguration.skipDeserializationForBasicTypes) && + Objects.equals(this.serverName, serverConfiguration.serverName) && + Objects.equals(this.uiCulture, serverConfiguration.uiCulture) && + Objects.equals(this.saveMetadataHidden, serverConfiguration.saveMetadataHidden) && + Objects.equals(this.contentTypes, serverConfiguration.contentTypes) && + Objects.equals(this.remoteClientBitrateLimit, serverConfiguration.remoteClientBitrateLimit) && + Objects.equals(this.enableFolderView, serverConfiguration.enableFolderView) && + Objects.equals(this.enableGroupingIntoCollections, serverConfiguration.enableGroupingIntoCollections) && + Objects.equals(this.displaySpecialsWithinSeasons, serverConfiguration.displaySpecialsWithinSeasons) && + Objects.equals(this.codecsUsed, serverConfiguration.codecsUsed) && + Objects.equals(this.pluginRepositories, serverConfiguration.pluginRepositories) && + Objects.equals(this.enableExternalContentInSuggestions, serverConfiguration.enableExternalContentInSuggestions) && + Objects.equals(this.imageExtractionTimeoutMs, serverConfiguration.imageExtractionTimeoutMs) && + Objects.equals(this.pathSubstitutions, serverConfiguration.pathSubstitutions) && + Objects.equals(this.enableSlowResponseWarning, serverConfiguration.enableSlowResponseWarning) && + Objects.equals(this.slowResponseThresholdMs, serverConfiguration.slowResponseThresholdMs) && + Objects.equals(this.corsHosts, serverConfiguration.corsHosts) && + Objects.equals(this.activityLogRetentionDays, serverConfiguration.activityLogRetentionDays) && + Objects.equals(this.libraryScanFanoutConcurrency, serverConfiguration.libraryScanFanoutConcurrency) && + Objects.equals(this.libraryMetadataRefreshConcurrency, serverConfiguration.libraryMetadataRefreshConcurrency) && + Objects.equals(this.removeOldPlugins, serverConfiguration.removeOldPlugins) && + Objects.equals(this.allowClientLogUpload, serverConfiguration.allowClientLogUpload) && + Objects.equals(this.dummyChapterDuration, serverConfiguration.dummyChapterDuration) && + Objects.equals(this.chapterImageResolution, serverConfiguration.chapterImageResolution) && + Objects.equals(this.parallelImageEncodingLimit, serverConfiguration.parallelImageEncodingLimit) && + Objects.equals(this.castReceiverApplications, serverConfiguration.castReceiverApplications) && + Objects.equals(this.trickplayOptions, serverConfiguration.trickplayOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(logFileRetentionDays, isStartupWizardCompleted, cachePath, previousVersion, previousVersionStr, enableMetrics, enableNormalizedItemByNameIds, isPortAuthorized, quickConnectAvailable, enableCaseSensitiveItemIds, disableLiveTvChannelUserDataName, metadataPath, preferredMetadataLanguage, metadataCountryCode, sortReplaceCharacters, sortRemoveCharacters, sortRemoveWords, minResumePct, maxResumePct, minResumeDurationSeconds, minAudiobookResume, maxAudiobookResume, inactiveSessionThreshold, libraryMonitorDelay, libraryUpdateDuration, imageSavingConvention, metadataOptions, skipDeserializationForBasicTypes, serverName, uiCulture, saveMetadataHidden, contentTypes, remoteClientBitrateLimit, enableFolderView, enableGroupingIntoCollections, displaySpecialsWithinSeasons, codecsUsed, pluginRepositories, enableExternalContentInSuggestions, imageExtractionTimeoutMs, pathSubstitutions, enableSlowResponseWarning, slowResponseThresholdMs, corsHosts, activityLogRetentionDays, libraryScanFanoutConcurrency, libraryMetadataRefreshConcurrency, removeOldPlugins, allowClientLogUpload, dummyChapterDuration, chapterImageResolution, parallelImageEncodingLimit, castReceiverApplications, trickplayOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerConfiguration {\n"); + sb.append(" logFileRetentionDays: ").append(toIndentedString(logFileRetentionDays)).append("\n"); + sb.append(" isStartupWizardCompleted: ").append(toIndentedString(isStartupWizardCompleted)).append("\n"); + sb.append(" cachePath: ").append(toIndentedString(cachePath)).append("\n"); + sb.append(" previousVersion: ").append(toIndentedString(previousVersion)).append("\n"); + sb.append(" previousVersionStr: ").append(toIndentedString(previousVersionStr)).append("\n"); + sb.append(" enableMetrics: ").append(toIndentedString(enableMetrics)).append("\n"); + sb.append(" enableNormalizedItemByNameIds: ").append(toIndentedString(enableNormalizedItemByNameIds)).append("\n"); + sb.append(" isPortAuthorized: ").append(toIndentedString(isPortAuthorized)).append("\n"); + sb.append(" quickConnectAvailable: ").append(toIndentedString(quickConnectAvailable)).append("\n"); + sb.append(" enableCaseSensitiveItemIds: ").append(toIndentedString(enableCaseSensitiveItemIds)).append("\n"); + sb.append(" disableLiveTvChannelUserDataName: ").append(toIndentedString(disableLiveTvChannelUserDataName)).append("\n"); + sb.append(" metadataPath: ").append(toIndentedString(metadataPath)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" sortReplaceCharacters: ").append(toIndentedString(sortReplaceCharacters)).append("\n"); + sb.append(" sortRemoveCharacters: ").append(toIndentedString(sortRemoveCharacters)).append("\n"); + sb.append(" sortRemoveWords: ").append(toIndentedString(sortRemoveWords)).append("\n"); + sb.append(" minResumePct: ").append(toIndentedString(minResumePct)).append("\n"); + sb.append(" maxResumePct: ").append(toIndentedString(maxResumePct)).append("\n"); + sb.append(" minResumeDurationSeconds: ").append(toIndentedString(minResumeDurationSeconds)).append("\n"); + sb.append(" minAudiobookResume: ").append(toIndentedString(minAudiobookResume)).append("\n"); + sb.append(" maxAudiobookResume: ").append(toIndentedString(maxAudiobookResume)).append("\n"); + sb.append(" inactiveSessionThreshold: ").append(toIndentedString(inactiveSessionThreshold)).append("\n"); + sb.append(" libraryMonitorDelay: ").append(toIndentedString(libraryMonitorDelay)).append("\n"); + sb.append(" libraryUpdateDuration: ").append(toIndentedString(libraryUpdateDuration)).append("\n"); + sb.append(" imageSavingConvention: ").append(toIndentedString(imageSavingConvention)).append("\n"); + sb.append(" metadataOptions: ").append(toIndentedString(metadataOptions)).append("\n"); + sb.append(" skipDeserializationForBasicTypes: ").append(toIndentedString(skipDeserializationForBasicTypes)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" uiCulture: ").append(toIndentedString(uiCulture)).append("\n"); + sb.append(" saveMetadataHidden: ").append(toIndentedString(saveMetadataHidden)).append("\n"); + sb.append(" contentTypes: ").append(toIndentedString(contentTypes)).append("\n"); + sb.append(" remoteClientBitrateLimit: ").append(toIndentedString(remoteClientBitrateLimit)).append("\n"); + sb.append(" enableFolderView: ").append(toIndentedString(enableFolderView)).append("\n"); + sb.append(" enableGroupingIntoCollections: ").append(toIndentedString(enableGroupingIntoCollections)).append("\n"); + sb.append(" displaySpecialsWithinSeasons: ").append(toIndentedString(displaySpecialsWithinSeasons)).append("\n"); + sb.append(" codecsUsed: ").append(toIndentedString(codecsUsed)).append("\n"); + sb.append(" pluginRepositories: ").append(toIndentedString(pluginRepositories)).append("\n"); + sb.append(" enableExternalContentInSuggestions: ").append(toIndentedString(enableExternalContentInSuggestions)).append("\n"); + sb.append(" imageExtractionTimeoutMs: ").append(toIndentedString(imageExtractionTimeoutMs)).append("\n"); + sb.append(" pathSubstitutions: ").append(toIndentedString(pathSubstitutions)).append("\n"); + sb.append(" enableSlowResponseWarning: ").append(toIndentedString(enableSlowResponseWarning)).append("\n"); + sb.append(" slowResponseThresholdMs: ").append(toIndentedString(slowResponseThresholdMs)).append("\n"); + sb.append(" corsHosts: ").append(toIndentedString(corsHosts)).append("\n"); + sb.append(" activityLogRetentionDays: ").append(toIndentedString(activityLogRetentionDays)).append("\n"); + sb.append(" libraryScanFanoutConcurrency: ").append(toIndentedString(libraryScanFanoutConcurrency)).append("\n"); + sb.append(" libraryMetadataRefreshConcurrency: ").append(toIndentedString(libraryMetadataRefreshConcurrency)).append("\n"); + sb.append(" removeOldPlugins: ").append(toIndentedString(removeOldPlugins)).append("\n"); + sb.append(" allowClientLogUpload: ").append(toIndentedString(allowClientLogUpload)).append("\n"); + sb.append(" dummyChapterDuration: ").append(toIndentedString(dummyChapterDuration)).append("\n"); + sb.append(" chapterImageResolution: ").append(toIndentedString(chapterImageResolution)).append("\n"); + sb.append(" parallelImageEncodingLimit: ").append(toIndentedString(parallelImageEncodingLimit)).append("\n"); + sb.append(" castReceiverApplications: ").append(toIndentedString(castReceiverApplications)).append("\n"); + sb.append(" trickplayOptions: ").append(toIndentedString(trickplayOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LogFileRetentionDays"); + openapiFields.add("IsStartupWizardCompleted"); + openapiFields.add("CachePath"); + openapiFields.add("PreviousVersion"); + openapiFields.add("PreviousVersionStr"); + openapiFields.add("EnableMetrics"); + openapiFields.add("EnableNormalizedItemByNameIds"); + openapiFields.add("IsPortAuthorized"); + openapiFields.add("QuickConnectAvailable"); + openapiFields.add("EnableCaseSensitiveItemIds"); + openapiFields.add("DisableLiveTvChannelUserDataName"); + openapiFields.add("MetadataPath"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("SortReplaceCharacters"); + openapiFields.add("SortRemoveCharacters"); + openapiFields.add("SortRemoveWords"); + openapiFields.add("MinResumePct"); + openapiFields.add("MaxResumePct"); + openapiFields.add("MinResumeDurationSeconds"); + openapiFields.add("MinAudiobookResume"); + openapiFields.add("MaxAudiobookResume"); + openapiFields.add("InactiveSessionThreshold"); + openapiFields.add("LibraryMonitorDelay"); + openapiFields.add("LibraryUpdateDuration"); + openapiFields.add("ImageSavingConvention"); + openapiFields.add("MetadataOptions"); + openapiFields.add("SkipDeserializationForBasicTypes"); + openapiFields.add("ServerName"); + openapiFields.add("UICulture"); + openapiFields.add("SaveMetadataHidden"); + openapiFields.add("ContentTypes"); + openapiFields.add("RemoteClientBitrateLimit"); + openapiFields.add("EnableFolderView"); + openapiFields.add("EnableGroupingIntoCollections"); + openapiFields.add("DisplaySpecialsWithinSeasons"); + openapiFields.add("CodecsUsed"); + openapiFields.add("PluginRepositories"); + openapiFields.add("EnableExternalContentInSuggestions"); + openapiFields.add("ImageExtractionTimeoutMs"); + openapiFields.add("PathSubstitutions"); + openapiFields.add("EnableSlowResponseWarning"); + openapiFields.add("SlowResponseThresholdMs"); + openapiFields.add("CorsHosts"); + openapiFields.add("ActivityLogRetentionDays"); + openapiFields.add("LibraryScanFanoutConcurrency"); + openapiFields.add("LibraryMetadataRefreshConcurrency"); + openapiFields.add("RemoveOldPlugins"); + openapiFields.add("AllowClientLogUpload"); + openapiFields.add("DummyChapterDuration"); + openapiFields.add("ChapterImageResolution"); + openapiFields.add("ParallelImageEncodingLimit"); + openapiFields.add("CastReceiverApplications"); + openapiFields.add("TrickplayOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerConfiguration is not found in the empty JSON string", ServerConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("CachePath") != null && !jsonObj.get("CachePath").isJsonNull()) && !jsonObj.get("CachePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CachePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CachePath").toString())); + } + if ((jsonObj.get("PreviousVersion") != null && !jsonObj.get("PreviousVersion").isJsonNull()) && !jsonObj.get("PreviousVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreviousVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreviousVersion").toString())); + } + if ((jsonObj.get("PreviousVersionStr") != null && !jsonObj.get("PreviousVersionStr").isJsonNull()) && !jsonObj.get("PreviousVersionStr").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreviousVersionStr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreviousVersionStr").toString())); + } + if ((jsonObj.get("MetadataPath") != null && !jsonObj.get("MetadataPath").isJsonNull()) && !jsonObj.get("MetadataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataPath").toString())); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortReplaceCharacters") != null && !jsonObj.get("SortReplaceCharacters").isJsonNull() && !jsonObj.get("SortReplaceCharacters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortReplaceCharacters` to be an array in the JSON string but got `%s`", jsonObj.get("SortReplaceCharacters").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortRemoveCharacters") != null && !jsonObj.get("SortRemoveCharacters").isJsonNull() && !jsonObj.get("SortRemoveCharacters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortRemoveCharacters` to be an array in the JSON string but got `%s`", jsonObj.get("SortRemoveCharacters").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortRemoveWords") != null && !jsonObj.get("SortRemoveWords").isJsonNull() && !jsonObj.get("SortRemoveWords").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortRemoveWords` to be an array in the JSON string but got `%s`", jsonObj.get("SortRemoveWords").toString())); + } + // validate the optional field `ImageSavingConvention` + if (jsonObj.get("ImageSavingConvention") != null && !jsonObj.get("ImageSavingConvention").isJsonNull()) { + ImageSavingConvention.validateJsonElement(jsonObj.get("ImageSavingConvention")); + } + if (jsonObj.get("MetadataOptions") != null && !jsonObj.get("MetadataOptions").isJsonNull()) { + JsonArray jsonArraymetadataOptions = jsonObj.getAsJsonArray("MetadataOptions"); + if (jsonArraymetadataOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataOptions` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataOptions").toString())); + } + + // validate the optional field `MetadataOptions` (array) + for (int i = 0; i < jsonArraymetadataOptions.size(); i++) { + MetadataOptions.validateJsonElement(jsonArraymetadataOptions.get(i)); + }; + } + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("UICulture") != null && !jsonObj.get("UICulture").isJsonNull()) && !jsonObj.get("UICulture").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UICulture` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UICulture").toString())); + } + if (jsonObj.get("ContentTypes") != null && !jsonObj.get("ContentTypes").isJsonNull()) { + JsonArray jsonArraycontentTypes = jsonObj.getAsJsonArray("ContentTypes"); + if (jsonArraycontentTypes != null) { + // ensure the json data is an array + if (!jsonObj.get("ContentTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypes` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypes").toString())); + } + + // validate the optional field `ContentTypes` (array) + for (int i = 0; i < jsonArraycontentTypes.size(); i++) { + NameValuePair.validateJsonElement(jsonArraycontentTypes.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("CodecsUsed") != null && !jsonObj.get("CodecsUsed").isJsonNull() && !jsonObj.get("CodecsUsed").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecsUsed` to be an array in the JSON string but got `%s`", jsonObj.get("CodecsUsed").toString())); + } + if (jsonObj.get("PluginRepositories") != null && !jsonObj.get("PluginRepositories").isJsonNull()) { + JsonArray jsonArraypluginRepositories = jsonObj.getAsJsonArray("PluginRepositories"); + if (jsonArraypluginRepositories != null) { + // ensure the json data is an array + if (!jsonObj.get("PluginRepositories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PluginRepositories` to be an array in the JSON string but got `%s`", jsonObj.get("PluginRepositories").toString())); + } + + // validate the optional field `PluginRepositories` (array) + for (int i = 0; i < jsonArraypluginRepositories.size(); i++) { + RepositoryInfo.validateJsonElement(jsonArraypluginRepositories.get(i)); + }; + } + } + if (jsonObj.get("PathSubstitutions") != null && !jsonObj.get("PathSubstitutions").isJsonNull()) { + JsonArray jsonArraypathSubstitutions = jsonObj.getAsJsonArray("PathSubstitutions"); + if (jsonArraypathSubstitutions != null) { + // ensure the json data is an array + if (!jsonObj.get("PathSubstitutions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PathSubstitutions` to be an array in the JSON string but got `%s`", jsonObj.get("PathSubstitutions").toString())); + } + + // validate the optional field `PathSubstitutions` (array) + for (int i = 0; i < jsonArraypathSubstitutions.size(); i++) { + PathSubstitution.validateJsonElement(jsonArraypathSubstitutions.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("CorsHosts") != null && !jsonObj.get("CorsHosts").isJsonNull() && !jsonObj.get("CorsHosts").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CorsHosts` to be an array in the JSON string but got `%s`", jsonObj.get("CorsHosts").toString())); + } + // validate the optional field `ChapterImageResolution` + if (jsonObj.get("ChapterImageResolution") != null && !jsonObj.get("ChapterImageResolution").isJsonNull()) { + ImageResolution.validateJsonElement(jsonObj.get("ChapterImageResolution")); + } + if (jsonObj.get("CastReceiverApplications") != null && !jsonObj.get("CastReceiverApplications").isJsonNull()) { + JsonArray jsonArraycastReceiverApplications = jsonObj.getAsJsonArray("CastReceiverApplications"); + if (jsonArraycastReceiverApplications != null) { + // ensure the json data is an array + if (!jsonObj.get("CastReceiverApplications").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CastReceiverApplications` to be an array in the JSON string but got `%s`", jsonObj.get("CastReceiverApplications").toString())); + } + + // validate the optional field `CastReceiverApplications` (array) + for (int i = 0; i < jsonArraycastReceiverApplications.size(); i++) { + CastReceiverApplication.validateJsonElement(jsonArraycastReceiverApplications.get(i)); + }; + } + } + // validate the optional field `TrickplayOptions` + if (jsonObj.get("TrickplayOptions") != null && !jsonObj.get("TrickplayOptions").isJsonNull()) { + TrickplayOptions.validateJsonElement(jsonObj.get("TrickplayOptions")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerConfiguration + * @throws IOException if the JSON string is invalid with respect to ServerConfiguration + */ + public static ServerConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerConfiguration.class); + } + + /** + * Convert an instance of ServerConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java new file mode 100644 index 0000000000000..dd997c93f5859 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The server discovery info model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerDiscoveryInfo { + public static final String SERIALIZED_NAME_ADDRESS = "Address"; + @SerializedName(SERIALIZED_NAME_ADDRESS) + @javax.annotation.Nullable + private String address; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ENDPOINT_ADDRESS = "EndpointAddress"; + @SerializedName(SERIALIZED_NAME_ENDPOINT_ADDRESS) + @javax.annotation.Nullable + private String endpointAddress; + + public ServerDiscoveryInfo() { + } + + public ServerDiscoveryInfo address(@javax.annotation.Nullable String address) { + this.address = address; + return this; + } + + /** + * Gets the address. + * @return address + */ + @javax.annotation.Nullable + public String getAddress() { + return address; + } + + public void setAddress(@javax.annotation.Nullable String address) { + this.address = address; + } + + + public ServerDiscoveryInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets the server identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public ServerDiscoveryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ServerDiscoveryInfo endpointAddress(@javax.annotation.Nullable String endpointAddress) { + this.endpointAddress = endpointAddress; + return this; + } + + /** + * Gets the endpoint address. + * @return endpointAddress + */ + @javax.annotation.Nullable + public String getEndpointAddress() { + return endpointAddress; + } + + public void setEndpointAddress(@javax.annotation.Nullable String endpointAddress) { + this.endpointAddress = endpointAddress; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerDiscoveryInfo serverDiscoveryInfo = (ServerDiscoveryInfo) o; + return Objects.equals(this.address, serverDiscoveryInfo.address) && + Objects.equals(this.id, serverDiscoveryInfo.id) && + Objects.equals(this.name, serverDiscoveryInfo.name) && + Objects.equals(this.endpointAddress, serverDiscoveryInfo.endpointAddress); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(address, id, name, endpointAddress); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerDiscoveryInfo {\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" endpointAddress: ").append(toIndentedString(endpointAddress)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Address"); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("EndpointAddress"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerDiscoveryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerDiscoveryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerDiscoveryInfo is not found in the empty JSON string", ServerDiscoveryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerDiscoveryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerDiscoveryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Address") != null && !jsonObj.get("Address").isJsonNull()) && !jsonObj.get("Address").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Address` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Address").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("EndpointAddress") != null && !jsonObj.get("EndpointAddress").isJsonNull()) && !jsonObj.get("EndpointAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EndpointAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EndpointAddress").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerDiscoveryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerDiscoveryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerDiscoveryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerDiscoveryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerDiscoveryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerDiscoveryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerDiscoveryInfo + * @throws IOException if the JSON string is invalid with respect to ServerDiscoveryInfo + */ + public static ServerDiscoveryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerDiscoveryInfo.class); + } + + /** + * Convert an instance of ServerDiscoveryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerRestartingMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerRestartingMessage.java new file mode 100644 index 0000000000000..c9f409ab5b17b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerRestartingMessage.java @@ -0,0 +1,238 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Server restarting down message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerRestartingMessage { + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SERVER_RESTARTING; + + public ServerRestartingMessage() { + } + + public ServerRestartingMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ServerRestartingMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerRestartingMessage serverRestartingMessage = (ServerRestartingMessage) o; + return Objects.equals(this.messageId, serverRestartingMessage.messageId) && + Objects.equals(this.messageType, serverRestartingMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerRestartingMessage {\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerRestartingMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerRestartingMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerRestartingMessage is not found in the empty JSON string", ServerRestartingMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerRestartingMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerRestartingMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerRestartingMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerRestartingMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerRestartingMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerRestartingMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerRestartingMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerRestartingMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerRestartingMessage + * @throws IOException if the JSON string is invalid with respect to ServerRestartingMessage + */ + public static ServerRestartingMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerRestartingMessage.class); + } + + /** + * Convert an instance of ServerRestartingMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerShuttingDownMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerShuttingDownMessage.java new file mode 100644 index 0000000000000..2d01ec77b5b2f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ServerShuttingDownMessage.java @@ -0,0 +1,238 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Server shutting down message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerShuttingDownMessage { + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SERVER_SHUTTING_DOWN; + + public ServerShuttingDownMessage() { + } + + public ServerShuttingDownMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public ServerShuttingDownMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerShuttingDownMessage serverShuttingDownMessage = (ServerShuttingDownMessage) o; + return Objects.equals(this.messageId, serverShuttingDownMessage.messageId) && + Objects.equals(this.messageType, serverShuttingDownMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerShuttingDownMessage {\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerShuttingDownMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerShuttingDownMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerShuttingDownMessage is not found in the empty JSON string", ServerShuttingDownMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerShuttingDownMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerShuttingDownMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerShuttingDownMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerShuttingDownMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerShuttingDownMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerShuttingDownMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerShuttingDownMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerShuttingDownMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerShuttingDownMessage + * @throws IOException if the JSON string is invalid with respect to ServerShuttingDownMessage + */ + public static ServerShuttingDownMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerShuttingDownMessage.class); + } + + /** + * Convert an instance of ServerShuttingDownMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionInfoDto.java new file mode 100644 index 0000000000000..2c4cd89362af5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionInfoDto.java @@ -0,0 +1,1129 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.ClientCapabilitiesDto; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.client.model.MediaType; +import org.openapitools.client.model.PlayerStateInfo; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.SessionUserInfo; +import org.openapitools.client.model.TranscodingInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Session info DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionInfoDto { + public static final String SERIALIZED_NAME_PLAY_STATE = "PlayState"; + @SerializedName(SERIALIZED_NAME_PLAY_STATE) + @javax.annotation.Nullable + private PlayerStateInfo playState; + + public static final String SERIALIZED_NAME_ADDITIONAL_USERS = "AdditionalUsers"; + @SerializedName(SERIALIZED_NAME_ADDITIONAL_USERS) + @javax.annotation.Nullable + private List additionalUsers; + + public static final String SERIALIZED_NAME_CAPABILITIES = "Capabilities"; + @SerializedName(SERIALIZED_NAME_CAPABILITIES) + @javax.annotation.Nullable + private ClientCapabilitiesDto capabilities; + + public static final String SERIALIZED_NAME_REMOTE_END_POINT = "RemoteEndPoint"; + @SerializedName(SERIALIZED_NAME_REMOTE_END_POINT) + @javax.annotation.Nullable + private String remoteEndPoint; + + public static final String SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES = "PlayableMediaTypes"; + @SerializedName(SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES) + @javax.annotation.Nullable + private List playableMediaTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public static final String SERIALIZED_NAME_CLIENT = "Client"; + @SerializedName(SERIALIZED_NAME_CLIENT) + @javax.annotation.Nullable + private String client; + + public static final String SERIALIZED_NAME_LAST_ACTIVITY_DATE = "LastActivityDate"; + @SerializedName(SERIALIZED_NAME_LAST_ACTIVITY_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastActivityDate; + + public static final String SERIALIZED_NAME_LAST_PLAYBACK_CHECK_IN = "LastPlaybackCheckIn"; + @SerializedName(SERIALIZED_NAME_LAST_PLAYBACK_CHECK_IN) + @javax.annotation.Nullable + private OffsetDateTime lastPlaybackCheckIn; + + public static final String SERIALIZED_NAME_LAST_PAUSED_DATE = "LastPausedDate"; + @SerializedName(SERIALIZED_NAME_LAST_PAUSED_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastPausedDate; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_DEVICE_TYPE = "DeviceType"; + @SerializedName(SERIALIZED_NAME_DEVICE_TYPE) + @javax.annotation.Nullable + private String deviceType; + + public static final String SERIALIZED_NAME_NOW_PLAYING_ITEM = "NowPlayingItem"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_ITEM) + @javax.annotation.Nullable + private BaseItemDto nowPlayingItem; + + public static final String SERIALIZED_NAME_NOW_VIEWING_ITEM = "NowViewingItem"; + @SerializedName(SERIALIZED_NAME_NOW_VIEWING_ITEM) + @javax.annotation.Nullable + private BaseItemDto nowViewingItem; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_APPLICATION_VERSION = "ApplicationVersion"; + @SerializedName(SERIALIZED_NAME_APPLICATION_VERSION) + @javax.annotation.Nullable + private String applicationVersion; + + public static final String SERIALIZED_NAME_TRANSCODING_INFO = "TranscodingInfo"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_INFO) + @javax.annotation.Nullable + private TranscodingInfo transcodingInfo; + + public static final String SERIALIZED_NAME_IS_ACTIVE = "IsActive"; + @SerializedName(SERIALIZED_NAME_IS_ACTIVE) + @javax.annotation.Nullable + private Boolean isActive; + + public static final String SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL = "SupportsMediaControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL) + @javax.annotation.Nullable + private Boolean supportsMediaControl; + + public static final String SERIALIZED_NAME_SUPPORTS_REMOTE_CONTROL = "SupportsRemoteControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_REMOTE_CONTROL) + @javax.annotation.Nullable + private Boolean supportsRemoteControl; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE_FULL_ITEMS = "NowPlayingQueueFullItems"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE_FULL_ITEMS) + @javax.annotation.Nullable + private List nowPlayingQueueFullItems; + + public static final String SERIALIZED_NAME_HAS_CUSTOM_DEVICE_NAME = "HasCustomDeviceName"; + @SerializedName(SERIALIZED_NAME_HAS_CUSTOM_DEVICE_NAME) + @javax.annotation.Nullable + private Boolean hasCustomDeviceName; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG = "UserPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String userPrimaryImageTag; + + public static final String SERIALIZED_NAME_SUPPORTED_COMMANDS = "SupportedCommands"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_COMMANDS) + @javax.annotation.Nullable + private List supportedCommands = new ArrayList<>(); + + public SessionInfoDto() { + } + + public SessionInfoDto playState(@javax.annotation.Nullable PlayerStateInfo playState) { + this.playState = playState; + return this; + } + + /** + * Gets or sets the play state. + * @return playState + */ + @javax.annotation.Nullable + public PlayerStateInfo getPlayState() { + return playState; + } + + public void setPlayState(@javax.annotation.Nullable PlayerStateInfo playState) { + this.playState = playState; + } + + + public SessionInfoDto additionalUsers(@javax.annotation.Nullable List additionalUsers) { + this.additionalUsers = additionalUsers; + return this; + } + + public SessionInfoDto addAdditionalUsersItem(SessionUserInfo additionalUsersItem) { + if (this.additionalUsers == null) { + this.additionalUsers = new ArrayList<>(); + } + this.additionalUsers.add(additionalUsersItem); + return this; + } + + /** + * Gets or sets the additional users. + * @return additionalUsers + */ + @javax.annotation.Nullable + public List getAdditionalUsers() { + return additionalUsers; + } + + public void setAdditionalUsers(@javax.annotation.Nullable List additionalUsers) { + this.additionalUsers = additionalUsers; + } + + + public SessionInfoDto capabilities(@javax.annotation.Nullable ClientCapabilitiesDto capabilities) { + this.capabilities = capabilities; + return this; + } + + /** + * Gets or sets the client capabilities. + * @return capabilities + */ + @javax.annotation.Nullable + public ClientCapabilitiesDto getCapabilities() { + return capabilities; + } + + public void setCapabilities(@javax.annotation.Nullable ClientCapabilitiesDto capabilities) { + this.capabilities = capabilities; + } + + + public SessionInfoDto remoteEndPoint(@javax.annotation.Nullable String remoteEndPoint) { + this.remoteEndPoint = remoteEndPoint; + return this; + } + + /** + * Gets or sets the remote end point. + * @return remoteEndPoint + */ + @javax.annotation.Nullable + public String getRemoteEndPoint() { + return remoteEndPoint; + } + + public void setRemoteEndPoint(@javax.annotation.Nullable String remoteEndPoint) { + this.remoteEndPoint = remoteEndPoint; + } + + + public SessionInfoDto playableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + return this; + } + + public SessionInfoDto addPlayableMediaTypesItem(MediaType playableMediaTypesItem) { + if (this.playableMediaTypes == null) { + this.playableMediaTypes = new ArrayList<>(); + } + this.playableMediaTypes.add(playableMediaTypesItem); + return this; + } + + /** + * Gets or sets the playable media types. + * @return playableMediaTypes + */ + @javax.annotation.Nullable + public List getPlayableMediaTypes() { + return playableMediaTypes; + } + + public void setPlayableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + } + + + public SessionInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SessionInfoDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public SessionInfoDto userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Gets or sets the username. + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + public SessionInfoDto client(@javax.annotation.Nullable String client) { + this.client = client; + return this; + } + + /** + * Gets or sets the type of the client. + * @return client + */ + @javax.annotation.Nullable + public String getClient() { + return client; + } + + public void setClient(@javax.annotation.Nullable String client) { + this.client = client; + } + + + public SessionInfoDto lastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + return this; + } + + /** + * Gets or sets the last activity date. + * @return lastActivityDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastActivityDate() { + return lastActivityDate; + } + + public void setLastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + } + + + public SessionInfoDto lastPlaybackCheckIn(@javax.annotation.Nullable OffsetDateTime lastPlaybackCheckIn) { + this.lastPlaybackCheckIn = lastPlaybackCheckIn; + return this; + } + + /** + * Gets or sets the last playback check in. + * @return lastPlaybackCheckIn + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPlaybackCheckIn() { + return lastPlaybackCheckIn; + } + + public void setLastPlaybackCheckIn(@javax.annotation.Nullable OffsetDateTime lastPlaybackCheckIn) { + this.lastPlaybackCheckIn = lastPlaybackCheckIn; + } + + + public SessionInfoDto lastPausedDate(@javax.annotation.Nullable OffsetDateTime lastPausedDate) { + this.lastPausedDate = lastPausedDate; + return this; + } + + /** + * Gets or sets the last paused date. + * @return lastPausedDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPausedDate() { + return lastPausedDate; + } + + public void setLastPausedDate(@javax.annotation.Nullable OffsetDateTime lastPausedDate) { + this.lastPausedDate = lastPausedDate; + } + + + public SessionInfoDto deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets or sets the name of the device. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public SessionInfoDto deviceType(@javax.annotation.Nullable String deviceType) { + this.deviceType = deviceType; + return this; + } + + /** + * Gets or sets the type of the device. + * @return deviceType + */ + @javax.annotation.Nullable + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(@javax.annotation.Nullable String deviceType) { + this.deviceType = deviceType; + } + + + public SessionInfoDto nowPlayingItem(@javax.annotation.Nullable BaseItemDto nowPlayingItem) { + this.nowPlayingItem = nowPlayingItem; + return this; + } + + /** + * Gets or sets the now playing item. + * @return nowPlayingItem + */ + @javax.annotation.Nullable + public BaseItemDto getNowPlayingItem() { + return nowPlayingItem; + } + + public void setNowPlayingItem(@javax.annotation.Nullable BaseItemDto nowPlayingItem) { + this.nowPlayingItem = nowPlayingItem; + } + + + public SessionInfoDto nowViewingItem(@javax.annotation.Nullable BaseItemDto nowViewingItem) { + this.nowViewingItem = nowViewingItem; + return this; + } + + /** + * Gets or sets the now viewing item. + * @return nowViewingItem + */ + @javax.annotation.Nullable + public BaseItemDto getNowViewingItem() { + return nowViewingItem; + } + + public void setNowViewingItem(@javax.annotation.Nullable BaseItemDto nowViewingItem) { + this.nowViewingItem = nowViewingItem; + } + + + public SessionInfoDto deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public SessionInfoDto applicationVersion(@javax.annotation.Nullable String applicationVersion) { + this.applicationVersion = applicationVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return applicationVersion + */ + @javax.annotation.Nullable + public String getApplicationVersion() { + return applicationVersion; + } + + public void setApplicationVersion(@javax.annotation.Nullable String applicationVersion) { + this.applicationVersion = applicationVersion; + } + + + public SessionInfoDto transcodingInfo(@javax.annotation.Nullable TranscodingInfo transcodingInfo) { + this.transcodingInfo = transcodingInfo; + return this; + } + + /** + * Gets or sets the transcoding info. + * @return transcodingInfo + */ + @javax.annotation.Nullable + public TranscodingInfo getTranscodingInfo() { + return transcodingInfo; + } + + public void setTranscodingInfo(@javax.annotation.Nullable TranscodingInfo transcodingInfo) { + this.transcodingInfo = transcodingInfo; + } + + + public SessionInfoDto isActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + return this; + } + + /** + * Gets or sets a value indicating whether this session is active. + * @return isActive + */ + @javax.annotation.Nullable + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + } + + + public SessionInfoDto supportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + return this; + } + + /** + * Gets or sets a value indicating whether the session supports media control. + * @return supportsMediaControl + */ + @javax.annotation.Nullable + public Boolean getSupportsMediaControl() { + return supportsMediaControl; + } + + public void setSupportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + } + + + public SessionInfoDto supportsRemoteControl(@javax.annotation.Nullable Boolean supportsRemoteControl) { + this.supportsRemoteControl = supportsRemoteControl; + return this; + } + + /** + * Gets or sets a value indicating whether the session supports remote control. + * @return supportsRemoteControl + */ + @javax.annotation.Nullable + public Boolean getSupportsRemoteControl() { + return supportsRemoteControl; + } + + public void setSupportsRemoteControl(@javax.annotation.Nullable Boolean supportsRemoteControl) { + this.supportsRemoteControl = supportsRemoteControl; + } + + + public SessionInfoDto nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public SessionInfoDto addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Gets or sets the now playing queue. + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public SessionInfoDto nowPlayingQueueFullItems(@javax.annotation.Nullable List nowPlayingQueueFullItems) { + this.nowPlayingQueueFullItems = nowPlayingQueueFullItems; + return this; + } + + public SessionInfoDto addNowPlayingQueueFullItemsItem(BaseItemDto nowPlayingQueueFullItemsItem) { + if (this.nowPlayingQueueFullItems == null) { + this.nowPlayingQueueFullItems = new ArrayList<>(); + } + this.nowPlayingQueueFullItems.add(nowPlayingQueueFullItemsItem); + return this; + } + + /** + * Gets or sets the now playing queue full items. + * @return nowPlayingQueueFullItems + */ + @javax.annotation.Nullable + public List getNowPlayingQueueFullItems() { + return nowPlayingQueueFullItems; + } + + public void setNowPlayingQueueFullItems(@javax.annotation.Nullable List nowPlayingQueueFullItems) { + this.nowPlayingQueueFullItems = nowPlayingQueueFullItems; + } + + + public SessionInfoDto hasCustomDeviceName(@javax.annotation.Nullable Boolean hasCustomDeviceName) { + this.hasCustomDeviceName = hasCustomDeviceName; + return this; + } + + /** + * Gets or sets a value indicating whether the session has a custom device name. + * @return hasCustomDeviceName + */ + @javax.annotation.Nullable + public Boolean getHasCustomDeviceName() { + return hasCustomDeviceName; + } + + public void setHasCustomDeviceName(@javax.annotation.Nullable Boolean hasCustomDeviceName) { + this.hasCustomDeviceName = hasCustomDeviceName; + } + + + public SessionInfoDto playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item id. + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public SessionInfoDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server id. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public SessionInfoDto userPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + return this; + } + + /** + * Gets or sets the user primary image tag. + * @return userPrimaryImageTag + */ + @javax.annotation.Nullable + public String getUserPrimaryImageTag() { + return userPrimaryImageTag; + } + + public void setUserPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + } + + + public SessionInfoDto supportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + return this; + } + + public SessionInfoDto addSupportedCommandsItem(GeneralCommandType supportedCommandsItem) { + if (this.supportedCommands == null) { + this.supportedCommands = new ArrayList<>(); + } + this.supportedCommands.add(supportedCommandsItem); + return this; + } + + /** + * Gets or sets the supported commands. + * @return supportedCommands + */ + @javax.annotation.Nullable + public List getSupportedCommands() { + return supportedCommands; + } + + public void setSupportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionInfoDto sessionInfoDto = (SessionInfoDto) o; + return Objects.equals(this.playState, sessionInfoDto.playState) && + Objects.equals(this.additionalUsers, sessionInfoDto.additionalUsers) && + Objects.equals(this.capabilities, sessionInfoDto.capabilities) && + Objects.equals(this.remoteEndPoint, sessionInfoDto.remoteEndPoint) && + Objects.equals(this.playableMediaTypes, sessionInfoDto.playableMediaTypes) && + Objects.equals(this.id, sessionInfoDto.id) && + Objects.equals(this.userId, sessionInfoDto.userId) && + Objects.equals(this.userName, sessionInfoDto.userName) && + Objects.equals(this.client, sessionInfoDto.client) && + Objects.equals(this.lastActivityDate, sessionInfoDto.lastActivityDate) && + Objects.equals(this.lastPlaybackCheckIn, sessionInfoDto.lastPlaybackCheckIn) && + Objects.equals(this.lastPausedDate, sessionInfoDto.lastPausedDate) && + Objects.equals(this.deviceName, sessionInfoDto.deviceName) && + Objects.equals(this.deviceType, sessionInfoDto.deviceType) && + Objects.equals(this.nowPlayingItem, sessionInfoDto.nowPlayingItem) && + Objects.equals(this.nowViewingItem, sessionInfoDto.nowViewingItem) && + Objects.equals(this.deviceId, sessionInfoDto.deviceId) && + Objects.equals(this.applicationVersion, sessionInfoDto.applicationVersion) && + Objects.equals(this.transcodingInfo, sessionInfoDto.transcodingInfo) && + Objects.equals(this.isActive, sessionInfoDto.isActive) && + Objects.equals(this.supportsMediaControl, sessionInfoDto.supportsMediaControl) && + Objects.equals(this.supportsRemoteControl, sessionInfoDto.supportsRemoteControl) && + Objects.equals(this.nowPlayingQueue, sessionInfoDto.nowPlayingQueue) && + Objects.equals(this.nowPlayingQueueFullItems, sessionInfoDto.nowPlayingQueueFullItems) && + Objects.equals(this.hasCustomDeviceName, sessionInfoDto.hasCustomDeviceName) && + Objects.equals(this.playlistItemId, sessionInfoDto.playlistItemId) && + Objects.equals(this.serverId, sessionInfoDto.serverId) && + Objects.equals(this.userPrimaryImageTag, sessionInfoDto.userPrimaryImageTag) && + Objects.equals(this.supportedCommands, sessionInfoDto.supportedCommands); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(playState, additionalUsers, capabilities, remoteEndPoint, playableMediaTypes, id, userId, userName, client, lastActivityDate, lastPlaybackCheckIn, lastPausedDate, deviceName, deviceType, nowPlayingItem, nowViewingItem, deviceId, applicationVersion, transcodingInfo, isActive, supportsMediaControl, supportsRemoteControl, nowPlayingQueue, nowPlayingQueueFullItems, hasCustomDeviceName, playlistItemId, serverId, userPrimaryImageTag, supportedCommands); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionInfoDto {\n"); + sb.append(" playState: ").append(toIndentedString(playState)).append("\n"); + sb.append(" additionalUsers: ").append(toIndentedString(additionalUsers)).append("\n"); + sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n"); + sb.append(" remoteEndPoint: ").append(toIndentedString(remoteEndPoint)).append("\n"); + sb.append(" playableMediaTypes: ").append(toIndentedString(playableMediaTypes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append(" client: ").append(toIndentedString(client)).append("\n"); + sb.append(" lastActivityDate: ").append(toIndentedString(lastActivityDate)).append("\n"); + sb.append(" lastPlaybackCheckIn: ").append(toIndentedString(lastPlaybackCheckIn)).append("\n"); + sb.append(" lastPausedDate: ").append(toIndentedString(lastPausedDate)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" deviceType: ").append(toIndentedString(deviceType)).append("\n"); + sb.append(" nowPlayingItem: ").append(toIndentedString(nowPlayingItem)).append("\n"); + sb.append(" nowViewingItem: ").append(toIndentedString(nowViewingItem)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" applicationVersion: ").append(toIndentedString(applicationVersion)).append("\n"); + sb.append(" transcodingInfo: ").append(toIndentedString(transcodingInfo)).append("\n"); + sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n"); + sb.append(" supportsMediaControl: ").append(toIndentedString(supportsMediaControl)).append("\n"); + sb.append(" supportsRemoteControl: ").append(toIndentedString(supportsRemoteControl)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" nowPlayingQueueFullItems: ").append(toIndentedString(nowPlayingQueueFullItems)).append("\n"); + sb.append(" hasCustomDeviceName: ").append(toIndentedString(hasCustomDeviceName)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" userPrimaryImageTag: ").append(toIndentedString(userPrimaryImageTag)).append("\n"); + sb.append(" supportedCommands: ").append(toIndentedString(supportedCommands)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayState"); + openapiFields.add("AdditionalUsers"); + openapiFields.add("Capabilities"); + openapiFields.add("RemoteEndPoint"); + openapiFields.add("PlayableMediaTypes"); + openapiFields.add("Id"); + openapiFields.add("UserId"); + openapiFields.add("UserName"); + openapiFields.add("Client"); + openapiFields.add("LastActivityDate"); + openapiFields.add("LastPlaybackCheckIn"); + openapiFields.add("LastPausedDate"); + openapiFields.add("DeviceName"); + openapiFields.add("DeviceType"); + openapiFields.add("NowPlayingItem"); + openapiFields.add("NowViewingItem"); + openapiFields.add("DeviceId"); + openapiFields.add("ApplicationVersion"); + openapiFields.add("TranscodingInfo"); + openapiFields.add("IsActive"); + openapiFields.add("SupportsMediaControl"); + openapiFields.add("SupportsRemoteControl"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("NowPlayingQueueFullItems"); + openapiFields.add("HasCustomDeviceName"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("ServerId"); + openapiFields.add("UserPrimaryImageTag"); + openapiFields.add("SupportedCommands"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionInfoDto is not found in the empty JSON string", SessionInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `PlayState` + if (jsonObj.get("PlayState") != null && !jsonObj.get("PlayState").isJsonNull()) { + PlayerStateInfo.validateJsonElement(jsonObj.get("PlayState")); + } + if (jsonObj.get("AdditionalUsers") != null && !jsonObj.get("AdditionalUsers").isJsonNull()) { + JsonArray jsonArrayadditionalUsers = jsonObj.getAsJsonArray("AdditionalUsers"); + if (jsonArrayadditionalUsers != null) { + // ensure the json data is an array + if (!jsonObj.get("AdditionalUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AdditionalUsers` to be an array in the JSON string but got `%s`", jsonObj.get("AdditionalUsers").toString())); + } + + // validate the optional field `AdditionalUsers` (array) + for (int i = 0; i < jsonArrayadditionalUsers.size(); i++) { + SessionUserInfo.validateJsonElement(jsonArrayadditionalUsers.get(i)); + }; + } + } + // validate the optional field `Capabilities` + if (jsonObj.get("Capabilities") != null && !jsonObj.get("Capabilities").isJsonNull()) { + ClientCapabilitiesDto.validateJsonElement(jsonObj.get("Capabilities")); + } + if ((jsonObj.get("RemoteEndPoint") != null && !jsonObj.get("RemoteEndPoint").isJsonNull()) && !jsonObj.get("RemoteEndPoint").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteEndPoint` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RemoteEndPoint").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PlayableMediaTypes") != null && !jsonObj.get("PlayableMediaTypes").isJsonNull() && !jsonObj.get("PlayableMediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayableMediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("PlayableMediaTypes").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + if ((jsonObj.get("Client") != null && !jsonObj.get("Client").isJsonNull()) && !jsonObj.get("Client").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Client` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Client").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("DeviceType") != null && !jsonObj.get("DeviceType").isJsonNull()) && !jsonObj.get("DeviceType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceType").toString())); + } + // validate the optional field `NowPlayingItem` + if (jsonObj.get("NowPlayingItem") != null && !jsonObj.get("NowPlayingItem").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("NowPlayingItem")); + } + // validate the optional field `NowViewingItem` + if (jsonObj.get("NowViewingItem") != null && !jsonObj.get("NowViewingItem").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("NowViewingItem")); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("ApplicationVersion") != null && !jsonObj.get("ApplicationVersion").isJsonNull()) && !jsonObj.get("ApplicationVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ApplicationVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ApplicationVersion").toString())); + } + // validate the optional field `TranscodingInfo` + if (jsonObj.get("TranscodingInfo") != null && !jsonObj.get("TranscodingInfo").isJsonNull()) { + TranscodingInfo.validateJsonElement(jsonObj.get("TranscodingInfo")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if (jsonObj.get("NowPlayingQueueFullItems") != null && !jsonObj.get("NowPlayingQueueFullItems").isJsonNull()) { + JsonArray jsonArraynowPlayingQueueFullItems = jsonObj.getAsJsonArray("NowPlayingQueueFullItems"); + if (jsonArraynowPlayingQueueFullItems != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueueFullItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueueFullItems` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueueFullItems").toString())); + } + + // validate the optional field `NowPlayingQueueFullItems` (array) + for (int i = 0; i < jsonArraynowPlayingQueueFullItems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArraynowPlayingQueueFullItems.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("UserPrimaryImageTag") != null && !jsonObj.get("UserPrimaryImageTag").isJsonNull()) && !jsonObj.get("UserPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserPrimaryImageTag").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedCommands") != null && !jsonObj.get("SupportedCommands").isJsonNull() && !jsonObj.get("SupportedCommands").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedCommands` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedCommands").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionInfoDto + * @throws IOException if the JSON string is invalid with respect to SessionInfoDto + */ + public static SessionInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionInfoDto.class); + } + + /** + * Convert an instance of SessionInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionMessageType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionMessageType.java new file mode 100644 index 0000000000000..4cc60b92bcae2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionMessageType.java @@ -0,0 +1,142 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The different kinds of messages that are used in the WebSocket api. + */ +@JsonAdapter(SessionMessageType.Adapter.class) +public enum SessionMessageType { + + FORCE_KEEP_ALIVE("ForceKeepAlive"), + + GENERAL_COMMAND("GeneralCommand"), + + USER_DATA_CHANGED("UserDataChanged"), + + SESSIONS("Sessions"), + + PLAY("Play"), + + SYNC_PLAY_COMMAND("SyncPlayCommand"), + + SYNC_PLAY_GROUP_UPDATE("SyncPlayGroupUpdate"), + + PLAYSTATE("Playstate"), + + RESTART_REQUIRED("RestartRequired"), + + SERVER_SHUTTING_DOWN("ServerShuttingDown"), + + SERVER_RESTARTING("ServerRestarting"), + + LIBRARY_CHANGED("LibraryChanged"), + + USER_DELETED("UserDeleted"), + + USER_UPDATED("UserUpdated"), + + SERIES_TIMER_CREATED("SeriesTimerCreated"), + + TIMER_CREATED("TimerCreated"), + + SERIES_TIMER_CANCELLED("SeriesTimerCancelled"), + + TIMER_CANCELLED("TimerCancelled"), + + REFRESH_PROGRESS("RefreshProgress"), + + SCHEDULED_TASK_ENDED("ScheduledTaskEnded"), + + PACKAGE_INSTALLATION_CANCELLED("PackageInstallationCancelled"), + + PACKAGE_INSTALLATION_FAILED("PackageInstallationFailed"), + + PACKAGE_INSTALLATION_COMPLETED("PackageInstallationCompleted"), + + PACKAGE_INSTALLING("PackageInstalling"), + + PACKAGE_UNINSTALLED("PackageUninstalled"), + + ACTIVITY_LOG_ENTRY("ActivityLogEntry"), + + SCHEDULED_TASKS_INFO("ScheduledTasksInfo"), + + ACTIVITY_LOG_ENTRY_START("ActivityLogEntryStart"), + + ACTIVITY_LOG_ENTRY_STOP("ActivityLogEntryStop"), + + SESSIONS_START("SessionsStart"), + + SESSIONS_STOP("SessionsStop"), + + SCHEDULED_TASKS_INFO_START("ScheduledTasksInfoStart"), + + SCHEDULED_TASKS_INFO_STOP("ScheduledTasksInfoStop"), + + KEEP_ALIVE("KeepAlive"); + + private String value; + + SessionMessageType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SessionMessageType fromValue(String value) { + for (SessionMessageType b : SessionMessageType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SessionMessageType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SessionMessageType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SessionMessageType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SessionMessageType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionUserInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionUserInfo.java new file mode 100644 index 0000000000000..94ecb2dc2a116 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionUserInfo.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SessionUserInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionUserInfo { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public SessionUserInfo() { + } + + public SessionUserInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public SessionUserInfo userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Gets or sets the name of the user. + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionUserInfo sessionUserInfo = (SessionUserInfo) o; + return Objects.equals(this.userId, sessionUserInfo.userId) && + Objects.equals(this.userName, sessionUserInfo.userName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, userName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionUserInfo {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("UserName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionUserInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionUserInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionUserInfo is not found in the empty JSON string", SessionUserInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionUserInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionUserInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionUserInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionUserInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionUserInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionUserInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionUserInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionUserInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionUserInfo + * @throws IOException if the JSON string is invalid with respect to SessionUserInfo + */ + public static SessionUserInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionUserInfo.class); + } + + /** + * Convert an instance of SessionUserInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsMessage.java new file mode 100644 index 0000000000000..ec5ac3b7eb310 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsMessage.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.SessionInfoDto; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Sessions message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionsMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SESSIONS; + + public SessionsMessage() { + } + + public SessionsMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SessionsMessage data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public SessionsMessage addDataItem(SessionInfoDto dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable List data) { + this.data = data; + } + + + public SessionsMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionsMessage sessionsMessage = (SessionsMessage) o; + return Objects.equals(this.data, sessionsMessage.data) && + Objects.equals(this.messageId, sessionsMessage.messageId) && + Objects.equals(this.messageType, sessionsMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionsMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionsMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionsMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionsMessage is not found in the empty JSON string", SessionsMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionsMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionsMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("Data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("Data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be an array in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + + // validate the optional field `Data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + SessionInfoDto.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionsMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionsMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionsMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionsMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionsMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionsMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionsMessage + * @throws IOException if the JSON string is invalid with respect to SessionsMessage + */ + public static SessionsMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionsMessage.class); + } + + /** + * Convert an instance of SessionsMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStartMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStartMessage.java new file mode 100644 index 0000000000000..dac46383aa762 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStartMessage.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Sessions start message. Data is the timing data encoded as \"$initialDelay,$interval\" in ms. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionsStartMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private String data; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SESSIONS_START; + + public SessionsStartMessage() { + } + + public SessionsStartMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SessionsStartMessage data(@javax.annotation.Nullable String data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nullable String data) { + this.data = data; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionsStartMessage sessionsStartMessage = (SessionsStartMessage) o; + return Objects.equals(this.data, sessionsStartMessage.data) && + Objects.equals(this.messageType, sessionsStartMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionsStartMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionsStartMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionsStartMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionsStartMessage is not found in the empty JSON string", SessionsStartMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionsStartMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionsStartMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionsStartMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionsStartMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionsStartMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionsStartMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionsStartMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionsStartMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionsStartMessage + * @throws IOException if the JSON string is invalid with respect to SessionsStartMessage + */ + public static SessionsStartMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionsStartMessage.class); + } + + /** + * Convert an instance of SessionsStartMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStopMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStopMessage.java new file mode 100644 index 0000000000000..d912b2dcc2d9d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SessionsStopMessage.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Sessions stop message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionsStopMessage { + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SESSIONS_STOP; + + public SessionsStopMessage() { + } + + public SessionsStopMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionsStopMessage sessionsStopMessage = (SessionsStopMessage) o; + return Objects.equals(this.messageType, sessionsStopMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionsStopMessage {\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionsStopMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionsStopMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionsStopMessage is not found in the empty JSON string", SessionsStopMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionsStopMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionsStopMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionsStopMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionsStopMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionsStopMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionsStopMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionsStopMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionsStopMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionsStopMessage + * @throws IOException if the JSON string is invalid with respect to SessionsStopMessage + */ + public static SessionsStopMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionsStopMessage.class); + } + + /** + * Convert an instance of SessionsStopMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java new file mode 100644 index 0000000000000..505f106f3a0b7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java @@ -0,0 +1,276 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Set channel mapping dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetChannelMappingDto { + public static final String SERIALIZED_NAME_PROVIDER_ID = "ProviderId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_ID) + @javax.annotation.Nonnull + private String providerId; + + public static final String SERIALIZED_NAME_TUNER_CHANNEL_ID = "TunerChannelId"; + @SerializedName(SERIALIZED_NAME_TUNER_CHANNEL_ID) + @javax.annotation.Nonnull + private String tunerChannelId; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_ID = "ProviderChannelId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_ID) + @javax.annotation.Nonnull + private String providerChannelId; + + public SetChannelMappingDto() { + } + + public SetChannelMappingDto providerId(@javax.annotation.Nonnull String providerId) { + this.providerId = providerId; + return this; + } + + /** + * Gets or sets the provider id. + * @return providerId + */ + @javax.annotation.Nonnull + public String getProviderId() { + return providerId; + } + + public void setProviderId(@javax.annotation.Nonnull String providerId) { + this.providerId = providerId; + } + + + public SetChannelMappingDto tunerChannelId(@javax.annotation.Nonnull String tunerChannelId) { + this.tunerChannelId = tunerChannelId; + return this; + } + + /** + * Gets or sets the tuner channel id. + * @return tunerChannelId + */ + @javax.annotation.Nonnull + public String getTunerChannelId() { + return tunerChannelId; + } + + public void setTunerChannelId(@javax.annotation.Nonnull String tunerChannelId) { + this.tunerChannelId = tunerChannelId; + } + + + public SetChannelMappingDto providerChannelId(@javax.annotation.Nonnull String providerChannelId) { + this.providerChannelId = providerChannelId; + return this; + } + + /** + * Gets or sets the provider channel id. + * @return providerChannelId + */ + @javax.annotation.Nonnull + public String getProviderChannelId() { + return providerChannelId; + } + + public void setProviderChannelId(@javax.annotation.Nonnull String providerChannelId) { + this.providerChannelId = providerChannelId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetChannelMappingDto setChannelMappingDto = (SetChannelMappingDto) o; + return Objects.equals(this.providerId, setChannelMappingDto.providerId) && + Objects.equals(this.tunerChannelId, setChannelMappingDto.tunerChannelId) && + Objects.equals(this.providerChannelId, setChannelMappingDto.providerChannelId); + } + + @Override + public int hashCode() { + return Objects.hash(providerId, tunerChannelId, providerChannelId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetChannelMappingDto {\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" tunerChannelId: ").append(toIndentedString(tunerChannelId)).append("\n"); + sb.append(" providerChannelId: ").append(toIndentedString(providerChannelId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ProviderId"); + openapiFields.add("TunerChannelId"); + openapiFields.add("ProviderChannelId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ProviderId"); + openapiRequiredFields.add("TunerChannelId"); + openapiRequiredFields.add("ProviderChannelId"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetChannelMappingDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetChannelMappingDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetChannelMappingDto is not found in the empty JSON string", SetChannelMappingDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetChannelMappingDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetChannelMappingDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SetChannelMappingDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("ProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderId").toString())); + } + if (!jsonObj.get("TunerChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TunerChannelId").toString())); + } + if (!jsonObj.get("ProviderChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetChannelMappingDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetChannelMappingDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetChannelMappingDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetChannelMappingDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetChannelMappingDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetChannelMappingDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetChannelMappingDto + * @throws IOException if the JSON string is invalid with respect to SetChannelMappingDto + */ + public static SetChannelMappingDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetChannelMappingDto.class); + } + + /** + * Convert an instance of SetChannelMappingDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java new file mode 100644 index 0000000000000..de0d6029c81d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetPlaylistItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetPlaylistItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public SetPlaylistItemRequestDto() { + } + + public SetPlaylistItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetPlaylistItemRequestDto setPlaylistItemRequestDto = (SetPlaylistItemRequestDto) o; + return Objects.equals(this.playlistItemId, setPlaylistItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetPlaylistItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetPlaylistItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetPlaylistItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetPlaylistItemRequestDto is not found in the empty JSON string", SetPlaylistItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetPlaylistItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetPlaylistItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetPlaylistItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetPlaylistItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetPlaylistItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetPlaylistItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetPlaylistItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetPlaylistItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetPlaylistItemRequestDto + * @throws IOException if the JSON string is invalid with respect to SetPlaylistItemRequestDto + */ + public static SetPlaylistItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetPlaylistItemRequestDto.class); + } + + /** + * Convert an instance of SetPlaylistItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java new file mode 100644 index 0000000000000..9ddd36dd85bc1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.GroupRepeatMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetRepeatModeRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetRepeatModeRequestDto { + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupRepeatMode mode; + + public SetRepeatModeRequestDto() { + } + + public SetRepeatModeRequestDto mode(@javax.annotation.Nullable GroupRepeatMode mode) { + this.mode = mode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return mode + */ + @javax.annotation.Nullable + public GroupRepeatMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupRepeatMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetRepeatModeRequestDto setRepeatModeRequestDto = (SetRepeatModeRequestDto) o; + return Objects.equals(this.mode, setRepeatModeRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetRepeatModeRequestDto {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetRepeatModeRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetRepeatModeRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetRepeatModeRequestDto is not found in the empty JSON string", SetRepeatModeRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetRepeatModeRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetRepeatModeRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupRepeatMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetRepeatModeRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetRepeatModeRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetRepeatModeRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetRepeatModeRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetRepeatModeRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetRepeatModeRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetRepeatModeRequestDto + * @throws IOException if the JSON string is invalid with respect to SetRepeatModeRequestDto + */ + public static SetRepeatModeRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetRepeatModeRequestDto.class); + } + + /** + * Convert an instance of SetRepeatModeRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java new file mode 100644 index 0000000000000..df541b1a6dc09 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.GroupShuffleMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetShuffleModeRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetShuffleModeRequestDto { + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupShuffleMode mode; + + public SetShuffleModeRequestDto() { + } + + public SetShuffleModeRequestDto mode(@javax.annotation.Nullable GroupShuffleMode mode) { + this.mode = mode; + return this; + } + + /** + * Gets or sets the shuffle mode. + * @return mode + */ + @javax.annotation.Nullable + public GroupShuffleMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupShuffleMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetShuffleModeRequestDto setShuffleModeRequestDto = (SetShuffleModeRequestDto) o; + return Objects.equals(this.mode, setShuffleModeRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetShuffleModeRequestDto {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetShuffleModeRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetShuffleModeRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetShuffleModeRequestDto is not found in the empty JSON string", SetShuffleModeRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetShuffleModeRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetShuffleModeRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupShuffleMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetShuffleModeRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetShuffleModeRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetShuffleModeRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetShuffleModeRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetShuffleModeRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetShuffleModeRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetShuffleModeRequestDto + * @throws IOException if the JSON string is invalid with respect to SetShuffleModeRequestDto + */ + public static SetShuffleModeRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetShuffleModeRequestDto.class); + } + + /** + * Convert an instance of SetShuffleModeRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SongInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SongInfo.java new file mode 100644 index 0000000000000..a0bdccd480caa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SongInfo.java @@ -0,0 +1,621 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SongInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SongInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public SongInfo() { + } + + public SongInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SongInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public SongInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public SongInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public SongInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public SongInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public SongInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public SongInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public SongInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SongInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SongInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public SongInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public SongInfo albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public SongInfo addAlbumArtistsItem(String albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Get albumArtists + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public SongInfo album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Get album + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public SongInfo artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public SongInfo addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SongInfo songInfo = (SongInfo) o; + return Objects.equals(this.name, songInfo.name) && + Objects.equals(this.originalTitle, songInfo.originalTitle) && + Objects.equals(this.path, songInfo.path) && + Objects.equals(this.metadataLanguage, songInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, songInfo.metadataCountryCode) && + Objects.equals(this.providerIds, songInfo.providerIds) && + Objects.equals(this.year, songInfo.year) && + Objects.equals(this.indexNumber, songInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, songInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, songInfo.premiereDate) && + Objects.equals(this.isAutomated, songInfo.isAutomated) && + Objects.equals(this.albumArtists, songInfo.albumArtists) && + Objects.equals(this.album, songInfo.album) && + Objects.equals(this.artists, songInfo.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, albumArtists, album, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SongInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("AlbumArtists"); + openapiFields.add("Album"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SongInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SongInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SongInfo is not found in the empty JSON string", SongInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SongInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SongInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull() && !jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SongInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SongInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SongInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SongInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SongInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SongInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SongInfo + * @throws IOException if the JSON string is invalid with respect to SongInfo + */ + public static SongInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SongInfo.class); + } + + /** + * Convert an instance of SongInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SortOrder.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SortOrder.java new file mode 100644 index 0000000000000..eb63e14f6dfff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SortOrder.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the sorting order. + */ +@JsonAdapter(SortOrder.Adapter.class) +public enum SortOrder { + + ASCENDING("Ascending"), + + DESCENDING("Descending"); + + private String value; + + SortOrder(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SortOrder fromValue(String value) { + for (SortOrder b : SortOrder.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SortOrder enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SortOrder read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SortOrder.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SortOrder.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java new file mode 100644 index 0000000000000..9bf56aa136c1f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Special view option dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SpecialViewOptionDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public SpecialViewOptionDto() { + } + + public SpecialViewOptionDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets view option name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SpecialViewOptionDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets view option id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SpecialViewOptionDto specialViewOptionDto = (SpecialViewOptionDto) o; + return Objects.equals(this.name, specialViewOptionDto.name) && + Objects.equals(this.id, specialViewOptionDto.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SpecialViewOptionDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SpecialViewOptionDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SpecialViewOptionDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SpecialViewOptionDto is not found in the empty JSON string", SpecialViewOptionDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SpecialViewOptionDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SpecialViewOptionDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SpecialViewOptionDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SpecialViewOptionDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SpecialViewOptionDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SpecialViewOptionDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SpecialViewOptionDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SpecialViewOptionDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SpecialViewOptionDto + * @throws IOException if the JSON string is invalid with respect to SpecialViewOptionDto + */ + public static SpecialViewOptionDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SpecialViewOptionDto.class); + } + + /** + * Convert an instance of SpecialViewOptionDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java new file mode 100644 index 0000000000000..3cee845a70bfa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java @@ -0,0 +1,278 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The startup configuration DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupConfigurationDto { + public static final String SERIALIZED_NAME_UI_CULTURE = "UICulture"; + @SerializedName(SERIALIZED_NAME_UI_CULTURE) + @javax.annotation.Nullable + private String uiCulture; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public StartupConfigurationDto() { + } + + public StartupConfigurationDto uiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + return this; + } + + /** + * Gets or sets UI language culture. + * @return uiCulture + */ + @javax.annotation.Nullable + public String getUiCulture() { + return uiCulture; + } + + public void setUiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + } + + + public StartupConfigurationDto metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public StartupConfigurationDto preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred language for the metadata. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupConfigurationDto startupConfigurationDto = (StartupConfigurationDto) o; + return Objects.equals(this.uiCulture, startupConfigurationDto.uiCulture) && + Objects.equals(this.metadataCountryCode, startupConfigurationDto.metadataCountryCode) && + Objects.equals(this.preferredMetadataLanguage, startupConfigurationDto.preferredMetadataLanguage); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(uiCulture, metadataCountryCode, preferredMetadataLanguage); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupConfigurationDto {\n"); + sb.append(" uiCulture: ").append(toIndentedString(uiCulture)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UICulture"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("PreferredMetadataLanguage"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupConfigurationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupConfigurationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupConfigurationDto is not found in the empty JSON string", StartupConfigurationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupConfigurationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupConfigurationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UICulture") != null && !jsonObj.get("UICulture").isJsonNull()) && !jsonObj.get("UICulture").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UICulture` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UICulture").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupConfigurationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupConfigurationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupConfigurationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupConfigurationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupConfigurationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupConfigurationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupConfigurationDto + * @throws IOException if the JSON string is invalid with respect to StartupConfigurationDto + */ + public static StartupConfigurationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupConfigurationDto.class); + } + + /** + * Convert an instance of StartupConfigurationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java new file mode 100644 index 0000000000000..c5dea17034adb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java @@ -0,0 +1,239 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Startup remote access dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupRemoteAccessDto { + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nonnull + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_ENABLE_AUTOMATIC_PORT_MAPPING = "EnableAutomaticPortMapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTOMATIC_PORT_MAPPING) + @javax.annotation.Nonnull + private Boolean enableAutomaticPortMapping; + + public StartupRemoteAccessDto() { + } + + public StartupRemoteAccessDto enableRemoteAccess(@javax.annotation.Nonnull Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Gets or sets a value indicating whether enable remote access. + * @return enableRemoteAccess + */ + @javax.annotation.Nonnull + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nonnull Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public StartupRemoteAccessDto enableAutomaticPortMapping(@javax.annotation.Nonnull Boolean enableAutomaticPortMapping) { + this.enableAutomaticPortMapping = enableAutomaticPortMapping; + return this; + } + + /** + * Gets or sets a value indicating whether enable automatic port mapping. + * @return enableAutomaticPortMapping + */ + @javax.annotation.Nonnull + public Boolean getEnableAutomaticPortMapping() { + return enableAutomaticPortMapping; + } + + public void setEnableAutomaticPortMapping(@javax.annotation.Nonnull Boolean enableAutomaticPortMapping) { + this.enableAutomaticPortMapping = enableAutomaticPortMapping; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupRemoteAccessDto startupRemoteAccessDto = (StartupRemoteAccessDto) o; + return Objects.equals(this.enableRemoteAccess, startupRemoteAccessDto.enableRemoteAccess) && + Objects.equals(this.enableAutomaticPortMapping, startupRemoteAccessDto.enableAutomaticPortMapping); + } + + @Override + public int hashCode() { + return Objects.hash(enableRemoteAccess, enableAutomaticPortMapping); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupRemoteAccessDto {\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" enableAutomaticPortMapping: ").append(toIndentedString(enableAutomaticPortMapping)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("EnableAutomaticPortMapping"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EnableRemoteAccess"); + openapiRequiredFields.add("EnableAutomaticPortMapping"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupRemoteAccessDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupRemoteAccessDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupRemoteAccessDto is not found in the empty JSON string", StartupRemoteAccessDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupRemoteAccessDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupRemoteAccessDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StartupRemoteAccessDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupRemoteAccessDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupRemoteAccessDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupRemoteAccessDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupRemoteAccessDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupRemoteAccessDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupRemoteAccessDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupRemoteAccessDto + * @throws IOException if the JSON string is invalid with respect to StartupRemoteAccessDto + */ + public static StartupRemoteAccessDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupRemoteAccessDto.class); + } + + /** + * Convert an instance of StartupRemoteAccessDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupUserDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupUserDto.java new file mode 100644 index 0000000000000..1ac9651a5283e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StartupUserDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The startup user DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupUserDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public StartupUserDto() { + } + + public StartupUserDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the username. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public StartupUserDto password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Gets or sets the user's password. + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupUserDto startupUserDto = (StartupUserDto) o; + return Objects.equals(this.name, startupUserDto.name) && + Objects.equals(this.password, startupUserDto.password); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, password); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupUserDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Password"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupUserDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupUserDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupUserDto is not found in the empty JSON string", StartupUserDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupUserDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupUserDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupUserDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupUserDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupUserDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupUserDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupUserDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupUserDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupUserDto + * @throws IOException if the JSON string is invalid with respect to StartupUserDto + */ + public static StartupUserDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupUserDto.class); + } + + /** + * Convert an instance of StartupUserDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StringGroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StringGroupUpdate.java new file mode 100644 index 0000000000000..d133c26f8655b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/StringGroupUpdate.java @@ -0,0 +1,268 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupUpdateType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StringGroupUpdate { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private GroupUpdateType type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private String data; + + public StringGroupUpdate() { + } + + public StringGroupUpdate( + UUID groupId + ) { + this(); + this.groupId = groupId; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + + + public StringGroupUpdate type(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + return this; + } + + /** + * Gets the update type. + * @return type + */ + @javax.annotation.Nullable + public GroupUpdateType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + } + + + public StringGroupUpdate data(@javax.annotation.Nullable String data) { + this.data = data; + return this; + } + + /** + * Gets the update data. + * @return data + */ + @javax.annotation.Nullable + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nullable String data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StringGroupUpdate stringGroupUpdate = (StringGroupUpdate) o; + return Objects.equals(this.groupId, stringGroupUpdate.groupId) && + Objects.equals(this.type, stringGroupUpdate.type) && + Objects.equals(this.data, stringGroupUpdate.data); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StringGroupUpdate {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StringGroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StringGroupUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StringGroupUpdate is not found in the empty JSON string", StringGroupUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StringGroupUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StringGroupUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + GroupUpdateType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StringGroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StringGroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StringGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StringGroupUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StringGroupUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StringGroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of StringGroupUpdate + * @throws IOException if the JSON string is invalid with respect to StringGroupUpdate + */ + public static StringGroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StringGroupUpdate.class); + } + + /** + * Convert an instance of StringGroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java new file mode 100644 index 0000000000000..695b0b39eadad --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Delivery method to use during playback of a specific subtitle format. + */ +@JsonAdapter(SubtitleDeliveryMethod.Adapter.class) +public enum SubtitleDeliveryMethod { + + ENCODE("Encode"), + + EMBED("Embed"), + + EXTERNAL("External"), + + HLS("Hls"), + + DROP("Drop"); + + private String value; + + SubtitleDeliveryMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubtitleDeliveryMethod fromValue(String value) { + for (SubtitleDeliveryMethod b : SubtitleDeliveryMethod.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubtitleDeliveryMethod enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubtitleDeliveryMethod read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubtitleDeliveryMethod.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubtitleDeliveryMethod.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleOptions.java new file mode 100644 index 0000000000000..7fe756680a3c2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleOptions.java @@ -0,0 +1,451 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SubtitleOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SubtitleOptions { + public static final String SERIALIZED_NAME_SKIP_IF_EMBEDDED_SUBTITLES_PRESENT = "SkipIfEmbeddedSubtitlesPresent"; + @SerializedName(SERIALIZED_NAME_SKIP_IF_EMBEDDED_SUBTITLES_PRESENT) + @javax.annotation.Nullable + private Boolean skipIfEmbeddedSubtitlesPresent; + + public static final String SERIALIZED_NAME_SKIP_IF_AUDIO_TRACK_MATCHES = "SkipIfAudioTrackMatches"; + @SerializedName(SERIALIZED_NAME_SKIP_IF_AUDIO_TRACK_MATCHES) + @javax.annotation.Nullable + private Boolean skipIfAudioTrackMatches; + + public static final String SERIALIZED_NAME_DOWNLOAD_LANGUAGES = "DownloadLanguages"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_LANGUAGES) + @javax.annotation.Nullable + private List downloadLanguages; + + public static final String SERIALIZED_NAME_DOWNLOAD_MOVIE_SUBTITLES = "DownloadMovieSubtitles"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_MOVIE_SUBTITLES) + @javax.annotation.Nullable + private Boolean downloadMovieSubtitles; + + public static final String SERIALIZED_NAME_DOWNLOAD_EPISODE_SUBTITLES = "DownloadEpisodeSubtitles"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_EPISODE_SUBTITLES) + @javax.annotation.Nullable + private Boolean downloadEpisodeSubtitles; + + public static final String SERIALIZED_NAME_OPEN_SUBTITLES_USERNAME = "OpenSubtitlesUsername"; + @SerializedName(SERIALIZED_NAME_OPEN_SUBTITLES_USERNAME) + @javax.annotation.Nullable + private String openSubtitlesUsername; + + public static final String SERIALIZED_NAME_OPEN_SUBTITLES_PASSWORD_HASH = "OpenSubtitlesPasswordHash"; + @SerializedName(SERIALIZED_NAME_OPEN_SUBTITLES_PASSWORD_HASH) + @javax.annotation.Nullable + private String openSubtitlesPasswordHash; + + public static final String SERIALIZED_NAME_IS_OPEN_SUBTITLE_VIP_ACCOUNT = "IsOpenSubtitleVipAccount"; + @SerializedName(SERIALIZED_NAME_IS_OPEN_SUBTITLE_VIP_ACCOUNT) + @javax.annotation.Nullable + private Boolean isOpenSubtitleVipAccount; + + public static final String SERIALIZED_NAME_REQUIRE_PERFECT_MATCH = "RequirePerfectMatch"; + @SerializedName(SERIALIZED_NAME_REQUIRE_PERFECT_MATCH) + @javax.annotation.Nullable + private Boolean requirePerfectMatch; + + public SubtitleOptions() { + } + + public SubtitleOptions skipIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipIfEmbeddedSubtitlesPresent) { + this.skipIfEmbeddedSubtitlesPresent = skipIfEmbeddedSubtitlesPresent; + return this; + } + + /** + * Get skipIfEmbeddedSubtitlesPresent + * @return skipIfEmbeddedSubtitlesPresent + */ + @javax.annotation.Nullable + public Boolean getSkipIfEmbeddedSubtitlesPresent() { + return skipIfEmbeddedSubtitlesPresent; + } + + public void setSkipIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipIfEmbeddedSubtitlesPresent) { + this.skipIfEmbeddedSubtitlesPresent = skipIfEmbeddedSubtitlesPresent; + } + + + public SubtitleOptions skipIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipIfAudioTrackMatches) { + this.skipIfAudioTrackMatches = skipIfAudioTrackMatches; + return this; + } + + /** + * Get skipIfAudioTrackMatches + * @return skipIfAudioTrackMatches + */ + @javax.annotation.Nullable + public Boolean getSkipIfAudioTrackMatches() { + return skipIfAudioTrackMatches; + } + + public void setSkipIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipIfAudioTrackMatches) { + this.skipIfAudioTrackMatches = skipIfAudioTrackMatches; + } + + + public SubtitleOptions downloadLanguages(@javax.annotation.Nullable List downloadLanguages) { + this.downloadLanguages = downloadLanguages; + return this; + } + + public SubtitleOptions addDownloadLanguagesItem(String downloadLanguagesItem) { + if (this.downloadLanguages == null) { + this.downloadLanguages = new ArrayList<>(); + } + this.downloadLanguages.add(downloadLanguagesItem); + return this; + } + + /** + * Get downloadLanguages + * @return downloadLanguages + */ + @javax.annotation.Nullable + public List getDownloadLanguages() { + return downloadLanguages; + } + + public void setDownloadLanguages(@javax.annotation.Nullable List downloadLanguages) { + this.downloadLanguages = downloadLanguages; + } + + + public SubtitleOptions downloadMovieSubtitles(@javax.annotation.Nullable Boolean downloadMovieSubtitles) { + this.downloadMovieSubtitles = downloadMovieSubtitles; + return this; + } + + /** + * Get downloadMovieSubtitles + * @return downloadMovieSubtitles + */ + @javax.annotation.Nullable + public Boolean getDownloadMovieSubtitles() { + return downloadMovieSubtitles; + } + + public void setDownloadMovieSubtitles(@javax.annotation.Nullable Boolean downloadMovieSubtitles) { + this.downloadMovieSubtitles = downloadMovieSubtitles; + } + + + public SubtitleOptions downloadEpisodeSubtitles(@javax.annotation.Nullable Boolean downloadEpisodeSubtitles) { + this.downloadEpisodeSubtitles = downloadEpisodeSubtitles; + return this; + } + + /** + * Get downloadEpisodeSubtitles + * @return downloadEpisodeSubtitles + */ + @javax.annotation.Nullable + public Boolean getDownloadEpisodeSubtitles() { + return downloadEpisodeSubtitles; + } + + public void setDownloadEpisodeSubtitles(@javax.annotation.Nullable Boolean downloadEpisodeSubtitles) { + this.downloadEpisodeSubtitles = downloadEpisodeSubtitles; + } + + + public SubtitleOptions openSubtitlesUsername(@javax.annotation.Nullable String openSubtitlesUsername) { + this.openSubtitlesUsername = openSubtitlesUsername; + return this; + } + + /** + * Get openSubtitlesUsername + * @return openSubtitlesUsername + */ + @javax.annotation.Nullable + public String getOpenSubtitlesUsername() { + return openSubtitlesUsername; + } + + public void setOpenSubtitlesUsername(@javax.annotation.Nullable String openSubtitlesUsername) { + this.openSubtitlesUsername = openSubtitlesUsername; + } + + + public SubtitleOptions openSubtitlesPasswordHash(@javax.annotation.Nullable String openSubtitlesPasswordHash) { + this.openSubtitlesPasswordHash = openSubtitlesPasswordHash; + return this; + } + + /** + * Get openSubtitlesPasswordHash + * @return openSubtitlesPasswordHash + */ + @javax.annotation.Nullable + public String getOpenSubtitlesPasswordHash() { + return openSubtitlesPasswordHash; + } + + public void setOpenSubtitlesPasswordHash(@javax.annotation.Nullable String openSubtitlesPasswordHash) { + this.openSubtitlesPasswordHash = openSubtitlesPasswordHash; + } + + + public SubtitleOptions isOpenSubtitleVipAccount(@javax.annotation.Nullable Boolean isOpenSubtitleVipAccount) { + this.isOpenSubtitleVipAccount = isOpenSubtitleVipAccount; + return this; + } + + /** + * Get isOpenSubtitleVipAccount + * @return isOpenSubtitleVipAccount + */ + @javax.annotation.Nullable + public Boolean getIsOpenSubtitleVipAccount() { + return isOpenSubtitleVipAccount; + } + + public void setIsOpenSubtitleVipAccount(@javax.annotation.Nullable Boolean isOpenSubtitleVipAccount) { + this.isOpenSubtitleVipAccount = isOpenSubtitleVipAccount; + } + + + public SubtitleOptions requirePerfectMatch(@javax.annotation.Nullable Boolean requirePerfectMatch) { + this.requirePerfectMatch = requirePerfectMatch; + return this; + } + + /** + * Get requirePerfectMatch + * @return requirePerfectMatch + */ + @javax.annotation.Nullable + public Boolean getRequirePerfectMatch() { + return requirePerfectMatch; + } + + public void setRequirePerfectMatch(@javax.annotation.Nullable Boolean requirePerfectMatch) { + this.requirePerfectMatch = requirePerfectMatch; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SubtitleOptions subtitleOptions = (SubtitleOptions) o; + return Objects.equals(this.skipIfEmbeddedSubtitlesPresent, subtitleOptions.skipIfEmbeddedSubtitlesPresent) && + Objects.equals(this.skipIfAudioTrackMatches, subtitleOptions.skipIfAudioTrackMatches) && + Objects.equals(this.downloadLanguages, subtitleOptions.downloadLanguages) && + Objects.equals(this.downloadMovieSubtitles, subtitleOptions.downloadMovieSubtitles) && + Objects.equals(this.downloadEpisodeSubtitles, subtitleOptions.downloadEpisodeSubtitles) && + Objects.equals(this.openSubtitlesUsername, subtitleOptions.openSubtitlesUsername) && + Objects.equals(this.openSubtitlesPasswordHash, subtitleOptions.openSubtitlesPasswordHash) && + Objects.equals(this.isOpenSubtitleVipAccount, subtitleOptions.isOpenSubtitleVipAccount) && + Objects.equals(this.requirePerfectMatch, subtitleOptions.requirePerfectMatch); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(skipIfEmbeddedSubtitlesPresent, skipIfAudioTrackMatches, downloadLanguages, downloadMovieSubtitles, downloadEpisodeSubtitles, openSubtitlesUsername, openSubtitlesPasswordHash, isOpenSubtitleVipAccount, requirePerfectMatch); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubtitleOptions {\n"); + sb.append(" skipIfEmbeddedSubtitlesPresent: ").append(toIndentedString(skipIfEmbeddedSubtitlesPresent)).append("\n"); + sb.append(" skipIfAudioTrackMatches: ").append(toIndentedString(skipIfAudioTrackMatches)).append("\n"); + sb.append(" downloadLanguages: ").append(toIndentedString(downloadLanguages)).append("\n"); + sb.append(" downloadMovieSubtitles: ").append(toIndentedString(downloadMovieSubtitles)).append("\n"); + sb.append(" downloadEpisodeSubtitles: ").append(toIndentedString(downloadEpisodeSubtitles)).append("\n"); + sb.append(" openSubtitlesUsername: ").append(toIndentedString(openSubtitlesUsername)).append("\n"); + sb.append(" openSubtitlesPasswordHash: ").append(toIndentedString(openSubtitlesPasswordHash)).append("\n"); + sb.append(" isOpenSubtitleVipAccount: ").append(toIndentedString(isOpenSubtitleVipAccount)).append("\n"); + sb.append(" requirePerfectMatch: ").append(toIndentedString(requirePerfectMatch)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SkipIfEmbeddedSubtitlesPresent"); + openapiFields.add("SkipIfAudioTrackMatches"); + openapiFields.add("DownloadLanguages"); + openapiFields.add("DownloadMovieSubtitles"); + openapiFields.add("DownloadEpisodeSubtitles"); + openapiFields.add("OpenSubtitlesUsername"); + openapiFields.add("OpenSubtitlesPasswordHash"); + openapiFields.add("IsOpenSubtitleVipAccount"); + openapiFields.add("RequirePerfectMatch"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SubtitleOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SubtitleOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SubtitleOptions is not found in the empty JSON string", SubtitleOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SubtitleOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SubtitleOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("DownloadLanguages") != null && !jsonObj.get("DownloadLanguages").isJsonNull() && !jsonObj.get("DownloadLanguages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DownloadLanguages` to be an array in the JSON string but got `%s`", jsonObj.get("DownloadLanguages").toString())); + } + if ((jsonObj.get("OpenSubtitlesUsername") != null && !jsonObj.get("OpenSubtitlesUsername").isJsonNull()) && !jsonObj.get("OpenSubtitlesUsername").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenSubtitlesUsername` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenSubtitlesUsername").toString())); + } + if ((jsonObj.get("OpenSubtitlesPasswordHash") != null && !jsonObj.get("OpenSubtitlesPasswordHash").isJsonNull()) && !jsonObj.get("OpenSubtitlesPasswordHash").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenSubtitlesPasswordHash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenSubtitlesPasswordHash").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SubtitleOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SubtitleOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SubtitleOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SubtitleOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SubtitleOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SubtitleOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of SubtitleOptions + * @throws IOException if the JSON string is invalid with respect to SubtitleOptions + */ + public static SubtitleOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SubtitleOptions.class); + } + + /** + * Convert an instance of SubtitleOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java new file mode 100644 index 0000000000000..a4054c665837b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing a subtitle playback mode. + */ +@JsonAdapter(SubtitlePlaybackMode.Adapter.class) +public enum SubtitlePlaybackMode { + + DEFAULT("Default"), + + ALWAYS("Always"), + + ONLY_FORCED("OnlyForced"), + + NONE("None"), + + SMART("Smart"); + + private String value; + + SubtitlePlaybackMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubtitlePlaybackMode fromValue(String value) { + for (SubtitlePlaybackMode b : SubtitlePlaybackMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubtitlePlaybackMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubtitlePlaybackMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubtitlePlaybackMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubtitlePlaybackMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleProfile.java new file mode 100644 index 0000000000000..d5e92ac6def48 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SubtitleProfile.java @@ -0,0 +1,340 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A class for subtitle profile information. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SubtitleProfile { + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable + private String format; + + public static final String SERIALIZED_NAME_METHOD = "Method"; + @SerializedName(SERIALIZED_NAME_METHOD) + @javax.annotation.Nullable + private SubtitleDeliveryMethod method; + + public static final String SERIALIZED_NAME_DIDL_MODE = "DidlMode"; + @SerializedName(SERIALIZED_NAME_DIDL_MODE) + @javax.annotation.Nullable + private String didlMode; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public SubtitleProfile() { + } + + public SubtitleProfile format(@javax.annotation.Nullable String format) { + this.format = format; + return this; + } + + /** + * Gets or sets the format. + * @return format + */ + @javax.annotation.Nullable + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nullable String format) { + this.format = format; + } + + + public SubtitleProfile method(@javax.annotation.Nullable SubtitleDeliveryMethod method) { + this.method = method; + return this; + } + + /** + * Gets or sets the delivery method. + * @return method + */ + @javax.annotation.Nullable + public SubtitleDeliveryMethod getMethod() { + return method; + } + + public void setMethod(@javax.annotation.Nullable SubtitleDeliveryMethod method) { + this.method = method; + } + + + public SubtitleProfile didlMode(@javax.annotation.Nullable String didlMode) { + this.didlMode = didlMode; + return this; + } + + /** + * Gets or sets the DIDL mode. + * @return didlMode + */ + @javax.annotation.Nullable + public String getDidlMode() { + return didlMode; + } + + public void setDidlMode(@javax.annotation.Nullable String didlMode) { + this.didlMode = didlMode; + } + + + public SubtitleProfile language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the language. + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public SubtitleProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the container. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SubtitleProfile subtitleProfile = (SubtitleProfile) o; + return Objects.equals(this.format, subtitleProfile.format) && + Objects.equals(this.method, subtitleProfile.method) && + Objects.equals(this.didlMode, subtitleProfile.didlMode) && + Objects.equals(this.language, subtitleProfile.language) && + Objects.equals(this.container, subtitleProfile.container); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(format, method, didlMode, language, container); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubtitleProfile {\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" method: ").append(toIndentedString(method)).append("\n"); + sb.append(" didlMode: ").append(toIndentedString(didlMode)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Format"); + openapiFields.add("Method"); + openapiFields.add("DidlMode"); + openapiFields.add("Language"); + openapiFields.add("Container"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SubtitleProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SubtitleProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SubtitleProfile is not found in the empty JSON string", SubtitleProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SubtitleProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SubtitleProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) && !jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + // validate the optional field `Method` + if (jsonObj.get("Method") != null && !jsonObj.get("Method").isJsonNull()) { + SubtitleDeliveryMethod.validateJsonElement(jsonObj.get("Method")); + } + if ((jsonObj.get("DidlMode") != null && !jsonObj.get("DidlMode").isJsonNull()) && !jsonObj.get("DidlMode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DidlMode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DidlMode").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SubtitleProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SubtitleProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SubtitleProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SubtitleProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SubtitleProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SubtitleProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of SubtitleProfile + * @throws IOException if the JSON string is invalid with respect to SubtitleProfile + */ + public static SubtitleProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SubtitleProfile.class); + } + + /** + * Convert an instance of SubtitleProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayCommandMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayCommandMessage.java new file mode 100644 index 0000000000000..4e2fdf2a3964c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayCommandMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SendCommand; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Sync play command. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SyncPlayCommandMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private SendCommand data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SYNC_PLAY_COMMAND; + + public SyncPlayCommandMessage() { + } + + public SyncPlayCommandMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SyncPlayCommandMessage data(@javax.annotation.Nullable SendCommand data) { + this.data = data; + return this; + } + + /** + * Class SendCommand. + * @return data + */ + @javax.annotation.Nullable + public SendCommand getData() { + return data; + } + + public void setData(@javax.annotation.Nullable SendCommand data) { + this.data = data; + } + + + public SyncPlayCommandMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SyncPlayCommandMessage syncPlayCommandMessage = (SyncPlayCommandMessage) o; + return Objects.equals(this.data, syncPlayCommandMessage.data) && + Objects.equals(this.messageId, syncPlayCommandMessage.messageId) && + Objects.equals(this.messageType, syncPlayCommandMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SyncPlayCommandMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SyncPlayCommandMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SyncPlayCommandMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SyncPlayCommandMessage is not found in the empty JSON string", SyncPlayCommandMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SyncPlayCommandMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SyncPlayCommandMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + SendCommand.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SyncPlayCommandMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SyncPlayCommandMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SyncPlayCommandMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SyncPlayCommandMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SyncPlayCommandMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SyncPlayCommandMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SyncPlayCommandMessage + * @throws IOException if the JSON string is invalid with respect to SyncPlayCommandMessage + */ + public static SyncPlayCommandMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SyncPlayCommandMessage.class); + } + + /** + * Convert an instance of SyncPlayCommandMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayGroupUpdateCommandMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayGroupUpdateCommandMessage.java new file mode 100644 index 0000000000000..dd40d3c7cad76 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayGroupUpdateCommandMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupUpdate; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Untyped sync play command. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SyncPlayGroupUpdateCommandMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private GroupUpdate data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.SYNC_PLAY_GROUP_UPDATE; + + public SyncPlayGroupUpdateCommandMessage() { + } + + public SyncPlayGroupUpdateCommandMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public SyncPlayGroupUpdateCommandMessage data(@javax.annotation.Nullable GroupUpdate data) { + this.data = data; + return this; + } + + /** + * Group update without data. + * @return data + */ + @javax.annotation.Nullable + public GroupUpdate getData() { + return data; + } + + public void setData(@javax.annotation.Nullable GroupUpdate data) { + this.data = data; + } + + + public SyncPlayGroupUpdateCommandMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SyncPlayGroupUpdateCommandMessage syncPlayGroupUpdateCommandMessage = (SyncPlayGroupUpdateCommandMessage) o; + return Objects.equals(this.data, syncPlayGroupUpdateCommandMessage.data) && + Objects.equals(this.messageId, syncPlayGroupUpdateCommandMessage.messageId) && + Objects.equals(this.messageType, syncPlayGroupUpdateCommandMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SyncPlayGroupUpdateCommandMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SyncPlayGroupUpdateCommandMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SyncPlayGroupUpdateCommandMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SyncPlayGroupUpdateCommandMessage is not found in the empty JSON string", SyncPlayGroupUpdateCommandMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SyncPlayGroupUpdateCommandMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SyncPlayGroupUpdateCommandMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + GroupUpdate.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SyncPlayGroupUpdateCommandMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SyncPlayGroupUpdateCommandMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SyncPlayGroupUpdateCommandMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SyncPlayGroupUpdateCommandMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SyncPlayGroupUpdateCommandMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SyncPlayGroupUpdateCommandMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of SyncPlayGroupUpdateCommandMessage + * @throws IOException if the JSON string is invalid with respect to SyncPlayGroupUpdateCommandMessage + */ + public static SyncPlayGroupUpdateCommandMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SyncPlayGroupUpdateCommandMessage.class); + } + + /** + * Convert an instance of SyncPlayGroupUpdateCommandMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayQueueItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayQueueItem.java new file mode 100644 index 0000000000000..120a60f2085e7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayQueueItem.java @@ -0,0 +1,236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class QueueItem. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SyncPlayQueueItem { + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public SyncPlayQueueItem() { + } + + public SyncPlayQueueItem( + UUID playlistItemId + ) { + this(); + this.playlistItemId = playlistItemId; + } + + public SyncPlayQueueItem itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + /** + * Gets the playlist identifier of the item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SyncPlayQueueItem syncPlayQueueItem = (SyncPlayQueueItem) o; + return Objects.equals(this.itemId, syncPlayQueueItem.itemId) && + Objects.equals(this.playlistItemId, syncPlayQueueItem.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(itemId, playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SyncPlayQueueItem {\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemId"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SyncPlayQueueItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SyncPlayQueueItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SyncPlayQueueItem is not found in the empty JSON string", SyncPlayQueueItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SyncPlayQueueItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SyncPlayQueueItem` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SyncPlayQueueItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SyncPlayQueueItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SyncPlayQueueItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SyncPlayQueueItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SyncPlayQueueItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SyncPlayQueueItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of SyncPlayQueueItem + * @throws IOException if the JSON string is invalid with respect to SyncPlayQueueItem + */ + public static SyncPlayQueueItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SyncPlayQueueItem.class); + } + + /** + * Convert an instance of SyncPlayQueueItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java new file mode 100644 index 0000000000000..01208d3d3d695 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum SyncPlayUserAccessType. + */ +@JsonAdapter(SyncPlayUserAccessType.Adapter.class) +public enum SyncPlayUserAccessType { + + CREATE_AND_JOIN_GROUPS("CreateAndJoinGroups"), + + JOIN_GROUPS("JoinGroups"), + + NONE("None"); + + private String value; + + SyncPlayUserAccessType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SyncPlayUserAccessType fromValue(String value) { + for (SyncPlayUserAccessType b : SyncPlayUserAccessType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SyncPlayUserAccessType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SyncPlayUserAccessType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SyncPlayUserAccessType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SyncPlayUserAccessType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SystemInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SystemInfo.java new file mode 100644 index 0000000000000..292d12dac1603 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/SystemInfo.java @@ -0,0 +1,1051 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CastReceiverApplication; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SystemInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SystemInfo { + public static final String SERIALIZED_NAME_LOCAL_ADDRESS = "LocalAddress"; + @SerializedName(SERIALIZED_NAME_LOCAL_ADDRESS) + @javax.annotation.Nullable + private String localAddress; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_PRODUCT_NAME = "ProductName"; + @SerializedName(SERIALIZED_NAME_PRODUCT_NAME) + @javax.annotation.Nullable + private String productName; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM = "OperatingSystem"; + @Deprecated + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM) + @javax.annotation.Nullable + private String operatingSystem; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED = "StartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean startupWizardCompleted; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM_DISPLAY_NAME = "OperatingSystemDisplayName"; + @Deprecated + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM_DISPLAY_NAME) + @javax.annotation.Nullable + private String operatingSystemDisplayName; + + public static final String SERIALIZED_NAME_PACKAGE_NAME = "PackageName"; + @SerializedName(SERIALIZED_NAME_PACKAGE_NAME) + @javax.annotation.Nullable + private String packageName; + + public static final String SERIALIZED_NAME_HAS_PENDING_RESTART = "HasPendingRestart"; + @SerializedName(SERIALIZED_NAME_HAS_PENDING_RESTART) + @javax.annotation.Nullable + private Boolean hasPendingRestart; + + public static final String SERIALIZED_NAME_IS_SHUTTING_DOWN = "IsShuttingDown"; + @SerializedName(SERIALIZED_NAME_IS_SHUTTING_DOWN) + @javax.annotation.Nullable + private Boolean isShuttingDown; + + public static final String SERIALIZED_NAME_SUPPORTS_LIBRARY_MONITOR = "SupportsLibraryMonitor"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_LIBRARY_MONITOR) + @javax.annotation.Nullable + private Boolean supportsLibraryMonitor; + + public static final String SERIALIZED_NAME_WEB_SOCKET_PORT_NUMBER = "WebSocketPortNumber"; + @SerializedName(SERIALIZED_NAME_WEB_SOCKET_PORT_NUMBER) + @javax.annotation.Nullable + private Integer webSocketPortNumber; + + public static final String SERIALIZED_NAME_COMPLETED_INSTALLATIONS = "CompletedInstallations"; + @SerializedName(SERIALIZED_NAME_COMPLETED_INSTALLATIONS) + @javax.annotation.Nullable + private List completedInstallations; + + public static final String SERIALIZED_NAME_CAN_SELF_RESTART = "CanSelfRestart"; + @Deprecated + @SerializedName(SERIALIZED_NAME_CAN_SELF_RESTART) + @javax.annotation.Nullable + private Boolean canSelfRestart = true; + + public static final String SERIALIZED_NAME_CAN_LAUNCH_WEB_BROWSER = "CanLaunchWebBrowser"; + @Deprecated + @SerializedName(SERIALIZED_NAME_CAN_LAUNCH_WEB_BROWSER) + @javax.annotation.Nullable + private Boolean canLaunchWebBrowser = false; + + public static final String SERIALIZED_NAME_PROGRAM_DATA_PATH = "ProgramDataPath"; + @SerializedName(SERIALIZED_NAME_PROGRAM_DATA_PATH) + @javax.annotation.Nullable + private String programDataPath; + + public static final String SERIALIZED_NAME_WEB_PATH = "WebPath"; + @SerializedName(SERIALIZED_NAME_WEB_PATH) + @javax.annotation.Nullable + private String webPath; + + public static final String SERIALIZED_NAME_ITEMS_BY_NAME_PATH = "ItemsByNamePath"; + @SerializedName(SERIALIZED_NAME_ITEMS_BY_NAME_PATH) + @javax.annotation.Nullable + private String itemsByNamePath; + + public static final String SERIALIZED_NAME_CACHE_PATH = "CachePath"; + @SerializedName(SERIALIZED_NAME_CACHE_PATH) + @javax.annotation.Nullable + private String cachePath; + + public static final String SERIALIZED_NAME_LOG_PATH = "LogPath"; + @SerializedName(SERIALIZED_NAME_LOG_PATH) + @javax.annotation.Nullable + private String logPath; + + public static final String SERIALIZED_NAME_INTERNAL_METADATA_PATH = "InternalMetadataPath"; + @SerializedName(SERIALIZED_NAME_INTERNAL_METADATA_PATH) + @javax.annotation.Nullable + private String internalMetadataPath; + + public static final String SERIALIZED_NAME_TRANSCODING_TEMP_PATH = "TranscodingTempPath"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_TEMP_PATH) + @javax.annotation.Nullable + private String transcodingTempPath; + + public static final String SERIALIZED_NAME_CAST_RECEIVER_APPLICATIONS = "CastReceiverApplications"; + @SerializedName(SERIALIZED_NAME_CAST_RECEIVER_APPLICATIONS) + @javax.annotation.Nullable + private List castReceiverApplications; + + public static final String SERIALIZED_NAME_HAS_UPDATE_AVAILABLE = "HasUpdateAvailable"; + @Deprecated + @SerializedName(SERIALIZED_NAME_HAS_UPDATE_AVAILABLE) + @javax.annotation.Nullable + private Boolean hasUpdateAvailable = false; + + public static final String SERIALIZED_NAME_ENCODER_LOCATION = "EncoderLocation"; + @Deprecated + @SerializedName(SERIALIZED_NAME_ENCODER_LOCATION) + @javax.annotation.Nullable + private String encoderLocation = "System"; + + public static final String SERIALIZED_NAME_SYSTEM_ARCHITECTURE = "SystemArchitecture"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SYSTEM_ARCHITECTURE) + @javax.annotation.Nullable + private String systemArchitecture = "X64"; + + public SystemInfo() { + } + + public SystemInfo localAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + return this; + } + + /** + * Gets or sets the local address. + * @return localAddress + */ + @javax.annotation.Nullable + public String getLocalAddress() { + return localAddress; + } + + public void setLocalAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + } + + + public SystemInfo serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public SystemInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the server version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public SystemInfo productName(@javax.annotation.Nullable String productName) { + this.productName = productName; + return this; + } + + /** + * Gets or sets the product name. This is the AssemblyProduct name. + * @return productName + */ + @javax.annotation.Nullable + public String getProductName() { + return productName; + } + + public void setProductName(@javax.annotation.Nullable String productName) { + this.productName = productName; + } + + + @Deprecated + public SystemInfo operatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + return this; + } + + /** + * Gets or sets the operating system. + * @return operatingSystem + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getOperatingSystem() { + return operatingSystem; + } + + @Deprecated + public void setOperatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + } + + + public SystemInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SystemInfo startupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether the startup wizard is completed. + * @return startupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getStartupWizardCompleted() { + return startupWizardCompleted; + } + + public void setStartupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + } + + + @Deprecated + public SystemInfo operatingSystemDisplayName(@javax.annotation.Nullable String operatingSystemDisplayName) { + this.operatingSystemDisplayName = operatingSystemDisplayName; + return this; + } + + /** + * Gets or sets the display name of the operating system. + * @return operatingSystemDisplayName + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getOperatingSystemDisplayName() { + return operatingSystemDisplayName; + } + + @Deprecated + public void setOperatingSystemDisplayName(@javax.annotation.Nullable String operatingSystemDisplayName) { + this.operatingSystemDisplayName = operatingSystemDisplayName; + } + + + public SystemInfo packageName(@javax.annotation.Nullable String packageName) { + this.packageName = packageName; + return this; + } + + /** + * Gets or sets the package name. + * @return packageName + */ + @javax.annotation.Nullable + public String getPackageName() { + return packageName; + } + + public void setPackageName(@javax.annotation.Nullable String packageName) { + this.packageName = packageName; + } + + + public SystemInfo hasPendingRestart(@javax.annotation.Nullable Boolean hasPendingRestart) { + this.hasPendingRestart = hasPendingRestart; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has pending restart. + * @return hasPendingRestart + */ + @javax.annotation.Nullable + public Boolean getHasPendingRestart() { + return hasPendingRestart; + } + + public void setHasPendingRestart(@javax.annotation.Nullable Boolean hasPendingRestart) { + this.hasPendingRestart = hasPendingRestart; + } + + + public SystemInfo isShuttingDown(@javax.annotation.Nullable Boolean isShuttingDown) { + this.isShuttingDown = isShuttingDown; + return this; + } + + /** + * Get isShuttingDown + * @return isShuttingDown + */ + @javax.annotation.Nullable + public Boolean getIsShuttingDown() { + return isShuttingDown; + } + + public void setIsShuttingDown(@javax.annotation.Nullable Boolean isShuttingDown) { + this.isShuttingDown = isShuttingDown; + } + + + public SystemInfo supportsLibraryMonitor(@javax.annotation.Nullable Boolean supportsLibraryMonitor) { + this.supportsLibraryMonitor = supportsLibraryMonitor; + return this; + } + + /** + * Gets or sets a value indicating whether [supports library monitor]. + * @return supportsLibraryMonitor + */ + @javax.annotation.Nullable + public Boolean getSupportsLibraryMonitor() { + return supportsLibraryMonitor; + } + + public void setSupportsLibraryMonitor(@javax.annotation.Nullable Boolean supportsLibraryMonitor) { + this.supportsLibraryMonitor = supportsLibraryMonitor; + } + + + public SystemInfo webSocketPortNumber(@javax.annotation.Nullable Integer webSocketPortNumber) { + this.webSocketPortNumber = webSocketPortNumber; + return this; + } + + /** + * Gets or sets the web socket port number. + * @return webSocketPortNumber + */ + @javax.annotation.Nullable + public Integer getWebSocketPortNumber() { + return webSocketPortNumber; + } + + public void setWebSocketPortNumber(@javax.annotation.Nullable Integer webSocketPortNumber) { + this.webSocketPortNumber = webSocketPortNumber; + } + + + public SystemInfo completedInstallations(@javax.annotation.Nullable List completedInstallations) { + this.completedInstallations = completedInstallations; + return this; + } + + public SystemInfo addCompletedInstallationsItem(InstallationInfo completedInstallationsItem) { + if (this.completedInstallations == null) { + this.completedInstallations = new ArrayList<>(); + } + this.completedInstallations.add(completedInstallationsItem); + return this; + } + + /** + * Gets or sets the completed installations. + * @return completedInstallations + */ + @javax.annotation.Nullable + public List getCompletedInstallations() { + return completedInstallations; + } + + public void setCompletedInstallations(@javax.annotation.Nullable List completedInstallations) { + this.completedInstallations = completedInstallations; + } + + + @Deprecated + public SystemInfo canSelfRestart(@javax.annotation.Nullable Boolean canSelfRestart) { + this.canSelfRestart = canSelfRestart; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can self restart. + * @return canSelfRestart + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getCanSelfRestart() { + return canSelfRestart; + } + + @Deprecated + public void setCanSelfRestart(@javax.annotation.Nullable Boolean canSelfRestart) { + this.canSelfRestart = canSelfRestart; + } + + + @Deprecated + public SystemInfo canLaunchWebBrowser(@javax.annotation.Nullable Boolean canLaunchWebBrowser) { + this.canLaunchWebBrowser = canLaunchWebBrowser; + return this; + } + + /** + * Get canLaunchWebBrowser + * @return canLaunchWebBrowser + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getCanLaunchWebBrowser() { + return canLaunchWebBrowser; + } + + @Deprecated + public void setCanLaunchWebBrowser(@javax.annotation.Nullable Boolean canLaunchWebBrowser) { + this.canLaunchWebBrowser = canLaunchWebBrowser; + } + + + public SystemInfo programDataPath(@javax.annotation.Nullable String programDataPath) { + this.programDataPath = programDataPath; + return this; + } + + /** + * Gets or sets the program data path. + * @return programDataPath + */ + @javax.annotation.Nullable + public String getProgramDataPath() { + return programDataPath; + } + + public void setProgramDataPath(@javax.annotation.Nullable String programDataPath) { + this.programDataPath = programDataPath; + } + + + public SystemInfo webPath(@javax.annotation.Nullable String webPath) { + this.webPath = webPath; + return this; + } + + /** + * Gets or sets the web UI resources path. + * @return webPath + */ + @javax.annotation.Nullable + public String getWebPath() { + return webPath; + } + + public void setWebPath(@javax.annotation.Nullable String webPath) { + this.webPath = webPath; + } + + + public SystemInfo itemsByNamePath(@javax.annotation.Nullable String itemsByNamePath) { + this.itemsByNamePath = itemsByNamePath; + return this; + } + + /** + * Gets or sets the items by name path. + * @return itemsByNamePath + */ + @javax.annotation.Nullable + public String getItemsByNamePath() { + return itemsByNamePath; + } + + public void setItemsByNamePath(@javax.annotation.Nullable String itemsByNamePath) { + this.itemsByNamePath = itemsByNamePath; + } + + + public SystemInfo cachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + return this; + } + + /** + * Gets or sets the cache path. + * @return cachePath + */ + @javax.annotation.Nullable + public String getCachePath() { + return cachePath; + } + + public void setCachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + } + + + public SystemInfo logPath(@javax.annotation.Nullable String logPath) { + this.logPath = logPath; + return this; + } + + /** + * Gets or sets the log path. + * @return logPath + */ + @javax.annotation.Nullable + public String getLogPath() { + return logPath; + } + + public void setLogPath(@javax.annotation.Nullable String logPath) { + this.logPath = logPath; + } + + + public SystemInfo internalMetadataPath(@javax.annotation.Nullable String internalMetadataPath) { + this.internalMetadataPath = internalMetadataPath; + return this; + } + + /** + * Gets or sets the internal metadata path. + * @return internalMetadataPath + */ + @javax.annotation.Nullable + public String getInternalMetadataPath() { + return internalMetadataPath; + } + + public void setInternalMetadataPath(@javax.annotation.Nullable String internalMetadataPath) { + this.internalMetadataPath = internalMetadataPath; + } + + + public SystemInfo transcodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + return this; + } + + /** + * Gets or sets the transcode path. + * @return transcodingTempPath + */ + @javax.annotation.Nullable + public String getTranscodingTempPath() { + return transcodingTempPath; + } + + public void setTranscodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + } + + + public SystemInfo castReceiverApplications(@javax.annotation.Nullable List castReceiverApplications) { + this.castReceiverApplications = castReceiverApplications; + return this; + } + + public SystemInfo addCastReceiverApplicationsItem(CastReceiverApplication castReceiverApplicationsItem) { + if (this.castReceiverApplications == null) { + this.castReceiverApplications = new ArrayList<>(); + } + this.castReceiverApplications.add(castReceiverApplicationsItem); + return this; + } + + /** + * Gets or sets the list of cast receiver applications. + * @return castReceiverApplications + */ + @javax.annotation.Nullable + public List getCastReceiverApplications() { + return castReceiverApplications; + } + + public void setCastReceiverApplications(@javax.annotation.Nullable List castReceiverApplications) { + this.castReceiverApplications = castReceiverApplications; + } + + + @Deprecated + public SystemInfo hasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has update available. + * @return hasUpdateAvailable + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getHasUpdateAvailable() { + return hasUpdateAvailable; + } + + @Deprecated + public void setHasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + } + + + @Deprecated + public SystemInfo encoderLocation(@javax.annotation.Nullable String encoderLocation) { + this.encoderLocation = encoderLocation; + return this; + } + + /** + * Get encoderLocation + * @return encoderLocation + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getEncoderLocation() { + return encoderLocation; + } + + @Deprecated + public void setEncoderLocation(@javax.annotation.Nullable String encoderLocation) { + this.encoderLocation = encoderLocation; + } + + + @Deprecated + public SystemInfo systemArchitecture(@javax.annotation.Nullable String systemArchitecture) { + this.systemArchitecture = systemArchitecture; + return this; + } + + /** + * Get systemArchitecture + * @return systemArchitecture + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getSystemArchitecture() { + return systemArchitecture; + } + + @Deprecated + public void setSystemArchitecture(@javax.annotation.Nullable String systemArchitecture) { + this.systemArchitecture = systemArchitecture; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SystemInfo systemInfo = (SystemInfo) o; + return Objects.equals(this.localAddress, systemInfo.localAddress) && + Objects.equals(this.serverName, systemInfo.serverName) && + Objects.equals(this.version, systemInfo.version) && + Objects.equals(this.productName, systemInfo.productName) && + Objects.equals(this.operatingSystem, systemInfo.operatingSystem) && + Objects.equals(this.id, systemInfo.id) && + Objects.equals(this.startupWizardCompleted, systemInfo.startupWizardCompleted) && + Objects.equals(this.operatingSystemDisplayName, systemInfo.operatingSystemDisplayName) && + Objects.equals(this.packageName, systemInfo.packageName) && + Objects.equals(this.hasPendingRestart, systemInfo.hasPendingRestart) && + Objects.equals(this.isShuttingDown, systemInfo.isShuttingDown) && + Objects.equals(this.supportsLibraryMonitor, systemInfo.supportsLibraryMonitor) && + Objects.equals(this.webSocketPortNumber, systemInfo.webSocketPortNumber) && + Objects.equals(this.completedInstallations, systemInfo.completedInstallations) && + Objects.equals(this.canSelfRestart, systemInfo.canSelfRestart) && + Objects.equals(this.canLaunchWebBrowser, systemInfo.canLaunchWebBrowser) && + Objects.equals(this.programDataPath, systemInfo.programDataPath) && + Objects.equals(this.webPath, systemInfo.webPath) && + Objects.equals(this.itemsByNamePath, systemInfo.itemsByNamePath) && + Objects.equals(this.cachePath, systemInfo.cachePath) && + Objects.equals(this.logPath, systemInfo.logPath) && + Objects.equals(this.internalMetadataPath, systemInfo.internalMetadataPath) && + Objects.equals(this.transcodingTempPath, systemInfo.transcodingTempPath) && + Objects.equals(this.castReceiverApplications, systemInfo.castReceiverApplications) && + Objects.equals(this.hasUpdateAvailable, systemInfo.hasUpdateAvailable) && + Objects.equals(this.encoderLocation, systemInfo.encoderLocation) && + Objects.equals(this.systemArchitecture, systemInfo.systemArchitecture); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(localAddress, serverName, version, productName, operatingSystem, id, startupWizardCompleted, operatingSystemDisplayName, packageName, hasPendingRestart, isShuttingDown, supportsLibraryMonitor, webSocketPortNumber, completedInstallations, canSelfRestart, canLaunchWebBrowser, programDataPath, webPath, itemsByNamePath, cachePath, logPath, internalMetadataPath, transcodingTempPath, castReceiverApplications, hasUpdateAvailable, encoderLocation, systemArchitecture); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SystemInfo {\n"); + sb.append(" localAddress: ").append(toIndentedString(localAddress)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productName: ").append(toIndentedString(productName)).append("\n"); + sb.append(" operatingSystem: ").append(toIndentedString(operatingSystem)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" startupWizardCompleted: ").append(toIndentedString(startupWizardCompleted)).append("\n"); + sb.append(" operatingSystemDisplayName: ").append(toIndentedString(operatingSystemDisplayName)).append("\n"); + sb.append(" packageName: ").append(toIndentedString(packageName)).append("\n"); + sb.append(" hasPendingRestart: ").append(toIndentedString(hasPendingRestart)).append("\n"); + sb.append(" isShuttingDown: ").append(toIndentedString(isShuttingDown)).append("\n"); + sb.append(" supportsLibraryMonitor: ").append(toIndentedString(supportsLibraryMonitor)).append("\n"); + sb.append(" webSocketPortNumber: ").append(toIndentedString(webSocketPortNumber)).append("\n"); + sb.append(" completedInstallations: ").append(toIndentedString(completedInstallations)).append("\n"); + sb.append(" canSelfRestart: ").append(toIndentedString(canSelfRestart)).append("\n"); + sb.append(" canLaunchWebBrowser: ").append(toIndentedString(canLaunchWebBrowser)).append("\n"); + sb.append(" programDataPath: ").append(toIndentedString(programDataPath)).append("\n"); + sb.append(" webPath: ").append(toIndentedString(webPath)).append("\n"); + sb.append(" itemsByNamePath: ").append(toIndentedString(itemsByNamePath)).append("\n"); + sb.append(" cachePath: ").append(toIndentedString(cachePath)).append("\n"); + sb.append(" logPath: ").append(toIndentedString(logPath)).append("\n"); + sb.append(" internalMetadataPath: ").append(toIndentedString(internalMetadataPath)).append("\n"); + sb.append(" transcodingTempPath: ").append(toIndentedString(transcodingTempPath)).append("\n"); + sb.append(" castReceiverApplications: ").append(toIndentedString(castReceiverApplications)).append("\n"); + sb.append(" hasUpdateAvailable: ").append(toIndentedString(hasUpdateAvailable)).append("\n"); + sb.append(" encoderLocation: ").append(toIndentedString(encoderLocation)).append("\n"); + sb.append(" systemArchitecture: ").append(toIndentedString(systemArchitecture)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LocalAddress"); + openapiFields.add("ServerName"); + openapiFields.add("Version"); + openapiFields.add("ProductName"); + openapiFields.add("OperatingSystem"); + openapiFields.add("Id"); + openapiFields.add("StartupWizardCompleted"); + openapiFields.add("OperatingSystemDisplayName"); + openapiFields.add("PackageName"); + openapiFields.add("HasPendingRestart"); + openapiFields.add("IsShuttingDown"); + openapiFields.add("SupportsLibraryMonitor"); + openapiFields.add("WebSocketPortNumber"); + openapiFields.add("CompletedInstallations"); + openapiFields.add("CanSelfRestart"); + openapiFields.add("CanLaunchWebBrowser"); + openapiFields.add("ProgramDataPath"); + openapiFields.add("WebPath"); + openapiFields.add("ItemsByNamePath"); + openapiFields.add("CachePath"); + openapiFields.add("LogPath"); + openapiFields.add("InternalMetadataPath"); + openapiFields.add("TranscodingTempPath"); + openapiFields.add("CastReceiverApplications"); + openapiFields.add("HasUpdateAvailable"); + openapiFields.add("EncoderLocation"); + openapiFields.add("SystemArchitecture"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SystemInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SystemInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SystemInfo is not found in the empty JSON string", SystemInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SystemInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SystemInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LocalAddress") != null && !jsonObj.get("LocalAddress").isJsonNull()) && !jsonObj.get("LocalAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalAddress").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ProductName") != null && !jsonObj.get("ProductName").isJsonNull()) && !jsonObj.get("ProductName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProductName").toString())); + } + if ((jsonObj.get("OperatingSystem") != null && !jsonObj.get("OperatingSystem").isJsonNull()) && !jsonObj.get("OperatingSystem").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystem` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystem").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("OperatingSystemDisplayName") != null && !jsonObj.get("OperatingSystemDisplayName").isJsonNull()) && !jsonObj.get("OperatingSystemDisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystemDisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystemDisplayName").toString())); + } + if ((jsonObj.get("PackageName") != null && !jsonObj.get("PackageName").isJsonNull()) && !jsonObj.get("PackageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PackageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PackageName").toString())); + } + if (jsonObj.get("CompletedInstallations") != null && !jsonObj.get("CompletedInstallations").isJsonNull()) { + JsonArray jsonArraycompletedInstallations = jsonObj.getAsJsonArray("CompletedInstallations"); + if (jsonArraycompletedInstallations != null) { + // ensure the json data is an array + if (!jsonObj.get("CompletedInstallations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CompletedInstallations` to be an array in the JSON string but got `%s`", jsonObj.get("CompletedInstallations").toString())); + } + + // validate the optional field `CompletedInstallations` (array) + for (int i = 0; i < jsonArraycompletedInstallations.size(); i++) { + InstallationInfo.validateJsonElement(jsonArraycompletedInstallations.get(i)); + }; + } + } + if ((jsonObj.get("ProgramDataPath") != null && !jsonObj.get("ProgramDataPath").isJsonNull()) && !jsonObj.get("ProgramDataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramDataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramDataPath").toString())); + } + if ((jsonObj.get("WebPath") != null && !jsonObj.get("WebPath").isJsonNull()) && !jsonObj.get("WebPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `WebPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("WebPath").toString())); + } + if ((jsonObj.get("ItemsByNamePath") != null && !jsonObj.get("ItemsByNamePath").isJsonNull()) && !jsonObj.get("ItemsByNamePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsByNamePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemsByNamePath").toString())); + } + if ((jsonObj.get("CachePath") != null && !jsonObj.get("CachePath").isJsonNull()) && !jsonObj.get("CachePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CachePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CachePath").toString())); + } + if ((jsonObj.get("LogPath") != null && !jsonObj.get("LogPath").isJsonNull()) && !jsonObj.get("LogPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LogPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LogPath").toString())); + } + if ((jsonObj.get("InternalMetadataPath") != null && !jsonObj.get("InternalMetadataPath").isJsonNull()) && !jsonObj.get("InternalMetadataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `InternalMetadataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("InternalMetadataPath").toString())); + } + if ((jsonObj.get("TranscodingTempPath") != null && !jsonObj.get("TranscodingTempPath").isJsonNull()) && !jsonObj.get("TranscodingTempPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingTempPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingTempPath").toString())); + } + if (jsonObj.get("CastReceiverApplications") != null && !jsonObj.get("CastReceiverApplications").isJsonNull()) { + JsonArray jsonArraycastReceiverApplications = jsonObj.getAsJsonArray("CastReceiverApplications"); + if (jsonArraycastReceiverApplications != null) { + // ensure the json data is an array + if (!jsonObj.get("CastReceiverApplications").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CastReceiverApplications` to be an array in the JSON string but got `%s`", jsonObj.get("CastReceiverApplications").toString())); + } + + // validate the optional field `CastReceiverApplications` (array) + for (int i = 0; i < jsonArraycastReceiverApplications.size(); i++) { + CastReceiverApplication.validateJsonElement(jsonArraycastReceiverApplications.get(i)); + }; + } + } + if ((jsonObj.get("EncoderLocation") != null && !jsonObj.get("EncoderLocation").isJsonNull()) && !jsonObj.get("EncoderLocation").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderLocation` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderLocation").toString())); + } + if ((jsonObj.get("SystemArchitecture") != null && !jsonObj.get("SystemArchitecture").isJsonNull()) && !jsonObj.get("SystemArchitecture").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SystemArchitecture` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SystemArchitecture").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SystemInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SystemInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SystemInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SystemInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SystemInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SystemInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SystemInfo + * @throws IOException if the JSON string is invalid with respect to SystemInfo + */ + public static SystemInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SystemInfo.class); + } + + /** + * Convert an instance of SystemInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java new file mode 100644 index 0000000000000..67fdda04e2cce --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum TaskCompletionStatus. + */ +@JsonAdapter(TaskCompletionStatus.Adapter.class) +public enum TaskCompletionStatus { + + COMPLETED("Completed"), + + FAILED("Failed"), + + CANCELLED("Cancelled"), + + ABORTED("Aborted"); + + private String value; + + TaskCompletionStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskCompletionStatus fromValue(String value) { + for (TaskCompletionStatus b : TaskCompletionStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskCompletionStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskCompletionStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskCompletionStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskCompletionStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskInfo.java new file mode 100644 index 0000000000000..a8d7d3336e6d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskInfo.java @@ -0,0 +1,508 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.TaskResult; +import org.openapitools.client.model.TaskState; +import org.openapitools.client.model.TaskTriggerInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_STATE = "State"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private TaskState state; + + public static final String SERIALIZED_NAME_CURRENT_PROGRESS_PERCENTAGE = "CurrentProgressPercentage"; + @SerializedName(SERIALIZED_NAME_CURRENT_PROGRESS_PERCENTAGE) + @javax.annotation.Nullable + private Double currentProgressPercentage; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_LAST_EXECUTION_RESULT = "LastExecutionResult"; + @SerializedName(SERIALIZED_NAME_LAST_EXECUTION_RESULT) + @javax.annotation.Nullable + private TaskResult lastExecutionResult; + + public static final String SERIALIZED_NAME_TRIGGERS = "Triggers"; + @SerializedName(SERIALIZED_NAME_TRIGGERS) + @javax.annotation.Nullable + private List triggers; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_CATEGORY = "Category"; + @SerializedName(SERIALIZED_NAME_CATEGORY) + @javax.annotation.Nullable + private String category; + + public static final String SERIALIZED_NAME_IS_HIDDEN = "IsHidden"; + @SerializedName(SERIALIZED_NAME_IS_HIDDEN) + @javax.annotation.Nullable + private Boolean isHidden; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public TaskInfo() { + } + + public TaskInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TaskInfo state(@javax.annotation.Nullable TaskState state) { + this.state = state; + return this; + } + + /** + * Gets or sets the state of the task. + * @return state + */ + @javax.annotation.Nullable + public TaskState getState() { + return state; + } + + public void setState(@javax.annotation.Nullable TaskState state) { + this.state = state; + } + + + public TaskInfo currentProgressPercentage(@javax.annotation.Nullable Double currentProgressPercentage) { + this.currentProgressPercentage = currentProgressPercentage; + return this; + } + + /** + * Gets or sets the progress. + * @return currentProgressPercentage + */ + @javax.annotation.Nullable + public Double getCurrentProgressPercentage() { + return currentProgressPercentage; + } + + public void setCurrentProgressPercentage(@javax.annotation.Nullable Double currentProgressPercentage) { + this.currentProgressPercentage = currentProgressPercentage; + } + + + public TaskInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TaskInfo lastExecutionResult(@javax.annotation.Nullable TaskResult lastExecutionResult) { + this.lastExecutionResult = lastExecutionResult; + return this; + } + + /** + * Gets or sets the last execution result. + * @return lastExecutionResult + */ + @javax.annotation.Nullable + public TaskResult getLastExecutionResult() { + return lastExecutionResult; + } + + public void setLastExecutionResult(@javax.annotation.Nullable TaskResult lastExecutionResult) { + this.lastExecutionResult = lastExecutionResult; + } + + + public TaskInfo triggers(@javax.annotation.Nullable List triggers) { + this.triggers = triggers; + return this; + } + + public TaskInfo addTriggersItem(TaskTriggerInfo triggersItem) { + if (this.triggers == null) { + this.triggers = new ArrayList<>(); + } + this.triggers.add(triggersItem); + return this; + } + + /** + * Gets or sets the triggers. + * @return triggers + */ + @javax.annotation.Nullable + public List getTriggers() { + return triggers; + } + + public void setTriggers(@javax.annotation.Nullable List triggers) { + this.triggers = triggers; + } + + + public TaskInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public TaskInfo category(@javax.annotation.Nullable String category) { + this.category = category; + return this; + } + + /** + * Gets or sets the category. + * @return category + */ + @javax.annotation.Nullable + public String getCategory() { + return category; + } + + public void setCategory(@javax.annotation.Nullable String category) { + this.category = category; + } + + + public TaskInfo isHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is hidden. + * @return isHidden + */ + @javax.annotation.Nullable + public Boolean getIsHidden() { + return isHidden; + } + + public void setIsHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + } + + + public TaskInfo key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskInfo taskInfo = (TaskInfo) o; + return Objects.equals(this.name, taskInfo.name) && + Objects.equals(this.state, taskInfo.state) && + Objects.equals(this.currentProgressPercentage, taskInfo.currentProgressPercentage) && + Objects.equals(this.id, taskInfo.id) && + Objects.equals(this.lastExecutionResult, taskInfo.lastExecutionResult) && + Objects.equals(this.triggers, taskInfo.triggers) && + Objects.equals(this.description, taskInfo.description) && + Objects.equals(this.category, taskInfo.category) && + Objects.equals(this.isHidden, taskInfo.isHidden) && + Objects.equals(this.key, taskInfo.key); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, state, currentProgressPercentage, id, lastExecutionResult, triggers, description, category, isHidden, key); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" currentProgressPercentage: ").append(toIndentedString(currentProgressPercentage)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" lastExecutionResult: ").append(toIndentedString(lastExecutionResult)).append("\n"); + sb.append(" triggers: ").append(toIndentedString(triggers)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" isHidden: ").append(toIndentedString(isHidden)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("State"); + openapiFields.add("CurrentProgressPercentage"); + openapiFields.add("Id"); + openapiFields.add("LastExecutionResult"); + openapiFields.add("Triggers"); + openapiFields.add("Description"); + openapiFields.add("Category"); + openapiFields.add("IsHidden"); + openapiFields.add("Key"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskInfo is not found in the empty JSON string", TaskInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // validate the optional field `State` + if (jsonObj.get("State") != null && !jsonObj.get("State").isJsonNull()) { + TaskState.validateJsonElement(jsonObj.get("State")); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `LastExecutionResult` + if (jsonObj.get("LastExecutionResult") != null && !jsonObj.get("LastExecutionResult").isJsonNull()) { + TaskResult.validateJsonElement(jsonObj.get("LastExecutionResult")); + } + if (jsonObj.get("Triggers") != null && !jsonObj.get("Triggers").isJsonNull()) { + JsonArray jsonArraytriggers = jsonObj.getAsJsonArray("Triggers"); + if (jsonArraytriggers != null) { + // ensure the json data is an array + if (!jsonObj.get("Triggers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Triggers` to be an array in the JSON string but got `%s`", jsonObj.get("Triggers").toString())); + } + + // validate the optional field `Triggers` (array) + for (int i = 0; i < jsonArraytriggers.size(); i++) { + TaskTriggerInfo.validateJsonElement(jsonArraytriggers.get(i)); + }; + } + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Category") != null && !jsonObj.get("Category").isJsonNull()) && !jsonObj.get("Category").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Category").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskInfo + * @throws IOException if the JSON string is invalid with respect to TaskInfo + */ + public static TaskInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskInfo.class); + } + + /** + * Convert an instance of TaskInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskResult.java new file mode 100644 index 0000000000000..e012df98466cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskResult.java @@ -0,0 +1,425 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.client.model.TaskCompletionStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskExecutionInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskResult { + public static final String SERIALIZED_NAME_START_TIME_UTC = "StartTimeUtc"; + @SerializedName(SERIALIZED_NAME_START_TIME_UTC) + @javax.annotation.Nullable + private OffsetDateTime startTimeUtc; + + public static final String SERIALIZED_NAME_END_TIME_UTC = "EndTimeUtc"; + @SerializedName(SERIALIZED_NAME_END_TIME_UTC) + @javax.annotation.Nullable + private OffsetDateTime endTimeUtc; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private TaskCompletionStatus status; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_ERROR_MESSAGE = "ErrorMessage"; + @SerializedName(SERIALIZED_NAME_ERROR_MESSAGE) + @javax.annotation.Nullable + private String errorMessage; + + public static final String SERIALIZED_NAME_LONG_ERROR_MESSAGE = "LongErrorMessage"; + @SerializedName(SERIALIZED_NAME_LONG_ERROR_MESSAGE) + @javax.annotation.Nullable + private String longErrorMessage; + + public TaskResult() { + } + + public TaskResult startTimeUtc(@javax.annotation.Nullable OffsetDateTime startTimeUtc) { + this.startTimeUtc = startTimeUtc; + return this; + } + + /** + * Gets or sets the start time UTC. + * @return startTimeUtc + */ + @javax.annotation.Nullable + public OffsetDateTime getStartTimeUtc() { + return startTimeUtc; + } + + public void setStartTimeUtc(@javax.annotation.Nullable OffsetDateTime startTimeUtc) { + this.startTimeUtc = startTimeUtc; + } + + + public TaskResult endTimeUtc(@javax.annotation.Nullable OffsetDateTime endTimeUtc) { + this.endTimeUtc = endTimeUtc; + return this; + } + + /** + * Gets or sets the end time UTC. + * @return endTimeUtc + */ + @javax.annotation.Nullable + public OffsetDateTime getEndTimeUtc() { + return endTimeUtc; + } + + public void setEndTimeUtc(@javax.annotation.Nullable OffsetDateTime endTimeUtc) { + this.endTimeUtc = endTimeUtc; + } + + + public TaskResult status(@javax.annotation.Nullable TaskCompletionStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public TaskCompletionStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable TaskCompletionStatus status) { + this.status = status; + } + + + public TaskResult name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TaskResult key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public TaskResult id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TaskResult errorMessage(@javax.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + return this; + } + + /** + * Gets or sets the error message. + * @return errorMessage + */ + @javax.annotation.Nullable + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(@javax.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + } + + + public TaskResult longErrorMessage(@javax.annotation.Nullable String longErrorMessage) { + this.longErrorMessage = longErrorMessage; + return this; + } + + /** + * Gets or sets the long error message. + * @return longErrorMessage + */ + @javax.annotation.Nullable + public String getLongErrorMessage() { + return longErrorMessage; + } + + public void setLongErrorMessage(@javax.annotation.Nullable String longErrorMessage) { + this.longErrorMessage = longErrorMessage; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskResult taskResult = (TaskResult) o; + return Objects.equals(this.startTimeUtc, taskResult.startTimeUtc) && + Objects.equals(this.endTimeUtc, taskResult.endTimeUtc) && + Objects.equals(this.status, taskResult.status) && + Objects.equals(this.name, taskResult.name) && + Objects.equals(this.key, taskResult.key) && + Objects.equals(this.id, taskResult.id) && + Objects.equals(this.errorMessage, taskResult.errorMessage) && + Objects.equals(this.longErrorMessage, taskResult.longErrorMessage); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(startTimeUtc, endTimeUtc, status, name, key, id, errorMessage, longErrorMessage); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskResult {\n"); + sb.append(" startTimeUtc: ").append(toIndentedString(startTimeUtc)).append("\n"); + sb.append(" endTimeUtc: ").append(toIndentedString(endTimeUtc)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n"); + sb.append(" longErrorMessage: ").append(toIndentedString(longErrorMessage)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartTimeUtc"); + openapiFields.add("EndTimeUtc"); + openapiFields.add("Status"); + openapiFields.add("Name"); + openapiFields.add("Key"); + openapiFields.add("Id"); + openapiFields.add("ErrorMessage"); + openapiFields.add("LongErrorMessage"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskResult is not found in the empty JSON string", TaskResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + TaskCompletionStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ErrorMessage") != null && !jsonObj.get("ErrorMessage").isJsonNull()) && !jsonObj.get("ErrorMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ErrorMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ErrorMessage").toString())); + } + if ((jsonObj.get("LongErrorMessage") != null && !jsonObj.get("LongErrorMessage").isJsonNull()) && !jsonObj.get("LongErrorMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LongErrorMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LongErrorMessage").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskResult + * @throws IOException if the JSON string is invalid with respect to TaskResult + */ + public static TaskResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskResult.class); + } + + /** + * Convert an instance of TaskResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskState.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskState.java new file mode 100644 index 0000000000000..04cc238fe3adb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskState.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum TaskState. + */ +@JsonAdapter(TaskState.Adapter.class) +public enum TaskState { + + IDLE("Idle"), + + CANCELLING("Cancelling"), + + RUNNING("Running"); + + private String value; + + TaskState(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskState fromValue(String value) { + for (TaskState b : TaskState.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskState enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskState read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskState.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskState.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java new file mode 100644 index 0000000000000..ddc7f304df719 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java @@ -0,0 +1,331 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskTriggerInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskTriggerInfo { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_TIME_OF_DAY_TICKS = "TimeOfDayTicks"; + @SerializedName(SERIALIZED_NAME_TIME_OF_DAY_TICKS) + @javax.annotation.Nullable + private Long timeOfDayTicks; + + public static final String SERIALIZED_NAME_INTERVAL_TICKS = "IntervalTicks"; + @SerializedName(SERIALIZED_NAME_INTERVAL_TICKS) + @javax.annotation.Nullable + private Long intervalTicks; + + public static final String SERIALIZED_NAME_DAY_OF_WEEK = "DayOfWeek"; + @SerializedName(SERIALIZED_NAME_DAY_OF_WEEK) + @javax.annotation.Nullable + private DayOfWeek dayOfWeek; + + public static final String SERIALIZED_NAME_MAX_RUNTIME_TICKS = "MaxRuntimeTicks"; + @SerializedName(SERIALIZED_NAME_MAX_RUNTIME_TICKS) + @javax.annotation.Nullable + private Long maxRuntimeTicks; + + public TaskTriggerInfo() { + } + + public TaskTriggerInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TaskTriggerInfo timeOfDayTicks(@javax.annotation.Nullable Long timeOfDayTicks) { + this.timeOfDayTicks = timeOfDayTicks; + return this; + } + + /** + * Gets or sets the time of day. + * @return timeOfDayTicks + */ + @javax.annotation.Nullable + public Long getTimeOfDayTicks() { + return timeOfDayTicks; + } + + public void setTimeOfDayTicks(@javax.annotation.Nullable Long timeOfDayTicks) { + this.timeOfDayTicks = timeOfDayTicks; + } + + + public TaskTriggerInfo intervalTicks(@javax.annotation.Nullable Long intervalTicks) { + this.intervalTicks = intervalTicks; + return this; + } + + /** + * Gets or sets the interval. + * @return intervalTicks + */ + @javax.annotation.Nullable + public Long getIntervalTicks() { + return intervalTicks; + } + + public void setIntervalTicks(@javax.annotation.Nullable Long intervalTicks) { + this.intervalTicks = intervalTicks; + } + + + public TaskTriggerInfo dayOfWeek(@javax.annotation.Nullable DayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + return this; + } + + /** + * Gets or sets the day of week. + * @return dayOfWeek + */ + @javax.annotation.Nullable + public DayOfWeek getDayOfWeek() { + return dayOfWeek; + } + + public void setDayOfWeek(@javax.annotation.Nullable DayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + } + + + public TaskTriggerInfo maxRuntimeTicks(@javax.annotation.Nullable Long maxRuntimeTicks) { + this.maxRuntimeTicks = maxRuntimeTicks; + return this; + } + + /** + * Gets or sets the maximum runtime ticks. + * @return maxRuntimeTicks + */ + @javax.annotation.Nullable + public Long getMaxRuntimeTicks() { + return maxRuntimeTicks; + } + + public void setMaxRuntimeTicks(@javax.annotation.Nullable Long maxRuntimeTicks) { + this.maxRuntimeTicks = maxRuntimeTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskTriggerInfo taskTriggerInfo = (TaskTriggerInfo) o; + return Objects.equals(this.type, taskTriggerInfo.type) && + Objects.equals(this.timeOfDayTicks, taskTriggerInfo.timeOfDayTicks) && + Objects.equals(this.intervalTicks, taskTriggerInfo.intervalTicks) && + Objects.equals(this.dayOfWeek, taskTriggerInfo.dayOfWeek) && + Objects.equals(this.maxRuntimeTicks, taskTriggerInfo.maxRuntimeTicks); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, timeOfDayTicks, intervalTicks, dayOfWeek, maxRuntimeTicks); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskTriggerInfo {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" timeOfDayTicks: ").append(toIndentedString(timeOfDayTicks)).append("\n"); + sb.append(" intervalTicks: ").append(toIndentedString(intervalTicks)).append("\n"); + sb.append(" dayOfWeek: ").append(toIndentedString(dayOfWeek)).append("\n"); + sb.append(" maxRuntimeTicks: ").append(toIndentedString(maxRuntimeTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("TimeOfDayTicks"); + openapiFields.add("IntervalTicks"); + openapiFields.add("DayOfWeek"); + openapiFields.add("MaxRuntimeTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskTriggerInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskTriggerInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskTriggerInfo is not found in the empty JSON string", TaskTriggerInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskTriggerInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskTriggerInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + // validate the optional field `DayOfWeek` + if (jsonObj.get("DayOfWeek") != null && !jsonObj.get("DayOfWeek").isJsonNull()) { + DayOfWeek.validateJsonElement(jsonObj.get("DayOfWeek")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskTriggerInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskTriggerInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskTriggerInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskTriggerInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskTriggerInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskTriggerInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskTriggerInfo + * @throws IOException if the JSON string is invalid with respect to TaskTriggerInfo + */ + public static TaskTriggerInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskTriggerInfo.class); + } + + /** + * Convert an instance of TaskTriggerInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ThemeMediaResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ThemeMediaResult.java new file mode 100644 index 0000000000000..acaba5234dfff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ThemeMediaResult.java @@ -0,0 +1,313 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ThemeMediaResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ThemeMediaResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public static final String SERIALIZED_NAME_OWNER_ID = "OwnerId"; + @SerializedName(SERIALIZED_NAME_OWNER_ID) + @javax.annotation.Nullable + private UUID ownerId; + + public ThemeMediaResult() { + } + + public ThemeMediaResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public ThemeMediaResult addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public ThemeMediaResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public ThemeMediaResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + public ThemeMediaResult ownerId(@javax.annotation.Nullable UUID ownerId) { + this.ownerId = ownerId; + return this; + } + + /** + * Gets or sets the owner id. + * @return ownerId + */ + @javax.annotation.Nullable + public UUID getOwnerId() { + return ownerId; + } + + public void setOwnerId(@javax.annotation.Nullable UUID ownerId) { + this.ownerId = ownerId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ThemeMediaResult themeMediaResult = (ThemeMediaResult) o; + return Objects.equals(this.items, themeMediaResult.items) && + Objects.equals(this.totalRecordCount, themeMediaResult.totalRecordCount) && + Objects.equals(this.startIndex, themeMediaResult.startIndex) && + Objects.equals(this.ownerId, themeMediaResult.ownerId); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex, ownerId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ThemeMediaResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append(" ownerId: ").append(toIndentedString(ownerId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + openapiFields.add("OwnerId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ThemeMediaResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ThemeMediaResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ThemeMediaResult is not found in the empty JSON string", ThemeMediaResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ThemeMediaResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ThemeMediaResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + if ((jsonObj.get("OwnerId") != null && !jsonObj.get("OwnerId").isJsonNull()) && !jsonObj.get("OwnerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OwnerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OwnerId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ThemeMediaResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ThemeMediaResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ThemeMediaResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ThemeMediaResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ThemeMediaResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ThemeMediaResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ThemeMediaResult + * @throws IOException if the JSON string is invalid with respect to ThemeMediaResult + */ + public static ThemeMediaResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ThemeMediaResult.class); + } + + /** + * Convert an instance of ThemeMediaResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCancelledMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCancelledMessage.java new file mode 100644 index 0000000000000..7123926198155 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCancelledMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TimerEventInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Timer cancelled message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerCancelledMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private TimerEventInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.TIMER_CANCELLED; + + public TimerCancelledMessage() { + } + + public TimerCancelledMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public TimerCancelledMessage data(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public TimerEventInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + } + + + public TimerCancelledMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerCancelledMessage timerCancelledMessage = (TimerCancelledMessage) o; + return Objects.equals(this.data, timerCancelledMessage.data) && + Objects.equals(this.messageId, timerCancelledMessage.messageId) && + Objects.equals(this.messageType, timerCancelledMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerCancelledMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerCancelledMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerCancelledMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerCancelledMessage is not found in the empty JSON string", TimerCancelledMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerCancelledMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerCancelledMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + TimerEventInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerCancelledMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerCancelledMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerCancelledMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerCancelledMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerCancelledMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerCancelledMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerCancelledMessage + * @throws IOException if the JSON string is invalid with respect to TimerCancelledMessage + */ + public static TimerCancelledMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerCancelledMessage.class); + } + + /** + * Convert an instance of TimerCancelledMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCreatedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCreatedMessage.java new file mode 100644 index 0000000000000..2a9462616c2e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerCreatedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.TimerEventInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Timer created message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerCreatedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private TimerEventInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.TIMER_CREATED; + + public TimerCreatedMessage() { + } + + public TimerCreatedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public TimerCreatedMessage data(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public TimerEventInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable TimerEventInfo data) { + this.data = data; + } + + + public TimerCreatedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerCreatedMessage timerCreatedMessage = (TimerCreatedMessage) o; + return Objects.equals(this.data, timerCreatedMessage.data) && + Objects.equals(this.messageId, timerCreatedMessage.messageId) && + Objects.equals(this.messageType, timerCreatedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerCreatedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerCreatedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerCreatedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerCreatedMessage is not found in the empty JSON string", TimerCreatedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerCreatedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerCreatedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + TimerEventInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerCreatedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerCreatedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerCreatedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerCreatedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerCreatedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerCreatedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerCreatedMessage + * @throws IOException if the JSON string is invalid with respect to TimerCreatedMessage + */ + public static TimerCreatedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerCreatedMessage.class); + } + + /** + * Convert an instance of TimerCreatedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerEventInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerEventInfo.java new file mode 100644 index 0000000000000..d70c2a66f32cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerEventInfo.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TimerEventInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerEventInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private UUID programId; + + public TimerEventInfo() { + } + + public TimerEventInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TimerEventInfo programId(@javax.annotation.Nullable UUID programId) { + this.programId = programId; + return this; + } + + /** + * Get programId + * @return programId + */ + @javax.annotation.Nullable + public UUID getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable UUID programId) { + this.programId = programId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerEventInfo timerEventInfo = (TimerEventInfo) o; + return Objects.equals(this.id, timerEventInfo.id) && + Objects.equals(this.programId, timerEventInfo.programId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, programId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerEventInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ProgramId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerEventInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerEventInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerEventInfo is not found in the empty JSON string", TimerEventInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerEventInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerEventInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerEventInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerEventInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerEventInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerEventInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerEventInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerEventInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerEventInfo + * @throws IOException if the JSON string is invalid with respect to TimerEventInfo + */ + public static TimerEventInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerEventInfo.class); + } + + /** + * Convert an instance of TimerEventInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDto.java new file mode 100644 index 0000000000000..267c9f037bd33 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDto.java @@ -0,0 +1,1023 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.KeepUntil; +import org.openapitools.client.model.RecordingStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TimerInfoDto + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerInfoDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "ExternalId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @javax.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_EXTERNAL_CHANNEL_ID = "ExternalChannelId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_CHANNEL_ID) + @javax.annotation.Nullable + private String externalChannelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_EXTERNAL_PROGRAM_ID = "ExternalProgramId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_PROGRAM_ID) + @javax.annotation.Nullable + private String externalProgramId; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERVICE_NAME = "ServiceName"; + @SerializedName(SERIALIZED_NAME_SERVICE_NAME) + @javax.annotation.Nullable + private String serviceName; + + public static final String SERIALIZED_NAME_PRIORITY = "Priority"; + @SerializedName(SERIALIZED_NAME_PRIORITY) + @javax.annotation.Nullable + private Integer priority; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED = "IsPrePaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPrePaddingRequired; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private String parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_IS_POST_PADDING_REQUIRED = "IsPostPaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_POST_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPostPaddingRequired; + + public static final String SERIALIZED_NAME_KEEP_UNTIL = "KeepUntil"; + @SerializedName(SERIALIZED_NAME_KEEP_UNTIL) + @javax.annotation.Nullable + private KeepUntil keepUntil; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private RecordingStatus status; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_EXTERNAL_SERIES_TIMER_ID = "ExternalSeriesTimerId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String externalSeriesTimerId; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_PROGRAM_INFO = "ProgramInfo"; + @SerializedName(SERIALIZED_NAME_PROGRAM_INFO) + @javax.annotation.Nullable + private BaseItemDto programInfo; + + public TimerInfoDto() { + } + + public TimerInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the Id of the recording. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TimerInfoDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TimerInfoDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public TimerInfoDto externalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Gets or sets the external identifier. + * @return externalId + */ + @javax.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public TimerInfoDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel id of the recording. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public TimerInfoDto externalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + return this; + } + + /** + * Gets or sets the external channel identifier. + * @return externalChannelId + */ + @javax.annotation.Nullable + public String getExternalChannelId() { + return externalChannelId; + } + + public void setExternalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + } + + + public TimerInfoDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the channel name of the recording. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public TimerInfoDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Get channelPrimaryImageTag + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public TimerInfoDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public TimerInfoDto externalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + return this; + } + + /** + * Gets or sets the external program identifier. + * @return externalProgramId + */ + @javax.annotation.Nullable + public String getExternalProgramId() { + return externalProgramId; + } + + public void setExternalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + } + + + public TimerInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the recording. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TimerInfoDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the description of the recording. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public TimerInfoDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public TimerInfoDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date of the recording, in UTC. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public TimerInfoDto serviceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + return this; + } + + /** + * Gets or sets the name of the service. + * @return serviceName + */ + @javax.annotation.Nullable + public String getServiceName() { + return serviceName; + } + + public void setServiceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + } + + + public TimerInfoDto priority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + return this; + } + + /** + * Gets or sets the priority. + * @return priority + */ + @javax.annotation.Nullable + public Integer getPriority() { + return priority; + } + + public void setPriority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + } + + + public TimerInfoDto prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Gets or sets the pre padding seconds. + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public TimerInfoDto postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Gets or sets the post padding seconds. + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public TimerInfoDto isPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is pre padding required. + * @return isPrePaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPrePaddingRequired() { + return isPrePaddingRequired; + } + + public void setIsPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + } + + + public TimerInfoDto parentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public String getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public TimerInfoDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public TimerInfoDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public TimerInfoDto isPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is post padding required. + * @return isPostPaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPostPaddingRequired() { + return isPostPaddingRequired; + } + + public void setIsPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + } + + + public TimerInfoDto keepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + return this; + } + + /** + * Get keepUntil + * @return keepUntil + */ + @javax.annotation.Nullable + public KeepUntil getKeepUntil() { + return keepUntil; + } + + public void setKeepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + } + + + public TimerInfoDto status(@javax.annotation.Nullable RecordingStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public RecordingStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable RecordingStatus status) { + this.status = status; + } + + + public TimerInfoDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets the series timer identifier. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public TimerInfoDto externalSeriesTimerId(@javax.annotation.Nullable String externalSeriesTimerId) { + this.externalSeriesTimerId = externalSeriesTimerId; + return this; + } + + /** + * Gets or sets the external series timer identifier. + * @return externalSeriesTimerId + */ + @javax.annotation.Nullable + public String getExternalSeriesTimerId() { + return externalSeriesTimerId; + } + + public void setExternalSeriesTimerId(@javax.annotation.Nullable String externalSeriesTimerId) { + this.externalSeriesTimerId = externalSeriesTimerId; + } + + + public TimerInfoDto runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public TimerInfoDto programInfo(@javax.annotation.Nullable BaseItemDto programInfo) { + this.programInfo = programInfo; + return this; + } + + /** + * Gets or sets the program information. + * @return programInfo + */ + @javax.annotation.Nullable + public BaseItemDto getProgramInfo() { + return programInfo; + } + + public void setProgramInfo(@javax.annotation.Nullable BaseItemDto programInfo) { + this.programInfo = programInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerInfoDto timerInfoDto = (TimerInfoDto) o; + return Objects.equals(this.id, timerInfoDto.id) && + Objects.equals(this.type, timerInfoDto.type) && + Objects.equals(this.serverId, timerInfoDto.serverId) && + Objects.equals(this.externalId, timerInfoDto.externalId) && + Objects.equals(this.channelId, timerInfoDto.channelId) && + Objects.equals(this.externalChannelId, timerInfoDto.externalChannelId) && + Objects.equals(this.channelName, timerInfoDto.channelName) && + Objects.equals(this.channelPrimaryImageTag, timerInfoDto.channelPrimaryImageTag) && + Objects.equals(this.programId, timerInfoDto.programId) && + Objects.equals(this.externalProgramId, timerInfoDto.externalProgramId) && + Objects.equals(this.name, timerInfoDto.name) && + Objects.equals(this.overview, timerInfoDto.overview) && + Objects.equals(this.startDate, timerInfoDto.startDate) && + Objects.equals(this.endDate, timerInfoDto.endDate) && + Objects.equals(this.serviceName, timerInfoDto.serviceName) && + Objects.equals(this.priority, timerInfoDto.priority) && + Objects.equals(this.prePaddingSeconds, timerInfoDto.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, timerInfoDto.postPaddingSeconds) && + Objects.equals(this.isPrePaddingRequired, timerInfoDto.isPrePaddingRequired) && + Objects.equals(this.parentBackdropItemId, timerInfoDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, timerInfoDto.parentBackdropImageTags) && + Objects.equals(this.isPostPaddingRequired, timerInfoDto.isPostPaddingRequired) && + Objects.equals(this.keepUntil, timerInfoDto.keepUntil) && + Objects.equals(this.status, timerInfoDto.status) && + Objects.equals(this.seriesTimerId, timerInfoDto.seriesTimerId) && + Objects.equals(this.externalSeriesTimerId, timerInfoDto.externalSeriesTimerId) && + Objects.equals(this.runTimeTicks, timerInfoDto.runTimeTicks) && + Objects.equals(this.programInfo, timerInfoDto.programInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, serverId, externalId, channelId, externalChannelId, channelName, channelPrimaryImageTag, programId, externalProgramId, name, overview, startDate, endDate, serviceName, priority, prePaddingSeconds, postPaddingSeconds, isPrePaddingRequired, parentBackdropItemId, parentBackdropImageTags, isPostPaddingRequired, keepUntil, status, seriesTimerId, externalSeriesTimerId, runTimeTicks, programInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerInfoDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" externalChannelId: ").append(toIndentedString(externalChannelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" externalProgramId: ").append(toIndentedString(externalProgramId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" isPrePaddingRequired: ").append(toIndentedString(isPrePaddingRequired)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" isPostPaddingRequired: ").append(toIndentedString(isPostPaddingRequired)).append("\n"); + sb.append(" keepUntil: ").append(toIndentedString(keepUntil)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" externalSeriesTimerId: ").append(toIndentedString(externalSeriesTimerId)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" programInfo: ").append(toIndentedString(programInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("ServerId"); + openapiFields.add("ExternalId"); + openapiFields.add("ChannelId"); + openapiFields.add("ExternalChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("ProgramId"); + openapiFields.add("ExternalProgramId"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("ServiceName"); + openapiFields.add("Priority"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("IsPrePaddingRequired"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("IsPostPaddingRequired"); + openapiFields.add("KeepUntil"); + openapiFields.add("Status"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("ExternalSeriesTimerId"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("ProgramInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerInfoDto is not found in the empty JSON string", TimerInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ExternalId") != null && !jsonObj.get("ExternalId").isJsonNull()) && !jsonObj.get("ExternalId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalId").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ExternalChannelId") != null && !jsonObj.get("ExternalChannelId").isJsonNull()) && !jsonObj.get("ExternalChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ExternalProgramId") != null && !jsonObj.get("ExternalProgramId").isJsonNull()) && !jsonObj.get("ExternalProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalProgramId").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ServiceName") != null && !jsonObj.get("ServiceName").isJsonNull()) && !jsonObj.get("ServiceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServiceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServiceName").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `KeepUntil` + if (jsonObj.get("KeepUntil") != null && !jsonObj.get("KeepUntil").isJsonNull()) { + KeepUntil.validateJsonElement(jsonObj.get("KeepUntil")); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + RecordingStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("ExternalSeriesTimerId") != null && !jsonObj.get("ExternalSeriesTimerId").isJsonNull()) && !jsonObj.get("ExternalSeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalSeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalSeriesTimerId").toString())); + } + // validate the optional field `ProgramInfo` + if (jsonObj.get("ProgramInfo") != null && !jsonObj.get("ProgramInfo").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("ProgramInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerInfoDto + * @throws IOException if the JSON string is invalid with respect to TimerInfoDto + */ + public static TimerInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerInfoDto.class); + } + + /** + * Convert an instance of TimerInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java new file mode 100644 index 0000000000000..fbc9ecbada1a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.TimerInfoDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Query result container. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerInfoDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public TimerInfoDtoQueryResult() { + } + + public TimerInfoDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public TimerInfoDtoQueryResult addItemsItem(TimerInfoDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public TimerInfoDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public TimerInfoDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerInfoDtoQueryResult timerInfoDtoQueryResult = (TimerInfoDtoQueryResult) o; + return Objects.equals(this.items, timerInfoDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, timerInfoDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, timerInfoDtoQueryResult.startIndex); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerInfoDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerInfoDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerInfoDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerInfoDtoQueryResult is not found in the empty JSON string", TimerInfoDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerInfoDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerInfoDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + TimerInfoDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerInfoDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerInfoDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerInfoDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerInfoDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerInfoDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerInfoDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerInfoDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to TimerInfoDtoQueryResult + */ + public static TimerInfoDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerInfoDtoQueryResult.class); + } + + /** + * Convert an instance of TimerInfoDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingAlgorithm.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingAlgorithm.java new file mode 100644 index 0000000000000..21372b5e0f49d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingAlgorithm.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing tonemapping algorithms. + */ +@JsonAdapter(TonemappingAlgorithm.Adapter.class) +public enum TonemappingAlgorithm { + + NONE("none"), + + CLIP("clip"), + + LINEAR("linear"), + + GAMMA("gamma"), + + REINHARD("reinhard"), + + HABLE("hable"), + + MOBIUS("mobius"), + + BT2390("bt2390"); + + private String value; + + TonemappingAlgorithm(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TonemappingAlgorithm fromValue(String value) { + for (TonemappingAlgorithm b : TonemappingAlgorithm.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TonemappingAlgorithm enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TonemappingAlgorithm read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TonemappingAlgorithm.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TonemappingAlgorithm.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingMode.java new file mode 100644 index 0000000000000..d4348edf4ac53 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingMode.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing tonemapping modes. + */ +@JsonAdapter(TonemappingMode.Adapter.class) +public enum TonemappingMode { + + AUTO("auto"), + + MAX("max"), + + RGB("rgb"), + + LUM("lum"), + + ITP("itp"); + + private String value; + + TonemappingMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TonemappingMode fromValue(String value) { + for (TonemappingMode b : TonemappingMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TonemappingMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TonemappingMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TonemappingMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TonemappingMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingRange.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingRange.java new file mode 100644 index 0000000000000..278a5b8fa0502 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TonemappingRange.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum containing tonemapping ranges. + */ +@JsonAdapter(TonemappingRange.Adapter.class) +public enum TonemappingRange { + + AUTO("auto"), + + TV("tv"), + + PC("pc"); + + private String value; + + TonemappingRange(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TonemappingRange fromValue(String value) { + for (TonemappingRange b : TonemappingRange.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TonemappingRange enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TonemappingRange read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TonemappingRange.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TonemappingRange.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfo.java new file mode 100644 index 0000000000000..680e7d64007da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TrailerInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrailerInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public TrailerInfo() { + } + + public TrailerInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TrailerInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public TrailerInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public TrailerInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public TrailerInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public TrailerInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public TrailerInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public TrailerInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public TrailerInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public TrailerInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public TrailerInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public TrailerInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrailerInfo trailerInfo = (TrailerInfo) o; + return Objects.equals(this.name, trailerInfo.name) && + Objects.equals(this.originalTitle, trailerInfo.originalTitle) && + Objects.equals(this.path, trailerInfo.path) && + Objects.equals(this.metadataLanguage, trailerInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, trailerInfo.metadataCountryCode) && + Objects.equals(this.providerIds, trailerInfo.providerIds) && + Objects.equals(this.year, trailerInfo.year) && + Objects.equals(this.indexNumber, trailerInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, trailerInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, trailerInfo.premiereDate) && + Objects.equals(this.isAutomated, trailerInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrailerInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrailerInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrailerInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrailerInfo is not found in the empty JSON string", TrailerInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrailerInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrailerInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrailerInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrailerInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrailerInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrailerInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrailerInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrailerInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrailerInfo + * @throws IOException if the JSON string is invalid with respect to TrailerInfo + */ + public static TrailerInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrailerInfo.class); + } + + /** + * Convert an instance of TrailerInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..54bedae05091b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.TrailerInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TrailerInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrailerInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private TrailerInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public TrailerInfoRemoteSearchQuery() { + } + + public TrailerInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable TrailerInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public TrailerInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable TrailerInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public TrailerInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public TrailerInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public TrailerInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery = (TrailerInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, trailerInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, trailerInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, trailerInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, trailerInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrailerInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrailerInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrailerInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrailerInfoRemoteSearchQuery is not found in the empty JSON string", TrailerInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrailerInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrailerInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + TrailerInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrailerInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrailerInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrailerInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrailerInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrailerInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrailerInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrailerInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to TrailerInfoRemoteSearchQuery + */ + public static TrailerInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrailerInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of TrailerInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeReason.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeReason.java new file mode 100644 index 0000000000000..0e2dfded9c67c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeReason.java @@ -0,0 +1,126 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TranscodeReason + */ +@JsonAdapter(TranscodeReason.Adapter.class) +public enum TranscodeReason { + + CONTAINER_NOT_SUPPORTED("ContainerNotSupported"), + + VIDEO_CODEC_NOT_SUPPORTED("VideoCodecNotSupported"), + + AUDIO_CODEC_NOT_SUPPORTED("AudioCodecNotSupported"), + + SUBTITLE_CODEC_NOT_SUPPORTED("SubtitleCodecNotSupported"), + + AUDIO_IS_EXTERNAL("AudioIsExternal"), + + SECONDARY_AUDIO_NOT_SUPPORTED("SecondaryAudioNotSupported"), + + VIDEO_PROFILE_NOT_SUPPORTED("VideoProfileNotSupported"), + + VIDEO_LEVEL_NOT_SUPPORTED("VideoLevelNotSupported"), + + VIDEO_RESOLUTION_NOT_SUPPORTED("VideoResolutionNotSupported"), + + VIDEO_BIT_DEPTH_NOT_SUPPORTED("VideoBitDepthNotSupported"), + + VIDEO_FRAMERATE_NOT_SUPPORTED("VideoFramerateNotSupported"), + + REF_FRAMES_NOT_SUPPORTED("RefFramesNotSupported"), + + ANAMORPHIC_VIDEO_NOT_SUPPORTED("AnamorphicVideoNotSupported"), + + INTERLACED_VIDEO_NOT_SUPPORTED("InterlacedVideoNotSupported"), + + AUDIO_CHANNELS_NOT_SUPPORTED("AudioChannelsNotSupported"), + + AUDIO_PROFILE_NOT_SUPPORTED("AudioProfileNotSupported"), + + AUDIO_SAMPLE_RATE_NOT_SUPPORTED("AudioSampleRateNotSupported"), + + AUDIO_BIT_DEPTH_NOT_SUPPORTED("AudioBitDepthNotSupported"), + + CONTAINER_BITRATE_EXCEEDS_LIMIT("ContainerBitrateExceedsLimit"), + + VIDEO_BITRATE_NOT_SUPPORTED("VideoBitrateNotSupported"), + + AUDIO_BITRATE_NOT_SUPPORTED("AudioBitrateNotSupported"), + + UNKNOWN_VIDEO_STREAM_INFO("UnknownVideoStreamInfo"), + + UNKNOWN_AUDIO_STREAM_INFO("UnknownAudioStreamInfo"), + + DIRECT_PLAY_ERROR("DirectPlayError"), + + VIDEO_RANGE_TYPE_NOT_SUPPORTED("VideoRangeTypeNotSupported"), + + VIDEO_CODEC_TAG_NOT_SUPPORTED("VideoCodecTagNotSupported"); + + private String value; + + TranscodeReason(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TranscodeReason fromValue(String value) { + for (TranscodeReason b : TranscodeReason.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TranscodeReason enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TranscodeReason read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TranscodeReason.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TranscodeReason.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java new file mode 100644 index 0000000000000..d05b17f69aae1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TranscodeSeekInfo + */ +@JsonAdapter(TranscodeSeekInfo.Adapter.class) +public enum TranscodeSeekInfo { + + AUTO("Auto"), + + BYTES("Bytes"); + + private String value; + + TranscodeSeekInfo(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TranscodeSeekInfo fromValue(String value) { + for (TranscodeSeekInfo b : TranscodeSeekInfo.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TranscodeSeekInfo enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TranscodeSeekInfo read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TranscodeSeekInfo.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TranscodeSeekInfo.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingInfo.java new file mode 100644 index 0000000000000..1585843ea9e3a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingInfo.java @@ -0,0 +1,668 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.HardwareAccelerationType; +import org.openapitools.client.model.TranscodeReason; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class holding information on a runnning transcode. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TranscodingInfo { + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_IS_VIDEO_DIRECT = "IsVideoDirect"; + @SerializedName(SERIALIZED_NAME_IS_VIDEO_DIRECT) + @javax.annotation.Nullable + private Boolean isVideoDirect; + + public static final String SERIALIZED_NAME_IS_AUDIO_DIRECT = "IsAudioDirect"; + @SerializedName(SERIALIZED_NAME_IS_AUDIO_DIRECT) + @javax.annotation.Nullable + private Boolean isAudioDirect; + + public static final String SERIALIZED_NAME_BITRATE = "Bitrate"; + @SerializedName(SERIALIZED_NAME_BITRATE) + @javax.annotation.Nullable + private Integer bitrate; + + public static final String SERIALIZED_NAME_FRAMERATE = "Framerate"; + @SerializedName(SERIALIZED_NAME_FRAMERATE) + @javax.annotation.Nullable + private Float framerate; + + public static final String SERIALIZED_NAME_COMPLETION_PERCENTAGE = "CompletionPercentage"; + @SerializedName(SERIALIZED_NAME_COMPLETION_PERCENTAGE) + @javax.annotation.Nullable + private Double completionPercentage; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_AUDIO_CHANNELS = "AudioChannels"; + @SerializedName(SERIALIZED_NAME_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer audioChannels; + + public static final String SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE = "HardwareAccelerationType"; + @SerializedName(SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE) + @javax.annotation.Nullable + private HardwareAccelerationType hardwareAccelerationType; + + /** + * Gets or Sets transcodeReasons + */ + @JsonAdapter(TranscodeReason.Adapter.class) + public enum TranscodeReason { + CONTAINER_NOT_SUPPORTED("ContainerNotSupported"), + + VIDEO_CODEC_NOT_SUPPORTED("VideoCodecNotSupported"), + + AUDIO_CODEC_NOT_SUPPORTED("AudioCodecNotSupported"), + + SUBTITLE_CODEC_NOT_SUPPORTED("SubtitleCodecNotSupported"), + + AUDIO_IS_EXTERNAL("AudioIsExternal"), + + SECONDARY_AUDIO_NOT_SUPPORTED("SecondaryAudioNotSupported"), + + VIDEO_PROFILE_NOT_SUPPORTED("VideoProfileNotSupported"), + + VIDEO_LEVEL_NOT_SUPPORTED("VideoLevelNotSupported"), + + VIDEO_RESOLUTION_NOT_SUPPORTED("VideoResolutionNotSupported"), + + VIDEO_BIT_DEPTH_NOT_SUPPORTED("VideoBitDepthNotSupported"), + + VIDEO_FRAMERATE_NOT_SUPPORTED("VideoFramerateNotSupported"), + + REF_FRAMES_NOT_SUPPORTED("RefFramesNotSupported"), + + ANAMORPHIC_VIDEO_NOT_SUPPORTED("AnamorphicVideoNotSupported"), + + INTERLACED_VIDEO_NOT_SUPPORTED("InterlacedVideoNotSupported"), + + AUDIO_CHANNELS_NOT_SUPPORTED("AudioChannelsNotSupported"), + + AUDIO_PROFILE_NOT_SUPPORTED("AudioProfileNotSupported"), + + AUDIO_SAMPLE_RATE_NOT_SUPPORTED("AudioSampleRateNotSupported"), + + AUDIO_BIT_DEPTH_NOT_SUPPORTED("AudioBitDepthNotSupported"), + + CONTAINER_BITRATE_EXCEEDS_LIMIT("ContainerBitrateExceedsLimit"), + + VIDEO_BITRATE_NOT_SUPPORTED("VideoBitrateNotSupported"), + + AUDIO_BITRATE_NOT_SUPPORTED("AudioBitrateNotSupported"), + + UNKNOWN_VIDEO_STREAM_INFO("UnknownVideoStreamInfo"), + + UNKNOWN_AUDIO_STREAM_INFO("UnknownAudioStreamInfo"), + + DIRECT_PLAY_ERROR("DirectPlayError"), + + VIDEO_RANGE_TYPE_NOT_SUPPORTED("VideoRangeTypeNotSupported"), + + VIDEO_CODEC_TAG_NOT_SUPPORTED("VideoCodecTagNotSupported"); + + private TranscodeReason value; + + TranscodeReason(TranscodeReason value) { + this.value = value; + } + + public TranscodeReason getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TranscodeReason fromValue(TranscodeReason value) { + for (TranscodeReason b : TranscodeReason.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TranscodeReason enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TranscodeReason read(final JsonReader jsonReader) throws IOException { + TranscodeReason value = jsonReader.nextTranscodeReason(); + return TranscodeReason.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + TranscodeReason value = jsonElement.getAsTranscodeReason(); + TranscodeReason.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TRANSCODE_REASONS = "TranscodeReasons"; + @SerializedName(SERIALIZED_NAME_TRANSCODE_REASONS) + @javax.annotation.Nullable + private TranscodeReasonsEnum transcodeReasons = new ArrayList<>(); + + public TranscodingInfo() { + } + + public TranscodingInfo audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Gets or sets the thread count used for encoding. + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public TranscodingInfo videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Gets or sets the thread count used for encoding. + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public TranscodingInfo container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the thread count used for encoding. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public TranscodingInfo isVideoDirect(@javax.annotation.Nullable Boolean isVideoDirect) { + this.isVideoDirect = isVideoDirect; + return this; + } + + /** + * Gets or sets a value indicating whether the video is passed through. + * @return isVideoDirect + */ + @javax.annotation.Nullable + public Boolean getIsVideoDirect() { + return isVideoDirect; + } + + public void setIsVideoDirect(@javax.annotation.Nullable Boolean isVideoDirect) { + this.isVideoDirect = isVideoDirect; + } + + + public TranscodingInfo isAudioDirect(@javax.annotation.Nullable Boolean isAudioDirect) { + this.isAudioDirect = isAudioDirect; + return this; + } + + /** + * Gets or sets a value indicating whether the audio is passed through. + * @return isAudioDirect + */ + @javax.annotation.Nullable + public Boolean getIsAudioDirect() { + return isAudioDirect; + } + + public void setIsAudioDirect(@javax.annotation.Nullable Boolean isAudioDirect) { + this.isAudioDirect = isAudioDirect; + } + + + public TranscodingInfo bitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + /** + * Gets or sets the bitrate. + * @return bitrate + */ + @javax.annotation.Nullable + public Integer getBitrate() { + return bitrate; + } + + public void setBitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + } + + + public TranscodingInfo framerate(@javax.annotation.Nullable Float framerate) { + this.framerate = framerate; + return this; + } + + /** + * Gets or sets the framerate. + * @return framerate + */ + @javax.annotation.Nullable + public Float getFramerate() { + return framerate; + } + + public void setFramerate(@javax.annotation.Nullable Float framerate) { + this.framerate = framerate; + } + + + public TranscodingInfo completionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + return this; + } + + /** + * Gets or sets the completion percentage. + * @return completionPercentage + */ + @javax.annotation.Nullable + public Double getCompletionPercentage() { + return completionPercentage; + } + + public void setCompletionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + } + + + public TranscodingInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the video width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public TranscodingInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the video height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public TranscodingInfo audioChannels(@javax.annotation.Nullable Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + /** + * Gets or sets the audio channels. + * @return audioChannels + */ + @javax.annotation.Nullable + public Integer getAudioChannels() { + return audioChannels; + } + + public void setAudioChannels(@javax.annotation.Nullable Integer audioChannels) { + this.audioChannels = audioChannels; + } + + + public TranscodingInfo hardwareAccelerationType(@javax.annotation.Nullable HardwareAccelerationType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + return this; + } + + /** + * Gets or sets the hardware acceleration type. + * @return hardwareAccelerationType + */ + @javax.annotation.Nullable + public HardwareAccelerationType getHardwareAccelerationType() { + return hardwareAccelerationType; + } + + public void setHardwareAccelerationType(@javax.annotation.Nullable HardwareAccelerationType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + } + + + public TranscodingInfo transcodeReasons(@javax.annotation.Nullable TranscodeReasonsEnum transcodeReasons) { + this.transcodeReasons = transcodeReasons; + return this; + } + + public TranscodingInfo addTranscodeReasonsItem(TranscodeReason transcodeReasonsItem) { + if (this.transcodeReasons == null) { + this.transcodeReasons = new ArrayList<>(); + } + this.transcodeReasons.add(transcodeReasonsItem); + return this; + } + + /** + * Gets or sets the transcode reasons. + * @return transcodeReasons + */ + @javax.annotation.Nullable + public TranscodeReasonsEnum getTranscodeReasons() { + return transcodeReasons; + } + + public void setTranscodeReasons(@javax.annotation.Nullable TranscodeReasonsEnum transcodeReasons) { + this.transcodeReasons = transcodeReasons; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscodingInfo transcodingInfo = (TranscodingInfo) o; + return Objects.equals(this.audioCodec, transcodingInfo.audioCodec) && + Objects.equals(this.videoCodec, transcodingInfo.videoCodec) && + Objects.equals(this.container, transcodingInfo.container) && + Objects.equals(this.isVideoDirect, transcodingInfo.isVideoDirect) && + Objects.equals(this.isAudioDirect, transcodingInfo.isAudioDirect) && + Objects.equals(this.bitrate, transcodingInfo.bitrate) && + Objects.equals(this.framerate, transcodingInfo.framerate) && + Objects.equals(this.completionPercentage, transcodingInfo.completionPercentage) && + Objects.equals(this.width, transcodingInfo.width) && + Objects.equals(this.height, transcodingInfo.height) && + Objects.equals(this.audioChannels, transcodingInfo.audioChannels) && + Objects.equals(this.hardwareAccelerationType, transcodingInfo.hardwareAccelerationType) && + Objects.equals(this.transcodeReasons, transcodingInfo.transcodeReasons); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(audioCodec, videoCodec, container, isVideoDirect, isAudioDirect, bitrate, framerate, completionPercentage, width, height, audioChannels, hardwareAccelerationType, transcodeReasons); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TranscodingInfo {\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" isVideoDirect: ").append(toIndentedString(isVideoDirect)).append("\n"); + sb.append(" isAudioDirect: ").append(toIndentedString(isAudioDirect)).append("\n"); + sb.append(" bitrate: ").append(toIndentedString(bitrate)).append("\n"); + sb.append(" framerate: ").append(toIndentedString(framerate)).append("\n"); + sb.append(" completionPercentage: ").append(toIndentedString(completionPercentage)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" audioChannels: ").append(toIndentedString(audioChannels)).append("\n"); + sb.append(" hardwareAccelerationType: ").append(toIndentedString(hardwareAccelerationType)).append("\n"); + sb.append(" transcodeReasons: ").append(toIndentedString(transcodeReasons)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AudioCodec"); + openapiFields.add("VideoCodec"); + openapiFields.add("Container"); + openapiFields.add("IsVideoDirect"); + openapiFields.add("IsAudioDirect"); + openapiFields.add("Bitrate"); + openapiFields.add("Framerate"); + openapiFields.add("CompletionPercentage"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("AudioChannels"); + openapiFields.add("HardwareAccelerationType"); + openapiFields.add("TranscodeReasons"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TranscodingInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TranscodingInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TranscodingInfo is not found in the empty JSON string", TranscodingInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TranscodingInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TranscodingInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + // validate the optional field `HardwareAccelerationType` + if (jsonObj.get("HardwareAccelerationType") != null && !jsonObj.get("HardwareAccelerationType").isJsonNull()) { + HardwareAccelerationType.validateJsonElement(jsonObj.get("HardwareAccelerationType")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("TranscodeReasons") != null && !jsonObj.get("TranscodeReasons").isJsonNull() && !jsonObj.get("TranscodeReasons").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodeReasons` to be an array in the JSON string but got `%s`", jsonObj.get("TranscodeReasons").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TranscodingInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TranscodingInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TranscodingInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TranscodingInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TranscodingInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TranscodingInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TranscodingInfo + * @throws IOException if the JSON string is invalid with respect to TranscodingInfo + */ + public static TranscodingInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TranscodingInfo.class); + } + + /** + * Convert an instance of TranscodingInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingProfile.java new file mode 100644 index 0000000000000..2448834e7ca69 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TranscodingProfile.java @@ -0,0 +1,704 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.client.model.EncodingContext; +import org.openapitools.client.model.MediaStreamProtocol; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.client.model.TranscodeSeekInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A class for transcoding profile information. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TranscodingProfile { + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_PROTOCOL = "Protocol"; + @SerializedName(SERIALIZED_NAME_PROTOCOL) + @javax.annotation.Nullable + private MediaStreamProtocol protocol; + + public static final String SERIALIZED_NAME_ESTIMATE_CONTENT_LENGTH = "EstimateContentLength"; + @SerializedName(SERIALIZED_NAME_ESTIMATE_CONTENT_LENGTH) + @javax.annotation.Nullable + private Boolean estimateContentLength = false; + + public static final String SERIALIZED_NAME_ENABLE_MPEGTS_M2_TS_MODE = "EnableMpegtsM2TsMode"; + @SerializedName(SERIALIZED_NAME_ENABLE_MPEGTS_M2_TS_MODE) + @javax.annotation.Nullable + private Boolean enableMpegtsM2TsMode = false; + + public static final String SERIALIZED_NAME_TRANSCODE_SEEK_INFO = "TranscodeSeekInfo"; + @SerializedName(SERIALIZED_NAME_TRANSCODE_SEEK_INFO) + @javax.annotation.Nullable + private TranscodeSeekInfo transcodeSeekInfo = TranscodeSeekInfo.AUTO; + + public static final String SERIALIZED_NAME_COPY_TIMESTAMPS = "CopyTimestamps"; + @SerializedName(SERIALIZED_NAME_COPY_TIMESTAMPS) + @javax.annotation.Nullable + private Boolean copyTimestamps = false; + + public static final String SERIALIZED_NAME_CONTEXT = "Context"; + @SerializedName(SERIALIZED_NAME_CONTEXT) + @javax.annotation.Nullable + private EncodingContext context = EncodingContext.STREAMING; + + public static final String SERIALIZED_NAME_ENABLE_SUBTITLES_IN_MANIFEST = "EnableSubtitlesInManifest"; + @SerializedName(SERIALIZED_NAME_ENABLE_SUBTITLES_IN_MANIFEST) + @javax.annotation.Nullable + private Boolean enableSubtitlesInManifest = false; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private String maxAudioChannels; + + public static final String SERIALIZED_NAME_MIN_SEGMENTS = "MinSegments"; + @SerializedName(SERIALIZED_NAME_MIN_SEGMENTS) + @javax.annotation.Nullable + private Integer minSegments = 0; + + public static final String SERIALIZED_NAME_SEGMENT_LENGTH = "SegmentLength"; + @SerializedName(SERIALIZED_NAME_SEGMENT_LENGTH) + @javax.annotation.Nullable + private Integer segmentLength = 0; + + public static final String SERIALIZED_NAME_BREAK_ON_NON_KEY_FRAMES = "BreakOnNonKeyFrames"; + @SerializedName(SERIALIZED_NAME_BREAK_ON_NON_KEY_FRAMES) + @javax.annotation.Nullable + private Boolean breakOnNonKeyFrames = false; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_AUDIO_VBR_ENCODING = "EnableAudioVbrEncoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUDIO_VBR_ENCODING) + @javax.annotation.Nullable + private Boolean enableAudioVbrEncoding = true; + + public TranscodingProfile() { + } + + public TranscodingProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Gets or sets the container. + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public TranscodingProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the DLNA profile type. + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + public TranscodingProfile videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Gets or sets the video codec. + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public TranscodingProfile audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Gets or sets the audio codec. + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public TranscodingProfile protocol(@javax.annotation.Nullable MediaStreamProtocol protocol) { + this.protocol = protocol; + return this; + } + + /** + * Media streaming protocol. Lowercase for backwards compatibility. + * @return protocol + */ + @javax.annotation.Nullable + public MediaStreamProtocol getProtocol() { + return protocol; + } + + public void setProtocol(@javax.annotation.Nullable MediaStreamProtocol protocol) { + this.protocol = protocol; + } + + + public TranscodingProfile estimateContentLength(@javax.annotation.Nullable Boolean estimateContentLength) { + this.estimateContentLength = estimateContentLength; + return this; + } + + /** + * Gets or sets a value indicating whether the content length should be estimated. + * @return estimateContentLength + */ + @javax.annotation.Nullable + public Boolean getEstimateContentLength() { + return estimateContentLength; + } + + public void setEstimateContentLength(@javax.annotation.Nullable Boolean estimateContentLength) { + this.estimateContentLength = estimateContentLength; + } + + + public TranscodingProfile enableMpegtsM2TsMode(@javax.annotation.Nullable Boolean enableMpegtsM2TsMode) { + this.enableMpegtsM2TsMode = enableMpegtsM2TsMode; + return this; + } + + /** + * Gets or sets a value indicating whether M2TS mode is enabled. + * @return enableMpegtsM2TsMode + */ + @javax.annotation.Nullable + public Boolean getEnableMpegtsM2TsMode() { + return enableMpegtsM2TsMode; + } + + public void setEnableMpegtsM2TsMode(@javax.annotation.Nullable Boolean enableMpegtsM2TsMode) { + this.enableMpegtsM2TsMode = enableMpegtsM2TsMode; + } + + + public TranscodingProfile transcodeSeekInfo(@javax.annotation.Nullable TranscodeSeekInfo transcodeSeekInfo) { + this.transcodeSeekInfo = transcodeSeekInfo; + return this; + } + + /** + * Gets or sets the transcoding seek info mode. + * @return transcodeSeekInfo + */ + @javax.annotation.Nullable + public TranscodeSeekInfo getTranscodeSeekInfo() { + return transcodeSeekInfo; + } + + public void setTranscodeSeekInfo(@javax.annotation.Nullable TranscodeSeekInfo transcodeSeekInfo) { + this.transcodeSeekInfo = transcodeSeekInfo; + } + + + public TranscodingProfile copyTimestamps(@javax.annotation.Nullable Boolean copyTimestamps) { + this.copyTimestamps = copyTimestamps; + return this; + } + + /** + * Gets or sets a value indicating whether timestamps should be copied. + * @return copyTimestamps + */ + @javax.annotation.Nullable + public Boolean getCopyTimestamps() { + return copyTimestamps; + } + + public void setCopyTimestamps(@javax.annotation.Nullable Boolean copyTimestamps) { + this.copyTimestamps = copyTimestamps; + } + + + public TranscodingProfile context(@javax.annotation.Nullable EncodingContext context) { + this.context = context; + return this; + } + + /** + * Gets or sets the encoding context. + * @return context + */ + @javax.annotation.Nullable + public EncodingContext getContext() { + return context; + } + + public void setContext(@javax.annotation.Nullable EncodingContext context) { + this.context = context; + } + + + public TranscodingProfile enableSubtitlesInManifest(@javax.annotation.Nullable Boolean enableSubtitlesInManifest) { + this.enableSubtitlesInManifest = enableSubtitlesInManifest; + return this; + } + + /** + * Gets or sets a value indicating whether subtitles are allowed in the manifest. + * @return enableSubtitlesInManifest + */ + @javax.annotation.Nullable + public Boolean getEnableSubtitlesInManifest() { + return enableSubtitlesInManifest; + } + + public void setEnableSubtitlesInManifest(@javax.annotation.Nullable Boolean enableSubtitlesInManifest) { + this.enableSubtitlesInManifest = enableSubtitlesInManifest; + } + + + public TranscodingProfile maxAudioChannels(@javax.annotation.Nullable String maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Gets or sets the maximum audio channels. + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public String getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable String maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public TranscodingProfile minSegments(@javax.annotation.Nullable Integer minSegments) { + this.minSegments = minSegments; + return this; + } + + /** + * Gets or sets the minimum amount of segments. + * @return minSegments + */ + @javax.annotation.Nullable + public Integer getMinSegments() { + return minSegments; + } + + public void setMinSegments(@javax.annotation.Nullable Integer minSegments) { + this.minSegments = minSegments; + } + + + public TranscodingProfile segmentLength(@javax.annotation.Nullable Integer segmentLength) { + this.segmentLength = segmentLength; + return this; + } + + /** + * Gets or sets the segment length. + * @return segmentLength + */ + @javax.annotation.Nullable + public Integer getSegmentLength() { + return segmentLength; + } + + public void setSegmentLength(@javax.annotation.Nullable Integer segmentLength) { + this.segmentLength = segmentLength; + } + + + public TranscodingProfile breakOnNonKeyFrames(@javax.annotation.Nullable Boolean breakOnNonKeyFrames) { + this.breakOnNonKeyFrames = breakOnNonKeyFrames; + return this; + } + + /** + * Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported. + * @return breakOnNonKeyFrames + */ + @javax.annotation.Nullable + public Boolean getBreakOnNonKeyFrames() { + return breakOnNonKeyFrames; + } + + public void setBreakOnNonKeyFrames(@javax.annotation.Nullable Boolean breakOnNonKeyFrames) { + this.breakOnNonKeyFrames = breakOnNonKeyFrames; + } + + + public TranscodingProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public TranscodingProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Gets or sets the profile conditions. + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public TranscodingProfile enableAudioVbrEncoding(@javax.annotation.Nullable Boolean enableAudioVbrEncoding) { + this.enableAudioVbrEncoding = enableAudioVbrEncoding; + return this; + } + + /** + * Gets or sets a value indicating whether variable bitrate encoding is supported. + * @return enableAudioVbrEncoding + */ + @javax.annotation.Nullable + public Boolean getEnableAudioVbrEncoding() { + return enableAudioVbrEncoding; + } + + public void setEnableAudioVbrEncoding(@javax.annotation.Nullable Boolean enableAudioVbrEncoding) { + this.enableAudioVbrEncoding = enableAudioVbrEncoding; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscodingProfile transcodingProfile = (TranscodingProfile) o; + return Objects.equals(this.container, transcodingProfile.container) && + Objects.equals(this.type, transcodingProfile.type) && + Objects.equals(this.videoCodec, transcodingProfile.videoCodec) && + Objects.equals(this.audioCodec, transcodingProfile.audioCodec) && + Objects.equals(this.protocol, transcodingProfile.protocol) && + Objects.equals(this.estimateContentLength, transcodingProfile.estimateContentLength) && + Objects.equals(this.enableMpegtsM2TsMode, transcodingProfile.enableMpegtsM2TsMode) && + Objects.equals(this.transcodeSeekInfo, transcodingProfile.transcodeSeekInfo) && + Objects.equals(this.copyTimestamps, transcodingProfile.copyTimestamps) && + Objects.equals(this.context, transcodingProfile.context) && + Objects.equals(this.enableSubtitlesInManifest, transcodingProfile.enableSubtitlesInManifest) && + Objects.equals(this.maxAudioChannels, transcodingProfile.maxAudioChannels) && + Objects.equals(this.minSegments, transcodingProfile.minSegments) && + Objects.equals(this.segmentLength, transcodingProfile.segmentLength) && + Objects.equals(this.breakOnNonKeyFrames, transcodingProfile.breakOnNonKeyFrames) && + Objects.equals(this.conditions, transcodingProfile.conditions) && + Objects.equals(this.enableAudioVbrEncoding, transcodingProfile.enableAudioVbrEncoding); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(container, type, videoCodec, audioCodec, protocol, estimateContentLength, enableMpegtsM2TsMode, transcodeSeekInfo, copyTimestamps, context, enableSubtitlesInManifest, maxAudioChannels, minSegments, segmentLength, breakOnNonKeyFrames, conditions, enableAudioVbrEncoding); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TranscodingProfile {\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n"); + sb.append(" estimateContentLength: ").append(toIndentedString(estimateContentLength)).append("\n"); + sb.append(" enableMpegtsM2TsMode: ").append(toIndentedString(enableMpegtsM2TsMode)).append("\n"); + sb.append(" transcodeSeekInfo: ").append(toIndentedString(transcodeSeekInfo)).append("\n"); + sb.append(" copyTimestamps: ").append(toIndentedString(copyTimestamps)).append("\n"); + sb.append(" context: ").append(toIndentedString(context)).append("\n"); + sb.append(" enableSubtitlesInManifest: ").append(toIndentedString(enableSubtitlesInManifest)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" minSegments: ").append(toIndentedString(minSegments)).append("\n"); + sb.append(" segmentLength: ").append(toIndentedString(segmentLength)).append("\n"); + sb.append(" breakOnNonKeyFrames: ").append(toIndentedString(breakOnNonKeyFrames)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" enableAudioVbrEncoding: ").append(toIndentedString(enableAudioVbrEncoding)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Container"); + openapiFields.add("Type"); + openapiFields.add("VideoCodec"); + openapiFields.add("AudioCodec"); + openapiFields.add("Protocol"); + openapiFields.add("EstimateContentLength"); + openapiFields.add("EnableMpegtsM2TsMode"); + openapiFields.add("TranscodeSeekInfo"); + openapiFields.add("CopyTimestamps"); + openapiFields.add("Context"); + openapiFields.add("EnableSubtitlesInManifest"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("MinSegments"); + openapiFields.add("SegmentLength"); + openapiFields.add("BreakOnNonKeyFrames"); + openapiFields.add("Conditions"); + openapiFields.add("EnableAudioVbrEncoding"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TranscodingProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TranscodingProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TranscodingProfile is not found in the empty JSON string", TranscodingProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TranscodingProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TranscodingProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + // validate the optional field `Protocol` + if (jsonObj.get("Protocol") != null && !jsonObj.get("Protocol").isJsonNull()) { + MediaStreamProtocol.validateJsonElement(jsonObj.get("Protocol")); + } + // validate the optional field `TranscodeSeekInfo` + if (jsonObj.get("TranscodeSeekInfo") != null && !jsonObj.get("TranscodeSeekInfo").isJsonNull()) { + TranscodeSeekInfo.validateJsonElement(jsonObj.get("TranscodeSeekInfo")); + } + // validate the optional field `Context` + if (jsonObj.get("Context") != null && !jsonObj.get("Context").isJsonNull()) { + EncodingContext.validateJsonElement(jsonObj.get("Context")); + } + if ((jsonObj.get("MaxAudioChannels") != null && !jsonObj.get("MaxAudioChannels").isJsonNull()) && !jsonObj.get("MaxAudioChannels").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MaxAudioChannels` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MaxAudioChannels").toString())); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TranscodingProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TranscodingProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TranscodingProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TranscodingProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TranscodingProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TranscodingProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of TranscodingProfile + * @throws IOException if the JSON string is invalid with respect to TranscodingProfile + */ + public static TranscodingProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TranscodingProfile.class); + } + + /** + * Convert an instance of TranscodingProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java new file mode 100644 index 0000000000000..ab233f1889c22 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TransportStreamTimestamp + */ +@JsonAdapter(TransportStreamTimestamp.Adapter.class) +public enum TransportStreamTimestamp { + + NONE("None"), + + ZERO("Zero"), + + VALID("Valid"); + + private String value; + + TransportStreamTimestamp(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TransportStreamTimestamp fromValue(String value) { + for (TransportStreamTimestamp b : TransportStreamTimestamp.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TransportStreamTimestamp enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TransportStreamTimestamp read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TransportStreamTimestamp.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TransportStreamTimestamp.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayInfo.java new file mode 100644 index 0000000000000..227b7aec28f81 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayInfo.java @@ -0,0 +1,365 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An entity representing the metadata for a group of trickplay tiles. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrickplayInfo { + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_TILE_WIDTH = "TileWidth"; + @SerializedName(SERIALIZED_NAME_TILE_WIDTH) + @javax.annotation.Nullable + private Integer tileWidth; + + public static final String SERIALIZED_NAME_TILE_HEIGHT = "TileHeight"; + @SerializedName(SERIALIZED_NAME_TILE_HEIGHT) + @javax.annotation.Nullable + private Integer tileHeight; + + public static final String SERIALIZED_NAME_THUMBNAIL_COUNT = "ThumbnailCount"; + @SerializedName(SERIALIZED_NAME_THUMBNAIL_COUNT) + @javax.annotation.Nullable + private Integer thumbnailCount; + + public static final String SERIALIZED_NAME_INTERVAL = "Interval"; + @SerializedName(SERIALIZED_NAME_INTERVAL) + @javax.annotation.Nullable + private Integer interval; + + public static final String SERIALIZED_NAME_BANDWIDTH = "Bandwidth"; + @SerializedName(SERIALIZED_NAME_BANDWIDTH) + @javax.annotation.Nullable + private Integer bandwidth; + + public TrickplayInfo() { + } + + public TrickplayInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets width of an individual thumbnail. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public TrickplayInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets height of an individual thumbnail. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public TrickplayInfo tileWidth(@javax.annotation.Nullable Integer tileWidth) { + this.tileWidth = tileWidth; + return this; + } + + /** + * Gets or sets amount of thumbnails per row. + * @return tileWidth + */ + @javax.annotation.Nullable + public Integer getTileWidth() { + return tileWidth; + } + + public void setTileWidth(@javax.annotation.Nullable Integer tileWidth) { + this.tileWidth = tileWidth; + } + + + public TrickplayInfo tileHeight(@javax.annotation.Nullable Integer tileHeight) { + this.tileHeight = tileHeight; + return this; + } + + /** + * Gets or sets amount of thumbnails per column. + * @return tileHeight + */ + @javax.annotation.Nullable + public Integer getTileHeight() { + return tileHeight; + } + + public void setTileHeight(@javax.annotation.Nullable Integer tileHeight) { + this.tileHeight = tileHeight; + } + + + public TrickplayInfo thumbnailCount(@javax.annotation.Nullable Integer thumbnailCount) { + this.thumbnailCount = thumbnailCount; + return this; + } + + /** + * Gets or sets total amount of non-black thumbnails. + * @return thumbnailCount + */ + @javax.annotation.Nullable + public Integer getThumbnailCount() { + return thumbnailCount; + } + + public void setThumbnailCount(@javax.annotation.Nullable Integer thumbnailCount) { + this.thumbnailCount = thumbnailCount; + } + + + public TrickplayInfo interval(@javax.annotation.Nullable Integer interval) { + this.interval = interval; + return this; + } + + /** + * Gets or sets interval in milliseconds between each trickplay thumbnail. + * @return interval + */ + @javax.annotation.Nullable + public Integer getInterval() { + return interval; + } + + public void setInterval(@javax.annotation.Nullable Integer interval) { + this.interval = interval; + } + + + public TrickplayInfo bandwidth(@javax.annotation.Nullable Integer bandwidth) { + this.bandwidth = bandwidth; + return this; + } + + /** + * Gets or sets peak bandwith usage in bits per second. + * @return bandwidth + */ + @javax.annotation.Nullable + public Integer getBandwidth() { + return bandwidth; + } + + public void setBandwidth(@javax.annotation.Nullable Integer bandwidth) { + this.bandwidth = bandwidth; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrickplayInfo trickplayInfo = (TrickplayInfo) o; + return Objects.equals(this.width, trickplayInfo.width) && + Objects.equals(this.height, trickplayInfo.height) && + Objects.equals(this.tileWidth, trickplayInfo.tileWidth) && + Objects.equals(this.tileHeight, trickplayInfo.tileHeight) && + Objects.equals(this.thumbnailCount, trickplayInfo.thumbnailCount) && + Objects.equals(this.interval, trickplayInfo.interval) && + Objects.equals(this.bandwidth, trickplayInfo.bandwidth); + } + + @Override + public int hashCode() { + return Objects.hash(width, height, tileWidth, tileHeight, thumbnailCount, interval, bandwidth); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrickplayInfo {\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" tileWidth: ").append(toIndentedString(tileWidth)).append("\n"); + sb.append(" tileHeight: ").append(toIndentedString(tileHeight)).append("\n"); + sb.append(" thumbnailCount: ").append(toIndentedString(thumbnailCount)).append("\n"); + sb.append(" interval: ").append(toIndentedString(interval)).append("\n"); + sb.append(" bandwidth: ").append(toIndentedString(bandwidth)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("TileWidth"); + openapiFields.add("TileHeight"); + openapiFields.add("ThumbnailCount"); + openapiFields.add("Interval"); + openapiFields.add("Bandwidth"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrickplayInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrickplayInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrickplayInfo is not found in the empty JSON string", TrickplayInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrickplayInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrickplayInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrickplayInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrickplayInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrickplayInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrickplayInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrickplayInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrickplayInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrickplayInfo + * @throws IOException if the JSON string is invalid with respect to TrickplayInfo + */ + public static TrickplayInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrickplayInfo.class); + } + + /** + * Convert an instance of TrickplayInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayOptions.java new file mode 100644 index 0000000000000..2846b65593cd0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayOptions.java @@ -0,0 +1,524 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ProcessPriorityClass; +import org.openapitools.client.model.TrickplayScanBehavior; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TrickplayOptions. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrickplayOptions { + public static final String SERIALIZED_NAME_ENABLE_HW_ACCELERATION = "EnableHwAcceleration"; + @SerializedName(SERIALIZED_NAME_ENABLE_HW_ACCELERATION) + @javax.annotation.Nullable + private Boolean enableHwAcceleration; + + public static final String SERIALIZED_NAME_ENABLE_HW_ENCODING = "EnableHwEncoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_HW_ENCODING) + @javax.annotation.Nullable + private Boolean enableHwEncoding; + + public static final String SERIALIZED_NAME_ENABLE_KEY_FRAME_ONLY_EXTRACTION = "EnableKeyFrameOnlyExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_KEY_FRAME_ONLY_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableKeyFrameOnlyExtraction; + + public static final String SERIALIZED_NAME_SCAN_BEHAVIOR = "ScanBehavior"; + @SerializedName(SERIALIZED_NAME_SCAN_BEHAVIOR) + @javax.annotation.Nullable + private TrickplayScanBehavior scanBehavior; + + public static final String SERIALIZED_NAME_PROCESS_PRIORITY = "ProcessPriority"; + @SerializedName(SERIALIZED_NAME_PROCESS_PRIORITY) + @javax.annotation.Nullable + private ProcessPriorityClass processPriority; + + public static final String SERIALIZED_NAME_INTERVAL = "Interval"; + @SerializedName(SERIALIZED_NAME_INTERVAL) + @javax.annotation.Nullable + private Integer interval; + + public static final String SERIALIZED_NAME_WIDTH_RESOLUTIONS = "WidthResolutions"; + @SerializedName(SERIALIZED_NAME_WIDTH_RESOLUTIONS) + @javax.annotation.Nullable + private List widthResolutions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TILE_WIDTH = "TileWidth"; + @SerializedName(SERIALIZED_NAME_TILE_WIDTH) + @javax.annotation.Nullable + private Integer tileWidth; + + public static final String SERIALIZED_NAME_TILE_HEIGHT = "TileHeight"; + @SerializedName(SERIALIZED_NAME_TILE_HEIGHT) + @javax.annotation.Nullable + private Integer tileHeight; + + public static final String SERIALIZED_NAME_QSCALE = "Qscale"; + @SerializedName(SERIALIZED_NAME_QSCALE) + @javax.annotation.Nullable + private Integer qscale; + + public static final String SERIALIZED_NAME_JPEG_QUALITY = "JpegQuality"; + @SerializedName(SERIALIZED_NAME_JPEG_QUALITY) + @javax.annotation.Nullable + private Integer jpegQuality; + + public static final String SERIALIZED_NAME_PROCESS_THREADS = "ProcessThreads"; + @SerializedName(SERIALIZED_NAME_PROCESS_THREADS) + @javax.annotation.Nullable + private Integer processThreads; + + public TrickplayOptions() { + } + + public TrickplayOptions enableHwAcceleration(@javax.annotation.Nullable Boolean enableHwAcceleration) { + this.enableHwAcceleration = enableHwAcceleration; + return this; + } + + /** + * Gets or sets a value indicating whether or not to use HW acceleration. + * @return enableHwAcceleration + */ + @javax.annotation.Nullable + public Boolean getEnableHwAcceleration() { + return enableHwAcceleration; + } + + public void setEnableHwAcceleration(@javax.annotation.Nullable Boolean enableHwAcceleration) { + this.enableHwAcceleration = enableHwAcceleration; + } + + + public TrickplayOptions enableHwEncoding(@javax.annotation.Nullable Boolean enableHwEncoding) { + this.enableHwEncoding = enableHwEncoding; + return this; + } + + /** + * Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding. + * @return enableHwEncoding + */ + @javax.annotation.Nullable + public Boolean getEnableHwEncoding() { + return enableHwEncoding; + } + + public void setEnableHwEncoding(@javax.annotation.Nullable Boolean enableHwEncoding) { + this.enableHwEncoding = enableHwEncoding; + } + + + public TrickplayOptions enableKeyFrameOnlyExtraction(@javax.annotation.Nullable Boolean enableKeyFrameOnlyExtraction) { + this.enableKeyFrameOnlyExtraction = enableKeyFrameOnlyExtraction; + return this; + } + + /** + * Gets or sets a value indicating whether to only extract key frames. Significantly faster, but is not compatible with all decoders and/or video files. + * @return enableKeyFrameOnlyExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableKeyFrameOnlyExtraction() { + return enableKeyFrameOnlyExtraction; + } + + public void setEnableKeyFrameOnlyExtraction(@javax.annotation.Nullable Boolean enableKeyFrameOnlyExtraction) { + this.enableKeyFrameOnlyExtraction = enableKeyFrameOnlyExtraction; + } + + + public TrickplayOptions scanBehavior(@javax.annotation.Nullable TrickplayScanBehavior scanBehavior) { + this.scanBehavior = scanBehavior; + return this; + } + + /** + * Gets or sets the behavior used by trickplay provider on library scan/update. + * @return scanBehavior + */ + @javax.annotation.Nullable + public TrickplayScanBehavior getScanBehavior() { + return scanBehavior; + } + + public void setScanBehavior(@javax.annotation.Nullable TrickplayScanBehavior scanBehavior) { + this.scanBehavior = scanBehavior; + } + + + public TrickplayOptions processPriority(@javax.annotation.Nullable ProcessPriorityClass processPriority) { + this.processPriority = processPriority; + return this; + } + + /** + * Gets or sets the process priority for the ffmpeg process. + * @return processPriority + */ + @javax.annotation.Nullable + public ProcessPriorityClass getProcessPriority() { + return processPriority; + } + + public void setProcessPriority(@javax.annotation.Nullable ProcessPriorityClass processPriority) { + this.processPriority = processPriority; + } + + + public TrickplayOptions interval(@javax.annotation.Nullable Integer interval) { + this.interval = interval; + return this; + } + + /** + * Gets or sets the interval, in ms, between each new trickplay image. + * @return interval + */ + @javax.annotation.Nullable + public Integer getInterval() { + return interval; + } + + public void setInterval(@javax.annotation.Nullable Integer interval) { + this.interval = interval; + } + + + public TrickplayOptions widthResolutions(@javax.annotation.Nullable List widthResolutions) { + this.widthResolutions = widthResolutions; + return this; + } + + public TrickplayOptions addWidthResolutionsItem(Integer widthResolutionsItem) { + if (this.widthResolutions == null) { + this.widthResolutions = new ArrayList<>(); + } + this.widthResolutions.add(widthResolutionsItem); + return this; + } + + /** + * Gets or sets the target width resolutions, in px, to generates preview images for. + * @return widthResolutions + */ + @javax.annotation.Nullable + public List getWidthResolutions() { + return widthResolutions; + } + + public void setWidthResolutions(@javax.annotation.Nullable List widthResolutions) { + this.widthResolutions = widthResolutions; + } + + + public TrickplayOptions tileWidth(@javax.annotation.Nullable Integer tileWidth) { + this.tileWidth = tileWidth; + return this; + } + + /** + * Gets or sets number of tile images to allow in X dimension. + * @return tileWidth + */ + @javax.annotation.Nullable + public Integer getTileWidth() { + return tileWidth; + } + + public void setTileWidth(@javax.annotation.Nullable Integer tileWidth) { + this.tileWidth = tileWidth; + } + + + public TrickplayOptions tileHeight(@javax.annotation.Nullable Integer tileHeight) { + this.tileHeight = tileHeight; + return this; + } + + /** + * Gets or sets number of tile images to allow in Y dimension. + * @return tileHeight + */ + @javax.annotation.Nullable + public Integer getTileHeight() { + return tileHeight; + } + + public void setTileHeight(@javax.annotation.Nullable Integer tileHeight) { + this.tileHeight = tileHeight; + } + + + public TrickplayOptions qscale(@javax.annotation.Nullable Integer qscale) { + this.qscale = qscale; + return this; + } + + /** + * Gets or sets the ffmpeg output quality level. + * @return qscale + */ + @javax.annotation.Nullable + public Integer getQscale() { + return qscale; + } + + public void setQscale(@javax.annotation.Nullable Integer qscale) { + this.qscale = qscale; + } + + + public TrickplayOptions jpegQuality(@javax.annotation.Nullable Integer jpegQuality) { + this.jpegQuality = jpegQuality; + return this; + } + + /** + * Gets or sets the jpeg quality to use for image tiles. + * @return jpegQuality + */ + @javax.annotation.Nullable + public Integer getJpegQuality() { + return jpegQuality; + } + + public void setJpegQuality(@javax.annotation.Nullable Integer jpegQuality) { + this.jpegQuality = jpegQuality; + } + + + public TrickplayOptions processThreads(@javax.annotation.Nullable Integer processThreads) { + this.processThreads = processThreads; + return this; + } + + /** + * Gets or sets the number of threads to be used by ffmpeg. + * @return processThreads + */ + @javax.annotation.Nullable + public Integer getProcessThreads() { + return processThreads; + } + + public void setProcessThreads(@javax.annotation.Nullable Integer processThreads) { + this.processThreads = processThreads; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrickplayOptions trickplayOptions = (TrickplayOptions) o; + return Objects.equals(this.enableHwAcceleration, trickplayOptions.enableHwAcceleration) && + Objects.equals(this.enableHwEncoding, trickplayOptions.enableHwEncoding) && + Objects.equals(this.enableKeyFrameOnlyExtraction, trickplayOptions.enableKeyFrameOnlyExtraction) && + Objects.equals(this.scanBehavior, trickplayOptions.scanBehavior) && + Objects.equals(this.processPriority, trickplayOptions.processPriority) && + Objects.equals(this.interval, trickplayOptions.interval) && + Objects.equals(this.widthResolutions, trickplayOptions.widthResolutions) && + Objects.equals(this.tileWidth, trickplayOptions.tileWidth) && + Objects.equals(this.tileHeight, trickplayOptions.tileHeight) && + Objects.equals(this.qscale, trickplayOptions.qscale) && + Objects.equals(this.jpegQuality, trickplayOptions.jpegQuality) && + Objects.equals(this.processThreads, trickplayOptions.processThreads); + } + + @Override + public int hashCode() { + return Objects.hash(enableHwAcceleration, enableHwEncoding, enableKeyFrameOnlyExtraction, scanBehavior, processPriority, interval, widthResolutions, tileWidth, tileHeight, qscale, jpegQuality, processThreads); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrickplayOptions {\n"); + sb.append(" enableHwAcceleration: ").append(toIndentedString(enableHwAcceleration)).append("\n"); + sb.append(" enableHwEncoding: ").append(toIndentedString(enableHwEncoding)).append("\n"); + sb.append(" enableKeyFrameOnlyExtraction: ").append(toIndentedString(enableKeyFrameOnlyExtraction)).append("\n"); + sb.append(" scanBehavior: ").append(toIndentedString(scanBehavior)).append("\n"); + sb.append(" processPriority: ").append(toIndentedString(processPriority)).append("\n"); + sb.append(" interval: ").append(toIndentedString(interval)).append("\n"); + sb.append(" widthResolutions: ").append(toIndentedString(widthResolutions)).append("\n"); + sb.append(" tileWidth: ").append(toIndentedString(tileWidth)).append("\n"); + sb.append(" tileHeight: ").append(toIndentedString(tileHeight)).append("\n"); + sb.append(" qscale: ").append(toIndentedString(qscale)).append("\n"); + sb.append(" jpegQuality: ").append(toIndentedString(jpegQuality)).append("\n"); + sb.append(" processThreads: ").append(toIndentedString(processThreads)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnableHwAcceleration"); + openapiFields.add("EnableHwEncoding"); + openapiFields.add("EnableKeyFrameOnlyExtraction"); + openapiFields.add("ScanBehavior"); + openapiFields.add("ProcessPriority"); + openapiFields.add("Interval"); + openapiFields.add("WidthResolutions"); + openapiFields.add("TileWidth"); + openapiFields.add("TileHeight"); + openapiFields.add("Qscale"); + openapiFields.add("JpegQuality"); + openapiFields.add("ProcessThreads"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrickplayOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrickplayOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrickplayOptions is not found in the empty JSON string", TrickplayOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrickplayOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrickplayOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ScanBehavior` + if (jsonObj.get("ScanBehavior") != null && !jsonObj.get("ScanBehavior").isJsonNull()) { + TrickplayScanBehavior.validateJsonElement(jsonObj.get("ScanBehavior")); + } + // validate the optional field `ProcessPriority` + if (jsonObj.get("ProcessPriority") != null && !jsonObj.get("ProcessPriority").isJsonNull()) { + ProcessPriorityClass.validateJsonElement(jsonObj.get("ProcessPriority")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("WidthResolutions") != null && !jsonObj.get("WidthResolutions").isJsonNull() && !jsonObj.get("WidthResolutions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `WidthResolutions` to be an array in the JSON string but got `%s`", jsonObj.get("WidthResolutions").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrickplayOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrickplayOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrickplayOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrickplayOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrickplayOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrickplayOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrickplayOptions + * @throws IOException if the JSON string is invalid with respect to TrickplayOptions + */ + public static TrickplayOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrickplayOptions.class); + } + + /** + * Convert an instance of TrickplayOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayScanBehavior.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayScanBehavior.java new file mode 100644 index 0000000000000..c4ffe0d501af3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TrickplayScanBehavior.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum TrickplayScanBehavior. + */ +@JsonAdapter(TrickplayScanBehavior.Adapter.class) +public enum TrickplayScanBehavior { + + BLOCKING("Blocking"), + + NON_BLOCKING("NonBlocking"); + + private String value; + + TrickplayScanBehavior(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TrickplayScanBehavior fromValue(String value) { + for (TrickplayScanBehavior b : TrickplayScanBehavior.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TrickplayScanBehavior enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TrickplayScanBehavior read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TrickplayScanBehavior.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TrickplayScanBehavior.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerChannelMapping.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerChannelMapping.java new file mode 100644 index 0000000000000..7258e2bf8e8c3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerChannelMapping.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TunerChannelMapping + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TunerChannelMapping { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_NAME = "ProviderChannelName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_NAME) + @javax.annotation.Nullable + private String providerChannelName; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_ID = "ProviderChannelId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_ID) + @javax.annotation.Nullable + private String providerChannelId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public TunerChannelMapping() { + } + + public TunerChannelMapping name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TunerChannelMapping providerChannelName(@javax.annotation.Nullable String providerChannelName) { + this.providerChannelName = providerChannelName; + return this; + } + + /** + * Get providerChannelName + * @return providerChannelName + */ + @javax.annotation.Nullable + public String getProviderChannelName() { + return providerChannelName; + } + + public void setProviderChannelName(@javax.annotation.Nullable String providerChannelName) { + this.providerChannelName = providerChannelName; + } + + + public TunerChannelMapping providerChannelId(@javax.annotation.Nullable String providerChannelId) { + this.providerChannelId = providerChannelId; + return this; + } + + /** + * Get providerChannelId + * @return providerChannelId + */ + @javax.annotation.Nullable + public String getProviderChannelId() { + return providerChannelId; + } + + public void setProviderChannelId(@javax.annotation.Nullable String providerChannelId) { + this.providerChannelId = providerChannelId; + } + + + public TunerChannelMapping id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TunerChannelMapping tunerChannelMapping = (TunerChannelMapping) o; + return Objects.equals(this.name, tunerChannelMapping.name) && + Objects.equals(this.providerChannelName, tunerChannelMapping.providerChannelName) && + Objects.equals(this.providerChannelId, tunerChannelMapping.providerChannelId) && + Objects.equals(this.id, tunerChannelMapping.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, providerChannelName, providerChannelId, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TunerChannelMapping {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" providerChannelName: ").append(toIndentedString(providerChannelName)).append("\n"); + sb.append(" providerChannelId: ").append(toIndentedString(providerChannelId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ProviderChannelName"); + openapiFields.add("ProviderChannelId"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TunerChannelMapping + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TunerChannelMapping.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TunerChannelMapping is not found in the empty JSON string", TunerChannelMapping.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TunerChannelMapping.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TunerChannelMapping` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ProviderChannelName") != null && !jsonObj.get("ProviderChannelName").isJsonNull()) && !jsonObj.get("ProviderChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelName").toString())); + } + if ((jsonObj.get("ProviderChannelId") != null && !jsonObj.get("ProviderChannelId").isJsonNull()) && !jsonObj.get("ProviderChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TunerChannelMapping.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TunerChannelMapping' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TunerChannelMapping.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TunerChannelMapping value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TunerChannelMapping read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TunerChannelMapping given an JSON string + * + * @param jsonString JSON string + * @return An instance of TunerChannelMapping + * @throws IOException if the JSON string is invalid with respect to TunerChannelMapping + */ + public static TunerChannelMapping fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TunerChannelMapping.class); + } + + /** + * Convert an instance of TunerChannelMapping to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerHostInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerHostInfo.java new file mode 100644 index 0000000000000..3811412d70876 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TunerHostInfo.java @@ -0,0 +1,614 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TunerHostInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TunerHostInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_FRIENDLY_NAME = "FriendlyName"; + @SerializedName(SERIALIZED_NAME_FRIENDLY_NAME) + @javax.annotation.Nullable + private String friendlyName; + + public static final String SERIALIZED_NAME_IMPORT_FAVORITES_ONLY = "ImportFavoritesOnly"; + @SerializedName(SERIALIZED_NAME_IMPORT_FAVORITES_ONLY) + @javax.annotation.Nullable + private Boolean importFavoritesOnly; + + public static final String SERIALIZED_NAME_ALLOW_H_W_TRANSCODING = "AllowHWTranscoding"; + @SerializedName(SERIALIZED_NAME_ALLOW_H_W_TRANSCODING) + @javax.annotation.Nullable + private Boolean allowHWTranscoding; + + public static final String SERIALIZED_NAME_ALLOW_FMP4_TRANSCODING_CONTAINER = "AllowFmp4TranscodingContainer"; + @SerializedName(SERIALIZED_NAME_ALLOW_FMP4_TRANSCODING_CONTAINER) + @javax.annotation.Nullable + private Boolean allowFmp4TranscodingContainer; + + public static final String SERIALIZED_NAME_ALLOW_STREAM_SHARING = "AllowStreamSharing"; + @SerializedName(SERIALIZED_NAME_ALLOW_STREAM_SHARING) + @javax.annotation.Nullable + private Boolean allowStreamSharing; + + public static final String SERIALIZED_NAME_FALLBACK_MAX_STREAMING_BITRATE = "FallbackMaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_FALLBACK_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer fallbackMaxStreamingBitrate; + + public static final String SERIALIZED_NAME_ENABLE_STREAM_LOOPING = "EnableStreamLooping"; + @SerializedName(SERIALIZED_NAME_ENABLE_STREAM_LOOPING) + @javax.annotation.Nullable + private Boolean enableStreamLooping; + + public static final String SERIALIZED_NAME_SOURCE = "Source"; + @SerializedName(SERIALIZED_NAME_SOURCE) + @javax.annotation.Nullable + private String source; + + public static final String SERIALIZED_NAME_TUNER_COUNT = "TunerCount"; + @SerializedName(SERIALIZED_NAME_TUNER_COUNT) + @javax.annotation.Nullable + private Integer tunerCount; + + public static final String SERIALIZED_NAME_USER_AGENT = "UserAgent"; + @SerializedName(SERIALIZED_NAME_USER_AGENT) + @javax.annotation.Nullable + private String userAgent; + + public static final String SERIALIZED_NAME_IGNORE_DTS = "IgnoreDts"; + @SerializedName(SERIALIZED_NAME_IGNORE_DTS) + @javax.annotation.Nullable + private Boolean ignoreDts; + + public TunerHostInfo() { + } + + public TunerHostInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TunerHostInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Get url + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public TunerHostInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TunerHostInfo deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Get deviceId + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public TunerHostInfo friendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + /** + * Get friendlyName + * @return friendlyName + */ + @javax.annotation.Nullable + public String getFriendlyName() { + return friendlyName; + } + + public void setFriendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + } + + + public TunerHostInfo importFavoritesOnly(@javax.annotation.Nullable Boolean importFavoritesOnly) { + this.importFavoritesOnly = importFavoritesOnly; + return this; + } + + /** + * Get importFavoritesOnly + * @return importFavoritesOnly + */ + @javax.annotation.Nullable + public Boolean getImportFavoritesOnly() { + return importFavoritesOnly; + } + + public void setImportFavoritesOnly(@javax.annotation.Nullable Boolean importFavoritesOnly) { + this.importFavoritesOnly = importFavoritesOnly; + } + + + public TunerHostInfo allowHWTranscoding(@javax.annotation.Nullable Boolean allowHWTranscoding) { + this.allowHWTranscoding = allowHWTranscoding; + return this; + } + + /** + * Get allowHWTranscoding + * @return allowHWTranscoding + */ + @javax.annotation.Nullable + public Boolean getAllowHWTranscoding() { + return allowHWTranscoding; + } + + public void setAllowHWTranscoding(@javax.annotation.Nullable Boolean allowHWTranscoding) { + this.allowHWTranscoding = allowHWTranscoding; + } + + + public TunerHostInfo allowFmp4TranscodingContainer(@javax.annotation.Nullable Boolean allowFmp4TranscodingContainer) { + this.allowFmp4TranscodingContainer = allowFmp4TranscodingContainer; + return this; + } + + /** + * Get allowFmp4TranscodingContainer + * @return allowFmp4TranscodingContainer + */ + @javax.annotation.Nullable + public Boolean getAllowFmp4TranscodingContainer() { + return allowFmp4TranscodingContainer; + } + + public void setAllowFmp4TranscodingContainer(@javax.annotation.Nullable Boolean allowFmp4TranscodingContainer) { + this.allowFmp4TranscodingContainer = allowFmp4TranscodingContainer; + } + + + public TunerHostInfo allowStreamSharing(@javax.annotation.Nullable Boolean allowStreamSharing) { + this.allowStreamSharing = allowStreamSharing; + return this; + } + + /** + * Get allowStreamSharing + * @return allowStreamSharing + */ + @javax.annotation.Nullable + public Boolean getAllowStreamSharing() { + return allowStreamSharing; + } + + public void setAllowStreamSharing(@javax.annotation.Nullable Boolean allowStreamSharing) { + this.allowStreamSharing = allowStreamSharing; + } + + + public TunerHostInfo fallbackMaxStreamingBitrate(@javax.annotation.Nullable Integer fallbackMaxStreamingBitrate) { + this.fallbackMaxStreamingBitrate = fallbackMaxStreamingBitrate; + return this; + } + + /** + * Get fallbackMaxStreamingBitrate + * @return fallbackMaxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getFallbackMaxStreamingBitrate() { + return fallbackMaxStreamingBitrate; + } + + public void setFallbackMaxStreamingBitrate(@javax.annotation.Nullable Integer fallbackMaxStreamingBitrate) { + this.fallbackMaxStreamingBitrate = fallbackMaxStreamingBitrate; + } + + + public TunerHostInfo enableStreamLooping(@javax.annotation.Nullable Boolean enableStreamLooping) { + this.enableStreamLooping = enableStreamLooping; + return this; + } + + /** + * Get enableStreamLooping + * @return enableStreamLooping + */ + @javax.annotation.Nullable + public Boolean getEnableStreamLooping() { + return enableStreamLooping; + } + + public void setEnableStreamLooping(@javax.annotation.Nullable Boolean enableStreamLooping) { + this.enableStreamLooping = enableStreamLooping; + } + + + public TunerHostInfo source(@javax.annotation.Nullable String source) { + this.source = source; + return this; + } + + /** + * Get source + * @return source + */ + @javax.annotation.Nullable + public String getSource() { + return source; + } + + public void setSource(@javax.annotation.Nullable String source) { + this.source = source; + } + + + public TunerHostInfo tunerCount(@javax.annotation.Nullable Integer tunerCount) { + this.tunerCount = tunerCount; + return this; + } + + /** + * Get tunerCount + * @return tunerCount + */ + @javax.annotation.Nullable + public Integer getTunerCount() { + return tunerCount; + } + + public void setTunerCount(@javax.annotation.Nullable Integer tunerCount) { + this.tunerCount = tunerCount; + } + + + public TunerHostInfo userAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * Get userAgent + * @return userAgent + */ + @javax.annotation.Nullable + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + public TunerHostInfo ignoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + return this; + } + + /** + * Get ignoreDts + * @return ignoreDts + */ + @javax.annotation.Nullable + public Boolean getIgnoreDts() { + return ignoreDts; + } + + public void setIgnoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TunerHostInfo tunerHostInfo = (TunerHostInfo) o; + return Objects.equals(this.id, tunerHostInfo.id) && + Objects.equals(this.url, tunerHostInfo.url) && + Objects.equals(this.type, tunerHostInfo.type) && + Objects.equals(this.deviceId, tunerHostInfo.deviceId) && + Objects.equals(this.friendlyName, tunerHostInfo.friendlyName) && + Objects.equals(this.importFavoritesOnly, tunerHostInfo.importFavoritesOnly) && + Objects.equals(this.allowHWTranscoding, tunerHostInfo.allowHWTranscoding) && + Objects.equals(this.allowFmp4TranscodingContainer, tunerHostInfo.allowFmp4TranscodingContainer) && + Objects.equals(this.allowStreamSharing, tunerHostInfo.allowStreamSharing) && + Objects.equals(this.fallbackMaxStreamingBitrate, tunerHostInfo.fallbackMaxStreamingBitrate) && + Objects.equals(this.enableStreamLooping, tunerHostInfo.enableStreamLooping) && + Objects.equals(this.source, tunerHostInfo.source) && + Objects.equals(this.tunerCount, tunerHostInfo.tunerCount) && + Objects.equals(this.userAgent, tunerHostInfo.userAgent) && + Objects.equals(this.ignoreDts, tunerHostInfo.ignoreDts); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, url, type, deviceId, friendlyName, importFavoritesOnly, allowHWTranscoding, allowFmp4TranscodingContainer, allowStreamSharing, fallbackMaxStreamingBitrate, enableStreamLooping, source, tunerCount, userAgent, ignoreDts); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TunerHostInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" friendlyName: ").append(toIndentedString(friendlyName)).append("\n"); + sb.append(" importFavoritesOnly: ").append(toIndentedString(importFavoritesOnly)).append("\n"); + sb.append(" allowHWTranscoding: ").append(toIndentedString(allowHWTranscoding)).append("\n"); + sb.append(" allowFmp4TranscodingContainer: ").append(toIndentedString(allowFmp4TranscodingContainer)).append("\n"); + sb.append(" allowStreamSharing: ").append(toIndentedString(allowStreamSharing)).append("\n"); + sb.append(" fallbackMaxStreamingBitrate: ").append(toIndentedString(fallbackMaxStreamingBitrate)).append("\n"); + sb.append(" enableStreamLooping: ").append(toIndentedString(enableStreamLooping)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" tunerCount: ").append(toIndentedString(tunerCount)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append(" ignoreDts: ").append(toIndentedString(ignoreDts)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Url"); + openapiFields.add("Type"); + openapiFields.add("DeviceId"); + openapiFields.add("FriendlyName"); + openapiFields.add("ImportFavoritesOnly"); + openapiFields.add("AllowHWTranscoding"); + openapiFields.add("AllowFmp4TranscodingContainer"); + openapiFields.add("AllowStreamSharing"); + openapiFields.add("FallbackMaxStreamingBitrate"); + openapiFields.add("EnableStreamLooping"); + openapiFields.add("Source"); + openapiFields.add("TunerCount"); + openapiFields.add("UserAgent"); + openapiFields.add("IgnoreDts"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TunerHostInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TunerHostInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TunerHostInfo is not found in the empty JSON string", TunerHostInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TunerHostInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TunerHostInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("FriendlyName") != null && !jsonObj.get("FriendlyName").isJsonNull()) && !jsonObj.get("FriendlyName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FriendlyName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FriendlyName").toString())); + } + if ((jsonObj.get("Source") != null && !jsonObj.get("Source").isJsonNull()) && !jsonObj.get("Source").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Source").toString())); + } + if ((jsonObj.get("UserAgent") != null && !jsonObj.get("UserAgent").isJsonNull()) && !jsonObj.get("UserAgent").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserAgent` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserAgent").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TunerHostInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TunerHostInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TunerHostInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TunerHostInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TunerHostInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TunerHostInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TunerHostInfo + * @throws IOException if the JSON string is invalid with respect to TunerHostInfo + */ + public static TunerHostInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TunerHostInfo.class); + } + + /** + * Convert an instance of TunerHostInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TypeOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TypeOptions.java new file mode 100644 index 0000000000000..f2781f075e14d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/TypeOptions.java @@ -0,0 +1,426 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageOption; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TypeOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TypeOptions { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_METADATA_FETCHERS = "MetadataFetchers"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHERS) + @javax.annotation.Nullable + private List metadataFetchers; + + public static final String SERIALIZED_NAME_METADATA_FETCHER_ORDER = "MetadataFetcherOrder"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHER_ORDER) + @javax.annotation.Nullable + private List metadataFetcherOrder; + + public static final String SERIALIZED_NAME_IMAGE_FETCHERS = "ImageFetchers"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List imageFetchers; + + public static final String SERIALIZED_NAME_IMAGE_FETCHER_ORDER = "ImageFetcherOrder"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHER_ORDER) + @javax.annotation.Nullable + private List imageFetcherOrder; + + public static final String SERIALIZED_NAME_IMAGE_OPTIONS = "ImageOptions"; + @SerializedName(SERIALIZED_NAME_IMAGE_OPTIONS) + @javax.annotation.Nullable + private List imageOptions; + + public TypeOptions() { + } + + public TypeOptions type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TypeOptions metadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + return this; + } + + public TypeOptions addMetadataFetchersItem(String metadataFetchersItem) { + if (this.metadataFetchers == null) { + this.metadataFetchers = new ArrayList<>(); + } + this.metadataFetchers.add(metadataFetchersItem); + return this; + } + + /** + * Get metadataFetchers + * @return metadataFetchers + */ + @javax.annotation.Nullable + public List getMetadataFetchers() { + return metadataFetchers; + } + + public void setMetadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + } + + + public TypeOptions metadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + return this; + } + + public TypeOptions addMetadataFetcherOrderItem(String metadataFetcherOrderItem) { + if (this.metadataFetcherOrder == null) { + this.metadataFetcherOrder = new ArrayList<>(); + } + this.metadataFetcherOrder.add(metadataFetcherOrderItem); + return this; + } + + /** + * Get metadataFetcherOrder + * @return metadataFetcherOrder + */ + @javax.annotation.Nullable + public List getMetadataFetcherOrder() { + return metadataFetcherOrder; + } + + public void setMetadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + } + + + public TypeOptions imageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + return this; + } + + public TypeOptions addImageFetchersItem(String imageFetchersItem) { + if (this.imageFetchers == null) { + this.imageFetchers = new ArrayList<>(); + } + this.imageFetchers.add(imageFetchersItem); + return this; + } + + /** + * Get imageFetchers + * @return imageFetchers + */ + @javax.annotation.Nullable + public List getImageFetchers() { + return imageFetchers; + } + + public void setImageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + } + + + public TypeOptions imageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + return this; + } + + public TypeOptions addImageFetcherOrderItem(String imageFetcherOrderItem) { + if (this.imageFetcherOrder == null) { + this.imageFetcherOrder = new ArrayList<>(); + } + this.imageFetcherOrder.add(imageFetcherOrderItem); + return this; + } + + /** + * Get imageFetcherOrder + * @return imageFetcherOrder + */ + @javax.annotation.Nullable + public List getImageFetcherOrder() { + return imageFetcherOrder; + } + + public void setImageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + } + + + public TypeOptions imageOptions(@javax.annotation.Nullable List imageOptions) { + this.imageOptions = imageOptions; + return this; + } + + public TypeOptions addImageOptionsItem(ImageOption imageOptionsItem) { + if (this.imageOptions == null) { + this.imageOptions = new ArrayList<>(); + } + this.imageOptions.add(imageOptionsItem); + return this; + } + + /** + * Get imageOptions + * @return imageOptions + */ + @javax.annotation.Nullable + public List getImageOptions() { + return imageOptions; + } + + public void setImageOptions(@javax.annotation.Nullable List imageOptions) { + this.imageOptions = imageOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TypeOptions typeOptions = (TypeOptions) o; + return Objects.equals(this.type, typeOptions.type) && + Objects.equals(this.metadataFetchers, typeOptions.metadataFetchers) && + Objects.equals(this.metadataFetcherOrder, typeOptions.metadataFetcherOrder) && + Objects.equals(this.imageFetchers, typeOptions.imageFetchers) && + Objects.equals(this.imageFetcherOrder, typeOptions.imageFetcherOrder) && + Objects.equals(this.imageOptions, typeOptions.imageOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, metadataFetchers, metadataFetcherOrder, imageFetchers, imageFetcherOrder, imageOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TypeOptions {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" metadataFetchers: ").append(toIndentedString(metadataFetchers)).append("\n"); + sb.append(" metadataFetcherOrder: ").append(toIndentedString(metadataFetcherOrder)).append("\n"); + sb.append(" imageFetchers: ").append(toIndentedString(imageFetchers)).append("\n"); + sb.append(" imageFetcherOrder: ").append(toIndentedString(imageFetcherOrder)).append("\n"); + sb.append(" imageOptions: ").append(toIndentedString(imageOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("MetadataFetchers"); + openapiFields.add("MetadataFetcherOrder"); + openapiFields.add("ImageFetchers"); + openapiFields.add("ImageFetcherOrder"); + openapiFields.add("ImageOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TypeOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TypeOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TypeOptions is not found in the empty JSON string", TypeOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TypeOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TypeOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetchers") != null && !jsonObj.get("MetadataFetchers").isJsonNull() && !jsonObj.get("MetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetcherOrder") != null && !jsonObj.get("MetadataFetcherOrder").isJsonNull() && !jsonObj.get("MetadataFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetchers") != null && !jsonObj.get("ImageFetchers").isJsonNull() && !jsonObj.get("ImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetcherOrder") != null && !jsonObj.get("ImageFetcherOrder").isJsonNull() && !jsonObj.get("ImageFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetcherOrder").toString())); + } + if (jsonObj.get("ImageOptions") != null && !jsonObj.get("ImageOptions").isJsonNull()) { + JsonArray jsonArrayimageOptions = jsonObj.getAsJsonArray("ImageOptions"); + if (jsonArrayimageOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ImageOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ImageOptions").toString())); + } + + // validate the optional field `ImageOptions` (array) + for (int i = 0; i < jsonArrayimageOptions.size(); i++) { + ImageOption.validateJsonElement(jsonArrayimageOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TypeOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TypeOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TypeOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TypeOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TypeOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TypeOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of TypeOptions + * @throws IOException if the JSON string is invalid with respect to TypeOptions + */ + public static TypeOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TypeOptions.class); + } + + /** + * Convert an instance of TypeOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UnratedItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UnratedItem.java new file mode 100644 index 0000000000000..7f4b85eb10ffa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UnratedItem.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing an unrated item. + */ +@JsonAdapter(UnratedItem.Adapter.class) +public enum UnratedItem { + + MOVIE("Movie"), + + TRAILER("Trailer"), + + SERIES("Series"), + + MUSIC("Music"), + + BOOK("Book"), + + LIVE_TV_CHANNEL("LiveTvChannel"), + + LIVE_TV_PROGRAM("LiveTvProgram"), + + CHANNEL_CONTENT("ChannelContent"), + + OTHER("Other"); + + private String value; + + UnratedItem(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static UnratedItem fromValue(String value) { + for (UnratedItem b : UnratedItem.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final UnratedItem enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public UnratedItem read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return UnratedItem.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + UnratedItem.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java new file mode 100644 index 0000000000000..d5a7ea37fd6bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java @@ -0,0 +1,251 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update library options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateLibraryOptionsDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public UpdateLibraryOptionsDto() { + } + + public UpdateLibraryOptionsDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the library item id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public UpdateLibraryOptionsDto libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Gets or sets library options. + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateLibraryOptionsDto updateLibraryOptionsDto = (UpdateLibraryOptionsDto) o; + return Objects.equals(this.id, updateLibraryOptionsDto.id) && + Objects.equals(this.libraryOptions, updateLibraryOptionsDto.libraryOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, libraryOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateLibraryOptionsDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("LibraryOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateLibraryOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateLibraryOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateLibraryOptionsDto is not found in the empty JSON string", UpdateLibraryOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateLibraryOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateLibraryOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateLibraryOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateLibraryOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateLibraryOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateLibraryOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateLibraryOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateLibraryOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateLibraryOptionsDto + * @throws IOException if the JSON string is invalid with respect to UpdateLibraryOptionsDto + */ + public static UpdateLibraryOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateLibraryOptionsDto.class); + } + + /** + * Convert an instance of UpdateLibraryOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java new file mode 100644 index 0000000000000..d502762b078d0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaPathInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update library options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateMediaPathRequestDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_PATH_INFO = "PathInfo"; + @SerializedName(SERIALIZED_NAME_PATH_INFO) + @javax.annotation.Nonnull + private MediaPathInfo pathInfo; + + public UpdateMediaPathRequestDto() { + } + + public UpdateMediaPathRequestDto name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the library name. + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public UpdateMediaPathRequestDto pathInfo(@javax.annotation.Nonnull MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + return this; + } + + /** + * Gets or sets library folder path information. + * @return pathInfo + */ + @javax.annotation.Nonnull + public MediaPathInfo getPathInfo() { + return pathInfo; + } + + public void setPathInfo(@javax.annotation.Nonnull MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMediaPathRequestDto updateMediaPathRequestDto = (UpdateMediaPathRequestDto) o; + return Objects.equals(this.name, updateMediaPathRequestDto.name) && + Objects.equals(this.pathInfo, updateMediaPathRequestDto.pathInfo); + } + + @Override + public int hashCode() { + return Objects.hash(name, pathInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateMediaPathRequestDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" pathInfo: ").append(toIndentedString(pathInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("PathInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Name"); + openapiRequiredFields.add("PathInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateMediaPathRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateMediaPathRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateMediaPathRequestDto is not found in the empty JSON string", UpdateMediaPathRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateMediaPathRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateMediaPathRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateMediaPathRequestDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // validate the required field `PathInfo` + MediaPathInfo.validateJsonElement(jsonObj.get("PathInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateMediaPathRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateMediaPathRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateMediaPathRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateMediaPathRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateMediaPathRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateMediaPathRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateMediaPathRequestDto + * @throws IOException if the JSON string is invalid with respect to UpdateMediaPathRequestDto + */ + public static UpdateMediaPathRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateMediaPathRequestDto.class); + } + + /** + * Convert an instance of UpdateMediaPathRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistDto.java new file mode 100644 index 0000000000000..e8b84f1feef73 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistDto.java @@ -0,0 +1,337 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.PlaylistUserPermissions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdatePlaylistDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IDS = "Ids"; + @SerializedName(SERIALIZED_NAME_IDS) + @javax.annotation.Nullable + private List ids; + + public static final String SERIALIZED_NAME_USERS = "Users"; + @SerializedName(SERIALIZED_NAME_USERS) + @javax.annotation.Nullable + private List users; + + public static final String SERIALIZED_NAME_IS_PUBLIC = "IsPublic"; + @SerializedName(SERIALIZED_NAME_IS_PUBLIC) + @javax.annotation.Nullable + private Boolean isPublic; + + public UpdatePlaylistDto() { + } + + public UpdatePlaylistDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the new playlist. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public UpdatePlaylistDto ids(@javax.annotation.Nullable List ids) { + this.ids = ids; + return this; + } + + public UpdatePlaylistDto addIdsItem(UUID idsItem) { + if (this.ids == null) { + this.ids = new ArrayList<>(); + } + this.ids.add(idsItem); + return this; + } + + /** + * Gets or sets item ids of the playlist. + * @return ids + */ + @javax.annotation.Nullable + public List getIds() { + return ids; + } + + public void setIds(@javax.annotation.Nullable List ids) { + this.ids = ids; + } + + + public UpdatePlaylistDto users(@javax.annotation.Nullable List users) { + this.users = users; + return this; + } + + public UpdatePlaylistDto addUsersItem(PlaylistUserPermissions usersItem) { + if (this.users == null) { + this.users = new ArrayList<>(); + } + this.users.add(usersItem); + return this; + } + + /** + * Gets or sets the playlist users. + * @return users + */ + @javax.annotation.Nullable + public List getUsers() { + return users; + } + + public void setUsers(@javax.annotation.Nullable List users) { + this.users = users; + } + + + public UpdatePlaylistDto isPublic(@javax.annotation.Nullable Boolean isPublic) { + this.isPublic = isPublic; + return this; + } + + /** + * Gets or sets a value indicating whether the playlist is public. + * @return isPublic + */ + @javax.annotation.Nullable + public Boolean getIsPublic() { + return isPublic; + } + + public void setIsPublic(@javax.annotation.Nullable Boolean isPublic) { + this.isPublic = isPublic; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdatePlaylistDto updatePlaylistDto = (UpdatePlaylistDto) o; + return Objects.equals(this.name, updatePlaylistDto.name) && + Objects.equals(this.ids, updatePlaylistDto.ids) && + Objects.equals(this.users, updatePlaylistDto.users) && + Objects.equals(this.isPublic, updatePlaylistDto.isPublic); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, ids, users, isPublic); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdatePlaylistDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" ids: ").append(toIndentedString(ids)).append("\n"); + sb.append(" users: ").append(toIndentedString(users)).append("\n"); + sb.append(" isPublic: ").append(toIndentedString(isPublic)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Ids"); + openapiFields.add("Users"); + openapiFields.add("IsPublic"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdatePlaylistDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdatePlaylistDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdatePlaylistDto is not found in the empty JSON string", UpdatePlaylistDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdatePlaylistDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdatePlaylistDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Ids") != null && !jsonObj.get("Ids").isJsonNull() && !jsonObj.get("Ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Ids` to be an array in the JSON string but got `%s`", jsonObj.get("Ids").toString())); + } + if (jsonObj.get("Users") != null && !jsonObj.get("Users").isJsonNull()) { + JsonArray jsonArrayusers = jsonObj.getAsJsonArray("Users"); + if (jsonArrayusers != null) { + // ensure the json data is an array + if (!jsonObj.get("Users").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Users` to be an array in the JSON string but got `%s`", jsonObj.get("Users").toString())); + } + + // validate the optional field `Users` (array) + for (int i = 0; i < jsonArrayusers.size(); i++) { + PlaylistUserPermissions.validateJsonElement(jsonArrayusers.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdatePlaylistDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdatePlaylistDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdatePlaylistDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdatePlaylistDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdatePlaylistDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdatePlaylistDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdatePlaylistDto + * @throws IOException if the JSON string is invalid with respect to UpdatePlaylistDto + */ + public static UpdatePlaylistDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdatePlaylistDto.class); + } + + /** + * Convert an instance of UpdatePlaylistDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistUserDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistUserDto.java new file mode 100644 index 0000000000000..ecfa62d835e34 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdatePlaylistUserDto.java @@ -0,0 +1,215 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdatePlaylistUserDto { + public static final String SERIALIZED_NAME_CAN_EDIT = "CanEdit"; + @SerializedName(SERIALIZED_NAME_CAN_EDIT) + @javax.annotation.Nullable + private Boolean canEdit; + + public UpdatePlaylistUserDto() { + } + + public UpdatePlaylistUserDto canEdit(@javax.annotation.Nullable Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + /** + * Gets or sets a value indicating whether the user can edit the playlist. + * @return canEdit + */ + @javax.annotation.Nullable + public Boolean getCanEdit() { + return canEdit; + } + + public void setCanEdit(@javax.annotation.Nullable Boolean canEdit) { + this.canEdit = canEdit; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdatePlaylistUserDto updatePlaylistUserDto = (UpdatePlaylistUserDto) o; + return Objects.equals(this.canEdit, updatePlaylistUserDto.canEdit); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(canEdit); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdatePlaylistUserDto {\n"); + sb.append(" canEdit: ").append(toIndentedString(canEdit)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CanEdit"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdatePlaylistUserDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdatePlaylistUserDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdatePlaylistUserDto is not found in the empty JSON string", UpdatePlaylistUserDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdatePlaylistUserDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdatePlaylistUserDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdatePlaylistUserDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdatePlaylistUserDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdatePlaylistUserDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdatePlaylistUserDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdatePlaylistUserDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdatePlaylistUserDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdatePlaylistUserDto + * @throws IOException if the JSON string is invalid with respect to UpdatePlaylistUserDto + */ + public static UpdatePlaylistUserDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdatePlaylistUserDto.class); + } + + /** + * Convert an instance of UpdatePlaylistUserDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserItemDataDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserItemDataDto.java new file mode 100644 index 0000000000000..868a7ad4d8743 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserItemDataDto.java @@ -0,0 +1,492 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is used by the api to get information about a item user data. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateUserItemDataDto { + public static final String SERIALIZED_NAME_RATING = "Rating"; + @SerializedName(SERIALIZED_NAME_RATING) + @javax.annotation.Nullable + private Double rating; + + public static final String SERIALIZED_NAME_PLAYED_PERCENTAGE = "PlayedPercentage"; + @SerializedName(SERIALIZED_NAME_PLAYED_PERCENTAGE) + @javax.annotation.Nullable + private Double playedPercentage; + + public static final String SERIALIZED_NAME_UNPLAYED_ITEM_COUNT = "UnplayedItemCount"; + @SerializedName(SERIALIZED_NAME_UNPLAYED_ITEM_COUNT) + @javax.annotation.Nullable + private Integer unplayedItemCount; + + public static final String SERIALIZED_NAME_PLAYBACK_POSITION_TICKS = "PlaybackPositionTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_POSITION_TICKS) + @javax.annotation.Nullable + private Long playbackPositionTicks; + + public static final String SERIALIZED_NAME_PLAY_COUNT = "PlayCount"; + @SerializedName(SERIALIZED_NAME_PLAY_COUNT) + @javax.annotation.Nullable + private Integer playCount; + + public static final String SERIALIZED_NAME_IS_FAVORITE = "IsFavorite"; + @SerializedName(SERIALIZED_NAME_IS_FAVORITE) + @javax.annotation.Nullable + private Boolean isFavorite; + + public static final String SERIALIZED_NAME_LIKES = "Likes"; + @SerializedName(SERIALIZED_NAME_LIKES) + @javax.annotation.Nullable + private Boolean likes; + + public static final String SERIALIZED_NAME_LAST_PLAYED_DATE = "LastPlayedDate"; + @SerializedName(SERIALIZED_NAME_LAST_PLAYED_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastPlayedDate; + + public static final String SERIALIZED_NAME_PLAYED = "Played"; + @SerializedName(SERIALIZED_NAME_PLAYED) + @javax.annotation.Nullable + private Boolean played; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public UpdateUserItemDataDto() { + } + + public UpdateUserItemDataDto rating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + return this; + } + + /** + * Gets or sets the rating. + * @return rating + */ + @javax.annotation.Nullable + public Double getRating() { + return rating; + } + + public void setRating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + } + + + public UpdateUserItemDataDto playedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + return this; + } + + /** + * Gets or sets the played percentage. + * @return playedPercentage + */ + @javax.annotation.Nullable + public Double getPlayedPercentage() { + return playedPercentage; + } + + public void setPlayedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + } + + + public UpdateUserItemDataDto unplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + return this; + } + + /** + * Gets or sets the unplayed item count. + * @return unplayedItemCount + */ + @javax.annotation.Nullable + public Integer getUnplayedItemCount() { + return unplayedItemCount; + } + + public void setUnplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + } + + + public UpdateUserItemDataDto playbackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + return this; + } + + /** + * Gets or sets the playback position ticks. + * @return playbackPositionTicks + */ + @javax.annotation.Nullable + public Long getPlaybackPositionTicks() { + return playbackPositionTicks; + } + + public void setPlaybackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + } + + + public UpdateUserItemDataDto playCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + return this; + } + + /** + * Gets or sets the play count. + * @return playCount + */ + @javax.annotation.Nullable + public Integer getPlayCount() { + return playCount; + } + + public void setPlayCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + } + + + public UpdateUserItemDataDto isFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is favorite. + * @return isFavorite + */ + @javax.annotation.Nullable + public Boolean getIsFavorite() { + return isFavorite; + } + + public void setIsFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + } + + + public UpdateUserItemDataDto likes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UpdateUserItemDataDto is likes. + * @return likes + */ + @javax.annotation.Nullable + public Boolean getLikes() { + return likes; + } + + public void setLikes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + } + + + public UpdateUserItemDataDto lastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + return this; + } + + /** + * Gets or sets the last played date. + * @return lastPlayedDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPlayedDate() { + return lastPlayedDate; + } + + public void setLastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + } + + + public UpdateUserItemDataDto played(@javax.annotation.Nullable Boolean played) { + this.played = played; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + * @return played + */ + @javax.annotation.Nullable + public Boolean getPlayed() { + return played; + } + + public void setPlayed(@javax.annotation.Nullable Boolean played) { + this.played = played; + } + + + public UpdateUserItemDataDto key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public UpdateUserItemDataDto itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserItemDataDto updateUserItemDataDto = (UpdateUserItemDataDto) o; + return Objects.equals(this.rating, updateUserItemDataDto.rating) && + Objects.equals(this.playedPercentage, updateUserItemDataDto.playedPercentage) && + Objects.equals(this.unplayedItemCount, updateUserItemDataDto.unplayedItemCount) && + Objects.equals(this.playbackPositionTicks, updateUserItemDataDto.playbackPositionTicks) && + Objects.equals(this.playCount, updateUserItemDataDto.playCount) && + Objects.equals(this.isFavorite, updateUserItemDataDto.isFavorite) && + Objects.equals(this.likes, updateUserItemDataDto.likes) && + Objects.equals(this.lastPlayedDate, updateUserItemDataDto.lastPlayedDate) && + Objects.equals(this.played, updateUserItemDataDto.played) && + Objects.equals(this.key, updateUserItemDataDto.key) && + Objects.equals(this.itemId, updateUserItemDataDto.itemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(rating, playedPercentage, unplayedItemCount, playbackPositionTicks, playCount, isFavorite, likes, lastPlayedDate, played, key, itemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateUserItemDataDto {\n"); + sb.append(" rating: ").append(toIndentedString(rating)).append("\n"); + sb.append(" playedPercentage: ").append(toIndentedString(playedPercentage)).append("\n"); + sb.append(" unplayedItemCount: ").append(toIndentedString(unplayedItemCount)).append("\n"); + sb.append(" playbackPositionTicks: ").append(toIndentedString(playbackPositionTicks)).append("\n"); + sb.append(" playCount: ").append(toIndentedString(playCount)).append("\n"); + sb.append(" isFavorite: ").append(toIndentedString(isFavorite)).append("\n"); + sb.append(" likes: ").append(toIndentedString(likes)).append("\n"); + sb.append(" lastPlayedDate: ").append(toIndentedString(lastPlayedDate)).append("\n"); + sb.append(" played: ").append(toIndentedString(played)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Rating"); + openapiFields.add("PlayedPercentage"); + openapiFields.add("UnplayedItemCount"); + openapiFields.add("PlaybackPositionTicks"); + openapiFields.add("PlayCount"); + openapiFields.add("IsFavorite"); + openapiFields.add("Likes"); + openapiFields.add("LastPlayedDate"); + openapiFields.add("Played"); + openapiFields.add("Key"); + openapiFields.add("ItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateUserItemDataDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateUserItemDataDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateUserItemDataDto is not found in the empty JSON string", UpdateUserItemDataDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateUserItemDataDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateUserItemDataDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateUserItemDataDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateUserItemDataDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateUserItemDataDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateUserItemDataDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateUserItemDataDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateUserItemDataDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateUserItemDataDto + * @throws IOException if the JSON string is invalid with respect to UpdateUserItemDataDto + */ + public static UpdateUserItemDataDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateUserItemDataDto.class); + } + + /** + * Convert an instance of UpdateUserItemDataDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserPassword.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserPassword.java new file mode 100644 index 0000000000000..7e5c9053b31ad --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UpdateUserPassword.java @@ -0,0 +1,305 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The update user password request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateUserPassword { + public static final String SERIALIZED_NAME_CURRENT_PASSWORD = "CurrentPassword"; + @SerializedName(SERIALIZED_NAME_CURRENT_PASSWORD) + @javax.annotation.Nullable + private String currentPassword; + + public static final String SERIALIZED_NAME_CURRENT_PW = "CurrentPw"; + @SerializedName(SERIALIZED_NAME_CURRENT_PW) + @javax.annotation.Nullable + private String currentPw; + + public static final String SERIALIZED_NAME_NEW_PW = "NewPw"; + @SerializedName(SERIALIZED_NAME_NEW_PW) + @javax.annotation.Nullable + private String newPw; + + public static final String SERIALIZED_NAME_RESET_PASSWORD = "ResetPassword"; + @SerializedName(SERIALIZED_NAME_RESET_PASSWORD) + @javax.annotation.Nullable + private Boolean resetPassword; + + public UpdateUserPassword() { + } + + public UpdateUserPassword currentPassword(@javax.annotation.Nullable String currentPassword) { + this.currentPassword = currentPassword; + return this; + } + + /** + * Gets or sets the current sha1-hashed password. + * @return currentPassword + */ + @javax.annotation.Nullable + public String getCurrentPassword() { + return currentPassword; + } + + public void setCurrentPassword(@javax.annotation.Nullable String currentPassword) { + this.currentPassword = currentPassword; + } + + + public UpdateUserPassword currentPw(@javax.annotation.Nullable String currentPw) { + this.currentPw = currentPw; + return this; + } + + /** + * Gets or sets the current plain text password. + * @return currentPw + */ + @javax.annotation.Nullable + public String getCurrentPw() { + return currentPw; + } + + public void setCurrentPw(@javax.annotation.Nullable String currentPw) { + this.currentPw = currentPw; + } + + + public UpdateUserPassword newPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + return this; + } + + /** + * Gets or sets the new plain text password. + * @return newPw + */ + @javax.annotation.Nullable + public String getNewPw() { + return newPw; + } + + public void setNewPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + } + + + public UpdateUserPassword resetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + return this; + } + + /** + * Gets or sets a value indicating whether to reset the password. + * @return resetPassword + */ + @javax.annotation.Nullable + public Boolean getResetPassword() { + return resetPassword; + } + + public void setResetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserPassword updateUserPassword = (UpdateUserPassword) o; + return Objects.equals(this.currentPassword, updateUserPassword.currentPassword) && + Objects.equals(this.currentPw, updateUserPassword.currentPw) && + Objects.equals(this.newPw, updateUserPassword.newPw) && + Objects.equals(this.resetPassword, updateUserPassword.resetPassword); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(currentPassword, currentPw, newPw, resetPassword); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateUserPassword {\n"); + sb.append(" currentPassword: ").append(toIndentedString(currentPassword)).append("\n"); + sb.append(" currentPw: ").append(toIndentedString(currentPw)).append("\n"); + sb.append(" newPw: ").append(toIndentedString(newPw)).append("\n"); + sb.append(" resetPassword: ").append(toIndentedString(resetPassword)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CurrentPassword"); + openapiFields.add("CurrentPw"); + openapiFields.add("NewPw"); + openapiFields.add("ResetPassword"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateUserPassword + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateUserPassword.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateUserPassword is not found in the empty JSON string", UpdateUserPassword.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateUserPassword.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateUserPassword` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("CurrentPassword") != null && !jsonObj.get("CurrentPassword").isJsonNull()) && !jsonObj.get("CurrentPassword").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CurrentPassword` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CurrentPassword").toString())); + } + if ((jsonObj.get("CurrentPw") != null && !jsonObj.get("CurrentPw").isJsonNull()) && !jsonObj.get("CurrentPw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CurrentPw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CurrentPw").toString())); + } + if ((jsonObj.get("NewPw") != null && !jsonObj.get("NewPw").isJsonNull()) && !jsonObj.get("NewPw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NewPw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NewPw").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateUserPassword.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateUserPassword' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateUserPassword.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateUserPassword value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateUserPassword read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateUserPassword given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateUserPassword + * @throws IOException if the JSON string is invalid with respect to UpdateUserPassword + */ + public static UpdateUserPassword fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateUserPassword.class); + } + + /** + * Convert an instance of UpdateUserPassword to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java new file mode 100644 index 0000000000000..044968999120f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java @@ -0,0 +1,332 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Upload subtitles dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UploadSubtitleDto { + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nonnull + private String language; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nonnull + private String format; + + public static final String SERIALIZED_NAME_IS_FORCED = "IsForced"; + @SerializedName(SERIALIZED_NAME_IS_FORCED) + @javax.annotation.Nonnull + private Boolean isForced; + + public static final String SERIALIZED_NAME_IS_HEARING_IMPAIRED = "IsHearingImpaired"; + @SerializedName(SERIALIZED_NAME_IS_HEARING_IMPAIRED) + @javax.annotation.Nonnull + private Boolean isHearingImpaired; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public UploadSubtitleDto() { + } + + public UploadSubtitleDto language(@javax.annotation.Nonnull String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the subtitle language. + * @return language + */ + @javax.annotation.Nonnull + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nonnull String language) { + this.language = language; + } + + + public UploadSubtitleDto format(@javax.annotation.Nonnull String format) { + this.format = format; + return this; + } + + /** + * Gets or sets the subtitle format. + * @return format + */ + @javax.annotation.Nonnull + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nonnull String format) { + this.format = format; + } + + + public UploadSubtitleDto isForced(@javax.annotation.Nonnull Boolean isForced) { + this.isForced = isForced; + return this; + } + + /** + * Gets or sets a value indicating whether the subtitle is forced. + * @return isForced + */ + @javax.annotation.Nonnull + public Boolean getIsForced() { + return isForced; + } + + public void setIsForced(@javax.annotation.Nonnull Boolean isForced) { + this.isForced = isForced; + } + + + public UploadSubtitleDto isHearingImpaired(@javax.annotation.Nonnull Boolean isHearingImpaired) { + this.isHearingImpaired = isHearingImpaired; + return this; + } + + /** + * Gets or sets a value indicating whether the subtitle is for hearing impaired. + * @return isHearingImpaired + */ + @javax.annotation.Nonnull + public Boolean getIsHearingImpaired() { + return isHearingImpaired; + } + + public void setIsHearingImpaired(@javax.annotation.Nonnull Boolean isHearingImpaired) { + this.isHearingImpaired = isHearingImpaired; + } + + + public UploadSubtitleDto data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Gets or sets the subtitle data. + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadSubtitleDto uploadSubtitleDto = (UploadSubtitleDto) o; + return Objects.equals(this.language, uploadSubtitleDto.language) && + Objects.equals(this.format, uploadSubtitleDto.format) && + Objects.equals(this.isForced, uploadSubtitleDto.isForced) && + Objects.equals(this.isHearingImpaired, uploadSubtitleDto.isHearingImpaired) && + Objects.equals(this.data, uploadSubtitleDto.data); + } + + @Override + public int hashCode() { + return Objects.hash(language, format, isForced, isHearingImpaired, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UploadSubtitleDto {\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" isForced: ").append(toIndentedString(isForced)).append("\n"); + sb.append(" isHearingImpaired: ").append(toIndentedString(isHearingImpaired)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Language"); + openapiFields.add("Format"); + openapiFields.add("IsForced"); + openapiFields.add("IsHearingImpaired"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Language"); + openapiRequiredFields.add("Format"); + openapiRequiredFields.add("IsForced"); + openapiRequiredFields.add("IsHearingImpaired"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UploadSubtitleDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UploadSubtitleDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UploadSubtitleDto is not found in the empty JSON string", UploadSubtitleDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UploadSubtitleDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UploadSubtitleDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UploadSubtitleDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if (!jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UploadSubtitleDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UploadSubtitleDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UploadSubtitleDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UploadSubtitleDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UploadSubtitleDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UploadSubtitleDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UploadSubtitleDto + * @throws IOException if the JSON string is invalid with respect to UploadSubtitleDto + */ + public static UploadSubtitleDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UploadSubtitleDto.class); + } + + /** + * Convert an instance of UploadSubtitleDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserConfiguration.java new file mode 100644 index 0000000000000..16e339ac77618 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserConfiguration.java @@ -0,0 +1,685 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.SubtitlePlaybackMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserConfiguration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserConfiguration { + public static final String SERIALIZED_NAME_AUDIO_LANGUAGE_PREFERENCE = "AudioLanguagePreference"; + @SerializedName(SERIALIZED_NAME_AUDIO_LANGUAGE_PREFERENCE) + @javax.annotation.Nullable + private String audioLanguagePreference; + + public static final String SERIALIZED_NAME_PLAY_DEFAULT_AUDIO_TRACK = "PlayDefaultAudioTrack"; + @SerializedName(SERIALIZED_NAME_PLAY_DEFAULT_AUDIO_TRACK) + @javax.annotation.Nullable + private Boolean playDefaultAudioTrack; + + public static final String SERIALIZED_NAME_SUBTITLE_LANGUAGE_PREFERENCE = "SubtitleLanguagePreference"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_LANGUAGE_PREFERENCE) + @javax.annotation.Nullable + private String subtitleLanguagePreference; + + public static final String SERIALIZED_NAME_DISPLAY_MISSING_EPISODES = "DisplayMissingEpisodes"; + @SerializedName(SERIALIZED_NAME_DISPLAY_MISSING_EPISODES) + @javax.annotation.Nullable + private Boolean displayMissingEpisodes; + + public static final String SERIALIZED_NAME_GROUPED_FOLDERS = "GroupedFolders"; + @SerializedName(SERIALIZED_NAME_GROUPED_FOLDERS) + @javax.annotation.Nullable + private List groupedFolders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_MODE = "SubtitleMode"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_MODE) + @javax.annotation.Nullable + private SubtitlePlaybackMode subtitleMode; + + public static final String SERIALIZED_NAME_DISPLAY_COLLECTIONS_VIEW = "DisplayCollectionsView"; + @SerializedName(SERIALIZED_NAME_DISPLAY_COLLECTIONS_VIEW) + @javax.annotation.Nullable + private Boolean displayCollectionsView; + + public static final String SERIALIZED_NAME_ENABLE_LOCAL_PASSWORD = "EnableLocalPassword"; + @SerializedName(SERIALIZED_NAME_ENABLE_LOCAL_PASSWORD) + @javax.annotation.Nullable + private Boolean enableLocalPassword; + + public static final String SERIALIZED_NAME_ORDERED_VIEWS = "OrderedViews"; + @SerializedName(SERIALIZED_NAME_ORDERED_VIEWS) + @javax.annotation.Nullable + private List orderedViews = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LATEST_ITEMS_EXCLUDES = "LatestItemsExcludes"; + @SerializedName(SERIALIZED_NAME_LATEST_ITEMS_EXCLUDES) + @javax.annotation.Nullable + private List latestItemsExcludes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MY_MEDIA_EXCLUDES = "MyMediaExcludes"; + @SerializedName(SERIALIZED_NAME_MY_MEDIA_EXCLUDES) + @javax.annotation.Nullable + private List myMediaExcludes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_HIDE_PLAYED_IN_LATEST = "HidePlayedInLatest"; + @SerializedName(SERIALIZED_NAME_HIDE_PLAYED_IN_LATEST) + @javax.annotation.Nullable + private Boolean hidePlayedInLatest; + + public static final String SERIALIZED_NAME_REMEMBER_AUDIO_SELECTIONS = "RememberAudioSelections"; + @SerializedName(SERIALIZED_NAME_REMEMBER_AUDIO_SELECTIONS) + @javax.annotation.Nullable + private Boolean rememberAudioSelections; + + public static final String SERIALIZED_NAME_REMEMBER_SUBTITLE_SELECTIONS = "RememberSubtitleSelections"; + @SerializedName(SERIALIZED_NAME_REMEMBER_SUBTITLE_SELECTIONS) + @javax.annotation.Nullable + private Boolean rememberSubtitleSelections; + + public static final String SERIALIZED_NAME_ENABLE_NEXT_EPISODE_AUTO_PLAY = "EnableNextEpisodeAutoPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_NEXT_EPISODE_AUTO_PLAY) + @javax.annotation.Nullable + private Boolean enableNextEpisodeAutoPlay; + + public static final String SERIALIZED_NAME_CAST_RECEIVER_ID = "CastReceiverId"; + @SerializedName(SERIALIZED_NAME_CAST_RECEIVER_ID) + @javax.annotation.Nullable + private String castReceiverId; + + public UserConfiguration() { + } + + public UserConfiguration audioLanguagePreference(@javax.annotation.Nullable String audioLanguagePreference) { + this.audioLanguagePreference = audioLanguagePreference; + return this; + } + + /** + * Gets or sets the audio language preference. + * @return audioLanguagePreference + */ + @javax.annotation.Nullable + public String getAudioLanguagePreference() { + return audioLanguagePreference; + } + + public void setAudioLanguagePreference(@javax.annotation.Nullable String audioLanguagePreference) { + this.audioLanguagePreference = audioLanguagePreference; + } + + + public UserConfiguration playDefaultAudioTrack(@javax.annotation.Nullable Boolean playDefaultAudioTrack) { + this.playDefaultAudioTrack = playDefaultAudioTrack; + return this; + } + + /** + * Gets or sets a value indicating whether [play default audio track]. + * @return playDefaultAudioTrack + */ + @javax.annotation.Nullable + public Boolean getPlayDefaultAudioTrack() { + return playDefaultAudioTrack; + } + + public void setPlayDefaultAudioTrack(@javax.annotation.Nullable Boolean playDefaultAudioTrack) { + this.playDefaultAudioTrack = playDefaultAudioTrack; + } + + + public UserConfiguration subtitleLanguagePreference(@javax.annotation.Nullable String subtitleLanguagePreference) { + this.subtitleLanguagePreference = subtitleLanguagePreference; + return this; + } + + /** + * Gets or sets the subtitle language preference. + * @return subtitleLanguagePreference + */ + @javax.annotation.Nullable + public String getSubtitleLanguagePreference() { + return subtitleLanguagePreference; + } + + public void setSubtitleLanguagePreference(@javax.annotation.Nullable String subtitleLanguagePreference) { + this.subtitleLanguagePreference = subtitleLanguagePreference; + } + + + public UserConfiguration displayMissingEpisodes(@javax.annotation.Nullable Boolean displayMissingEpisodes) { + this.displayMissingEpisodes = displayMissingEpisodes; + return this; + } + + /** + * Get displayMissingEpisodes + * @return displayMissingEpisodes + */ + @javax.annotation.Nullable + public Boolean getDisplayMissingEpisodes() { + return displayMissingEpisodes; + } + + public void setDisplayMissingEpisodes(@javax.annotation.Nullable Boolean displayMissingEpisodes) { + this.displayMissingEpisodes = displayMissingEpisodes; + } + + + public UserConfiguration groupedFolders(@javax.annotation.Nullable List groupedFolders) { + this.groupedFolders = groupedFolders; + return this; + } + + public UserConfiguration addGroupedFoldersItem(UUID groupedFoldersItem) { + if (this.groupedFolders == null) { + this.groupedFolders = new ArrayList<>(); + } + this.groupedFolders.add(groupedFoldersItem); + return this; + } + + /** + * Get groupedFolders + * @return groupedFolders + */ + @javax.annotation.Nullable + public List getGroupedFolders() { + return groupedFolders; + } + + public void setGroupedFolders(@javax.annotation.Nullable List groupedFolders) { + this.groupedFolders = groupedFolders; + } + + + public UserConfiguration subtitleMode(@javax.annotation.Nullable SubtitlePlaybackMode subtitleMode) { + this.subtitleMode = subtitleMode; + return this; + } + + /** + * An enum representing a subtitle playback mode. + * @return subtitleMode + */ + @javax.annotation.Nullable + public SubtitlePlaybackMode getSubtitleMode() { + return subtitleMode; + } + + public void setSubtitleMode(@javax.annotation.Nullable SubtitlePlaybackMode subtitleMode) { + this.subtitleMode = subtitleMode; + } + + + public UserConfiguration displayCollectionsView(@javax.annotation.Nullable Boolean displayCollectionsView) { + this.displayCollectionsView = displayCollectionsView; + return this; + } + + /** + * Get displayCollectionsView + * @return displayCollectionsView + */ + @javax.annotation.Nullable + public Boolean getDisplayCollectionsView() { + return displayCollectionsView; + } + + public void setDisplayCollectionsView(@javax.annotation.Nullable Boolean displayCollectionsView) { + this.displayCollectionsView = displayCollectionsView; + } + + + public UserConfiguration enableLocalPassword(@javax.annotation.Nullable Boolean enableLocalPassword) { + this.enableLocalPassword = enableLocalPassword; + return this; + } + + /** + * Get enableLocalPassword + * @return enableLocalPassword + */ + @javax.annotation.Nullable + public Boolean getEnableLocalPassword() { + return enableLocalPassword; + } + + public void setEnableLocalPassword(@javax.annotation.Nullable Boolean enableLocalPassword) { + this.enableLocalPassword = enableLocalPassword; + } + + + public UserConfiguration orderedViews(@javax.annotation.Nullable List orderedViews) { + this.orderedViews = orderedViews; + return this; + } + + public UserConfiguration addOrderedViewsItem(UUID orderedViewsItem) { + if (this.orderedViews == null) { + this.orderedViews = new ArrayList<>(); + } + this.orderedViews.add(orderedViewsItem); + return this; + } + + /** + * Get orderedViews + * @return orderedViews + */ + @javax.annotation.Nullable + public List getOrderedViews() { + return orderedViews; + } + + public void setOrderedViews(@javax.annotation.Nullable List orderedViews) { + this.orderedViews = orderedViews; + } + + + public UserConfiguration latestItemsExcludes(@javax.annotation.Nullable List latestItemsExcludes) { + this.latestItemsExcludes = latestItemsExcludes; + return this; + } + + public UserConfiguration addLatestItemsExcludesItem(UUID latestItemsExcludesItem) { + if (this.latestItemsExcludes == null) { + this.latestItemsExcludes = new ArrayList<>(); + } + this.latestItemsExcludes.add(latestItemsExcludesItem); + return this; + } + + /** + * Get latestItemsExcludes + * @return latestItemsExcludes + */ + @javax.annotation.Nullable + public List getLatestItemsExcludes() { + return latestItemsExcludes; + } + + public void setLatestItemsExcludes(@javax.annotation.Nullable List latestItemsExcludes) { + this.latestItemsExcludes = latestItemsExcludes; + } + + + public UserConfiguration myMediaExcludes(@javax.annotation.Nullable List myMediaExcludes) { + this.myMediaExcludes = myMediaExcludes; + return this; + } + + public UserConfiguration addMyMediaExcludesItem(UUID myMediaExcludesItem) { + if (this.myMediaExcludes == null) { + this.myMediaExcludes = new ArrayList<>(); + } + this.myMediaExcludes.add(myMediaExcludesItem); + return this; + } + + /** + * Get myMediaExcludes + * @return myMediaExcludes + */ + @javax.annotation.Nullable + public List getMyMediaExcludes() { + return myMediaExcludes; + } + + public void setMyMediaExcludes(@javax.annotation.Nullable List myMediaExcludes) { + this.myMediaExcludes = myMediaExcludes; + } + + + public UserConfiguration hidePlayedInLatest(@javax.annotation.Nullable Boolean hidePlayedInLatest) { + this.hidePlayedInLatest = hidePlayedInLatest; + return this; + } + + /** + * Get hidePlayedInLatest + * @return hidePlayedInLatest + */ + @javax.annotation.Nullable + public Boolean getHidePlayedInLatest() { + return hidePlayedInLatest; + } + + public void setHidePlayedInLatest(@javax.annotation.Nullable Boolean hidePlayedInLatest) { + this.hidePlayedInLatest = hidePlayedInLatest; + } + + + public UserConfiguration rememberAudioSelections(@javax.annotation.Nullable Boolean rememberAudioSelections) { + this.rememberAudioSelections = rememberAudioSelections; + return this; + } + + /** + * Get rememberAudioSelections + * @return rememberAudioSelections + */ + @javax.annotation.Nullable + public Boolean getRememberAudioSelections() { + return rememberAudioSelections; + } + + public void setRememberAudioSelections(@javax.annotation.Nullable Boolean rememberAudioSelections) { + this.rememberAudioSelections = rememberAudioSelections; + } + + + public UserConfiguration rememberSubtitleSelections(@javax.annotation.Nullable Boolean rememberSubtitleSelections) { + this.rememberSubtitleSelections = rememberSubtitleSelections; + return this; + } + + /** + * Get rememberSubtitleSelections + * @return rememberSubtitleSelections + */ + @javax.annotation.Nullable + public Boolean getRememberSubtitleSelections() { + return rememberSubtitleSelections; + } + + public void setRememberSubtitleSelections(@javax.annotation.Nullable Boolean rememberSubtitleSelections) { + this.rememberSubtitleSelections = rememberSubtitleSelections; + } + + + public UserConfiguration enableNextEpisodeAutoPlay(@javax.annotation.Nullable Boolean enableNextEpisodeAutoPlay) { + this.enableNextEpisodeAutoPlay = enableNextEpisodeAutoPlay; + return this; + } + + /** + * Get enableNextEpisodeAutoPlay + * @return enableNextEpisodeAutoPlay + */ + @javax.annotation.Nullable + public Boolean getEnableNextEpisodeAutoPlay() { + return enableNextEpisodeAutoPlay; + } + + public void setEnableNextEpisodeAutoPlay(@javax.annotation.Nullable Boolean enableNextEpisodeAutoPlay) { + this.enableNextEpisodeAutoPlay = enableNextEpisodeAutoPlay; + } + + + public UserConfiguration castReceiverId(@javax.annotation.Nullable String castReceiverId) { + this.castReceiverId = castReceiverId; + return this; + } + + /** + * Gets or sets the id of the selected cast receiver. + * @return castReceiverId + */ + @javax.annotation.Nullable + public String getCastReceiverId() { + return castReceiverId; + } + + public void setCastReceiverId(@javax.annotation.Nullable String castReceiverId) { + this.castReceiverId = castReceiverId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserConfiguration userConfiguration = (UserConfiguration) o; + return Objects.equals(this.audioLanguagePreference, userConfiguration.audioLanguagePreference) && + Objects.equals(this.playDefaultAudioTrack, userConfiguration.playDefaultAudioTrack) && + Objects.equals(this.subtitleLanguagePreference, userConfiguration.subtitleLanguagePreference) && + Objects.equals(this.displayMissingEpisodes, userConfiguration.displayMissingEpisodes) && + Objects.equals(this.groupedFolders, userConfiguration.groupedFolders) && + Objects.equals(this.subtitleMode, userConfiguration.subtitleMode) && + Objects.equals(this.displayCollectionsView, userConfiguration.displayCollectionsView) && + Objects.equals(this.enableLocalPassword, userConfiguration.enableLocalPassword) && + Objects.equals(this.orderedViews, userConfiguration.orderedViews) && + Objects.equals(this.latestItemsExcludes, userConfiguration.latestItemsExcludes) && + Objects.equals(this.myMediaExcludes, userConfiguration.myMediaExcludes) && + Objects.equals(this.hidePlayedInLatest, userConfiguration.hidePlayedInLatest) && + Objects.equals(this.rememberAudioSelections, userConfiguration.rememberAudioSelections) && + Objects.equals(this.rememberSubtitleSelections, userConfiguration.rememberSubtitleSelections) && + Objects.equals(this.enableNextEpisodeAutoPlay, userConfiguration.enableNextEpisodeAutoPlay) && + Objects.equals(this.castReceiverId, userConfiguration.castReceiverId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(audioLanguagePreference, playDefaultAudioTrack, subtitleLanguagePreference, displayMissingEpisodes, groupedFolders, subtitleMode, displayCollectionsView, enableLocalPassword, orderedViews, latestItemsExcludes, myMediaExcludes, hidePlayedInLatest, rememberAudioSelections, rememberSubtitleSelections, enableNextEpisodeAutoPlay, castReceiverId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserConfiguration {\n"); + sb.append(" audioLanguagePreference: ").append(toIndentedString(audioLanguagePreference)).append("\n"); + sb.append(" playDefaultAudioTrack: ").append(toIndentedString(playDefaultAudioTrack)).append("\n"); + sb.append(" subtitleLanguagePreference: ").append(toIndentedString(subtitleLanguagePreference)).append("\n"); + sb.append(" displayMissingEpisodes: ").append(toIndentedString(displayMissingEpisodes)).append("\n"); + sb.append(" groupedFolders: ").append(toIndentedString(groupedFolders)).append("\n"); + sb.append(" subtitleMode: ").append(toIndentedString(subtitleMode)).append("\n"); + sb.append(" displayCollectionsView: ").append(toIndentedString(displayCollectionsView)).append("\n"); + sb.append(" enableLocalPassword: ").append(toIndentedString(enableLocalPassword)).append("\n"); + sb.append(" orderedViews: ").append(toIndentedString(orderedViews)).append("\n"); + sb.append(" latestItemsExcludes: ").append(toIndentedString(latestItemsExcludes)).append("\n"); + sb.append(" myMediaExcludes: ").append(toIndentedString(myMediaExcludes)).append("\n"); + sb.append(" hidePlayedInLatest: ").append(toIndentedString(hidePlayedInLatest)).append("\n"); + sb.append(" rememberAudioSelections: ").append(toIndentedString(rememberAudioSelections)).append("\n"); + sb.append(" rememberSubtitleSelections: ").append(toIndentedString(rememberSubtitleSelections)).append("\n"); + sb.append(" enableNextEpisodeAutoPlay: ").append(toIndentedString(enableNextEpisodeAutoPlay)).append("\n"); + sb.append(" castReceiverId: ").append(toIndentedString(castReceiverId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AudioLanguagePreference"); + openapiFields.add("PlayDefaultAudioTrack"); + openapiFields.add("SubtitleLanguagePreference"); + openapiFields.add("DisplayMissingEpisodes"); + openapiFields.add("GroupedFolders"); + openapiFields.add("SubtitleMode"); + openapiFields.add("DisplayCollectionsView"); + openapiFields.add("EnableLocalPassword"); + openapiFields.add("OrderedViews"); + openapiFields.add("LatestItemsExcludes"); + openapiFields.add("MyMediaExcludes"); + openapiFields.add("HidePlayedInLatest"); + openapiFields.add("RememberAudioSelections"); + openapiFields.add("RememberSubtitleSelections"); + openapiFields.add("EnableNextEpisodeAutoPlay"); + openapiFields.add("CastReceiverId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserConfiguration is not found in the empty JSON string", UserConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AudioLanguagePreference") != null && !jsonObj.get("AudioLanguagePreference").isJsonNull()) && !jsonObj.get("AudioLanguagePreference").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioLanguagePreference` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioLanguagePreference").toString())); + } + if ((jsonObj.get("SubtitleLanguagePreference") != null && !jsonObj.get("SubtitleLanguagePreference").isJsonNull()) && !jsonObj.get("SubtitleLanguagePreference").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleLanguagePreference` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SubtitleLanguagePreference").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("GroupedFolders") != null && !jsonObj.get("GroupedFolders").isJsonNull() && !jsonObj.get("GroupedFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupedFolders` to be an array in the JSON string but got `%s`", jsonObj.get("GroupedFolders").toString())); + } + // validate the optional field `SubtitleMode` + if (jsonObj.get("SubtitleMode") != null && !jsonObj.get("SubtitleMode").isJsonNull()) { + SubtitlePlaybackMode.validateJsonElement(jsonObj.get("SubtitleMode")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("OrderedViews") != null && !jsonObj.get("OrderedViews").isJsonNull() && !jsonObj.get("OrderedViews").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `OrderedViews` to be an array in the JSON string but got `%s`", jsonObj.get("OrderedViews").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LatestItemsExcludes") != null && !jsonObj.get("LatestItemsExcludes").isJsonNull() && !jsonObj.get("LatestItemsExcludes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LatestItemsExcludes` to be an array in the JSON string but got `%s`", jsonObj.get("LatestItemsExcludes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MyMediaExcludes") != null && !jsonObj.get("MyMediaExcludes").isJsonNull() && !jsonObj.get("MyMediaExcludes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MyMediaExcludes` to be an array in the JSON string but got `%s`", jsonObj.get("MyMediaExcludes").toString())); + } + if ((jsonObj.get("CastReceiverId") != null && !jsonObj.get("CastReceiverId").isJsonNull()) && !jsonObj.get("CastReceiverId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CastReceiverId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CastReceiverId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserConfiguration + * @throws IOException if the JSON string is invalid with respect to UserConfiguration + */ + public static UserConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserConfiguration.class); + } + + /** + * Convert an instance of UserConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangeInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangeInfo.java new file mode 100644 index 0000000000000..7648fc4b181dd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangeInfo.java @@ -0,0 +1,259 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.UserItemDataDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserDataChangeInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserDataChangeInfo { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_DATA_LIST = "UserDataList"; + @SerializedName(SERIALIZED_NAME_USER_DATA_LIST) + @javax.annotation.Nullable + private List userDataList = new ArrayList<>(); + + public UserDataChangeInfo() { + } + + public UserDataChangeInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public UserDataChangeInfo userDataList(@javax.annotation.Nullable List userDataList) { + this.userDataList = userDataList; + return this; + } + + public UserDataChangeInfo addUserDataListItem(UserItemDataDto userDataListItem) { + if (this.userDataList == null) { + this.userDataList = new ArrayList<>(); + } + this.userDataList.add(userDataListItem); + return this; + } + + /** + * Gets or sets the user data list. + * @return userDataList + */ + @javax.annotation.Nullable + public List getUserDataList() { + return userDataList; + } + + public void setUserDataList(@javax.annotation.Nullable List userDataList) { + this.userDataList = userDataList; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserDataChangeInfo userDataChangeInfo = (UserDataChangeInfo) o; + return Objects.equals(this.userId, userDataChangeInfo.userId) && + Objects.equals(this.userDataList, userDataChangeInfo.userDataList); + } + + @Override + public int hashCode() { + return Objects.hash(userId, userDataList); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserDataChangeInfo {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userDataList: ").append(toIndentedString(userDataList)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("UserDataList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserDataChangeInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserDataChangeInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserDataChangeInfo is not found in the empty JSON string", UserDataChangeInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserDataChangeInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserDataChangeInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if (jsonObj.get("UserDataList") != null && !jsonObj.get("UserDataList").isJsonNull()) { + JsonArray jsonArrayuserDataList = jsonObj.getAsJsonArray("UserDataList"); + if (jsonArrayuserDataList != null) { + // ensure the json data is an array + if (!jsonObj.get("UserDataList").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `UserDataList` to be an array in the JSON string but got `%s`", jsonObj.get("UserDataList").toString())); + } + + // validate the optional field `UserDataList` (array) + for (int i = 0; i < jsonArrayuserDataList.size(); i++) { + UserItemDataDto.validateJsonElement(jsonArrayuserDataList.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserDataChangeInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserDataChangeInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserDataChangeInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserDataChangeInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserDataChangeInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserDataChangeInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserDataChangeInfo + * @throws IOException if the JSON string is invalid with respect to UserDataChangeInfo + */ + public static UserDataChangeInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserDataChangeInfo.class); + } + + /** + * Convert an instance of UserDataChangeInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangedMessage.java new file mode 100644 index 0000000000000..a3d27aa24f0bb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDataChangedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.UserDataChangeInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * User data changed message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserDataChangedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private UserDataChangeInfo data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.USER_DATA_CHANGED; + + public UserDataChangedMessage() { + } + + public UserDataChangedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public UserDataChangedMessage data(@javax.annotation.Nullable UserDataChangeInfo data) { + this.data = data; + return this; + } + + /** + * Class UserDataChangeInfo. + * @return data + */ + @javax.annotation.Nullable + public UserDataChangeInfo getData() { + return data; + } + + public void setData(@javax.annotation.Nullable UserDataChangeInfo data) { + this.data = data; + } + + + public UserDataChangedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserDataChangedMessage userDataChangedMessage = (UserDataChangedMessage) o; + return Objects.equals(this.data, userDataChangedMessage.data) && + Objects.equals(this.messageId, userDataChangedMessage.messageId) && + Objects.equals(this.messageType, userDataChangedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserDataChangedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserDataChangedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserDataChangedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserDataChangedMessage is not found in the empty JSON string", UserDataChangedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserDataChangedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserDataChangedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + UserDataChangeInfo.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserDataChangedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserDataChangedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserDataChangedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserDataChangedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserDataChangedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserDataChangedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserDataChangedMessage + * @throws IOException if the JSON string is invalid with respect to UserDataChangedMessage + */ + public static UserDataChangedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserDataChangedMessage.class); + } + + /** + * Convert an instance of UserDataChangedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDeletedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDeletedMessage.java new file mode 100644 index 0000000000000..98f303d56807f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDeletedMessage.java @@ -0,0 +1,268 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * User deleted message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserDeletedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private UUID data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.USER_DELETED; + + public UserDeletedMessage() { + } + + public UserDeletedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public UserDeletedMessage data(@javax.annotation.Nullable UUID data) { + this.data = data; + return this; + } + + /** + * Gets or sets the data. + * @return data + */ + @javax.annotation.Nullable + public UUID getData() { + return data; + } + + public void setData(@javax.annotation.Nullable UUID data) { + this.data = data; + } + + + public UserDeletedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserDeletedMessage userDeletedMessage = (UserDeletedMessage) o; + return Objects.equals(this.data, userDeletedMessage.data) && + Objects.equals(this.messageId, userDeletedMessage.messageId) && + Objects.equals(this.messageType, userDeletedMessage.messageType); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserDeletedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserDeletedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserDeletedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserDeletedMessage is not found in the empty JSON string", UserDeletedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserDeletedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserDeletedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserDeletedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserDeletedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserDeletedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserDeletedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserDeletedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserDeletedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserDeletedMessage + * @throws IOException if the JSON string is invalid with respect to UserDeletedMessage + */ + public static UserDeletedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserDeletedMessage.class); + } + + /** + * Convert an instance of UserDeletedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDto.java new file mode 100644 index 0000000000000..4b85dda1dbf73 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserDto.java @@ -0,0 +1,598 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.UserConfiguration; +import org.openapitools.client.model.UserPolicy; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_HAS_PASSWORD = "HasPassword"; + @SerializedName(SERIALIZED_NAME_HAS_PASSWORD) + @javax.annotation.Nullable + private Boolean hasPassword; + + public static final String SERIALIZED_NAME_HAS_CONFIGURED_PASSWORD = "HasConfiguredPassword"; + @SerializedName(SERIALIZED_NAME_HAS_CONFIGURED_PASSWORD) + @javax.annotation.Nullable + private Boolean hasConfiguredPassword; + + public static final String SERIALIZED_NAME_HAS_CONFIGURED_EASY_PASSWORD = "HasConfiguredEasyPassword"; + @Deprecated + @SerializedName(SERIALIZED_NAME_HAS_CONFIGURED_EASY_PASSWORD) + @javax.annotation.Nullable + private Boolean hasConfiguredEasyPassword; + + public static final String SERIALIZED_NAME_ENABLE_AUTO_LOGIN = "EnableAutoLogin"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTO_LOGIN) + @javax.annotation.Nullable + private Boolean enableAutoLogin; + + public static final String SERIALIZED_NAME_LAST_LOGIN_DATE = "LastLoginDate"; + @SerializedName(SERIALIZED_NAME_LAST_LOGIN_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastLoginDate; + + public static final String SERIALIZED_NAME_LAST_ACTIVITY_DATE = "LastActivityDate"; + @SerializedName(SERIALIZED_NAME_LAST_ACTIVITY_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastActivityDate; + + public static final String SERIALIZED_NAME_CONFIGURATION = "Configuration"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION) + @javax.annotation.Nullable + private UserConfiguration _configuration; + + public static final String SERIALIZED_NAME_POLICY = "Policy"; + @SerializedName(SERIALIZED_NAME_POLICY) + @javax.annotation.Nullable + private UserPolicy policy; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public UserDto() { + } + + public UserDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public UserDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public UserDto serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. This is not used by the server and is for client-side usage only. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public UserDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public UserDto primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the primary image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public UserDto hasPassword(@javax.annotation.Nullable Boolean hasPassword) { + this.hasPassword = hasPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has password. + * @return hasPassword + */ + @javax.annotation.Nullable + public Boolean getHasPassword() { + return hasPassword; + } + + public void setHasPassword(@javax.annotation.Nullable Boolean hasPassword) { + this.hasPassword = hasPassword; + } + + + public UserDto hasConfiguredPassword(@javax.annotation.Nullable Boolean hasConfiguredPassword) { + this.hasConfiguredPassword = hasConfiguredPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has configured password. + * @return hasConfiguredPassword + */ + @javax.annotation.Nullable + public Boolean getHasConfiguredPassword() { + return hasConfiguredPassword; + } + + public void setHasConfiguredPassword(@javax.annotation.Nullable Boolean hasConfiguredPassword) { + this.hasConfiguredPassword = hasConfiguredPassword; + } + + + @Deprecated + public UserDto hasConfiguredEasyPassword(@javax.annotation.Nullable Boolean hasConfiguredEasyPassword) { + this.hasConfiguredEasyPassword = hasConfiguredEasyPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has configured easy password. + * @return hasConfiguredEasyPassword + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getHasConfiguredEasyPassword() { + return hasConfiguredEasyPassword; + } + + @Deprecated + public void setHasConfiguredEasyPassword(@javax.annotation.Nullable Boolean hasConfiguredEasyPassword) { + this.hasConfiguredEasyPassword = hasConfiguredEasyPassword; + } + + + public UserDto enableAutoLogin(@javax.annotation.Nullable Boolean enableAutoLogin) { + this.enableAutoLogin = enableAutoLogin; + return this; + } + + /** + * Gets or sets whether async login is enabled or not. + * @return enableAutoLogin + */ + @javax.annotation.Nullable + public Boolean getEnableAutoLogin() { + return enableAutoLogin; + } + + public void setEnableAutoLogin(@javax.annotation.Nullable Boolean enableAutoLogin) { + this.enableAutoLogin = enableAutoLogin; + } + + + public UserDto lastLoginDate(@javax.annotation.Nullable OffsetDateTime lastLoginDate) { + this.lastLoginDate = lastLoginDate; + return this; + } + + /** + * Gets or sets the last login date. + * @return lastLoginDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastLoginDate() { + return lastLoginDate; + } + + public void setLastLoginDate(@javax.annotation.Nullable OffsetDateTime lastLoginDate) { + this.lastLoginDate = lastLoginDate; + } + + + public UserDto lastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + return this; + } + + /** + * Gets or sets the last activity date. + * @return lastActivityDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastActivityDate() { + return lastActivityDate; + } + + public void setLastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + } + + + public UserDto _configuration(@javax.annotation.Nullable UserConfiguration _configuration) { + this._configuration = _configuration; + return this; + } + + /** + * Gets or sets the configuration. + * @return _configuration + */ + @javax.annotation.Nullable + public UserConfiguration getConfiguration() { + return _configuration; + } + + public void setConfiguration(@javax.annotation.Nullable UserConfiguration _configuration) { + this._configuration = _configuration; + } + + + public UserDto policy(@javax.annotation.Nullable UserPolicy policy) { + this.policy = policy; + return this; + } + + /** + * Gets or sets the policy. + * @return policy + */ + @javax.annotation.Nullable + public UserPolicy getPolicy() { + return policy; + } + + public void setPolicy(@javax.annotation.Nullable UserPolicy policy) { + this.policy = policy; + } + + + public UserDto primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserDto userDto = (UserDto) o; + return Objects.equals(this.name, userDto.name) && + Objects.equals(this.serverId, userDto.serverId) && + Objects.equals(this.serverName, userDto.serverName) && + Objects.equals(this.id, userDto.id) && + Objects.equals(this.primaryImageTag, userDto.primaryImageTag) && + Objects.equals(this.hasPassword, userDto.hasPassword) && + Objects.equals(this.hasConfiguredPassword, userDto.hasConfiguredPassword) && + Objects.equals(this.hasConfiguredEasyPassword, userDto.hasConfiguredEasyPassword) && + Objects.equals(this.enableAutoLogin, userDto.enableAutoLogin) && + Objects.equals(this.lastLoginDate, userDto.lastLoginDate) && + Objects.equals(this.lastActivityDate, userDto.lastActivityDate) && + Objects.equals(this._configuration, userDto._configuration) && + Objects.equals(this.policy, userDto.policy) && + Objects.equals(this.primaryImageAspectRatio, userDto.primaryImageAspectRatio); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, serverId, serverName, id, primaryImageTag, hasPassword, hasConfiguredPassword, hasConfiguredEasyPassword, enableAutoLogin, lastLoginDate, lastActivityDate, _configuration, policy, primaryImageAspectRatio); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" hasPassword: ").append(toIndentedString(hasPassword)).append("\n"); + sb.append(" hasConfiguredPassword: ").append(toIndentedString(hasConfiguredPassword)).append("\n"); + sb.append(" hasConfiguredEasyPassword: ").append(toIndentedString(hasConfiguredEasyPassword)).append("\n"); + sb.append(" enableAutoLogin: ").append(toIndentedString(enableAutoLogin)).append("\n"); + sb.append(" lastLoginDate: ").append(toIndentedString(lastLoginDate)).append("\n"); + sb.append(" lastActivityDate: ").append(toIndentedString(lastActivityDate)).append("\n"); + sb.append(" _configuration: ").append(toIndentedString(_configuration)).append("\n"); + sb.append(" policy: ").append(toIndentedString(policy)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ServerId"); + openapiFields.add("ServerName"); + openapiFields.add("Id"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("HasPassword"); + openapiFields.add("HasConfiguredPassword"); + openapiFields.add("HasConfiguredEasyPassword"); + openapiFields.add("EnableAutoLogin"); + openapiFields.add("LastLoginDate"); + openapiFields.add("LastActivityDate"); + openapiFields.add("Configuration"); + openapiFields.add("Policy"); + openapiFields.add("PrimaryImageAspectRatio"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserDto is not found in the empty JSON string", UserDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + // validate the optional field `Configuration` + if (jsonObj.get("Configuration") != null && !jsonObj.get("Configuration").isJsonNull()) { + UserConfiguration.validateJsonElement(jsonObj.get("Configuration")); + } + // validate the optional field `Policy` + if (jsonObj.get("Policy") != null && !jsonObj.get("Policy").isJsonNull()) { + UserPolicy.validateJsonElement(jsonObj.get("Policy")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserDto + * @throws IOException if the JSON string is invalid with respect to UserDto + */ + public static UserDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserDto.class); + } + + /** + * Convert an instance of UserDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserItemDataDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserItemDataDto.java new file mode 100644 index 0000000000000..a8e43c9d079d0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserItemDataDto.java @@ -0,0 +1,493 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserItemDataDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserItemDataDto { + public static final String SERIALIZED_NAME_RATING = "Rating"; + @SerializedName(SERIALIZED_NAME_RATING) + @javax.annotation.Nullable + private Double rating; + + public static final String SERIALIZED_NAME_PLAYED_PERCENTAGE = "PlayedPercentage"; + @SerializedName(SERIALIZED_NAME_PLAYED_PERCENTAGE) + @javax.annotation.Nullable + private Double playedPercentage; + + public static final String SERIALIZED_NAME_UNPLAYED_ITEM_COUNT = "UnplayedItemCount"; + @SerializedName(SERIALIZED_NAME_UNPLAYED_ITEM_COUNT) + @javax.annotation.Nullable + private Integer unplayedItemCount; + + public static final String SERIALIZED_NAME_PLAYBACK_POSITION_TICKS = "PlaybackPositionTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_POSITION_TICKS) + @javax.annotation.Nullable + private Long playbackPositionTicks; + + public static final String SERIALIZED_NAME_PLAY_COUNT = "PlayCount"; + @SerializedName(SERIALIZED_NAME_PLAY_COUNT) + @javax.annotation.Nullable + private Integer playCount; + + public static final String SERIALIZED_NAME_IS_FAVORITE = "IsFavorite"; + @SerializedName(SERIALIZED_NAME_IS_FAVORITE) + @javax.annotation.Nullable + private Boolean isFavorite; + + public static final String SERIALIZED_NAME_LIKES = "Likes"; + @SerializedName(SERIALIZED_NAME_LIKES) + @javax.annotation.Nullable + private Boolean likes; + + public static final String SERIALIZED_NAME_LAST_PLAYED_DATE = "LastPlayedDate"; + @SerializedName(SERIALIZED_NAME_LAST_PLAYED_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastPlayedDate; + + public static final String SERIALIZED_NAME_PLAYED = "Played"; + @SerializedName(SERIALIZED_NAME_PLAYED) + @javax.annotation.Nullable + private Boolean played; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public UserItemDataDto() { + } + + public UserItemDataDto rating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + return this; + } + + /** + * Gets or sets the rating. + * @return rating + */ + @javax.annotation.Nullable + public Double getRating() { + return rating; + } + + public void setRating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + } + + + public UserItemDataDto playedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + return this; + } + + /** + * Gets or sets the played percentage. + * @return playedPercentage + */ + @javax.annotation.Nullable + public Double getPlayedPercentage() { + return playedPercentage; + } + + public void setPlayedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + } + + + public UserItemDataDto unplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + return this; + } + + /** + * Gets or sets the unplayed item count. + * @return unplayedItemCount + */ + @javax.annotation.Nullable + public Integer getUnplayedItemCount() { + return unplayedItemCount; + } + + public void setUnplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + } + + + public UserItemDataDto playbackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + return this; + } + + /** + * Gets or sets the playback position ticks. + * @return playbackPositionTicks + */ + @javax.annotation.Nullable + public Long getPlaybackPositionTicks() { + return playbackPositionTicks; + } + + public void setPlaybackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + } + + + public UserItemDataDto playCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + return this; + } + + /** + * Gets or sets the play count. + * @return playCount + */ + @javax.annotation.Nullable + public Integer getPlayCount() { + return playCount; + } + + public void setPlayCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + } + + + public UserItemDataDto isFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is favorite. + * @return isFavorite + */ + @javax.annotation.Nullable + public Boolean getIsFavorite() { + return isFavorite; + } + + public void setIsFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + } + + + public UserItemDataDto likes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. + * @return likes + */ + @javax.annotation.Nullable + public Boolean getLikes() { + return likes; + } + + public void setLikes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + } + + + public UserItemDataDto lastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + return this; + } + + /** + * Gets or sets the last played date. + * @return lastPlayedDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPlayedDate() { + return lastPlayedDate; + } + + public void setLastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + } + + + public UserItemDataDto played(@javax.annotation.Nullable Boolean played) { + this.played = played; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + * @return played + */ + @javax.annotation.Nullable + public Boolean getPlayed() { + return played; + } + + public void setPlayed(@javax.annotation.Nullable Boolean played) { + this.played = played; + } + + + public UserItemDataDto key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public UserItemDataDto itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserItemDataDto userItemDataDto = (UserItemDataDto) o; + return Objects.equals(this.rating, userItemDataDto.rating) && + Objects.equals(this.playedPercentage, userItemDataDto.playedPercentage) && + Objects.equals(this.unplayedItemCount, userItemDataDto.unplayedItemCount) && + Objects.equals(this.playbackPositionTicks, userItemDataDto.playbackPositionTicks) && + Objects.equals(this.playCount, userItemDataDto.playCount) && + Objects.equals(this.isFavorite, userItemDataDto.isFavorite) && + Objects.equals(this.likes, userItemDataDto.likes) && + Objects.equals(this.lastPlayedDate, userItemDataDto.lastPlayedDate) && + Objects.equals(this.played, userItemDataDto.played) && + Objects.equals(this.key, userItemDataDto.key) && + Objects.equals(this.itemId, userItemDataDto.itemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(rating, playedPercentage, unplayedItemCount, playbackPositionTicks, playCount, isFavorite, likes, lastPlayedDate, played, key, itemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserItemDataDto {\n"); + sb.append(" rating: ").append(toIndentedString(rating)).append("\n"); + sb.append(" playedPercentage: ").append(toIndentedString(playedPercentage)).append("\n"); + sb.append(" unplayedItemCount: ").append(toIndentedString(unplayedItemCount)).append("\n"); + sb.append(" playbackPositionTicks: ").append(toIndentedString(playbackPositionTicks)).append("\n"); + sb.append(" playCount: ").append(toIndentedString(playCount)).append("\n"); + sb.append(" isFavorite: ").append(toIndentedString(isFavorite)).append("\n"); + sb.append(" likes: ").append(toIndentedString(likes)).append("\n"); + sb.append(" lastPlayedDate: ").append(toIndentedString(lastPlayedDate)).append("\n"); + sb.append(" played: ").append(toIndentedString(played)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Rating"); + openapiFields.add("PlayedPercentage"); + openapiFields.add("UnplayedItemCount"); + openapiFields.add("PlaybackPositionTicks"); + openapiFields.add("PlayCount"); + openapiFields.add("IsFavorite"); + openapiFields.add("Likes"); + openapiFields.add("LastPlayedDate"); + openapiFields.add("Played"); + openapiFields.add("Key"); + openapiFields.add("ItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserItemDataDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserItemDataDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserItemDataDto is not found in the empty JSON string", UserItemDataDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserItemDataDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserItemDataDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserItemDataDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserItemDataDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserItemDataDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserItemDataDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserItemDataDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserItemDataDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserItemDataDto + * @throws IOException if the JSON string is invalid with respect to UserItemDataDto + */ + public static UserItemDataDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserItemDataDto.class); + } + + /** + * Convert an instance of UserItemDataDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserPolicy.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserPolicy.java new file mode 100644 index 0000000000000..941a9d909d085 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserPolicy.java @@ -0,0 +1,1504 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.AccessSchedule; +import org.openapitools.client.model.SyncPlayUserAccessType; +import org.openapitools.client.model.UnratedItem; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * UserPolicy + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserPolicy { + public static final String SERIALIZED_NAME_IS_ADMINISTRATOR = "IsAdministrator"; + @SerializedName(SERIALIZED_NAME_IS_ADMINISTRATOR) + @javax.annotation.Nullable + private Boolean isAdministrator; + + public static final String SERIALIZED_NAME_IS_HIDDEN = "IsHidden"; + @SerializedName(SERIALIZED_NAME_IS_HIDDEN) + @javax.annotation.Nullable + private Boolean isHidden; + + public static final String SERIALIZED_NAME_ENABLE_COLLECTION_MANAGEMENT = "EnableCollectionManagement"; + @SerializedName(SERIALIZED_NAME_ENABLE_COLLECTION_MANAGEMENT) + @javax.annotation.Nullable + private Boolean enableCollectionManagement = false; + + public static final String SERIALIZED_NAME_ENABLE_SUBTITLE_MANAGEMENT = "EnableSubtitleManagement"; + @SerializedName(SERIALIZED_NAME_ENABLE_SUBTITLE_MANAGEMENT) + @javax.annotation.Nullable + private Boolean enableSubtitleManagement = false; + + public static final String SERIALIZED_NAME_ENABLE_LYRIC_MANAGEMENT = "EnableLyricManagement"; + @SerializedName(SERIALIZED_NAME_ENABLE_LYRIC_MANAGEMENT) + @javax.annotation.Nullable + private Boolean enableLyricManagement = false; + + public static final String SERIALIZED_NAME_IS_DISABLED = "IsDisabled"; + @SerializedName(SERIALIZED_NAME_IS_DISABLED) + @javax.annotation.Nullable + private Boolean isDisabled; + + public static final String SERIALIZED_NAME_MAX_PARENTAL_RATING = "MaxParentalRating"; + @SerializedName(SERIALIZED_NAME_MAX_PARENTAL_RATING) + @javax.annotation.Nullable + private Integer maxParentalRating; + + public static final String SERIALIZED_NAME_BLOCKED_TAGS = "BlockedTags"; + @SerializedName(SERIALIZED_NAME_BLOCKED_TAGS) + @javax.annotation.Nullable + private List blockedTags; + + public static final String SERIALIZED_NAME_ALLOWED_TAGS = "AllowedTags"; + @SerializedName(SERIALIZED_NAME_ALLOWED_TAGS) + @javax.annotation.Nullable + private List allowedTags; + + public static final String SERIALIZED_NAME_ENABLE_USER_PREFERENCE_ACCESS = "EnableUserPreferenceAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_USER_PREFERENCE_ACCESS) + @javax.annotation.Nullable + private Boolean enableUserPreferenceAccess; + + public static final String SERIALIZED_NAME_ACCESS_SCHEDULES = "AccessSchedules"; + @SerializedName(SERIALIZED_NAME_ACCESS_SCHEDULES) + @javax.annotation.Nullable + private List accessSchedules; + + public static final String SERIALIZED_NAME_BLOCK_UNRATED_ITEMS = "BlockUnratedItems"; + @SerializedName(SERIALIZED_NAME_BLOCK_UNRATED_ITEMS) + @javax.annotation.Nullable + private List blockUnratedItems; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_CONTROL_OF_OTHER_USERS = "EnableRemoteControlOfOtherUsers"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_CONTROL_OF_OTHER_USERS) + @javax.annotation.Nullable + private Boolean enableRemoteControlOfOtherUsers; + + public static final String SERIALIZED_NAME_ENABLE_SHARED_DEVICE_CONTROL = "EnableSharedDeviceControl"; + @SerializedName(SERIALIZED_NAME_ENABLE_SHARED_DEVICE_CONTROL) + @javax.annotation.Nullable + private Boolean enableSharedDeviceControl; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nullable + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_ENABLE_LIVE_TV_MANAGEMENT = "EnableLiveTvManagement"; + @SerializedName(SERIALIZED_NAME_ENABLE_LIVE_TV_MANAGEMENT) + @javax.annotation.Nullable + private Boolean enableLiveTvManagement; + + public static final String SERIALIZED_NAME_ENABLE_LIVE_TV_ACCESS = "EnableLiveTvAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_LIVE_TV_ACCESS) + @javax.annotation.Nullable + private Boolean enableLiveTvAccess; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_PLAYBACK = "EnableMediaPlayback"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_PLAYBACK) + @javax.annotation.Nullable + private Boolean enableMediaPlayback; + + public static final String SERIALIZED_NAME_ENABLE_AUDIO_PLAYBACK_TRANSCODING = "EnableAudioPlaybackTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUDIO_PLAYBACK_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableAudioPlaybackTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_VIDEO_PLAYBACK_TRANSCODING = "EnableVideoPlaybackTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_VIDEO_PLAYBACK_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableVideoPlaybackTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_PLAYBACK_REMUXING = "EnablePlaybackRemuxing"; + @SerializedName(SERIALIZED_NAME_ENABLE_PLAYBACK_REMUXING) + @javax.annotation.Nullable + private Boolean enablePlaybackRemuxing; + + public static final String SERIALIZED_NAME_FORCE_REMOTE_SOURCE_TRANSCODING = "ForceRemoteSourceTranscoding"; + @SerializedName(SERIALIZED_NAME_FORCE_REMOTE_SOURCE_TRANSCODING) + @javax.annotation.Nullable + private Boolean forceRemoteSourceTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DELETION = "EnableContentDeletion"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DELETION) + @javax.annotation.Nullable + private Boolean enableContentDeletion; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DELETION_FROM_FOLDERS = "EnableContentDeletionFromFolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DELETION_FROM_FOLDERS) + @javax.annotation.Nullable + private List enableContentDeletionFromFolders; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DOWNLOADING = "EnableContentDownloading"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DOWNLOADING) + @javax.annotation.Nullable + private Boolean enableContentDownloading; + + public static final String SERIALIZED_NAME_ENABLE_SYNC_TRANSCODING = "EnableSyncTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_SYNC_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableSyncTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_CONVERSION = "EnableMediaConversion"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_CONVERSION) + @javax.annotation.Nullable + private Boolean enableMediaConversion; + + public static final String SERIALIZED_NAME_ENABLED_DEVICES = "EnabledDevices"; + @SerializedName(SERIALIZED_NAME_ENABLED_DEVICES) + @javax.annotation.Nullable + private List enabledDevices; + + public static final String SERIALIZED_NAME_ENABLE_ALL_DEVICES = "EnableAllDevices"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_DEVICES) + @javax.annotation.Nullable + private Boolean enableAllDevices; + + public static final String SERIALIZED_NAME_ENABLED_CHANNELS = "EnabledChannels"; + @SerializedName(SERIALIZED_NAME_ENABLED_CHANNELS) + @javax.annotation.Nullable + private List enabledChannels; + + public static final String SERIALIZED_NAME_ENABLE_ALL_CHANNELS = "EnableAllChannels"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_CHANNELS) + @javax.annotation.Nullable + private Boolean enableAllChannels; + + public static final String SERIALIZED_NAME_ENABLED_FOLDERS = "EnabledFolders"; + @SerializedName(SERIALIZED_NAME_ENABLED_FOLDERS) + @javax.annotation.Nullable + private List enabledFolders; + + public static final String SERIALIZED_NAME_ENABLE_ALL_FOLDERS = "EnableAllFolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_FOLDERS) + @javax.annotation.Nullable + private Boolean enableAllFolders; + + public static final String SERIALIZED_NAME_INVALID_LOGIN_ATTEMPT_COUNT = "InvalidLoginAttemptCount"; + @SerializedName(SERIALIZED_NAME_INVALID_LOGIN_ATTEMPT_COUNT) + @javax.annotation.Nullable + private Integer invalidLoginAttemptCount; + + public static final String SERIALIZED_NAME_LOGIN_ATTEMPTS_BEFORE_LOCKOUT = "LoginAttemptsBeforeLockout"; + @SerializedName(SERIALIZED_NAME_LOGIN_ATTEMPTS_BEFORE_LOCKOUT) + @javax.annotation.Nullable + private Integer loginAttemptsBeforeLockout; + + public static final String SERIALIZED_NAME_MAX_ACTIVE_SESSIONS = "MaxActiveSessions"; + @SerializedName(SERIALIZED_NAME_MAX_ACTIVE_SESSIONS) + @javax.annotation.Nullable + private Integer maxActiveSessions; + + public static final String SERIALIZED_NAME_ENABLE_PUBLIC_SHARING = "EnablePublicSharing"; + @SerializedName(SERIALIZED_NAME_ENABLE_PUBLIC_SHARING) + @javax.annotation.Nullable + private Boolean enablePublicSharing; + + public static final String SERIALIZED_NAME_BLOCKED_MEDIA_FOLDERS = "BlockedMediaFolders"; + @SerializedName(SERIALIZED_NAME_BLOCKED_MEDIA_FOLDERS) + @javax.annotation.Nullable + private List blockedMediaFolders; + + public static final String SERIALIZED_NAME_BLOCKED_CHANNELS = "BlockedChannels"; + @SerializedName(SERIALIZED_NAME_BLOCKED_CHANNELS) + @javax.annotation.Nullable + private List blockedChannels; + + public static final String SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT = "RemoteClientBitrateLimit"; + @SerializedName(SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT) + @javax.annotation.Nullable + private Integer remoteClientBitrateLimit; + + public static final String SERIALIZED_NAME_AUTHENTICATION_PROVIDER_ID = "AuthenticationProviderId"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATION_PROVIDER_ID) + @javax.annotation.Nonnull + private String authenticationProviderId; + + public static final String SERIALIZED_NAME_PASSWORD_RESET_PROVIDER_ID = "PasswordResetProviderId"; + @SerializedName(SERIALIZED_NAME_PASSWORD_RESET_PROVIDER_ID) + @javax.annotation.Nonnull + private String passwordResetProviderId; + + public static final String SERIALIZED_NAME_SYNC_PLAY_ACCESS = "SyncPlayAccess"; + @SerializedName(SERIALIZED_NAME_SYNC_PLAY_ACCESS) + @javax.annotation.Nullable + private SyncPlayUserAccessType syncPlayAccess; + + public UserPolicy() { + } + + public UserPolicy isAdministrator(@javax.annotation.Nullable Boolean isAdministrator) { + this.isAdministrator = isAdministrator; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is administrator. + * @return isAdministrator + */ + @javax.annotation.Nullable + public Boolean getIsAdministrator() { + return isAdministrator; + } + + public void setIsAdministrator(@javax.annotation.Nullable Boolean isAdministrator) { + this.isAdministrator = isAdministrator; + } + + + public UserPolicy isHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is hidden. + * @return isHidden + */ + @javax.annotation.Nullable + public Boolean getIsHidden() { + return isHidden; + } + + public void setIsHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + } + + + public UserPolicy enableCollectionManagement(@javax.annotation.Nullable Boolean enableCollectionManagement) { + this.enableCollectionManagement = enableCollectionManagement; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can manage collections. + * @return enableCollectionManagement + */ + @javax.annotation.Nullable + public Boolean getEnableCollectionManagement() { + return enableCollectionManagement; + } + + public void setEnableCollectionManagement(@javax.annotation.Nullable Boolean enableCollectionManagement) { + this.enableCollectionManagement = enableCollectionManagement; + } + + + public UserPolicy enableSubtitleManagement(@javax.annotation.Nullable Boolean enableSubtitleManagement) { + this.enableSubtitleManagement = enableSubtitleManagement; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can manage subtitles. + * @return enableSubtitleManagement + */ + @javax.annotation.Nullable + public Boolean getEnableSubtitleManagement() { + return enableSubtitleManagement; + } + + public void setEnableSubtitleManagement(@javax.annotation.Nullable Boolean enableSubtitleManagement) { + this.enableSubtitleManagement = enableSubtitleManagement; + } + + + public UserPolicy enableLyricManagement(@javax.annotation.Nullable Boolean enableLyricManagement) { + this.enableLyricManagement = enableLyricManagement; + return this; + } + + /** + * Gets or sets a value indicating whether this user can manage lyrics. + * @return enableLyricManagement + */ + @javax.annotation.Nullable + public Boolean getEnableLyricManagement() { + return enableLyricManagement; + } + + public void setEnableLyricManagement(@javax.annotation.Nullable Boolean enableLyricManagement) { + this.enableLyricManagement = enableLyricManagement; + } + + + public UserPolicy isDisabled(@javax.annotation.Nullable Boolean isDisabled) { + this.isDisabled = isDisabled; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is disabled. + * @return isDisabled + */ + @javax.annotation.Nullable + public Boolean getIsDisabled() { + return isDisabled; + } + + public void setIsDisabled(@javax.annotation.Nullable Boolean isDisabled) { + this.isDisabled = isDisabled; + } + + + public UserPolicy maxParentalRating(@javax.annotation.Nullable Integer maxParentalRating) { + this.maxParentalRating = maxParentalRating; + return this; + } + + /** + * Gets or sets the max parental rating. + * @return maxParentalRating + */ + @javax.annotation.Nullable + public Integer getMaxParentalRating() { + return maxParentalRating; + } + + public void setMaxParentalRating(@javax.annotation.Nullable Integer maxParentalRating) { + this.maxParentalRating = maxParentalRating; + } + + + public UserPolicy blockedTags(@javax.annotation.Nullable List blockedTags) { + this.blockedTags = blockedTags; + return this; + } + + public UserPolicy addBlockedTagsItem(String blockedTagsItem) { + if (this.blockedTags == null) { + this.blockedTags = new ArrayList<>(); + } + this.blockedTags.add(blockedTagsItem); + return this; + } + + /** + * Get blockedTags + * @return blockedTags + */ + @javax.annotation.Nullable + public List getBlockedTags() { + return blockedTags; + } + + public void setBlockedTags(@javax.annotation.Nullable List blockedTags) { + this.blockedTags = blockedTags; + } + + + public UserPolicy allowedTags(@javax.annotation.Nullable List allowedTags) { + this.allowedTags = allowedTags; + return this; + } + + public UserPolicy addAllowedTagsItem(String allowedTagsItem) { + if (this.allowedTags == null) { + this.allowedTags = new ArrayList<>(); + } + this.allowedTags.add(allowedTagsItem); + return this; + } + + /** + * Get allowedTags + * @return allowedTags + */ + @javax.annotation.Nullable + public List getAllowedTags() { + return allowedTags; + } + + public void setAllowedTags(@javax.annotation.Nullable List allowedTags) { + this.allowedTags = allowedTags; + } + + + public UserPolicy enableUserPreferenceAccess(@javax.annotation.Nullable Boolean enableUserPreferenceAccess) { + this.enableUserPreferenceAccess = enableUserPreferenceAccess; + return this; + } + + /** + * Get enableUserPreferenceAccess + * @return enableUserPreferenceAccess + */ + @javax.annotation.Nullable + public Boolean getEnableUserPreferenceAccess() { + return enableUserPreferenceAccess; + } + + public void setEnableUserPreferenceAccess(@javax.annotation.Nullable Boolean enableUserPreferenceAccess) { + this.enableUserPreferenceAccess = enableUserPreferenceAccess; + } + + + public UserPolicy accessSchedules(@javax.annotation.Nullable List accessSchedules) { + this.accessSchedules = accessSchedules; + return this; + } + + public UserPolicy addAccessSchedulesItem(AccessSchedule accessSchedulesItem) { + if (this.accessSchedules == null) { + this.accessSchedules = new ArrayList<>(); + } + this.accessSchedules.add(accessSchedulesItem); + return this; + } + + /** + * Get accessSchedules + * @return accessSchedules + */ + @javax.annotation.Nullable + public List getAccessSchedules() { + return accessSchedules; + } + + public void setAccessSchedules(@javax.annotation.Nullable List accessSchedules) { + this.accessSchedules = accessSchedules; + } + + + public UserPolicy blockUnratedItems(@javax.annotation.Nullable List blockUnratedItems) { + this.blockUnratedItems = blockUnratedItems; + return this; + } + + public UserPolicy addBlockUnratedItemsItem(UnratedItem blockUnratedItemsItem) { + if (this.blockUnratedItems == null) { + this.blockUnratedItems = new ArrayList<>(); + } + this.blockUnratedItems.add(blockUnratedItemsItem); + return this; + } + + /** + * Get blockUnratedItems + * @return blockUnratedItems + */ + @javax.annotation.Nullable + public List getBlockUnratedItems() { + return blockUnratedItems; + } + + public void setBlockUnratedItems(@javax.annotation.Nullable List blockUnratedItems) { + this.blockUnratedItems = blockUnratedItems; + } + + + public UserPolicy enableRemoteControlOfOtherUsers(@javax.annotation.Nullable Boolean enableRemoteControlOfOtherUsers) { + this.enableRemoteControlOfOtherUsers = enableRemoteControlOfOtherUsers; + return this; + } + + /** + * Get enableRemoteControlOfOtherUsers + * @return enableRemoteControlOfOtherUsers + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteControlOfOtherUsers() { + return enableRemoteControlOfOtherUsers; + } + + public void setEnableRemoteControlOfOtherUsers(@javax.annotation.Nullable Boolean enableRemoteControlOfOtherUsers) { + this.enableRemoteControlOfOtherUsers = enableRemoteControlOfOtherUsers; + } + + + public UserPolicy enableSharedDeviceControl(@javax.annotation.Nullable Boolean enableSharedDeviceControl) { + this.enableSharedDeviceControl = enableSharedDeviceControl; + return this; + } + + /** + * Get enableSharedDeviceControl + * @return enableSharedDeviceControl + */ + @javax.annotation.Nullable + public Boolean getEnableSharedDeviceControl() { + return enableSharedDeviceControl; + } + + public void setEnableSharedDeviceControl(@javax.annotation.Nullable Boolean enableSharedDeviceControl) { + this.enableSharedDeviceControl = enableSharedDeviceControl; + } + + + public UserPolicy enableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Get enableRemoteAccess + * @return enableRemoteAccess + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public UserPolicy enableLiveTvManagement(@javax.annotation.Nullable Boolean enableLiveTvManagement) { + this.enableLiveTvManagement = enableLiveTvManagement; + return this; + } + + /** + * Get enableLiveTvManagement + * @return enableLiveTvManagement + */ + @javax.annotation.Nullable + public Boolean getEnableLiveTvManagement() { + return enableLiveTvManagement; + } + + public void setEnableLiveTvManagement(@javax.annotation.Nullable Boolean enableLiveTvManagement) { + this.enableLiveTvManagement = enableLiveTvManagement; + } + + + public UserPolicy enableLiveTvAccess(@javax.annotation.Nullable Boolean enableLiveTvAccess) { + this.enableLiveTvAccess = enableLiveTvAccess; + return this; + } + + /** + * Get enableLiveTvAccess + * @return enableLiveTvAccess + */ + @javax.annotation.Nullable + public Boolean getEnableLiveTvAccess() { + return enableLiveTvAccess; + } + + public void setEnableLiveTvAccess(@javax.annotation.Nullable Boolean enableLiveTvAccess) { + this.enableLiveTvAccess = enableLiveTvAccess; + } + + + public UserPolicy enableMediaPlayback(@javax.annotation.Nullable Boolean enableMediaPlayback) { + this.enableMediaPlayback = enableMediaPlayback; + return this; + } + + /** + * Get enableMediaPlayback + * @return enableMediaPlayback + */ + @javax.annotation.Nullable + public Boolean getEnableMediaPlayback() { + return enableMediaPlayback; + } + + public void setEnableMediaPlayback(@javax.annotation.Nullable Boolean enableMediaPlayback) { + this.enableMediaPlayback = enableMediaPlayback; + } + + + public UserPolicy enableAudioPlaybackTranscoding(@javax.annotation.Nullable Boolean enableAudioPlaybackTranscoding) { + this.enableAudioPlaybackTranscoding = enableAudioPlaybackTranscoding; + return this; + } + + /** + * Get enableAudioPlaybackTranscoding + * @return enableAudioPlaybackTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableAudioPlaybackTranscoding() { + return enableAudioPlaybackTranscoding; + } + + public void setEnableAudioPlaybackTranscoding(@javax.annotation.Nullable Boolean enableAudioPlaybackTranscoding) { + this.enableAudioPlaybackTranscoding = enableAudioPlaybackTranscoding; + } + + + public UserPolicy enableVideoPlaybackTranscoding(@javax.annotation.Nullable Boolean enableVideoPlaybackTranscoding) { + this.enableVideoPlaybackTranscoding = enableVideoPlaybackTranscoding; + return this; + } + + /** + * Get enableVideoPlaybackTranscoding + * @return enableVideoPlaybackTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableVideoPlaybackTranscoding() { + return enableVideoPlaybackTranscoding; + } + + public void setEnableVideoPlaybackTranscoding(@javax.annotation.Nullable Boolean enableVideoPlaybackTranscoding) { + this.enableVideoPlaybackTranscoding = enableVideoPlaybackTranscoding; + } + + + public UserPolicy enablePlaybackRemuxing(@javax.annotation.Nullable Boolean enablePlaybackRemuxing) { + this.enablePlaybackRemuxing = enablePlaybackRemuxing; + return this; + } + + /** + * Get enablePlaybackRemuxing + * @return enablePlaybackRemuxing + */ + @javax.annotation.Nullable + public Boolean getEnablePlaybackRemuxing() { + return enablePlaybackRemuxing; + } + + public void setEnablePlaybackRemuxing(@javax.annotation.Nullable Boolean enablePlaybackRemuxing) { + this.enablePlaybackRemuxing = enablePlaybackRemuxing; + } + + + public UserPolicy forceRemoteSourceTranscoding(@javax.annotation.Nullable Boolean forceRemoteSourceTranscoding) { + this.forceRemoteSourceTranscoding = forceRemoteSourceTranscoding; + return this; + } + + /** + * Get forceRemoteSourceTranscoding + * @return forceRemoteSourceTranscoding + */ + @javax.annotation.Nullable + public Boolean getForceRemoteSourceTranscoding() { + return forceRemoteSourceTranscoding; + } + + public void setForceRemoteSourceTranscoding(@javax.annotation.Nullable Boolean forceRemoteSourceTranscoding) { + this.forceRemoteSourceTranscoding = forceRemoteSourceTranscoding; + } + + + public UserPolicy enableContentDeletion(@javax.annotation.Nullable Boolean enableContentDeletion) { + this.enableContentDeletion = enableContentDeletion; + return this; + } + + /** + * Get enableContentDeletion + * @return enableContentDeletion + */ + @javax.annotation.Nullable + public Boolean getEnableContentDeletion() { + return enableContentDeletion; + } + + public void setEnableContentDeletion(@javax.annotation.Nullable Boolean enableContentDeletion) { + this.enableContentDeletion = enableContentDeletion; + } + + + public UserPolicy enableContentDeletionFromFolders(@javax.annotation.Nullable List enableContentDeletionFromFolders) { + this.enableContentDeletionFromFolders = enableContentDeletionFromFolders; + return this; + } + + public UserPolicy addEnableContentDeletionFromFoldersItem(String enableContentDeletionFromFoldersItem) { + if (this.enableContentDeletionFromFolders == null) { + this.enableContentDeletionFromFolders = new ArrayList<>(); + } + this.enableContentDeletionFromFolders.add(enableContentDeletionFromFoldersItem); + return this; + } + + /** + * Get enableContentDeletionFromFolders + * @return enableContentDeletionFromFolders + */ + @javax.annotation.Nullable + public List getEnableContentDeletionFromFolders() { + return enableContentDeletionFromFolders; + } + + public void setEnableContentDeletionFromFolders(@javax.annotation.Nullable List enableContentDeletionFromFolders) { + this.enableContentDeletionFromFolders = enableContentDeletionFromFolders; + } + + + public UserPolicy enableContentDownloading(@javax.annotation.Nullable Boolean enableContentDownloading) { + this.enableContentDownloading = enableContentDownloading; + return this; + } + + /** + * Get enableContentDownloading + * @return enableContentDownloading + */ + @javax.annotation.Nullable + public Boolean getEnableContentDownloading() { + return enableContentDownloading; + } + + public void setEnableContentDownloading(@javax.annotation.Nullable Boolean enableContentDownloading) { + this.enableContentDownloading = enableContentDownloading; + } + + + public UserPolicy enableSyncTranscoding(@javax.annotation.Nullable Boolean enableSyncTranscoding) { + this.enableSyncTranscoding = enableSyncTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether [enable synchronize]. + * @return enableSyncTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableSyncTranscoding() { + return enableSyncTranscoding; + } + + public void setEnableSyncTranscoding(@javax.annotation.Nullable Boolean enableSyncTranscoding) { + this.enableSyncTranscoding = enableSyncTranscoding; + } + + + public UserPolicy enableMediaConversion(@javax.annotation.Nullable Boolean enableMediaConversion) { + this.enableMediaConversion = enableMediaConversion; + return this; + } + + /** + * Get enableMediaConversion + * @return enableMediaConversion + */ + @javax.annotation.Nullable + public Boolean getEnableMediaConversion() { + return enableMediaConversion; + } + + public void setEnableMediaConversion(@javax.annotation.Nullable Boolean enableMediaConversion) { + this.enableMediaConversion = enableMediaConversion; + } + + + public UserPolicy enabledDevices(@javax.annotation.Nullable List enabledDevices) { + this.enabledDevices = enabledDevices; + return this; + } + + public UserPolicy addEnabledDevicesItem(String enabledDevicesItem) { + if (this.enabledDevices == null) { + this.enabledDevices = new ArrayList<>(); + } + this.enabledDevices.add(enabledDevicesItem); + return this; + } + + /** + * Get enabledDevices + * @return enabledDevices + */ + @javax.annotation.Nullable + public List getEnabledDevices() { + return enabledDevices; + } + + public void setEnabledDevices(@javax.annotation.Nullable List enabledDevices) { + this.enabledDevices = enabledDevices; + } + + + public UserPolicy enableAllDevices(@javax.annotation.Nullable Boolean enableAllDevices) { + this.enableAllDevices = enableAllDevices; + return this; + } + + /** + * Get enableAllDevices + * @return enableAllDevices + */ + @javax.annotation.Nullable + public Boolean getEnableAllDevices() { + return enableAllDevices; + } + + public void setEnableAllDevices(@javax.annotation.Nullable Boolean enableAllDevices) { + this.enableAllDevices = enableAllDevices; + } + + + public UserPolicy enabledChannels(@javax.annotation.Nullable List enabledChannels) { + this.enabledChannels = enabledChannels; + return this; + } + + public UserPolicy addEnabledChannelsItem(UUID enabledChannelsItem) { + if (this.enabledChannels == null) { + this.enabledChannels = new ArrayList<>(); + } + this.enabledChannels.add(enabledChannelsItem); + return this; + } + + /** + * Get enabledChannels + * @return enabledChannels + */ + @javax.annotation.Nullable + public List getEnabledChannels() { + return enabledChannels; + } + + public void setEnabledChannels(@javax.annotation.Nullable List enabledChannels) { + this.enabledChannels = enabledChannels; + } + + + public UserPolicy enableAllChannels(@javax.annotation.Nullable Boolean enableAllChannels) { + this.enableAllChannels = enableAllChannels; + return this; + } + + /** + * Get enableAllChannels + * @return enableAllChannels + */ + @javax.annotation.Nullable + public Boolean getEnableAllChannels() { + return enableAllChannels; + } + + public void setEnableAllChannels(@javax.annotation.Nullable Boolean enableAllChannels) { + this.enableAllChannels = enableAllChannels; + } + + + public UserPolicy enabledFolders(@javax.annotation.Nullable List enabledFolders) { + this.enabledFolders = enabledFolders; + return this; + } + + public UserPolicy addEnabledFoldersItem(UUID enabledFoldersItem) { + if (this.enabledFolders == null) { + this.enabledFolders = new ArrayList<>(); + } + this.enabledFolders.add(enabledFoldersItem); + return this; + } + + /** + * Get enabledFolders + * @return enabledFolders + */ + @javax.annotation.Nullable + public List getEnabledFolders() { + return enabledFolders; + } + + public void setEnabledFolders(@javax.annotation.Nullable List enabledFolders) { + this.enabledFolders = enabledFolders; + } + + + public UserPolicy enableAllFolders(@javax.annotation.Nullable Boolean enableAllFolders) { + this.enableAllFolders = enableAllFolders; + return this; + } + + /** + * Get enableAllFolders + * @return enableAllFolders + */ + @javax.annotation.Nullable + public Boolean getEnableAllFolders() { + return enableAllFolders; + } + + public void setEnableAllFolders(@javax.annotation.Nullable Boolean enableAllFolders) { + this.enableAllFolders = enableAllFolders; + } + + + public UserPolicy invalidLoginAttemptCount(@javax.annotation.Nullable Integer invalidLoginAttemptCount) { + this.invalidLoginAttemptCount = invalidLoginAttemptCount; + return this; + } + + /** + * Get invalidLoginAttemptCount + * @return invalidLoginAttemptCount + */ + @javax.annotation.Nullable + public Integer getInvalidLoginAttemptCount() { + return invalidLoginAttemptCount; + } + + public void setInvalidLoginAttemptCount(@javax.annotation.Nullable Integer invalidLoginAttemptCount) { + this.invalidLoginAttemptCount = invalidLoginAttemptCount; + } + + + public UserPolicy loginAttemptsBeforeLockout(@javax.annotation.Nullable Integer loginAttemptsBeforeLockout) { + this.loginAttemptsBeforeLockout = loginAttemptsBeforeLockout; + return this; + } + + /** + * Get loginAttemptsBeforeLockout + * @return loginAttemptsBeforeLockout + */ + @javax.annotation.Nullable + public Integer getLoginAttemptsBeforeLockout() { + return loginAttemptsBeforeLockout; + } + + public void setLoginAttemptsBeforeLockout(@javax.annotation.Nullable Integer loginAttemptsBeforeLockout) { + this.loginAttemptsBeforeLockout = loginAttemptsBeforeLockout; + } + + + public UserPolicy maxActiveSessions(@javax.annotation.Nullable Integer maxActiveSessions) { + this.maxActiveSessions = maxActiveSessions; + return this; + } + + /** + * Get maxActiveSessions + * @return maxActiveSessions + */ + @javax.annotation.Nullable + public Integer getMaxActiveSessions() { + return maxActiveSessions; + } + + public void setMaxActiveSessions(@javax.annotation.Nullable Integer maxActiveSessions) { + this.maxActiveSessions = maxActiveSessions; + } + + + public UserPolicy enablePublicSharing(@javax.annotation.Nullable Boolean enablePublicSharing) { + this.enablePublicSharing = enablePublicSharing; + return this; + } + + /** + * Get enablePublicSharing + * @return enablePublicSharing + */ + @javax.annotation.Nullable + public Boolean getEnablePublicSharing() { + return enablePublicSharing; + } + + public void setEnablePublicSharing(@javax.annotation.Nullable Boolean enablePublicSharing) { + this.enablePublicSharing = enablePublicSharing; + } + + + public UserPolicy blockedMediaFolders(@javax.annotation.Nullable List blockedMediaFolders) { + this.blockedMediaFolders = blockedMediaFolders; + return this; + } + + public UserPolicy addBlockedMediaFoldersItem(UUID blockedMediaFoldersItem) { + if (this.blockedMediaFolders == null) { + this.blockedMediaFolders = new ArrayList<>(); + } + this.blockedMediaFolders.add(blockedMediaFoldersItem); + return this; + } + + /** + * Get blockedMediaFolders + * @return blockedMediaFolders + */ + @javax.annotation.Nullable + public List getBlockedMediaFolders() { + return blockedMediaFolders; + } + + public void setBlockedMediaFolders(@javax.annotation.Nullable List blockedMediaFolders) { + this.blockedMediaFolders = blockedMediaFolders; + } + + + public UserPolicy blockedChannels(@javax.annotation.Nullable List blockedChannels) { + this.blockedChannels = blockedChannels; + return this; + } + + public UserPolicy addBlockedChannelsItem(UUID blockedChannelsItem) { + if (this.blockedChannels == null) { + this.blockedChannels = new ArrayList<>(); + } + this.blockedChannels.add(blockedChannelsItem); + return this; + } + + /** + * Get blockedChannels + * @return blockedChannels + */ + @javax.annotation.Nullable + public List getBlockedChannels() { + return blockedChannels; + } + + public void setBlockedChannels(@javax.annotation.Nullable List blockedChannels) { + this.blockedChannels = blockedChannels; + } + + + public UserPolicy remoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + return this; + } + + /** + * Get remoteClientBitrateLimit + * @return remoteClientBitrateLimit + */ + @javax.annotation.Nullable + public Integer getRemoteClientBitrateLimit() { + return remoteClientBitrateLimit; + } + + public void setRemoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + } + + + public UserPolicy authenticationProviderId(@javax.annotation.Nonnull String authenticationProviderId) { + this.authenticationProviderId = authenticationProviderId; + return this; + } + + /** + * Get authenticationProviderId + * @return authenticationProviderId + */ + @javax.annotation.Nonnull + public String getAuthenticationProviderId() { + return authenticationProviderId; + } + + public void setAuthenticationProviderId(@javax.annotation.Nonnull String authenticationProviderId) { + this.authenticationProviderId = authenticationProviderId; + } + + + public UserPolicy passwordResetProviderId(@javax.annotation.Nonnull String passwordResetProviderId) { + this.passwordResetProviderId = passwordResetProviderId; + return this; + } + + /** + * Get passwordResetProviderId + * @return passwordResetProviderId + */ + @javax.annotation.Nonnull + public String getPasswordResetProviderId() { + return passwordResetProviderId; + } + + public void setPasswordResetProviderId(@javax.annotation.Nonnull String passwordResetProviderId) { + this.passwordResetProviderId = passwordResetProviderId; + } + + + public UserPolicy syncPlayAccess(@javax.annotation.Nullable SyncPlayUserAccessType syncPlayAccess) { + this.syncPlayAccess = syncPlayAccess; + return this; + } + + /** + * Enum SyncPlayUserAccessType. + * @return syncPlayAccess + */ + @javax.annotation.Nullable + public SyncPlayUserAccessType getSyncPlayAccess() { + return syncPlayAccess; + } + + public void setSyncPlayAccess(@javax.annotation.Nullable SyncPlayUserAccessType syncPlayAccess) { + this.syncPlayAccess = syncPlayAccess; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserPolicy userPolicy = (UserPolicy) o; + return Objects.equals(this.isAdministrator, userPolicy.isAdministrator) && + Objects.equals(this.isHidden, userPolicy.isHidden) && + Objects.equals(this.enableCollectionManagement, userPolicy.enableCollectionManagement) && + Objects.equals(this.enableSubtitleManagement, userPolicy.enableSubtitleManagement) && + Objects.equals(this.enableLyricManagement, userPolicy.enableLyricManagement) && + Objects.equals(this.isDisabled, userPolicy.isDisabled) && + Objects.equals(this.maxParentalRating, userPolicy.maxParentalRating) && + Objects.equals(this.blockedTags, userPolicy.blockedTags) && + Objects.equals(this.allowedTags, userPolicy.allowedTags) && + Objects.equals(this.enableUserPreferenceAccess, userPolicy.enableUserPreferenceAccess) && + Objects.equals(this.accessSchedules, userPolicy.accessSchedules) && + Objects.equals(this.blockUnratedItems, userPolicy.blockUnratedItems) && + Objects.equals(this.enableRemoteControlOfOtherUsers, userPolicy.enableRemoteControlOfOtherUsers) && + Objects.equals(this.enableSharedDeviceControl, userPolicy.enableSharedDeviceControl) && + Objects.equals(this.enableRemoteAccess, userPolicy.enableRemoteAccess) && + Objects.equals(this.enableLiveTvManagement, userPolicy.enableLiveTvManagement) && + Objects.equals(this.enableLiveTvAccess, userPolicy.enableLiveTvAccess) && + Objects.equals(this.enableMediaPlayback, userPolicy.enableMediaPlayback) && + Objects.equals(this.enableAudioPlaybackTranscoding, userPolicy.enableAudioPlaybackTranscoding) && + Objects.equals(this.enableVideoPlaybackTranscoding, userPolicy.enableVideoPlaybackTranscoding) && + Objects.equals(this.enablePlaybackRemuxing, userPolicy.enablePlaybackRemuxing) && + Objects.equals(this.forceRemoteSourceTranscoding, userPolicy.forceRemoteSourceTranscoding) && + Objects.equals(this.enableContentDeletion, userPolicy.enableContentDeletion) && + Objects.equals(this.enableContentDeletionFromFolders, userPolicy.enableContentDeletionFromFolders) && + Objects.equals(this.enableContentDownloading, userPolicy.enableContentDownloading) && + Objects.equals(this.enableSyncTranscoding, userPolicy.enableSyncTranscoding) && + Objects.equals(this.enableMediaConversion, userPolicy.enableMediaConversion) && + Objects.equals(this.enabledDevices, userPolicy.enabledDevices) && + Objects.equals(this.enableAllDevices, userPolicy.enableAllDevices) && + Objects.equals(this.enabledChannels, userPolicy.enabledChannels) && + Objects.equals(this.enableAllChannels, userPolicy.enableAllChannels) && + Objects.equals(this.enabledFolders, userPolicy.enabledFolders) && + Objects.equals(this.enableAllFolders, userPolicy.enableAllFolders) && + Objects.equals(this.invalidLoginAttemptCount, userPolicy.invalidLoginAttemptCount) && + Objects.equals(this.loginAttemptsBeforeLockout, userPolicy.loginAttemptsBeforeLockout) && + Objects.equals(this.maxActiveSessions, userPolicy.maxActiveSessions) && + Objects.equals(this.enablePublicSharing, userPolicy.enablePublicSharing) && + Objects.equals(this.blockedMediaFolders, userPolicy.blockedMediaFolders) && + Objects.equals(this.blockedChannels, userPolicy.blockedChannels) && + Objects.equals(this.remoteClientBitrateLimit, userPolicy.remoteClientBitrateLimit) && + Objects.equals(this.authenticationProviderId, userPolicy.authenticationProviderId) && + Objects.equals(this.passwordResetProviderId, userPolicy.passwordResetProviderId) && + Objects.equals(this.syncPlayAccess, userPolicy.syncPlayAccess); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(isAdministrator, isHidden, enableCollectionManagement, enableSubtitleManagement, enableLyricManagement, isDisabled, maxParentalRating, blockedTags, allowedTags, enableUserPreferenceAccess, accessSchedules, blockUnratedItems, enableRemoteControlOfOtherUsers, enableSharedDeviceControl, enableRemoteAccess, enableLiveTvManagement, enableLiveTvAccess, enableMediaPlayback, enableAudioPlaybackTranscoding, enableVideoPlaybackTranscoding, enablePlaybackRemuxing, forceRemoteSourceTranscoding, enableContentDeletion, enableContentDeletionFromFolders, enableContentDownloading, enableSyncTranscoding, enableMediaConversion, enabledDevices, enableAllDevices, enabledChannels, enableAllChannels, enabledFolders, enableAllFolders, invalidLoginAttemptCount, loginAttemptsBeforeLockout, maxActiveSessions, enablePublicSharing, blockedMediaFolders, blockedChannels, remoteClientBitrateLimit, authenticationProviderId, passwordResetProviderId, syncPlayAccess); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserPolicy {\n"); + sb.append(" isAdministrator: ").append(toIndentedString(isAdministrator)).append("\n"); + sb.append(" isHidden: ").append(toIndentedString(isHidden)).append("\n"); + sb.append(" enableCollectionManagement: ").append(toIndentedString(enableCollectionManagement)).append("\n"); + sb.append(" enableSubtitleManagement: ").append(toIndentedString(enableSubtitleManagement)).append("\n"); + sb.append(" enableLyricManagement: ").append(toIndentedString(enableLyricManagement)).append("\n"); + sb.append(" isDisabled: ").append(toIndentedString(isDisabled)).append("\n"); + sb.append(" maxParentalRating: ").append(toIndentedString(maxParentalRating)).append("\n"); + sb.append(" blockedTags: ").append(toIndentedString(blockedTags)).append("\n"); + sb.append(" allowedTags: ").append(toIndentedString(allowedTags)).append("\n"); + sb.append(" enableUserPreferenceAccess: ").append(toIndentedString(enableUserPreferenceAccess)).append("\n"); + sb.append(" accessSchedules: ").append(toIndentedString(accessSchedules)).append("\n"); + sb.append(" blockUnratedItems: ").append(toIndentedString(blockUnratedItems)).append("\n"); + sb.append(" enableRemoteControlOfOtherUsers: ").append(toIndentedString(enableRemoteControlOfOtherUsers)).append("\n"); + sb.append(" enableSharedDeviceControl: ").append(toIndentedString(enableSharedDeviceControl)).append("\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" enableLiveTvManagement: ").append(toIndentedString(enableLiveTvManagement)).append("\n"); + sb.append(" enableLiveTvAccess: ").append(toIndentedString(enableLiveTvAccess)).append("\n"); + sb.append(" enableMediaPlayback: ").append(toIndentedString(enableMediaPlayback)).append("\n"); + sb.append(" enableAudioPlaybackTranscoding: ").append(toIndentedString(enableAudioPlaybackTranscoding)).append("\n"); + sb.append(" enableVideoPlaybackTranscoding: ").append(toIndentedString(enableVideoPlaybackTranscoding)).append("\n"); + sb.append(" enablePlaybackRemuxing: ").append(toIndentedString(enablePlaybackRemuxing)).append("\n"); + sb.append(" forceRemoteSourceTranscoding: ").append(toIndentedString(forceRemoteSourceTranscoding)).append("\n"); + sb.append(" enableContentDeletion: ").append(toIndentedString(enableContentDeletion)).append("\n"); + sb.append(" enableContentDeletionFromFolders: ").append(toIndentedString(enableContentDeletionFromFolders)).append("\n"); + sb.append(" enableContentDownloading: ").append(toIndentedString(enableContentDownloading)).append("\n"); + sb.append(" enableSyncTranscoding: ").append(toIndentedString(enableSyncTranscoding)).append("\n"); + sb.append(" enableMediaConversion: ").append(toIndentedString(enableMediaConversion)).append("\n"); + sb.append(" enabledDevices: ").append(toIndentedString(enabledDevices)).append("\n"); + sb.append(" enableAllDevices: ").append(toIndentedString(enableAllDevices)).append("\n"); + sb.append(" enabledChannels: ").append(toIndentedString(enabledChannels)).append("\n"); + sb.append(" enableAllChannels: ").append(toIndentedString(enableAllChannels)).append("\n"); + sb.append(" enabledFolders: ").append(toIndentedString(enabledFolders)).append("\n"); + sb.append(" enableAllFolders: ").append(toIndentedString(enableAllFolders)).append("\n"); + sb.append(" invalidLoginAttemptCount: ").append(toIndentedString(invalidLoginAttemptCount)).append("\n"); + sb.append(" loginAttemptsBeforeLockout: ").append(toIndentedString(loginAttemptsBeforeLockout)).append("\n"); + sb.append(" maxActiveSessions: ").append(toIndentedString(maxActiveSessions)).append("\n"); + sb.append(" enablePublicSharing: ").append(toIndentedString(enablePublicSharing)).append("\n"); + sb.append(" blockedMediaFolders: ").append(toIndentedString(blockedMediaFolders)).append("\n"); + sb.append(" blockedChannels: ").append(toIndentedString(blockedChannels)).append("\n"); + sb.append(" remoteClientBitrateLimit: ").append(toIndentedString(remoteClientBitrateLimit)).append("\n"); + sb.append(" authenticationProviderId: ").append(toIndentedString(authenticationProviderId)).append("\n"); + sb.append(" passwordResetProviderId: ").append(toIndentedString(passwordResetProviderId)).append("\n"); + sb.append(" syncPlayAccess: ").append(toIndentedString(syncPlayAccess)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IsAdministrator"); + openapiFields.add("IsHidden"); + openapiFields.add("EnableCollectionManagement"); + openapiFields.add("EnableSubtitleManagement"); + openapiFields.add("EnableLyricManagement"); + openapiFields.add("IsDisabled"); + openapiFields.add("MaxParentalRating"); + openapiFields.add("BlockedTags"); + openapiFields.add("AllowedTags"); + openapiFields.add("EnableUserPreferenceAccess"); + openapiFields.add("AccessSchedules"); + openapiFields.add("BlockUnratedItems"); + openapiFields.add("EnableRemoteControlOfOtherUsers"); + openapiFields.add("EnableSharedDeviceControl"); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("EnableLiveTvManagement"); + openapiFields.add("EnableLiveTvAccess"); + openapiFields.add("EnableMediaPlayback"); + openapiFields.add("EnableAudioPlaybackTranscoding"); + openapiFields.add("EnableVideoPlaybackTranscoding"); + openapiFields.add("EnablePlaybackRemuxing"); + openapiFields.add("ForceRemoteSourceTranscoding"); + openapiFields.add("EnableContentDeletion"); + openapiFields.add("EnableContentDeletionFromFolders"); + openapiFields.add("EnableContentDownloading"); + openapiFields.add("EnableSyncTranscoding"); + openapiFields.add("EnableMediaConversion"); + openapiFields.add("EnabledDevices"); + openapiFields.add("EnableAllDevices"); + openapiFields.add("EnabledChannels"); + openapiFields.add("EnableAllChannels"); + openapiFields.add("EnabledFolders"); + openapiFields.add("EnableAllFolders"); + openapiFields.add("InvalidLoginAttemptCount"); + openapiFields.add("LoginAttemptsBeforeLockout"); + openapiFields.add("MaxActiveSessions"); + openapiFields.add("EnablePublicSharing"); + openapiFields.add("BlockedMediaFolders"); + openapiFields.add("BlockedChannels"); + openapiFields.add("RemoteClientBitrateLimit"); + openapiFields.add("AuthenticationProviderId"); + openapiFields.add("PasswordResetProviderId"); + openapiFields.add("SyncPlayAccess"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("AuthenticationProviderId"); + openapiRequiredFields.add("PasswordResetProviderId"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserPolicy + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserPolicy.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserPolicy is not found in the empty JSON string", UserPolicy.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserPolicy.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserPolicy` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UserPolicy.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedTags") != null && !jsonObj.get("BlockedTags").isJsonNull() && !jsonObj.get("BlockedTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedTags` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedTags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AllowedTags") != null && !jsonObj.get("AllowedTags").isJsonNull() && !jsonObj.get("AllowedTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AllowedTags` to be an array in the JSON string but got `%s`", jsonObj.get("AllowedTags").toString())); + } + if (jsonObj.get("AccessSchedules") != null && !jsonObj.get("AccessSchedules").isJsonNull()) { + JsonArray jsonArrayaccessSchedules = jsonObj.getAsJsonArray("AccessSchedules"); + if (jsonArrayaccessSchedules != null) { + // ensure the json data is an array + if (!jsonObj.get("AccessSchedules").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessSchedules` to be an array in the JSON string but got `%s`", jsonObj.get("AccessSchedules").toString())); + } + + // validate the optional field `AccessSchedules` (array) + for (int i = 0; i < jsonArrayaccessSchedules.size(); i++) { + AccessSchedule.validateJsonElement(jsonArrayaccessSchedules.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockUnratedItems") != null && !jsonObj.get("BlockUnratedItems").isJsonNull() && !jsonObj.get("BlockUnratedItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockUnratedItems` to be an array in the JSON string but got `%s`", jsonObj.get("BlockUnratedItems").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnableContentDeletionFromFolders") != null && !jsonObj.get("EnableContentDeletionFromFolders").isJsonNull() && !jsonObj.get("EnableContentDeletionFromFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnableContentDeletionFromFolders` to be an array in the JSON string but got `%s`", jsonObj.get("EnableContentDeletionFromFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledDevices") != null && !jsonObj.get("EnabledDevices").isJsonNull() && !jsonObj.get("EnabledDevices").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledDevices` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledDevices").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledChannels") != null && !jsonObj.get("EnabledChannels").isJsonNull() && !jsonObj.get("EnabledChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledChannels` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledChannels").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledFolders") != null && !jsonObj.get("EnabledFolders").isJsonNull() && !jsonObj.get("EnabledFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledFolders` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedMediaFolders") != null && !jsonObj.get("BlockedMediaFolders").isJsonNull() && !jsonObj.get("BlockedMediaFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedMediaFolders` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedMediaFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedChannels") != null && !jsonObj.get("BlockedChannels").isJsonNull() && !jsonObj.get("BlockedChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedChannels` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedChannels").toString())); + } + if (!jsonObj.get("AuthenticationProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AuthenticationProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AuthenticationProviderId").toString())); + } + if (!jsonObj.get("PasswordResetProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PasswordResetProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PasswordResetProviderId").toString())); + } + // validate the optional field `SyncPlayAccess` + if (jsonObj.get("SyncPlayAccess") != null && !jsonObj.get("SyncPlayAccess").isJsonNull()) { + SyncPlayUserAccessType.validateJsonElement(jsonObj.get("SyncPlayAccess")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserPolicy.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserPolicy' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserPolicy.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserPolicy value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserPolicy read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserPolicy given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserPolicy + * @throws IOException if the JSON string is invalid with respect to UserPolicy + */ + public static UserPolicy fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserPolicy.class); + } + + /** + * Convert an instance of UserPolicy to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserUpdatedMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserUpdatedMessage.java new file mode 100644 index 0000000000000..2c12afb56bb04 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UserUpdatedMessage.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.UserDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * User updated message. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserUpdatedMessage { + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private UserDto data; + + public static final String SERIALIZED_NAME_MESSAGE_ID = "MessageId"; + @SerializedName(SERIALIZED_NAME_MESSAGE_ID) + @javax.annotation.Nullable + private UUID messageId; + + public static final String SERIALIZED_NAME_MESSAGE_TYPE = "MessageType"; + @SerializedName(SERIALIZED_NAME_MESSAGE_TYPE) + @javax.annotation.Nullable + private SessionMessageType messageType = SessionMessageType.USER_UPDATED; + + public UserUpdatedMessage() { + } + + public UserUpdatedMessage( + SessionMessageType messageType + ) { + this(); + this.messageType = messageType; + } + + public UserUpdatedMessage data(@javax.annotation.Nullable UserDto data) { + this.data = data; + return this; + } + + /** + * Class UserDto. + * @return data + */ + @javax.annotation.Nullable + public UserDto getData() { + return data; + } + + public void setData(@javax.annotation.Nullable UserDto data) { + this.data = data; + } + + + public UserUpdatedMessage messageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + return this; + } + + /** + * Gets or sets the message id. + * @return messageId + */ + @javax.annotation.Nullable + public UUID getMessageId() { + return messageId; + } + + public void setMessageId(@javax.annotation.Nullable UUID messageId) { + this.messageId = messageId; + } + + + /** + * The different kinds of messages that are used in the WebSocket api. + * @return messageType + */ + @javax.annotation.Nullable + public SessionMessageType getMessageType() { + return messageType; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserUpdatedMessage userUpdatedMessage = (UserUpdatedMessage) o; + return Objects.equals(this.data, userUpdatedMessage.data) && + Objects.equals(this.messageId, userUpdatedMessage.messageId) && + Objects.equals(this.messageType, userUpdatedMessage.messageType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data, messageId, messageType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserUpdatedMessage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" messageId: ").append(toIndentedString(messageId)).append("\n"); + sb.append(" messageType: ").append(toIndentedString(messageType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("MessageId"); + openapiFields.add("MessageType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserUpdatedMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserUpdatedMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserUpdatedMessage is not found in the empty JSON string", UserUpdatedMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserUpdatedMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserUpdatedMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Data` + if (jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) { + UserDto.validateJsonElement(jsonObj.get("Data")); + } + if ((jsonObj.get("MessageId") != null && !jsonObj.get("MessageId").isJsonNull()) && !jsonObj.get("MessageId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageId").toString())); + } + // validate the optional field `MessageType` + if (jsonObj.get("MessageType") != null && !jsonObj.get("MessageType").isJsonNull()) { + SessionMessageType.validateJsonElement(jsonObj.get("MessageType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserUpdatedMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserUpdatedMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserUpdatedMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserUpdatedMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserUpdatedMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserUpdatedMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserUpdatedMessage + * @throws IOException if the JSON string is invalid with respect to UserUpdatedMessage + */ + public static UserUpdatedMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserUpdatedMessage.class); + } + + /** + * Convert an instance of UserUpdatedMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UtcTimeResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UtcTimeResponse.java new file mode 100644 index 0000000000000..c02de654ded86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/UtcTimeResponse.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UtcTimeResponse. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UtcTimeResponse { + public static final String SERIALIZED_NAME_REQUEST_RECEPTION_TIME = "RequestReceptionTime"; + @SerializedName(SERIALIZED_NAME_REQUEST_RECEPTION_TIME) + @javax.annotation.Nullable + private OffsetDateTime requestReceptionTime; + + public static final String SERIALIZED_NAME_RESPONSE_TRANSMISSION_TIME = "ResponseTransmissionTime"; + @SerializedName(SERIALIZED_NAME_RESPONSE_TRANSMISSION_TIME) + @javax.annotation.Nullable + private OffsetDateTime responseTransmissionTime; + + public UtcTimeResponse() { + } + + public UtcTimeResponse requestReceptionTime(@javax.annotation.Nullable OffsetDateTime requestReceptionTime) { + this.requestReceptionTime = requestReceptionTime; + return this; + } + + /** + * Gets the UTC time when request has been received. + * @return requestReceptionTime + */ + @javax.annotation.Nullable + public OffsetDateTime getRequestReceptionTime() { + return requestReceptionTime; + } + + public void setRequestReceptionTime(@javax.annotation.Nullable OffsetDateTime requestReceptionTime) { + this.requestReceptionTime = requestReceptionTime; + } + + + public UtcTimeResponse responseTransmissionTime(@javax.annotation.Nullable OffsetDateTime responseTransmissionTime) { + this.responseTransmissionTime = responseTransmissionTime; + return this; + } + + /** + * Gets the UTC time when response has been sent. + * @return responseTransmissionTime + */ + @javax.annotation.Nullable + public OffsetDateTime getResponseTransmissionTime() { + return responseTransmissionTime; + } + + public void setResponseTransmissionTime(@javax.annotation.Nullable OffsetDateTime responseTransmissionTime) { + this.responseTransmissionTime = responseTransmissionTime; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtcTimeResponse utcTimeResponse = (UtcTimeResponse) o; + return Objects.equals(this.requestReceptionTime, utcTimeResponse.requestReceptionTime) && + Objects.equals(this.responseTransmissionTime, utcTimeResponse.responseTransmissionTime); + } + + @Override + public int hashCode() { + return Objects.hash(requestReceptionTime, responseTransmissionTime); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtcTimeResponse {\n"); + sb.append(" requestReceptionTime: ").append(toIndentedString(requestReceptionTime)).append("\n"); + sb.append(" responseTransmissionTime: ").append(toIndentedString(responseTransmissionTime)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RequestReceptionTime"); + openapiFields.add("ResponseTransmissionTime"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UtcTimeResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UtcTimeResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UtcTimeResponse is not found in the empty JSON string", UtcTimeResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UtcTimeResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UtcTimeResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UtcTimeResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UtcTimeResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UtcTimeResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UtcTimeResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UtcTimeResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UtcTimeResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of UtcTimeResponse + * @throws IOException if the JSON string is invalid with respect to UtcTimeResponse + */ + public static UtcTimeResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UtcTimeResponse.class); + } + + /** + * Convert an instance of UtcTimeResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ValidatePathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ValidatePathDto.java new file mode 100644 index 0000000000000..61b2ad2d1ecc7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/ValidatePathDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Validate path object. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ValidatePathDto { + public static final String SERIALIZED_NAME_VALIDATE_WRITABLE = "ValidateWritable"; + @SerializedName(SERIALIZED_NAME_VALIDATE_WRITABLE) + @javax.annotation.Nullable + private Boolean validateWritable; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_IS_FILE = "IsFile"; + @SerializedName(SERIALIZED_NAME_IS_FILE) + @javax.annotation.Nullable + private Boolean isFile; + + public ValidatePathDto() { + } + + public ValidatePathDto validateWritable(@javax.annotation.Nullable Boolean validateWritable) { + this.validateWritable = validateWritable; + return this; + } + + /** + * Gets or sets a value indicating whether validate if path is writable. + * @return validateWritable + */ + @javax.annotation.Nullable + public Boolean getValidateWritable() { + return validateWritable; + } + + public void setValidateWritable(@javax.annotation.Nullable Boolean validateWritable) { + this.validateWritable = validateWritable; + } + + + public ValidatePathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ValidatePathDto isFile(@javax.annotation.Nullable Boolean isFile) { + this.isFile = isFile; + return this; + } + + /** + * Gets or sets is path file. + * @return isFile + */ + @javax.annotation.Nullable + public Boolean getIsFile() { + return isFile; + } + + public void setIsFile(@javax.annotation.Nullable Boolean isFile) { + this.isFile = isFile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ValidatePathDto validatePathDto = (ValidatePathDto) o; + return Objects.equals(this.validateWritable, validatePathDto.validateWritable) && + Objects.equals(this.path, validatePathDto.path) && + Objects.equals(this.isFile, validatePathDto.isFile); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(validateWritable, path, isFile); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ValidatePathDto {\n"); + sb.append(" validateWritable: ").append(toIndentedString(validateWritable)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" isFile: ").append(toIndentedString(isFile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ValidateWritable"); + openapiFields.add("Path"); + openapiFields.add("IsFile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ValidatePathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ValidatePathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidatePathDto is not found in the empty JSON string", ValidatePathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ValidatePathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ValidatePathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ValidatePathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidatePathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidatePathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ValidatePathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ValidatePathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ValidatePathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ValidatePathDto + * @throws IOException if the JSON string is invalid with respect to ValidatePathDto + */ + public static ValidatePathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidatePathDto.class); + } + + /** + * Convert an instance of ValidatePathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VersionInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VersionInfo.java new file mode 100644 index 0000000000000..a497c39819ab5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VersionInfo.java @@ -0,0 +1,457 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Updates.VersionInfo class. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class VersionInfo { + public static final String SERIALIZED_NAME_VERSION = "version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_VERSION_NUMBER = "VersionNumber"; + @SerializedName(SERIALIZED_NAME_VERSION_NUMBER) + @javax.annotation.Nullable + private String versionNumber; + + public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + @javax.annotation.Nullable + private String changelog; + + public static final String SERIALIZED_NAME_TARGET_ABI = "targetAbi"; + @SerializedName(SERIALIZED_NAME_TARGET_ABI) + @javax.annotation.Nullable + private String targetAbi; + + public static final String SERIALIZED_NAME_SOURCE_URL = "sourceUrl"; + @SerializedName(SERIALIZED_NAME_SOURCE_URL) + @javax.annotation.Nullable + private String sourceUrl; + + public static final String SERIALIZED_NAME_CHECKSUM = "checksum"; + @SerializedName(SERIALIZED_NAME_CHECKSUM) + @javax.annotation.Nullable + private String checksum; + + public static final String SERIALIZED_NAME_TIMESTAMP = "timestamp"; + @SerializedName(SERIALIZED_NAME_TIMESTAMP) + @javax.annotation.Nullable + private String timestamp; + + public static final String SERIALIZED_NAME_REPOSITORY_NAME = "repositoryName"; + @SerializedName(SERIALIZED_NAME_REPOSITORY_NAME) + @javax.annotation.Nullable + private String repositoryName; + + public static final String SERIALIZED_NAME_REPOSITORY_URL = "repositoryUrl"; + @SerializedName(SERIALIZED_NAME_REPOSITORY_URL) + @javax.annotation.Nullable + private String repositoryUrl; + + public VersionInfo() { + } + + public VersionInfo( + String versionNumber + ) { + this(); + this.versionNumber = versionNumber; + } + + public VersionInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + /** + * Gets the version as a System.Version. + * @return versionNumber + */ + @javax.annotation.Nullable + public String getVersionNumber() { + return versionNumber; + } + + + + public VersionInfo changelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + return this; + } + + /** + * Gets or sets the changelog for this version. + * @return changelog + */ + @javax.annotation.Nullable + public String getChangelog() { + return changelog; + } + + public void setChangelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + } + + + public VersionInfo targetAbi(@javax.annotation.Nullable String targetAbi) { + this.targetAbi = targetAbi; + return this; + } + + /** + * Gets or sets the ABI that this version was built against. + * @return targetAbi + */ + @javax.annotation.Nullable + public String getTargetAbi() { + return targetAbi; + } + + public void setTargetAbi(@javax.annotation.Nullable String targetAbi) { + this.targetAbi = targetAbi; + } + + + public VersionInfo sourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + return this; + } + + /** + * Gets or sets the source URL. + * @return sourceUrl + */ + @javax.annotation.Nullable + public String getSourceUrl() { + return sourceUrl; + } + + public void setSourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + } + + + public VersionInfo checksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + return this; + } + + /** + * Gets or sets a checksum for the binary. + * @return checksum + */ + @javax.annotation.Nullable + public String getChecksum() { + return checksum; + } + + public void setChecksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + } + + + public VersionInfo timestamp(@javax.annotation.Nullable String timestamp) { + this.timestamp = timestamp; + return this; + } + + /** + * Gets or sets a timestamp of when the binary was built. + * @return timestamp + */ + @javax.annotation.Nullable + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(@javax.annotation.Nullable String timestamp) { + this.timestamp = timestamp; + } + + + public VersionInfo repositoryName(@javax.annotation.Nullable String repositoryName) { + this.repositoryName = repositoryName; + return this; + } + + /** + * Gets or sets the repository name. + * @return repositoryName + */ + @javax.annotation.Nullable + public String getRepositoryName() { + return repositoryName; + } + + public void setRepositoryName(@javax.annotation.Nullable String repositoryName) { + this.repositoryName = repositoryName; + } + + + public VersionInfo repositoryUrl(@javax.annotation.Nullable String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + return this; + } + + /** + * Gets or sets the repository url. + * @return repositoryUrl + */ + @javax.annotation.Nullable + public String getRepositoryUrl() { + return repositoryUrl; + } + + public void setRepositoryUrl(@javax.annotation.Nullable String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VersionInfo versionInfo = (VersionInfo) o; + return Objects.equals(this.version, versionInfo.version) && + Objects.equals(this.versionNumber, versionInfo.versionNumber) && + Objects.equals(this.changelog, versionInfo.changelog) && + Objects.equals(this.targetAbi, versionInfo.targetAbi) && + Objects.equals(this.sourceUrl, versionInfo.sourceUrl) && + Objects.equals(this.checksum, versionInfo.checksum) && + Objects.equals(this.timestamp, versionInfo.timestamp) && + Objects.equals(this.repositoryName, versionInfo.repositoryName) && + Objects.equals(this.repositoryUrl, versionInfo.repositoryUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(version, versionNumber, changelog, targetAbi, sourceUrl, checksum, timestamp, repositoryName, repositoryUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VersionInfo {\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" versionNumber: ").append(toIndentedString(versionNumber)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" targetAbi: ").append(toIndentedString(targetAbi)).append("\n"); + sb.append(" sourceUrl: ").append(toIndentedString(sourceUrl)).append("\n"); + sb.append(" checksum: ").append(toIndentedString(checksum)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" repositoryName: ").append(toIndentedString(repositoryName)).append("\n"); + sb.append(" repositoryUrl: ").append(toIndentedString(repositoryUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("version"); + openapiFields.add("VersionNumber"); + openapiFields.add("changelog"); + openapiFields.add("targetAbi"); + openapiFields.add("sourceUrl"); + openapiFields.add("checksum"); + openapiFields.add("timestamp"); + openapiFields.add("repositoryName"); + openapiFields.add("repositoryUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VersionInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VersionInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VersionInfo is not found in the empty JSON string", VersionInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VersionInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VersionInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("version") != null && !jsonObj.get("version").isJsonNull()) && !jsonObj.get("version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("version").toString())); + } + if ((jsonObj.get("VersionNumber") != null && !jsonObj.get("VersionNumber").isJsonNull()) && !jsonObj.get("VersionNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VersionNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VersionNumber").toString())); + } + if ((jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) && !jsonObj.get("changelog").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `changelog` to be a primitive type in the JSON string but got `%s`", jsonObj.get("changelog").toString())); + } + if ((jsonObj.get("targetAbi") != null && !jsonObj.get("targetAbi").isJsonNull()) && !jsonObj.get("targetAbi").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `targetAbi` to be a primitive type in the JSON string but got `%s`", jsonObj.get("targetAbi").toString())); + } + if ((jsonObj.get("sourceUrl") != null && !jsonObj.get("sourceUrl").isJsonNull()) && !jsonObj.get("sourceUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `sourceUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sourceUrl").toString())); + } + if ((jsonObj.get("checksum") != null && !jsonObj.get("checksum").isJsonNull()) && !jsonObj.get("checksum").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `checksum` to be a primitive type in the JSON string but got `%s`", jsonObj.get("checksum").toString())); + } + if ((jsonObj.get("timestamp") != null && !jsonObj.get("timestamp").isJsonNull()) && !jsonObj.get("timestamp").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `timestamp` to be a primitive type in the JSON string but got `%s`", jsonObj.get("timestamp").toString())); + } + if ((jsonObj.get("repositoryName") != null && !jsonObj.get("repositoryName").isJsonNull()) && !jsonObj.get("repositoryName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `repositoryName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("repositoryName").toString())); + } + if ((jsonObj.get("repositoryUrl") != null && !jsonObj.get("repositoryUrl").isJsonNull()) && !jsonObj.get("repositoryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `repositoryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("repositoryUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VersionInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VersionInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VersionInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VersionInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VersionInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VersionInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of VersionInfo + * @throws IOException if the JSON string is invalid with respect to VersionInfo + */ + public static VersionInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VersionInfo.class); + } + + /** + * Convert an instance of VersionInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/Video3DFormat.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/Video3DFormat.java new file mode 100644 index 0000000000000..d511e5d9779e1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/Video3DFormat.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets Video3DFormat + */ +@JsonAdapter(Video3DFormat.Adapter.class) +public enum Video3DFormat { + + HALF_SIDE_BY_SIDE("HalfSideBySide"), + + FULL_SIDE_BY_SIDE("FullSideBySide"), + + FULL_TOP_AND_BOTTOM("FullTopAndBottom"), + + HALF_TOP_AND_BOTTOM("HalfTopAndBottom"), + + MVC("MVC"); + + private String value; + + Video3DFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Video3DFormat fromValue(String value) { + for (Video3DFormat b : Video3DFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Video3DFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Video3DFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return Video3DFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + Video3DFormat.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRange.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRange.java new file mode 100644 index 0000000000000..4dd3fcff216fd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRange.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing video ranges. + */ +@JsonAdapter(VideoRange.Adapter.class) +public enum VideoRange { + + UNKNOWN("Unknown"), + + SDR("SDR"), + + HDR("HDR"); + + private String value; + + VideoRange(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VideoRange fromValue(String value) { + for (VideoRange b : VideoRange.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VideoRange enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VideoRange read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return VideoRange.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + VideoRange.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRangeType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRangeType.java new file mode 100644 index 0000000000000..d03fa2c6611b7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoRangeType.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing types of video ranges. + */ +@JsonAdapter(VideoRangeType.Adapter.class) +public enum VideoRangeType { + + UNKNOWN("Unknown"), + + SDR("SDR"), + + HDR10("HDR10"), + + HLG("HLG"), + + DOVI("DOVI"), + + DOVI_WITH_HDR10("DOVIWithHDR10"), + + DOVI_WITH_HLG("DOVIWithHLG"), + + DOVI_WITH_SDR("DOVIWithSDR"), + + HDR10_PLUS("HDR10Plus"); + + private String value; + + VideoRangeType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VideoRangeType fromValue(String value) { + for (VideoRangeType b : VideoRangeType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VideoRangeType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VideoRangeType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return VideoRangeType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + VideoRangeType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoType.java new file mode 100644 index 0000000000000..c8ae99fd14c16 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VideoType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum VideoType. + */ +@JsonAdapter(VideoType.Adapter.class) +public enum VideoType { + + VIDEO_FILE("VideoFile"), + + ISO("Iso"), + + DVD("Dvd"), + + BLU_RAY("BluRay"); + + private String value; + + VideoType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VideoType fromValue(String value) { + for (VideoType b : VideoType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VideoType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VideoType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return VideoType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + VideoType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java new file mode 100644 index 0000000000000..44552f58a4e2d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java @@ -0,0 +1,440 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CollectionTypeOptions; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Used to hold information about a user's list of configured virtual folders. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class VirtualFolderInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_LOCATIONS = "Locations"; + @SerializedName(SERIALIZED_NAME_LOCATIONS) + @javax.annotation.Nullable + private List locations; + + public static final String SERIALIZED_NAME_COLLECTION_TYPE = "CollectionType"; + @SerializedName(SERIALIZED_NAME_COLLECTION_TYPE) + @javax.annotation.Nullable + private CollectionTypeOptions collectionType; + + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ITEM_ID = "PrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String primaryImageItemId; + + public static final String SERIALIZED_NAME_REFRESH_PROGRESS = "RefreshProgress"; + @SerializedName(SERIALIZED_NAME_REFRESH_PROGRESS) + @javax.annotation.Nullable + private Double refreshProgress; + + public static final String SERIALIZED_NAME_REFRESH_STATUS = "RefreshStatus"; + @SerializedName(SERIALIZED_NAME_REFRESH_STATUS) + @javax.annotation.Nullable + private String refreshStatus; + + public VirtualFolderInfo() { + } + + public VirtualFolderInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public VirtualFolderInfo locations(@javax.annotation.Nullable List locations) { + this.locations = locations; + return this; + } + + public VirtualFolderInfo addLocationsItem(String locationsItem) { + if (this.locations == null) { + this.locations = new ArrayList<>(); + } + this.locations.add(locationsItem); + return this; + } + + /** + * Gets or sets the locations. + * @return locations + */ + @javax.annotation.Nullable + public List getLocations() { + return locations; + } + + public void setLocations(@javax.annotation.Nullable List locations) { + this.locations = locations; + } + + + public VirtualFolderInfo collectionType(@javax.annotation.Nullable CollectionTypeOptions collectionType) { + this.collectionType = collectionType; + return this; + } + + /** + * Gets or sets the type of the collection. + * @return collectionType + */ + @javax.annotation.Nullable + public CollectionTypeOptions getCollectionType() { + return collectionType; + } + + public void setCollectionType(@javax.annotation.Nullable CollectionTypeOptions collectionType) { + this.collectionType = collectionType; + } + + + public VirtualFolderInfo libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Get libraryOptions + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + public VirtualFolderInfo itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + public VirtualFolderInfo primaryImageItemId(@javax.annotation.Nullable String primaryImageItemId) { + this.primaryImageItemId = primaryImageItemId; + return this; + } + + /** + * Gets or sets the primary image item identifier. + * @return primaryImageItemId + */ + @javax.annotation.Nullable + public String getPrimaryImageItemId() { + return primaryImageItemId; + } + + public void setPrimaryImageItemId(@javax.annotation.Nullable String primaryImageItemId) { + this.primaryImageItemId = primaryImageItemId; + } + + + public VirtualFolderInfo refreshProgress(@javax.annotation.Nullable Double refreshProgress) { + this.refreshProgress = refreshProgress; + return this; + } + + /** + * Get refreshProgress + * @return refreshProgress + */ + @javax.annotation.Nullable + public Double getRefreshProgress() { + return refreshProgress; + } + + public void setRefreshProgress(@javax.annotation.Nullable Double refreshProgress) { + this.refreshProgress = refreshProgress; + } + + + public VirtualFolderInfo refreshStatus(@javax.annotation.Nullable String refreshStatus) { + this.refreshStatus = refreshStatus; + return this; + } + + /** + * Get refreshStatus + * @return refreshStatus + */ + @javax.annotation.Nullable + public String getRefreshStatus() { + return refreshStatus; + } + + public void setRefreshStatus(@javax.annotation.Nullable String refreshStatus) { + this.refreshStatus = refreshStatus; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VirtualFolderInfo virtualFolderInfo = (VirtualFolderInfo) o; + return Objects.equals(this.name, virtualFolderInfo.name) && + Objects.equals(this.locations, virtualFolderInfo.locations) && + Objects.equals(this.collectionType, virtualFolderInfo.collectionType) && + Objects.equals(this.libraryOptions, virtualFolderInfo.libraryOptions) && + Objects.equals(this.itemId, virtualFolderInfo.itemId) && + Objects.equals(this.primaryImageItemId, virtualFolderInfo.primaryImageItemId) && + Objects.equals(this.refreshProgress, virtualFolderInfo.refreshProgress) && + Objects.equals(this.refreshStatus, virtualFolderInfo.refreshStatus); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, locations, collectionType, libraryOptions, itemId, primaryImageItemId, refreshProgress, refreshStatus); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VirtualFolderInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" locations: ").append(toIndentedString(locations)).append("\n"); + sb.append(" collectionType: ").append(toIndentedString(collectionType)).append("\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" primaryImageItemId: ").append(toIndentedString(primaryImageItemId)).append("\n"); + sb.append(" refreshProgress: ").append(toIndentedString(refreshProgress)).append("\n"); + sb.append(" refreshStatus: ").append(toIndentedString(refreshStatus)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Locations"); + openapiFields.add("CollectionType"); + openapiFields.add("LibraryOptions"); + openapiFields.add("ItemId"); + openapiFields.add("PrimaryImageItemId"); + openapiFields.add("RefreshProgress"); + openapiFields.add("RefreshStatus"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VirtualFolderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VirtualFolderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VirtualFolderInfo is not found in the empty JSON string", VirtualFolderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VirtualFolderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VirtualFolderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Locations") != null && !jsonObj.get("Locations").isJsonNull() && !jsonObj.get("Locations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Locations` to be an array in the JSON string but got `%s`", jsonObj.get("Locations").toString())); + } + // validate the optional field `CollectionType` + if (jsonObj.get("CollectionType") != null && !jsonObj.get("CollectionType").isJsonNull()) { + CollectionTypeOptions.validateJsonElement(jsonObj.get("CollectionType")); + } + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("PrimaryImageItemId") != null && !jsonObj.get("PrimaryImageItemId").isJsonNull()) && !jsonObj.get("PrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageItemId").toString())); + } + if ((jsonObj.get("RefreshStatus") != null && !jsonObj.get("RefreshStatus").isJsonNull()) && !jsonObj.get("RefreshStatus").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RefreshStatus` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RefreshStatus").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VirtualFolderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VirtualFolderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VirtualFolderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VirtualFolderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VirtualFolderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VirtualFolderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of VirtualFolderInfo + * @throws IOException if the JSON string is invalid with respect to VirtualFolderInfo + */ + public static VirtualFolderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VirtualFolderInfo.class); + } + + /** + * Convert an instance of VirtualFolderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java new file mode 100644 index 0000000000000..c09e3fd42d7f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Provides the MAC address and port for wake-on-LAN functionality. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class WakeOnLanInfo { + public static final String SERIALIZED_NAME_MAC_ADDRESS = "MacAddress"; + @SerializedName(SERIALIZED_NAME_MAC_ADDRESS) + @javax.annotation.Nullable + private String macAddress; + + public static final String SERIALIZED_NAME_PORT = "Port"; + @SerializedName(SERIALIZED_NAME_PORT) + @javax.annotation.Nullable + private Integer port; + + public WakeOnLanInfo() { + } + + public WakeOnLanInfo macAddress(@javax.annotation.Nullable String macAddress) { + this.macAddress = macAddress; + return this; + } + + /** + * Gets the MAC address of the device. + * @return macAddress + */ + @javax.annotation.Nullable + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(@javax.annotation.Nullable String macAddress) { + this.macAddress = macAddress; + } + + + public WakeOnLanInfo port(@javax.annotation.Nullable Integer port) { + this.port = port; + return this; + } + + /** + * Gets or sets the wake-on-LAN port. + * @return port + */ + @javax.annotation.Nullable + public Integer getPort() { + return port; + } + + public void setPort(@javax.annotation.Nullable Integer port) { + this.port = port; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WakeOnLanInfo wakeOnLanInfo = (WakeOnLanInfo) o; + return Objects.equals(this.macAddress, wakeOnLanInfo.macAddress) && + Objects.equals(this.port, wakeOnLanInfo.port); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(macAddress, port); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WakeOnLanInfo {\n"); + sb.append(" macAddress: ").append(toIndentedString(macAddress)).append("\n"); + sb.append(" port: ").append(toIndentedString(port)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MacAddress"); + openapiFields.add("Port"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WakeOnLanInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WakeOnLanInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WakeOnLanInfo is not found in the empty JSON string", WakeOnLanInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WakeOnLanInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WakeOnLanInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MacAddress") != null && !jsonObj.get("MacAddress").isJsonNull()) && !jsonObj.get("MacAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MacAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MacAddress").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WakeOnLanInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WakeOnLanInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WakeOnLanInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WakeOnLanInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WakeOnLanInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WakeOnLanInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of WakeOnLanInfo + * @throws IOException if the JSON string is invalid with respect to WakeOnLanInfo + */ + public static WakeOnLanInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WakeOnLanInfo.class); + } + + /** + * Convert an instance of WakeOnLanInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WebSocketMessage.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WebSocketMessage.java new file mode 100644 index 0000000000000..27540a9dfb46f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/WebSocketMessage.java @@ -0,0 +1,279 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.InboundWebSocketMessage; +import org.openapitools.client.model.OutboundWebSocketMessage; +import org.openapitools.client.model.SessionMessageType; +import org.openapitools.client.model.UserDto; +import org.openapitools.jackson.nullable.JsonNullable; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import org.openapitools.client.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class WebSocketMessage extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(WebSocketMessage.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WebSocketMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WebSocketMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterInboundWebSocketMessage = gson.getDelegateAdapter(this, TypeToken.get(InboundWebSocketMessage.class)); + final TypeAdapter adapterOutboundWebSocketMessage = gson.getDelegateAdapter(this, TypeToken.get(OutboundWebSocketMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WebSocketMessage value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `InboundWebSocketMessage` + if (value.getActualInstance() instanceof InboundWebSocketMessage) { + JsonElement element = adapterInboundWebSocketMessage.toJsonTree((InboundWebSocketMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `OutboundWebSocketMessage` + if (value.getActualInstance() instanceof OutboundWebSocketMessage) { + JsonElement element = adapterOutboundWebSocketMessage.toJsonTree((OutboundWebSocketMessage)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: InboundWebSocketMessage, OutboundWebSocketMessage"); + } + + @Override + public WebSocketMessage read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize InboundWebSocketMessage + try { + // validate the JSON object to see if any exception is thrown + InboundWebSocketMessage.validateJsonElement(jsonElement); + actualAdapter = adapterInboundWebSocketMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'InboundWebSocketMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InboundWebSocketMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InboundWebSocketMessage'", e); + } + // deserialize OutboundWebSocketMessage + try { + // validate the JSON object to see if any exception is thrown + OutboundWebSocketMessage.validateJsonElement(jsonElement); + actualAdapter = adapterOutboundWebSocketMessage; + match++; + log.log(Level.FINER, "Input data matches schema 'OutboundWebSocketMessage'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for OutboundWebSocketMessage failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'OutboundWebSocketMessage'", e); + } + + if (match == 1) { + WebSocketMessage ret = new WebSocketMessage(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for WebSocketMessage: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public WebSocketMessage() { + super("oneOf", Boolean.FALSE); + } + + public WebSocketMessage(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("InboundWebSocketMessage", InboundWebSocketMessage.class); + schemas.put("OutboundWebSocketMessage", OutboundWebSocketMessage.class); + } + + @Override + public Map> getSchemas() { + return WebSocketMessage.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * InboundWebSocketMessage, OutboundWebSocketMessage + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof InboundWebSocketMessage) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof OutboundWebSocketMessage) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be InboundWebSocketMessage, OutboundWebSocketMessage"); + } + + /** + * Get the actual instance, which can be the following: + * InboundWebSocketMessage, OutboundWebSocketMessage + * + * @return The actual instance (InboundWebSocketMessage, OutboundWebSocketMessage) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `InboundWebSocketMessage`. If the actual instance is not `InboundWebSocketMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InboundWebSocketMessage` + * @throws ClassCastException if the instance is not `InboundWebSocketMessage` + */ + public InboundWebSocketMessage getInboundWebSocketMessage() throws ClassCastException { + return (InboundWebSocketMessage)super.getActualInstance(); + } + + /** + * Get the actual instance of `OutboundWebSocketMessage`. If the actual instance is not `OutboundWebSocketMessage`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `OutboundWebSocketMessage` + * @throws ClassCastException if the instance is not `OutboundWebSocketMessage` + */ + public OutboundWebSocketMessage getOutboundWebSocketMessage() throws ClassCastException { + return (OutboundWebSocketMessage)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WebSocketMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with InboundWebSocketMessage + try { + InboundWebSocketMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InboundWebSocketMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with OutboundWebSocketMessage + try { + OutboundWebSocketMessage.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for OutboundWebSocketMessage failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for WebSocketMessage with oneOf schemas: InboundWebSocketMessage, OutboundWebSocketMessage. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of WebSocketMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of WebSocketMessage + * @throws IOException if the JSON string is invalid with respect to WebSocketMessage + */ + public static WebSocketMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WebSocketMessage.class); + } + + /** + * Convert an instance of WebSocketMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java new file mode 100644 index 0000000000000..dd119850debba --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.10.3/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java @@ -0,0 +1,329 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.10.3 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * XbmcMetadataOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:56.699980679+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class XbmcMetadataOptions { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private String userId; + + public static final String SERIALIZED_NAME_RELEASE_DATE_FORMAT = "ReleaseDateFormat"; + @SerializedName(SERIALIZED_NAME_RELEASE_DATE_FORMAT) + @javax.annotation.Nullable + private String releaseDateFormat; + + public static final String SERIALIZED_NAME_SAVE_IMAGE_PATHS_IN_NFO = "SaveImagePathsInNfo"; + @SerializedName(SERIALIZED_NAME_SAVE_IMAGE_PATHS_IN_NFO) + @javax.annotation.Nullable + private Boolean saveImagePathsInNfo; + + public static final String SERIALIZED_NAME_ENABLE_PATH_SUBSTITUTION = "EnablePathSubstitution"; + @SerializedName(SERIALIZED_NAME_ENABLE_PATH_SUBSTITUTION) + @javax.annotation.Nullable + private Boolean enablePathSubstitution; + + public static final String SERIALIZED_NAME_ENABLE_EXTRA_THUMBS_DUPLICATION = "EnableExtraThumbsDuplication"; + @SerializedName(SERIALIZED_NAME_ENABLE_EXTRA_THUMBS_DUPLICATION) + @javax.annotation.Nullable + private Boolean enableExtraThumbsDuplication; + + public XbmcMetadataOptions() { + } + + public XbmcMetadataOptions userId(@javax.annotation.Nullable String userId) { + this.userId = userId; + return this; + } + + /** + * Get userId + * @return userId + */ + @javax.annotation.Nullable + public String getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable String userId) { + this.userId = userId; + } + + + public XbmcMetadataOptions releaseDateFormat(@javax.annotation.Nullable String releaseDateFormat) { + this.releaseDateFormat = releaseDateFormat; + return this; + } + + /** + * Get releaseDateFormat + * @return releaseDateFormat + */ + @javax.annotation.Nullable + public String getReleaseDateFormat() { + return releaseDateFormat; + } + + public void setReleaseDateFormat(@javax.annotation.Nullable String releaseDateFormat) { + this.releaseDateFormat = releaseDateFormat; + } + + + public XbmcMetadataOptions saveImagePathsInNfo(@javax.annotation.Nullable Boolean saveImagePathsInNfo) { + this.saveImagePathsInNfo = saveImagePathsInNfo; + return this; + } + + /** + * Get saveImagePathsInNfo + * @return saveImagePathsInNfo + */ + @javax.annotation.Nullable + public Boolean getSaveImagePathsInNfo() { + return saveImagePathsInNfo; + } + + public void setSaveImagePathsInNfo(@javax.annotation.Nullable Boolean saveImagePathsInNfo) { + this.saveImagePathsInNfo = saveImagePathsInNfo; + } + + + public XbmcMetadataOptions enablePathSubstitution(@javax.annotation.Nullable Boolean enablePathSubstitution) { + this.enablePathSubstitution = enablePathSubstitution; + return this; + } + + /** + * Get enablePathSubstitution + * @return enablePathSubstitution + */ + @javax.annotation.Nullable + public Boolean getEnablePathSubstitution() { + return enablePathSubstitution; + } + + public void setEnablePathSubstitution(@javax.annotation.Nullable Boolean enablePathSubstitution) { + this.enablePathSubstitution = enablePathSubstitution; + } + + + public XbmcMetadataOptions enableExtraThumbsDuplication(@javax.annotation.Nullable Boolean enableExtraThumbsDuplication) { + this.enableExtraThumbsDuplication = enableExtraThumbsDuplication; + return this; + } + + /** + * Get enableExtraThumbsDuplication + * @return enableExtraThumbsDuplication + */ + @javax.annotation.Nullable + public Boolean getEnableExtraThumbsDuplication() { + return enableExtraThumbsDuplication; + } + + public void setEnableExtraThumbsDuplication(@javax.annotation.Nullable Boolean enableExtraThumbsDuplication) { + this.enableExtraThumbsDuplication = enableExtraThumbsDuplication; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + XbmcMetadataOptions xbmcMetadataOptions = (XbmcMetadataOptions) o; + return Objects.equals(this.userId, xbmcMetadataOptions.userId) && + Objects.equals(this.releaseDateFormat, xbmcMetadataOptions.releaseDateFormat) && + Objects.equals(this.saveImagePathsInNfo, xbmcMetadataOptions.saveImagePathsInNfo) && + Objects.equals(this.enablePathSubstitution, xbmcMetadataOptions.enablePathSubstitution) && + Objects.equals(this.enableExtraThumbsDuplication, xbmcMetadataOptions.enableExtraThumbsDuplication); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, releaseDateFormat, saveImagePathsInNfo, enablePathSubstitution, enableExtraThumbsDuplication); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class XbmcMetadataOptions {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" releaseDateFormat: ").append(toIndentedString(releaseDateFormat)).append("\n"); + sb.append(" saveImagePathsInNfo: ").append(toIndentedString(saveImagePathsInNfo)).append("\n"); + sb.append(" enablePathSubstitution: ").append(toIndentedString(enablePathSubstitution)).append("\n"); + sb.append(" enableExtraThumbsDuplication: ").append(toIndentedString(enableExtraThumbsDuplication)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("ReleaseDateFormat"); + openapiFields.add("SaveImagePathsInNfo"); + openapiFields.add("EnablePathSubstitution"); + openapiFields.add("EnableExtraThumbsDuplication"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to XbmcMetadataOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!XbmcMetadataOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in XbmcMetadataOptions is not found in the empty JSON string", XbmcMetadataOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!XbmcMetadataOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `XbmcMetadataOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("ReleaseDateFormat") != null && !jsonObj.get("ReleaseDateFormat").isJsonNull()) && !jsonObj.get("ReleaseDateFormat").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ReleaseDateFormat` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ReleaseDateFormat").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!XbmcMetadataOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'XbmcMetadataOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(XbmcMetadataOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, XbmcMetadataOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public XbmcMetadataOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of XbmcMetadataOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of XbmcMetadataOptions + * @throws IOException if the JSON string is invalid with respect to XbmcMetadataOptions + */ + public static XbmcMetadataOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, XbmcMetadataOptions.class); + } + + /** + * Convert an instance of XbmcMetadataOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AccessSchedule.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AccessSchedule.md new file mode 100644 index 0000000000000..53ba0c75fd852 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AccessSchedule.md @@ -0,0 +1,18 @@ + + +# AccessSchedule + +An entity representing a user's access schedule. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | Gets the id of this instance. | [optional] [readonly] | +|**userId** | **UUID** | Gets the id of the associated user. | [optional] | +|**dayOfWeek** | **DynamicDayOfWeek** | Gets or sets the day of week. | [optional] | +|**startHour** | **Double** | Gets or sets the start hour. | [optional] | +|**endHour** | **Double** | Gets or sets the end hour. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogApi.md new file mode 100644 index 0000000000000..73da846d8d62a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogApi.md @@ -0,0 +1,84 @@ +# ActivityLogApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getLogEntries**](ActivityLogApi.md#getLogEntries) | **GET** /System/ActivityLog/Entries | Gets activity log entries. | + + + +# **getLogEntries** +> ActivityLogEntryQueryResult getLogEntries(startIndex, limit, minDate, hasUserId) + +Gets activity log entries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ActivityLogApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ActivityLogApi apiInstance = new ActivityLogApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + OffsetDateTime minDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum date. Format = ISO. + Boolean hasUserId = true; // Boolean | Optional. Filter log entries if it has user id, or not. + try { + ActivityLogEntryQueryResult result = apiInstance.getLogEntries(startIndex, limit, minDate, hasUserId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ActivityLogApi#getLogEntries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **minDate** | **OffsetDateTime**| Optional. The minimum date. Format = ISO. | [optional] | +| **hasUserId** | **Boolean**| Optional. Filter log entries if it has user id, or not. | [optional] | + +### Return type + +[**ActivityLogEntryQueryResult**](ActivityLogEntryQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Activity log returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntry.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntry.md new file mode 100644 index 0000000000000..d6bd5f3947c9c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntry.md @@ -0,0 +1,23 @@ + + +# ActivityLogEntry + +An activity log entry. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Long** | Gets or sets the identifier. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**overview** | **String** | Gets or sets the overview. | [optional] | +|**shortOverview** | **String** | Gets or sets the short overview. | [optional] | +|**type** | **String** | Gets or sets the type. | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | +|**date** | **OffsetDateTime** | Gets or sets the date. | [optional] | +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**userPrimaryImageTag** | **String** | Gets or sets the user primary image tag. | [optional] | +|**severity** | **LogLevel** | Gets or sets the log severity. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntryQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntryQueryResult.md new file mode 100644 index 0000000000000..c262fcb9f54f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ActivityLogEntryQueryResult.md @@ -0,0 +1,15 @@ + + +# ActivityLogEntryQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<ActivityLogEntry>**](ActivityLogEntry.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AddVirtualFolderDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AddVirtualFolderDto.md new file mode 100644 index 0000000000000..2b8b67111179a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AddVirtualFolderDto.md @@ -0,0 +1,14 @@ + + +# AddVirtualFolderDto + +Add virtual folder dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | Gets or sets library options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AdminNotificationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AdminNotificationDto.md new file mode 100644 index 0000000000000..2c1d230f5f561 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AdminNotificationDto.md @@ -0,0 +1,17 @@ + + +# AdminNotificationDto + +The admin notification dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the notification name. | [optional] | +|**description** | **String** | Gets or sets the notification description. | [optional] | +|**notificationLevel** | **NotificationLevel** | Gets or sets the notification level. | [optional] | +|**url** | **String** | Gets or sets the notification url. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfo.md new file mode 100644 index 0000000000000..327d7ecf3e6fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfo.md @@ -0,0 +1,26 @@ + + +# AlbumInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**albumArtists** | **List<String>** | Gets or sets the album artist. | [optional] | +|**artistProviderIds** | **Map<String, String>** | Gets or sets the artist provider ids. | [optional] | +|**songInfos** | [**List<SongInfo>**](SongInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..f2527670a1512 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AlbumInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# AlbumInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**AlbumInfo**](AlbumInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AllThemeMediaResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AllThemeMediaResult.md new file mode 100644 index 0000000000000..78ab2b10f2154 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AllThemeMediaResult.md @@ -0,0 +1,15 @@ + + +# AllThemeMediaResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**themeVideosResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | +|**themeSongsResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | +|**soundtrackSongsResult** | [**ThemeMediaResult**](ThemeMediaResult.md) | Class ThemeMediaResult. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ApiKeyApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ApiKeyApi.md new file mode 100644 index 0000000000000..bfe184fdb2869 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ApiKeyApi.md @@ -0,0 +1,212 @@ +# ApiKeyApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createKey**](ApiKeyApi.md#createKey) | **POST** /Auth/Keys | Create a new api key. | +| [**getKeys**](ApiKeyApi.md#getKeys) | **GET** /Auth/Keys | Get all keys. | +| [**revokeKey**](ApiKeyApi.md#revokeKey) | **DELETE** /Auth/Keys/{key} | Remove an api key. | + + + +# **createKey** +> createKey(app) + +Create a new api key. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + String app = "app_example"; // String | Name of the app using the authentication key. + try { + apiInstance.createKey(app); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#createKey"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **app** | **String**| Name of the app using the authentication key. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Api key created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getKeys** +> AuthenticationInfoQueryResult getKeys() + +Get all keys. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + try { + AuthenticationInfoQueryResult result = apiInstance.getKeys(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#getKeys"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**AuthenticationInfoQueryResult**](AuthenticationInfoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Api keys retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **revokeKey** +> revokeKey(key) + +Remove an api key. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ApiKeyApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ApiKeyApi apiInstance = new ApiKeyApi(defaultClient); + String key = "key_example"; // String | The access token to delete. + try { + apiInstance.revokeKey(key); + } catch (ApiException e) { + System.err.println("Exception when calling ApiKeyApi#revokeKey"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| The access token to delete. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Api key deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Architecture.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Architecture.md new file mode 100644 index 0000000000000..02793b4706c1a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Architecture.md @@ -0,0 +1,21 @@ + + +# Architecture + +## Enum + + +* `X86` (value: `"X86"`) + +* `X64` (value: `"X64"`) + +* `ARM` (value: `"Arm"`) + +* `ARM64` (value: `"Arm64"`) + +* `WASM` (value: `"Wasm"`) + +* `S390X` (value: `"S390x"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfo.md new file mode 100644 index 0000000000000..df809445526da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfo.md @@ -0,0 +1,24 @@ + + +# ArtistInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**songInfos** | [**List<SongInfo>**](SongInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..ee3cd0eee7136 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# ArtistInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**ArtistInfo**](ArtistInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistsApi.md new file mode 100644 index 0000000000000..38adc09b1cbff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ArtistsApi.md @@ -0,0 +1,344 @@ +# ArtistsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAlbumArtists**](ArtistsApi.md#getAlbumArtists) | **GET** /Artists/AlbumArtists | Gets all album artists from a given item, folder, or the entire library. | +| [**getArtistByName**](ArtistsApi.md#getArtistByName) | **GET** /Artists/{name} | Gets an artist by name. | +| [**getArtists**](ArtistsApi.md#getArtists) | **GET** /Artists | Gets all artists from a given item, folder, or the entire library. | + + + +# **getAlbumArtists** +> BaseItemDtoQueryResult getAlbumArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all album artists from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person ids. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getAlbumArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getAlbumArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person ids. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Album artists returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getArtistByName** +> BaseItemDto getArtistByName(name, userId) + +Gets an artist by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + String name = "name_example"; // String | Studio name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getArtistByName(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getArtistByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Artist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getArtists** +> BaseItemDtoQueryResult getArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all artists from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ArtistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ArtistsApi apiInstance = new ArtistsApi(defaultClient); + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person ids. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getArtists(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ArtistsApi#getArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person ids. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Artists returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AudioApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AudioApi.md new file mode 100644 index 0000000000000..1799b5698065e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AudioApi.md @@ -0,0 +1,636 @@ +# AudioApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAudioStream**](AudioApi.md#getAudioStream) | **GET** /Audio/{itemId}/stream | Gets an audio stream. | +| [**getAudioStreamByContainer**](AudioApi.md#getAudioStreamByContainer) | **GET** /Audio/{itemId}/stream.{container} | Gets an audio stream. | +| [**headAudioStream**](AudioApi.md#headAudioStream) | **HEAD** /Audio/{itemId}/stream | Gets an audio stream. | +| [**headAudioStreamByContainer**](AudioApi.md#headAudioStreamByContainer) | **HEAD** /Audio/{itemId}/stream.{container} | Gets an audio stream. | + + + +# **getAudioStream** +> File getAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#getAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **getAudioStreamByContainer** +> File getAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment lenght. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamporphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#getAudioStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment lenght. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamporphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **headAudioStream** +> File headAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.headAudioStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#headAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + + +# **headAudioStreamByContainer** +> File headAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.AudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + AudioApi apiInstance = new AudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment lenght. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamporphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.headAudioStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AudioApi#headAudioStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment lenght. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamporphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticateUserByName.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticateUserByName.md new file mode 100644 index 0000000000000..f76ef387c7270 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticateUserByName.md @@ -0,0 +1,16 @@ + + +# AuthenticateUserByName + +The authenticate user by name request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**username** | **String** | Gets or sets the username. | [optional] | +|**pw** | **String** | Gets or sets the plain text password. | [optional] | +|**password** | **String** | Gets or sets the sha1-hashed password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfo.md new file mode 100644 index 0000000000000..8f0b3b829c130 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfo.md @@ -0,0 +1,24 @@ + + +# AuthenticationInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Long** | Gets or sets the identifier. | [optional] | +|**accessToken** | **String** | Gets or sets the access token. | [optional] | +|**deviceId** | **String** | Gets or sets the device identifier. | [optional] | +|**appName** | **String** | Gets or sets the name of the application. | [optional] | +|**appVersion** | **String** | Gets or sets the application version. | [optional] | +|**deviceName** | **String** | Gets or sets the name of the device. | [optional] | +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**isActive** | **Boolean** | Gets or sets a value indicating whether this instance is active. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateRevoked** | **OffsetDateTime** | Gets or sets the date revoked. | [optional] | +|**dateLastActivity** | **OffsetDateTime** | | [optional] | +|**userName** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfoQueryResult.md new file mode 100644 index 0000000000000..cc5058d2c6280 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationInfoQueryResult.md @@ -0,0 +1,15 @@ + + +# AuthenticationInfoQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<AuthenticationInfo>**](AuthenticationInfo.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationResult.md new file mode 100644 index 0000000000000..1cb99fa060d5f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/AuthenticationResult.md @@ -0,0 +1,16 @@ + + +# AuthenticationResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**user** | [**UserDto**](UserDto.md) | Class UserDto. | [optional] | +|**sessionInfo** | [**SessionInfo**](SessionInfo.md) | Class SessionInfo. | [optional] | +|**accessToken** | **String** | | [optional] | +|**serverId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItem.md new file mode 100644 index 0000000000000..e0c9a715e7e3e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItem.md @@ -0,0 +1,24 @@ + + +# BaseItem + +Class BaseItem. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**size** | **Long** | | [optional] | +|**container** | **String** | | [optional] | +|**isHD** | **Boolean** | | [optional] [readonly] | +|**isShortcut** | **Boolean** | | [optional] | +|**shortcutPath** | **String** | | [optional] | +|**width** | **Integer** | | [optional] | +|**height** | **Integer** | | [optional] | +|**extraIds** | **List<UUID>** | | [optional] | +|**dateLastSaved** | **OffsetDateTime** | | [optional] | +|**remoteTrailers** | [**List<MediaUrl>**](MediaUrl.md) | Gets or sets the remote trailers. | [optional] | +|**supportsExternalTransfer** | **Boolean** | | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDto.md new file mode 100644 index 0000000000000..c4a3294e0416e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDto.md @@ -0,0 +1,164 @@ + + +# BaseItemDto + +This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**id** | **UUID** | Gets or sets the id. | [optional] | +|**etag** | **String** | Gets or sets the etag. | [optional] | +|**sourceType** | **String** | Gets or sets the type of the source. | [optional] | +|**playlistItemId** | **String** | Gets or sets the playlist item identifier. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateLastMediaAdded** | **OffsetDateTime** | | [optional] | +|**extraType** | **String** | | [optional] | +|**airsBeforeSeasonNumber** | **Integer** | | [optional] | +|**airsAfterSeasonNumber** | **Integer** | | [optional] | +|**airsBeforeEpisodeNumber** | **Integer** | | [optional] | +|**canDelete** | **Boolean** | | [optional] | +|**canDownload** | **Boolean** | | [optional] | +|**hasSubtitles** | **Boolean** | | [optional] | +|**preferredMetadataLanguage** | **String** | | [optional] | +|**preferredMetadataCountryCode** | **String** | | [optional] | +|**supportsSync** | **Boolean** | Gets or sets a value indicating whether [supports synchronize]. | [optional] | +|**container** | **String** | | [optional] | +|**sortName** | **String** | Gets or sets the name of the sort. | [optional] | +|**forcedSortName** | **String** | | [optional] | +|**video3DFormat** | **Video3DFormat** | Gets or sets the video3 D format. | [optional] | +|**premiereDate** | **OffsetDateTime** | Gets or sets the premiere date. | [optional] | +|**externalUrls** | [**List<ExternalUrl>**](ExternalUrl.md) | Gets or sets the external urls. | [optional] | +|**mediaSources** | [**List<MediaSourceInfo>**](MediaSourceInfo.md) | Gets or sets the media versions. | [optional] | +|**criticRating** | **Float** | Gets or sets the critic rating. | [optional] | +|**productionLocations** | **List<String>** | | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**enableMediaSourceDisplay** | **Boolean** | | [optional] | +|**officialRating** | **String** | Gets or sets the official rating. | [optional] | +|**customRating** | **String** | Gets or sets the custom rating. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel identifier. | [optional] | +|**channelName** | **String** | | [optional] | +|**overview** | **String** | Gets or sets the overview. | [optional] | +|**taglines** | **List<String>** | Gets or sets the taglines. | [optional] | +|**genres** | **List<String>** | Gets or sets the genres. | [optional] | +|**communityRating** | **Float** | Gets or sets the community rating. | [optional] | +|**cumulativeRunTimeTicks** | **Long** | Gets or sets the cumulative run time ticks. | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**playAccess** | **PlayAccess** | Gets or sets the play access. | [optional] | +|**aspectRatio** | **String** | Gets or sets the aspect ratio. | [optional] | +|**productionYear** | **Integer** | Gets or sets the production year. | [optional] | +|**isPlaceHolder** | **Boolean** | Gets or sets a value indicating whether this instance is place holder. | [optional] | +|**number** | **String** | Gets or sets the number. | [optional] | +|**channelNumber** | **String** | | [optional] | +|**indexNumber** | **Integer** | Gets or sets the index number. | [optional] | +|**indexNumberEnd** | **Integer** | Gets or sets the index number end. | [optional] | +|**parentIndexNumber** | **Integer** | Gets or sets the parent index number. | [optional] | +|**remoteTrailers** | [**List<MediaUrl>**](MediaUrl.md) | Gets or sets the trailer urls. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**isHD** | **Boolean** | Gets or sets a value indicating whether this instance is HD. | [optional] | +|**isFolder** | **Boolean** | Gets or sets a value indicating whether this instance is folder. | [optional] | +|**parentId** | **UUID** | Gets or sets the parent id. | [optional] | +|**type** | **BaseItemKind** | Gets or sets the type. | [optional] | +|**people** | [**List<BaseItemPerson>**](BaseItemPerson.md) | Gets or sets the people. | [optional] | +|**studios** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the studios. | [optional] | +|**genreItems** | [**List<NameGuidPair>**](NameGuidPair.md) | | [optional] | +|**parentLogoItemId** | **UUID** | Gets or sets wether the item has a logo, this will hold the Id of the Parent that has one. | [optional] | +|**parentBackdropItemId** | **UUID** | Gets or sets wether the item has any backdrops, this will hold the Id of the Parent that has one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**localTrailerCount** | **Integer** | Gets or sets the local trailer count. | [optional] | +|**userData** | [**UserItemDataDto**](UserItemDataDto.md) | Gets or sets the user data for this item based on the user it's being requested for. | [optional] | +|**recursiveItemCount** | **Integer** | Gets or sets the recursive item count. | [optional] | +|**childCount** | **Integer** | Gets or sets the child count. | [optional] | +|**seriesName** | **String** | Gets or sets the name of the series. | [optional] | +|**seriesId** | **UUID** | Gets or sets the series id. | [optional] | +|**seasonId** | **UUID** | Gets or sets the season identifier. | [optional] | +|**specialFeatureCount** | **Integer** | Gets or sets the special feature count. | [optional] | +|**displayPreferencesId** | **String** | Gets or sets the display preferences id. | [optional] | +|**status** | **String** | Gets or sets the status. | [optional] | +|**airTime** | **String** | Gets or sets the air time. | [optional] | +|**airDays** | **List<DayOfWeek>** | Gets or sets the air days. | [optional] | +|**tags** | **List<String>** | Gets or sets the tags. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio, after image enhancements. | [optional] | +|**artists** | **List<String>** | Gets or sets the artists. | [optional] | +|**artistItems** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the artist items. | [optional] | +|**album** | **String** | Gets or sets the album. | [optional] | +|**collectionType** | **String** | Gets or sets the type of the collection. | [optional] | +|**displayOrder** | **String** | Gets or sets the display order. | [optional] | +|**albumId** | **UUID** | Gets or sets the album id. | [optional] | +|**albumPrimaryImageTag** | **String** | Gets or sets the album image tag. | [optional] | +|**seriesPrimaryImageTag** | **String** | Gets or sets the series primary image tag. | [optional] | +|**albumArtist** | **String** | Gets or sets the album artist. | [optional] | +|**albumArtists** | [**List<NameGuidPair>**](NameGuidPair.md) | Gets or sets the album artists. | [optional] | +|**seasonName** | **String** | Gets or sets the name of the season. | [optional] | +|**mediaStreams** | [**List<MediaStream>**](MediaStream.md) | Gets or sets the media streams. | [optional] | +|**videoType** | **VideoType** | Gets or sets the type of the video. | [optional] | +|**partCount** | **Integer** | Gets or sets the part count. | [optional] | +|**mediaSourceCount** | **Integer** | | [optional] | +|**imageTags** | **Map<String, String>** | Gets or sets the image tags. | [optional] | +|**backdropImageTags** | **List<String>** | Gets or sets the backdrop image tags. | [optional] | +|**screenshotImageTags** | **List<String>** | Gets or sets the screenshot image tags. | [optional] | +|**parentLogoImageTag** | **String** | Gets or sets the parent logo image tag. | [optional] | +|**parentArtItemId** | **UUID** | Gets or sets wether the item has fan art, this will hold the Id of the Parent that has one. | [optional] | +|**parentArtImageTag** | **String** | Gets or sets the parent art image tag. | [optional] | +|**seriesThumbImageTag** | **String** | Gets or sets the series thumb image tag. | [optional] | +|**imageBlurHashes** | [**BaseItemDtoImageBlurHashes**](BaseItemDtoImageBlurHashes.md) | | [optional] | +|**seriesStudio** | **String** | Gets or sets the series studio. | [optional] | +|**parentThumbItemId** | **UUID** | Gets or sets the parent thumb item id. | [optional] | +|**parentThumbImageTag** | **String** | Gets or sets the parent thumb image tag. | [optional] | +|**parentPrimaryImageItemId** | **String** | Gets or sets the parent primary image item identifier. | [optional] | +|**parentPrimaryImageTag** | **String** | Gets or sets the parent primary image tag. | [optional] | +|**chapters** | [**List<ChapterInfo>**](ChapterInfo.md) | Gets or sets the chapters. | [optional] | +|**locationType** | **LocationType** | Gets or sets the type of the location. | [optional] | +|**isoType** | **IsoType** | Gets or sets the type of the iso. | [optional] | +|**mediaType** | **String** | Gets or sets the type of the media. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date. | [optional] | +|**lockedFields** | **List<MetadataField>** | Gets or sets the locked fields. | [optional] | +|**trailerCount** | **Integer** | Gets or sets the trailer count. | [optional] | +|**movieCount** | **Integer** | Gets or sets the movie count. | [optional] | +|**seriesCount** | **Integer** | Gets or sets the series count. | [optional] | +|**programCount** | **Integer** | | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**albumCount** | **Integer** | Gets or sets the album count. | [optional] | +|**artistCount** | **Integer** | | [optional] | +|**musicVideoCount** | **Integer** | Gets or sets the music video count. | [optional] | +|**lockData** | **Boolean** | Gets or sets a value indicating whether [enable internet providers]. | [optional] | +|**width** | **Integer** | | [optional] | +|**height** | **Integer** | | [optional] | +|**cameraMake** | **String** | | [optional] | +|**cameraModel** | **String** | | [optional] | +|**software** | **String** | | [optional] | +|**exposureTime** | **Double** | | [optional] | +|**focalLength** | **Double** | | [optional] | +|**imageOrientation** | **ImageOrientation** | | [optional] | +|**aperture** | **Double** | | [optional] | +|**shutterSpeed** | **Double** | | [optional] | +|**latitude** | **Double** | | [optional] | +|**longitude** | **Double** | | [optional] | +|**altitude** | **Double** | | [optional] | +|**isoSpeedRating** | **Integer** | | [optional] | +|**seriesTimerId** | **String** | Gets or sets the series timer identifier. | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**channelPrimaryImageTag** | **String** | Gets or sets the channel primary image tag. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**completionPercentage** | **Double** | Gets or sets the completion percentage. | [optional] | +|**isRepeat** | **Boolean** | Gets or sets a value indicating whether this instance is repeat. | [optional] | +|**episodeTitle** | **String** | Gets or sets the episode title. | [optional] | +|**channelType** | **ChannelType** | Gets or sets the type of the channel. | [optional] | +|**audio** | **ProgramAudio** | Gets or sets the audio. | [optional] | +|**isMovie** | **Boolean** | Gets or sets a value indicating whether this instance is movie. | [optional] | +|**isSports** | **Boolean** | Gets or sets a value indicating whether this instance is sports. | [optional] | +|**isSeries** | **Boolean** | Gets or sets a value indicating whether this instance is series. | [optional] | +|**isLive** | **Boolean** | Gets or sets a value indicating whether this instance is live. | [optional] | +|**isNews** | **Boolean** | Gets or sets a value indicating whether this instance is news. | [optional] | +|**isKids** | **Boolean** | Gets or sets a value indicating whether this instance is kids. | [optional] | +|**isPremiere** | **Boolean** | Gets or sets a value indicating whether this instance is premiere. | [optional] | +|**timerId** | **String** | Gets or sets the timer identifier. | [optional] | +|**currentProgram** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the current program. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoImageBlurHashes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoImageBlurHashes.md new file mode 100644 index 0000000000000..642fd695b1e54 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoImageBlurHashes.md @@ -0,0 +1,26 @@ + + +# BaseItemDtoImageBlurHashes + +Gets or sets the blurhashes for the image tags. Maps image type to dictionary mapping image tag to blurhash value. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**primary** | **Map<String, String>** | | [optional] | +|**art** | **Map<String, String>** | | [optional] | +|**backdrop** | **Map<String, String>** | | [optional] | +|**banner** | **Map<String, String>** | | [optional] | +|**logo** | **Map<String, String>** | | [optional] | +|**thumb** | **Map<String, String>** | | [optional] | +|**disc** | **Map<String, String>** | | [optional] | +|**box** | **Map<String, String>** | | [optional] | +|**screenshot** | **Map<String, String>** | | [optional] | +|**menu** | **Map<String, String>** | | [optional] | +|**chapter** | **Map<String, String>** | | [optional] | +|**boxRear** | **Map<String, String>** | | [optional] | +|**profile** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoQueryResult.md new file mode 100644 index 0000000000000..cddef1833761d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemDtoQueryResult.md @@ -0,0 +1,15 @@ + + +# BaseItemDtoQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemKind.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemKind.md new file mode 100644 index 0000000000000..351404447cf6d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemKind.md @@ -0,0 +1,83 @@ + + +# BaseItemKind + +## Enum + + +* `AGGREGATE_FOLDER` (value: `"AggregateFolder"`) + +* `AUDIO` (value: `"Audio"`) + +* `AUDIO_BOOK` (value: `"AudioBook"`) + +* `BASE_PLUGIN_FOLDER` (value: `"BasePluginFolder"`) + +* `BOOK` (value: `"Book"`) + +* `BOX_SET` (value: `"BoxSet"`) + +* `CHANNEL` (value: `"Channel"`) + +* `CHANNEL_FOLDER_ITEM` (value: `"ChannelFolderItem"`) + +* `COLLECTION_FOLDER` (value: `"CollectionFolder"`) + +* `EPISODE` (value: `"Episode"`) + +* `FOLDER` (value: `"Folder"`) + +* `GENRE` (value: `"Genre"`) + +* `MANUAL_PLAYLISTS_FOLDER` (value: `"ManualPlaylistsFolder"`) + +* `MOVIE` (value: `"Movie"`) + +* `LIVE_TV_CHANNEL` (value: `"LiveTvChannel"`) + +* `LIVE_TV_PROGRAM` (value: `"LiveTvProgram"`) + +* `MUSIC_ALBUM` (value: `"MusicAlbum"`) + +* `MUSIC_ARTIST` (value: `"MusicArtist"`) + +* `MUSIC_GENRE` (value: `"MusicGenre"`) + +* `MUSIC_VIDEO` (value: `"MusicVideo"`) + +* `PERSON` (value: `"Person"`) + +* `PHOTO` (value: `"Photo"`) + +* `PHOTO_ALBUM` (value: `"PhotoAlbum"`) + +* `PLAYLIST` (value: `"Playlist"`) + +* `PLAYLISTS_FOLDER` (value: `"PlaylistsFolder"`) + +* `PROGRAM` (value: `"Program"`) + +* `RECORDING` (value: `"Recording"`) + +* `SEASON` (value: `"Season"`) + +* `SERIES` (value: `"Series"`) + +* `STUDIO` (value: `"Studio"`) + +* `TRAILER` (value: `"Trailer"`) + +* `TV_CHANNEL` (value: `"TvChannel"`) + +* `TV_PROGRAM` (value: `"TvProgram"`) + +* `USER_ROOT_FOLDER` (value: `"UserRootFolder"`) + +* `USER_VIEW` (value: `"UserView"`) + +* `VIDEO` (value: `"Video"`) + +* `YEAR` (value: `"Year"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPerson.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPerson.md new file mode 100644 index 0000000000000..108a7141ac7a9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPerson.md @@ -0,0 +1,19 @@ + + +# BaseItemPerson + +This is used by the api to get information about a Person within a BaseItem. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **UUID** | Gets or sets the identifier. | [optional] | +|**role** | **String** | Gets or sets the role. | [optional] | +|**type** | **String** | Gets or sets the type. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the primary image tag. | [optional] | +|**imageBlurHashes** | [**BaseItemPersonImageBlurHashes**](BaseItemPersonImageBlurHashes.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPersonImageBlurHashes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPersonImageBlurHashes.md new file mode 100644 index 0000000000000..c47e2aea93f36 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BaseItemPersonImageBlurHashes.md @@ -0,0 +1,26 @@ + + +# BaseItemPersonImageBlurHashes + +Gets or sets the primary image blurhash. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**primary** | **Map<String, String>** | | [optional] | +|**art** | **Map<String, String>** | | [optional] | +|**backdrop** | **Map<String, String>** | | [optional] | +|**banner** | **Map<String, String>** | | [optional] | +|**logo** | **Map<String, String>** | | [optional] | +|**thumb** | **Map<String, String>** | | [optional] | +|**disc** | **Map<String, String>** | | [optional] | +|**box** | **Map<String, String>** | | [optional] | +|**screenshot** | **Map<String, String>** | | [optional] | +|**menu** | **Map<String, String>** | | [optional] | +|**chapter** | **Map<String, String>** | | [optional] | +|**boxRear** | **Map<String, String>** | | [optional] | +|**profile** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfo.md new file mode 100644 index 0000000000000..5d7a44e6bc122 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfo.md @@ -0,0 +1,24 @@ + + +# BookInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**seriesName** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..2888f713b6842 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BookInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# BookInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**BookInfo**](BookInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfo.md new file mode 100644 index 0000000000000..59b7231b3da01 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfo.md @@ -0,0 +1,23 @@ + + +# BoxSetInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..96391d240591e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BoxSetInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# BoxSetInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**BoxSetInfo**](BoxSetInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingApi.md new file mode 100644 index 0000000000000..056019cee52a0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingApi.md @@ -0,0 +1,181 @@ +# BrandingApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getBrandingCss**](BrandingApi.md#getBrandingCss) | **GET** /Branding/Css | Gets branding css. | +| [**getBrandingCss2**](BrandingApi.md#getBrandingCss2) | **GET** /Branding/Css.css | Gets branding css. | +| [**getBrandingOptions**](BrandingApi.md#getBrandingOptions) | **GET** /Branding/Configuration | Gets branding configuration. | + + + +# **getBrandingCss** +> String getBrandingCss() + +Gets branding css. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + String result = apiInstance.getBrandingCss(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingCss"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/css, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding css returned. | - | +| **204** | No branding css configured. | - | + + +# **getBrandingCss2** +> String getBrandingCss2() + +Gets branding css. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + String result = apiInstance.getBrandingCss2(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingCss2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/css, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding css returned. | - | +| **204** | No branding css configured. | - | + + +# **getBrandingOptions** +> BrandingOptions getBrandingOptions() + +Gets branding configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.BrandingApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + BrandingApi apiInstance = new BrandingApi(defaultClient); + try { + BrandingOptions result = apiInstance.getBrandingOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling BrandingApi#getBrandingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**BrandingOptions**](BrandingOptions.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Branding configuration returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingOptions.md new file mode 100644 index 0000000000000..ec202b0b3caed --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BrandingOptions.md @@ -0,0 +1,16 @@ + + +# BrandingOptions + +The branding options. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**loginDisclaimer** | **String** | Gets or sets the login disclaimer. | [optional] | +|**customCss** | **String** | Gets or sets the custom CSS. | [optional] | +|**splashscreenEnabled** | **Boolean** | Gets or sets a value indicating whether to enable the splashscreen. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BufferRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BufferRequestDto.md new file mode 100644 index 0000000000000..7eaec4a279e90 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/BufferRequestDto.md @@ -0,0 +1,17 @@ + + +# BufferRequestDto + +Class BufferRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**when** | **OffsetDateTime** | Gets or sets when the request has been made by the client. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**isPlaying** | **Boolean** | Gets or sets a value indicating whether the client playback is unpaused. | [optional] | +|**playlistItemId** | **UUID** | Gets or sets the playlist item identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelFeatures.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelFeatures.md new file mode 100644 index 0000000000000..af359c837fad9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelFeatures.md @@ -0,0 +1,24 @@ + + +# ChannelFeatures + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **UUID** | Gets or sets the identifier. | [optional] | +|**canSearch** | **Boolean** | Gets or sets a value indicating whether this instance can search. | [optional] | +|**mediaTypes** | **List<ChannelMediaType>** | Gets or sets the media types. | [optional] | +|**contentTypes** | **List<ChannelMediaContentType>** | Gets or sets the content types. | [optional] | +|**maxPageSize** | **Integer** | Gets or sets the maximum number of records the channel allows retrieving at a time. | [optional] | +|**autoRefreshLevels** | **Integer** | Gets or sets the automatic refresh levels. | [optional] | +|**defaultSortFields** | **List<ChannelItemSortField>** | Gets or sets the default sort orders. | [optional] | +|**supportsSortOrderToggle** | **Boolean** | Gets or sets a value indicating whether a sort ascending/descending toggle is supported. | [optional] | +|**supportsLatestMedia** | **Boolean** | Gets or sets a value indicating whether [supports latest media]. | [optional] | +|**canFilter** | **Boolean** | Gets or sets a value indicating whether this instance can filter. | [optional] | +|**supportsContentDownloading** | **Boolean** | Gets or sets a value indicating whether [supports content downloading]. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelItemSortField.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelItemSortField.md new file mode 100644 index 0000000000000..e68b51c44b7f2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelItemSortField.md @@ -0,0 +1,23 @@ + + +# ChannelItemSortField + +## Enum + + +* `NAME` (value: `"Name"`) + +* `COMMUNITY_RATING` (value: `"CommunityRating"`) + +* `PREMIERE_DATE` (value: `"PremiereDate"`) + +* `DATE_CREATED` (value: `"DateCreated"`) + +* `RUNTIME` (value: `"Runtime"`) + +* `PLAY_COUNT` (value: `"PlayCount"`) + +* `COMMUNITY_PLAY_COUNT` (value: `"CommunityPlayCount"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMappingOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMappingOptionsDto.md new file mode 100644 index 0000000000000..47bf12440f8c7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMappingOptionsDto.md @@ -0,0 +1,17 @@ + + +# ChannelMappingOptionsDto + +Channel mapping options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**tunerChannels** | [**List<TunerChannelMapping>**](TunerChannelMapping.md) | Gets or sets list of tuner channels. | [optional] | +|**providerChannels** | [**List<NameIdPair>**](NameIdPair.md) | Gets or sets list of provider channels. | [optional] | +|**mappings** | [**List<NameValuePair>**](NameValuePair.md) | Gets or sets list of mappings. | [optional] | +|**providerName** | **String** | Gets or sets provider name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaContentType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaContentType.md new file mode 100644 index 0000000000000..13a9e33780643 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaContentType.md @@ -0,0 +1,25 @@ + + +# ChannelMediaContentType + +## Enum + + +* `CLIP` (value: `"Clip"`) + +* `PODCAST` (value: `"Podcast"`) + +* `TRAILER` (value: `"Trailer"`) + +* `MOVIE` (value: `"Movie"`) + +* `EPISODE` (value: `"Episode"`) + +* `SONG` (value: `"Song"`) + +* `MOVIE_EXTRA` (value: `"MovieExtra"`) + +* `TV_EXTRA` (value: `"TvExtra"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaType.md new file mode 100644 index 0000000000000..897ebf5d3d890 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelMediaType.md @@ -0,0 +1,15 @@ + + +# ChannelMediaType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `PHOTO` (value: `"Photo"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelType.md new file mode 100644 index 0000000000000..8be0c1ff2cdc5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelType.md @@ -0,0 +1,13 @@ + + +# ChannelType + +## Enum + + +* `TV` (value: `"TV"`) + +* `RADIO` (value: `"Radio"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelsApi.md new file mode 100644 index 0000000000000..da47508bbbf03 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChannelsApi.md @@ -0,0 +1,390 @@ +# ChannelsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAllChannelFeatures**](ChannelsApi.md#getAllChannelFeatures) | **GET** /Channels/Features | Get all channel features. | +| [**getChannelFeatures**](ChannelsApi.md#getChannelFeatures) | **GET** /Channels/{channelId}/Features | Get channel features. | +| [**getChannelItems**](ChannelsApi.md#getChannelItems) | **GET** /Channels/{channelId}/Items | Get channel items. | +| [**getChannels**](ChannelsApi.md#getChannels) | **GET** /Channels | Gets available channels. | +| [**getLatestChannelItems**](ChannelsApi.md#getLatestChannelItems) | **GET** /Channels/Items/Latest | Gets latest channel items. | + + + +# **getAllChannelFeatures** +> List<ChannelFeatures> getAllChannelFeatures() + +Get all channel features. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + try { + List result = apiInstance.getAllChannelFeatures(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getAllChannelFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ChannelFeatures>**](ChannelFeatures.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | All channel features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelFeatures** +> ChannelFeatures getChannelFeatures(channelId) + +Get channel features. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel id. + try { + ChannelFeatures result = apiInstance.getChannelFeatures(channelId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannelFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel id. | | + +### Return type + +[**ChannelFeatures**](ChannelFeatures.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelItems** +> BaseItemDtoQueryResult getChannelItems(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields) + +Get channel items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel Id. + UUID folderId = UUID.randomUUID(); // UUID | Optional. Folder Id. + UUID userId = UUID.randomUUID(); // UUID | Optional. User Id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortOrder = Arrays.asList(); // List | Optional. Sort Order - Ascending,Descending. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getChannelItems(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannelItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel Id. | | +| **folderId** | **UUID**| Optional. Folder Id. | [optional] | +| **userId** | **UUID**| Optional. User Id. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Optional. Sort Order - Ascending,Descending. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannels** +> BaseItemDtoQueryResult getChannels(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite) + +Gets available channels. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id to filter by. Use System.Guid.Empty to not filter by user. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean supportsLatestItems = true; // Boolean | Optional. Filter by channels that support getting latest items. + Boolean supportsMediaDeletion = true; // Boolean | Optional. Filter by channels that support media deletion. + Boolean isFavorite = true; // Boolean | Optional. Filter by channels that are favorite. + try { + BaseItemDtoQueryResult result = apiInstance.getChannels(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getChannels"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id to filter by. Use System.Guid.Empty to not filter by user. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **supportsLatestItems** | **Boolean**| Optional. Filter by channels that support getting latest items. | [optional] | +| **supportsMediaDeletion** | **Boolean**| Optional. Filter by channels that support media deletion. | [optional] | +| **isFavorite** | **Boolean**| Optional. Filter by channels that are favorite. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channels returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLatestChannelItems** +> BaseItemDtoQueryResult getLatestChannelItems(userId, startIndex, limit, filters, fields, channelIds) + +Gets latest channel items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ChannelsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ChannelsApi apiInstance = new ChannelsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User Id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List channelIds = Arrays.asList(); // List | Optional. Specify one or more channel id's, comma delimited. + try { + BaseItemDtoQueryResult result = apiInstance.getLatestChannelItems(userId, startIndex, limit, filters, fields, channelIds); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ChannelsApi#getLatestChannelItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User Id. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **channelIds** | [**List<UUID>**](UUID.md)| Optional. Specify one or more channel id's, comma delimited. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Latest channel items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChapterInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChapterInfo.md new file mode 100644 index 0000000000000..65859cb55f169 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ChapterInfo.md @@ -0,0 +1,18 @@ + + +# ChapterInfo + +Class ChapterInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startPositionTicks** | **Long** | Gets or sets the start position ticks. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**imagePath** | **String** | Gets or sets the image path. | [optional] | +|**imageDateModified** | **OffsetDateTime** | | [optional] | +|**imageTag** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilities.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilities.md new file mode 100644 index 0000000000000..f25369136c1f9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilities.md @@ -0,0 +1,22 @@ + + +# ClientCapabilities + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playableMediaTypes** | **List<String>** | | [optional] | +|**supportedCommands** | **List<GeneralCommandType>** | | [optional] | +|**supportsMediaControl** | **Boolean** | | [optional] | +|**supportsContentUploading** | **Boolean** | | [optional] | +|**messageCallbackUrl** | **String** | | [optional] | +|**supportsPersistentIdentifier** | **Boolean** | | [optional] | +|**supportsSync** | **Boolean** | | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. | [optional] | +|**appStoreUrl** | **String** | | [optional] | +|**iconUrl** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilitiesDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilitiesDto.md new file mode 100644 index 0000000000000..c30bc7171abf1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientCapabilitiesDto.md @@ -0,0 +1,23 @@ + + +# ClientCapabilitiesDto + +Client capabilities dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playableMediaTypes** | **List<String>** | Gets or sets the list of playable media types. | [optional] | +|**supportedCommands** | **List<GeneralCommandType>** | Gets or sets the list of supported commands. | [optional] | +|**supportsMediaControl** | **Boolean** | Gets or sets a value indicating whether session supports media control. | [optional] | +|**supportsContentUploading** | **Boolean** | Gets or sets a value indicating whether session supports content uploading. | [optional] | +|**messageCallbackUrl** | **String** | Gets or sets the message callback url. | [optional] | +|**supportsPersistentIdentifier** | **Boolean** | Gets or sets a value indicating whether session supports a persistent identifier. | [optional] | +|**supportsSync** | **Boolean** | Gets or sets a value indicating whether session supports sync. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. | [optional] | +|**appStoreUrl** | **String** | Gets or sets the app store url. | [optional] | +|**iconUrl** | **String** | Gets or sets the icon url. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogApi.md new file mode 100644 index 0000000000000..f87e3f25bd03e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogApi.md @@ -0,0 +1,79 @@ +# ClientLogApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**logFile**](ClientLogApi.md#logFile) | **POST** /ClientLog/Document | Upload a document. | + + + +# **logFile** +> ClientLogDocumentResponseDto logFile(body) + +Upload a document. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ClientLogApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ClientLogApi apiInstance = new ClientLogApi(defaultClient); + File body = new File("/path/to/file"); // File | + try { + ClientLogDocumentResponseDto result = apiInstance.logFile(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ClientLogApi#logFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **body** | **File**| | [optional] | + +### Return type + +[**ClientLogDocumentResponseDto**](ClientLogDocumentResponseDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: text/plain + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Document saved. | - | +| **403** | Event logging disabled. | - | +| **413** | Upload size too large. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogDocumentResponseDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogDocumentResponseDto.md new file mode 100644 index 0000000000000..1a253382f017f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ClientLogDocumentResponseDto.md @@ -0,0 +1,14 @@ + + +# ClientLogDocumentResponseDto + +Client log document response dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**fileName** | **String** | Gets the resulting filename. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecProfile.md new file mode 100644 index 0000000000000..490501bd2349d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecProfile.md @@ -0,0 +1,17 @@ + + +# CodecProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **CodecType** | | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | | [optional] | +|**applyConditions** | [**List<ProfileCondition>**](ProfileCondition.md) | | [optional] | +|**codec** | **String** | | [optional] | +|**container** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecType.md new file mode 100644 index 0000000000000..0c29b612fdd8a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CodecType.md @@ -0,0 +1,15 @@ + + +# CodecType + +## Enum + + +* `VIDEO` (value: `"Video"`) + +* `VIDEO_AUDIO` (value: `"VideoAudio"`) + +* `AUDIO` (value: `"Audio"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionApi.md new file mode 100644 index 0000000000000..17c33a70bf280 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionApi.md @@ -0,0 +1,226 @@ +# CollectionApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addToCollection**](CollectionApi.md#addToCollection) | **POST** /Collections/{collectionId}/Items | Adds items to a collection. | +| [**createCollection**](CollectionApi.md#createCollection) | **POST** /Collections | Creates a new collection. | +| [**removeFromCollection**](CollectionApi.md#removeFromCollection) | **DELETE** /Collections/{collectionId}/Items | Removes items from a collection. | + + + +# **addToCollection** +> addToCollection(collectionId, ids) + +Adds items to a collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + UUID collectionId = UUID.randomUUID(); // UUID | The collection id. + List ids = Arrays.asList(); // List | Item ids, comma delimited. + try { + apiInstance.addToCollection(collectionId, ids); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#addToCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **collectionId** | **UUID**| The collection id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item ids, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items added to collection. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createCollection** +> CollectionCreationResult createCollection(name, ids, parentId, isLocked) + +Creates a new collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + String name = "name_example"; // String | The name of the collection. + List ids = Arrays.asList(); // List | Item Ids to add to the collection. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Create the collection within a specific folder. + Boolean isLocked = false; // Boolean | Whether or not to lock the new collection. + try { + CollectionCreationResult result = apiInstance.createCollection(name, ids, parentId, isLocked); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#createCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the collection. | [optional] | +| **ids** | [**List<String>**](String.md)| Item Ids to add to the collection. | [optional] | +| **parentId** | **UUID**| Optional. Create the collection within a specific folder. | [optional] | +| **isLocked** | **Boolean**| Whether or not to lock the new collection. | [optional] [default to false] | + +### Return type + +[**CollectionCreationResult**](CollectionCreationResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Collection created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeFromCollection** +> removeFromCollection(collectionId, ids) + +Removes items from a collection. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.CollectionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + CollectionApi apiInstance = new CollectionApi(defaultClient); + UUID collectionId = UUID.randomUUID(); // UUID | The collection id. + List ids = Arrays.asList(); // List | Item ids, comma delimited. + try { + apiInstance.removeFromCollection(collectionId, ids); + } catch (ApiException e) { + System.err.println("Exception when calling CollectionApi#removeFromCollection"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **collectionId** | **UUID**| The collection id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item ids, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items removed from collection. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionCreationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionCreationResult.md new file mode 100644 index 0000000000000..95d00f9002ead --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionCreationResult.md @@ -0,0 +1,13 @@ + + +# CollectionCreationResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionTypeOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionTypeOptions.md new file mode 100644 index 0000000000000..05dedeb16d30a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CollectionTypeOptions.md @@ -0,0 +1,25 @@ + + +# CollectionTypeOptions + +## Enum + + +* `MOVIES` (value: `"Movies"`) + +* `TV_SHOWS` (value: `"TvShows"`) + +* `MUSIC` (value: `"Music"`) + +* `MUSIC_VIDEOS` (value: `"MusicVideos"`) + +* `HOME_VIDEOS` (value: `"HomeVideos"`) + +* `BOX_SETS` (value: `"BoxSets"`) + +* `BOOKS` (value: `"Books"`) + +* `MIXED` (value: `"Mixed"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigImageTypes.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigImageTypes.md new file mode 100644 index 0000000000000..b739e7a2f09ff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigImageTypes.md @@ -0,0 +1,19 @@ + + +# ConfigImageTypes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**backdropSizes** | **List<String>** | | [optional] | +|**baseUrl** | **String** | | [optional] | +|**logoSizes** | **List<String>** | | [optional] | +|**posterSizes** | **List<String>** | | [optional] | +|**profileSizes** | **List<String>** | | [optional] | +|**secureBaseUrl** | **String** | | [optional] | +|**stillSizes** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationApi.md new file mode 100644 index 0000000000000..1790f8823d28d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationApi.md @@ -0,0 +1,419 @@ +# ConfigurationApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConfiguration**](ConfigurationApi.md#getConfiguration) | **GET** /System/Configuration | Gets application configuration. | +| [**getDefaultMetadataOptions**](ConfigurationApi.md#getDefaultMetadataOptions) | **GET** /System/Configuration/MetadataOptions/Default | Gets a default MetadataOptions object. | +| [**getNamedConfiguration**](ConfigurationApi.md#getNamedConfiguration) | **GET** /System/Configuration/{key} | Gets a named configuration. | +| [**updateConfiguration**](ConfigurationApi.md#updateConfiguration) | **POST** /System/Configuration | Updates application configuration. | +| [**updateMediaEncoderPath**](ConfigurationApi.md#updateMediaEncoderPath) | **POST** /System/MediaEncoder/Path | Updates the path to the media encoder. | +| [**updateNamedConfiguration**](ConfigurationApi.md#updateNamedConfiguration) | **POST** /System/Configuration/{key} | Updates named configuration. | + + + +# **getConfiguration** +> ServerConfiguration getConfiguration() + +Gets application configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + try { + ServerConfiguration result = apiInstance.getConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ServerConfiguration**](ServerConfiguration.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Application configuration returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultMetadataOptions** +> MetadataOptions getDefaultMetadataOptions() + +Gets a default MetadataOptions object. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + try { + MetadataOptions result = apiInstance.getDefaultMetadataOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getDefaultMetadataOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**MetadataOptions**](MetadataOptions.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Metadata options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNamedConfiguration** +> File getNamedConfiguration(key) + +Gets a named configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + String key = "key_example"; // String | Configuration key. + try { + File result = apiInstance.getNamedConfiguration(key); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#getNamedConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| Configuration key. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Configuration returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateConfiguration** +> updateConfiguration(serverConfiguration) + +Updates application configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + ServerConfiguration serverConfiguration = new ServerConfiguration(); // ServerConfiguration | Configuration. + try { + apiInstance.updateConfiguration(serverConfiguration); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#updateConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverConfiguration** | [**ServerConfiguration**](ServerConfiguration.md)| Configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateMediaEncoderPath** +> updateMediaEncoderPath(mediaEncoderPathDto) + +Updates the path to the media encoder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + MediaEncoderPathDto mediaEncoderPathDto = new MediaEncoderPathDto(); // MediaEncoderPathDto | Media encoder path form body. + try { + apiInstance.updateMediaEncoderPath(mediaEncoderPathDto); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#updateMediaEncoderPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mediaEncoderPathDto** | [**MediaEncoderPathDto**](MediaEncoderPathDto.md)| Media encoder path form body. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media encoder path updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateNamedConfiguration** +> updateNamedConfiguration(key, body) + +Updates named configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ConfigurationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ConfigurationApi apiInstance = new ConfigurationApi(defaultClient); + String key = "key_example"; // String | Configuration key. + Object body = null; // Object | Configuration. + try { + apiInstance.updateNamedConfiguration(key, body); + } catch (ApiException e) { + System.err.println("Exception when calling ConfigurationApi#updateNamedConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **key** | **String**| Configuration key. | | +| **body** | **Object**| Configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Named configuration updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationPageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationPageInfo.md new file mode 100644 index 0000000000000..c274f275b3049 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ConfigurationPageInfo.md @@ -0,0 +1,19 @@ + + +# ConfigurationPageInfo + +The configuration page info. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**enableInMainMenu** | **Boolean** | Gets or sets a value indicating whether the configurations page is enabled in the main menu. | [optional] | +|**menuSection** | **String** | Gets or sets the menu section. | [optional] | +|**menuIcon** | **String** | Gets or sets the menu icon. | [optional] | +|**displayName** | **String** | Gets or sets the display name. | [optional] | +|**pluginId** | **UUID** | Gets or sets the plugin id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ContainerProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ContainerProfile.md new file mode 100644 index 0000000000000..ed6b75dc6c770 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ContainerProfile.md @@ -0,0 +1,15 @@ + + +# ContainerProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **DlnaProfileType** | | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | | [optional] | +|**container** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ControlResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ControlResponse.md new file mode 100644 index 0000000000000..92bcb437ab89b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ControlResponse.md @@ -0,0 +1,15 @@ + + +# ControlResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**headers** | **Map<String, String>** | | [optional] [readonly] | +|**xml** | **String** | | [optional] | +|**isSuccessful** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CountryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CountryInfo.md new file mode 100644 index 0000000000000..b6b3ded8e68bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CountryInfo.md @@ -0,0 +1,17 @@ + + +# CountryInfo + +Class CountryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**displayName** | **String** | Gets or sets the display name. | [optional] | +|**twoLetterISORegionName** | **String** | Gets or sets the name of the two letter ISO region. | [optional] | +|**threeLetterISORegionName** | **String** | Gets or sets the name of the three letter ISO region. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreatePlaylistDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreatePlaylistDto.md new file mode 100644 index 0000000000000..0c7981629e2a7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreatePlaylistDto.md @@ -0,0 +1,17 @@ + + +# CreatePlaylistDto + +Create new playlist dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the new playlist. | [optional] | +|**ids** | **List<UUID>** | Gets or sets item ids to add to the playlist. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**mediaType** | **String** | Gets or sets the media type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreateUserByName.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreateUserByName.md new file mode 100644 index 0000000000000..0366a68b00d63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CreateUserByName.md @@ -0,0 +1,15 @@ + + +# CreateUserByName + +The create user by name request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the username. | [optional] | +|**password** | **String** | Gets or sets the password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CultureDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CultureDto.md new file mode 100644 index 0000000000000..5e690825fd05e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/CultureDto.md @@ -0,0 +1,18 @@ + + +# CultureDto + +Class CultureDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**displayName** | **String** | Gets the display name. | [optional] | +|**twoLetterISOLanguageName** | **String** | Gets the name of the two letter ISO language. | [optional] | +|**threeLetterISOLanguageName** | **String** | Gets the name of the three letter ISO language. | [optional] [readonly] | +|**threeLetterISOLanguageNames** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DashboardApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DashboardApi.md new file mode 100644 index 0000000000000..34d8a226218e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DashboardApi.md @@ -0,0 +1,141 @@ +# DashboardApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConfigurationPages**](DashboardApi.md#getConfigurationPages) | **GET** /web/ConfigurationPages | Gets the configuration pages. | +| [**getDashboardConfigurationPage**](DashboardApi.md#getDashboardConfigurationPage) | **GET** /web/ConfigurationPage | Gets a dashboard configuration page. | + + + +# **getConfigurationPages** +> List<ConfigurationPageInfo> getConfigurationPages(enableInMainMenu) + +Gets the configuration pages. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DashboardApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DashboardApi apiInstance = new DashboardApi(defaultClient); + Boolean enableInMainMenu = true; // Boolean | Whether to enable in the main menu. + try { + List result = apiInstance.getConfigurationPages(enableInMainMenu); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardApi#getConfigurationPages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **enableInMainMenu** | **Boolean**| Whether to enable in the main menu. | [optional] | + +### Return type + +[**List<ConfigurationPageInfo>**](ConfigurationPageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ConfigurationPages returned. | - | +| **404** | Server still loading. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDashboardConfigurationPage** +> File getDashboardConfigurationPage(name) + +Gets a dashboard configuration page. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DashboardApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DashboardApi apiInstance = new DashboardApi(defaultClient); + String name = "name_example"; // String | The name of the page. + try { + File result = apiInstance.getDashboardConfigurationPage(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardApi#getDashboardConfigurationPage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the page. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/html, application/x-javascript, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ConfigurationPage returned. | - | +| **404** | Plugin configuration page not found. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayOfWeek.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayOfWeek.md new file mode 100644 index 0000000000000..ac36cca61ab45 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayOfWeek.md @@ -0,0 +1,23 @@ + + +# DayOfWeek + +## Enum + + +* `SUNDAY` (value: `"Sunday"`) + +* `MONDAY` (value: `"Monday"`) + +* `TUESDAY` (value: `"Tuesday"`) + +* `WEDNESDAY` (value: `"Wednesday"`) + +* `THURSDAY` (value: `"Thursday"`) + +* `FRIDAY` (value: `"Friday"`) + +* `SATURDAY` (value: `"Saturday"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayPattern.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayPattern.md new file mode 100644 index 0000000000000..1a355bd2c6079 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DayPattern.md @@ -0,0 +1,15 @@ + + +# DayPattern + +## Enum + + +* `DAILY` (value: `"Daily"`) + +* `WEEKDAYS` (value: `"Weekdays"`) + +* `WEEKENDS` (value: `"Weekends"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DefaultDirectoryBrowserInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DefaultDirectoryBrowserInfoDto.md new file mode 100644 index 0000000000000..e5bea9602bd23 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DefaultDirectoryBrowserInfoDto.md @@ -0,0 +1,14 @@ + + +# DefaultDirectoryBrowserInfoDto + +Default directory browser info. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | Gets or sets the path. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceIdentification.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceIdentification.md new file mode 100644 index 0000000000000..e9ccb2465f48c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceIdentification.md @@ -0,0 +1,21 @@ + + +# DeviceIdentification + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**friendlyName** | **String** | Gets or sets the name of the friendly. | [optional] | +|**modelNumber** | **String** | Gets or sets the model number. | [optional] | +|**serialNumber** | **String** | Gets or sets the serial number. | [optional] | +|**modelName** | **String** | Gets or sets the name of the model. | [optional] | +|**modelDescription** | **String** | Gets or sets the model description. | [optional] | +|**modelUrl** | **String** | Gets or sets the model URL. | [optional] | +|**manufacturer** | **String** | Gets or sets the manufacturer. | [optional] | +|**manufacturerUrl** | **String** | Gets or sets the manufacturer URL. | [optional] | +|**headers** | [**List<HttpHeaderInfo>**](HttpHeaderInfo.md) | Gets or sets the headers. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfo.md new file mode 100644 index 0000000000000..751d2560f51f7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfo.md @@ -0,0 +1,22 @@ + + +# DeviceInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**accessToken** | **String** | Gets or sets the access token. | [optional] | +|**id** | **String** | Gets or sets the identifier. | [optional] | +|**lastUserName** | **String** | Gets or sets the last name of the user. | [optional] | +|**appName** | **String** | Gets or sets the name of the application. | [optional] | +|**appVersion** | **String** | Gets or sets the application version. | [optional] | +|**lastUserId** | **UUID** | Gets or sets the last user identifier. | [optional] | +|**dateLastActivity** | **OffsetDateTime** | Gets or sets the date last modified. | [optional] | +|**capabilities** | [**ClientCapabilities**](ClientCapabilities.md) | Gets or sets the capabilities. | [optional] | +|**iconUrl** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfoQueryResult.md new file mode 100644 index 0000000000000..3d8becc195a3d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceInfoQueryResult.md @@ -0,0 +1,15 @@ + + +# DeviceInfoQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<DeviceInfo>**](DeviceInfo.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptions.md new file mode 100644 index 0000000000000..0654ae63ff1e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptions.md @@ -0,0 +1,16 @@ + + +# DeviceOptions + +An entity representing custom options for a device. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | Gets the id. | [optional] [readonly] | +|**deviceId** | **String** | Gets the device id. | [optional] | +|**customName** | **String** | Gets or sets the custom name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptionsDto.md new file mode 100644 index 0000000000000..5c2c0d33f8074 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceOptionsDto.md @@ -0,0 +1,16 @@ + + +# DeviceOptionsDto + +A dto representing custom options for a device. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | Gets or sets the id. | [optional] | +|**deviceId** | **String** | Gets or sets the device id. | [optional] | +|**customName** | **String** | Gets or sets the custom name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfile.md new file mode 100644 index 0000000000000..d040bb974f582 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfile.md @@ -0,0 +1,52 @@ + + +# DeviceProfile + +A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.
Specifically, it defines the supported containers and codecs (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which containers/codecs to transcode to in case it isn't. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of this device profile. | [optional] | +|**id** | **String** | Gets or sets the Id. | [optional] | +|**identification** | [**DeviceIdentification**](DeviceIdentification.md) | Gets or sets the Identification. | [optional] | +|**friendlyName** | **String** | Gets or sets the friendly name of the device profile, which can be shown to users. | [optional] | +|**manufacturer** | **String** | Gets or sets the manufacturer of the device which this profile represents. | [optional] | +|**manufacturerUrl** | **String** | Gets or sets an url for the manufacturer of the device which this profile represents. | [optional] | +|**modelName** | **String** | Gets or sets the model name of the device which this profile represents. | [optional] | +|**modelDescription** | **String** | Gets or sets the model description of the device which this profile represents. | [optional] | +|**modelNumber** | **String** | Gets or sets the model number of the device which this profile represents. | [optional] | +|**modelUrl** | **String** | Gets or sets the ModelUrl. | [optional] | +|**serialNumber** | **String** | Gets or sets the serial number of the device which this profile represents. | [optional] | +|**enableAlbumArtInDidl** | **Boolean** | Gets or sets a value indicating whether EnableAlbumArtInDidl. | [optional] | +|**enableSingleAlbumArtLimit** | **Boolean** | Gets or sets a value indicating whether EnableSingleAlbumArtLimit. | [optional] | +|**enableSingleSubtitleLimit** | **Boolean** | Gets or sets a value indicating whether EnableSingleSubtitleLimit. | [optional] | +|**supportedMediaTypes** | **String** | Gets or sets the SupportedMediaTypes. | [optional] | +|**userId** | **String** | Gets or sets the UserId. | [optional] | +|**albumArtPn** | **String** | Gets or sets the AlbumArtPn. | [optional] | +|**maxAlbumArtWidth** | **Integer** | Gets or sets the MaxAlbumArtWidth. | [optional] | +|**maxAlbumArtHeight** | **Integer** | Gets or sets the MaxAlbumArtHeight. | [optional] | +|**maxIconWidth** | **Integer** | Gets or sets the maximum allowed width of embedded icons. | [optional] | +|**maxIconHeight** | **Integer** | Gets or sets the maximum allowed height of embedded icons. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for all streamed content. | [optional] | +|**maxStaticBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). | [optional] | +|**musicStreamingTranscodingBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for transcoded music streams. | [optional] | +|**maxStaticMusicBitrate** | **Integer** | Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. | [optional] | +|**sonyAggregationFlags** | **String** | Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace. | [optional] | +|**protocolInfo** | **String** | Gets or sets the ProtocolInfo. | [optional] | +|**timelineOffsetSeconds** | **Integer** | Gets or sets the TimelineOffsetSeconds. | [optional] | +|**requiresPlainVideoItems** | **Boolean** | Gets or sets a value indicating whether RequiresPlainVideoItems. | [optional] | +|**requiresPlainFolders** | **Boolean** | Gets or sets a value indicating whether RequiresPlainFolders. | [optional] | +|**enableMSMediaReceiverRegistrar** | **Boolean** | Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar. | [optional] | +|**ignoreTranscodeByteRangeRequests** | **Boolean** | Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests. | [optional] | +|**xmlRootAttributes** | [**List<XmlAttribute>**](XmlAttribute.md) | Gets or sets the XmlRootAttributes. | [optional] | +|**directPlayProfiles** | [**List<DirectPlayProfile>**](DirectPlayProfile.md) | Gets or sets the direct play profiles. | [optional] | +|**transcodingProfiles** | [**List<TranscodingProfile>**](TranscodingProfile.md) | Gets or sets the transcoding profiles. | [optional] | +|**containerProfiles** | [**List<ContainerProfile>**](ContainerProfile.md) | Gets or sets the container profiles. | [optional] | +|**codecProfiles** | [**List<CodecProfile>**](CodecProfile.md) | Gets or sets the codec profiles. | [optional] | +|**responseProfiles** | [**List<ResponseProfile>**](ResponseProfile.md) | Gets or sets the ResponseProfiles. | [optional] | +|**subtitleProfiles** | [**List<SubtitleProfile>**](SubtitleProfile.md) | Gets or sets the subtitle profiles. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileInfo.md new file mode 100644 index 0000000000000..02a4c7918eb10 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileInfo.md @@ -0,0 +1,15 @@ + + +# DeviceProfileInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the identifier. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**type** | **DeviceProfileType** | Gets or sets the type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileType.md new file mode 100644 index 0000000000000..93db8fe324747 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DeviceProfileType.md @@ -0,0 +1,13 @@ + + +# DeviceProfileType + +## Enum + + +* `SYSTEM` (value: `"System"`) + +* `USER` (value: `"User"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DevicesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DevicesApi.md new file mode 100644 index 0000000000000..e12521b4b2a56 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DevicesApi.md @@ -0,0 +1,363 @@ +# DevicesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteDevice**](DevicesApi.md#deleteDevice) | **DELETE** /Devices | Deletes a device. | +| [**getDeviceInfo**](DevicesApi.md#getDeviceInfo) | **GET** /Devices/Info | Get info for a device. | +| [**getDeviceOptions**](DevicesApi.md#getDeviceOptions) | **GET** /Devices/Options | Get options for a device. | +| [**getDevices**](DevicesApi.md#getDevices) | **GET** /Devices | Get Devices. | +| [**updateDeviceOptions**](DevicesApi.md#updateDeviceOptions) | **POST** /Devices/Options | Update device options. | + + + +# **deleteDevice** +> deleteDevice(id) + +Deletes a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + apiInstance.deleteDevice(id); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#deleteDevice"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device deleted. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDeviceInfo** +> DeviceInfo getDeviceInfo(id) + +Get info for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + DeviceInfo result = apiInstance.getDeviceInfo(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDeviceInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +[**DeviceInfo**](DeviceInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device info retrieved. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDeviceOptions** +> DeviceOptions getDeviceOptions(id) + +Get options for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + try { + DeviceOptions result = apiInstance.getDeviceOptions(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDeviceOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | + +### Return type + +[**DeviceOptions**](DeviceOptions.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device options retrieved. | - | +| **404** | Device not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDevices** +> DeviceInfoQueryResult getDevices(supportsSync, userId) + +Get Devices. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + Boolean supportsSync = true; // Boolean | Gets or sets a value indicating whether [supports synchronize]. + UUID userId = UUID.randomUUID(); // UUID | Gets or sets the user identifier. + try { + DeviceInfoQueryResult result = apiInstance.getDevices(supportsSync, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#getDevices"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **supportsSync** | **Boolean**| Gets or sets a value indicating whether [supports synchronize]. | [optional] | +| **userId** | **UUID**| Gets or sets the user identifier. | [optional] | + +### Return type + +[**DeviceInfoQueryResult**](DeviceInfoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Devices retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateDeviceOptions** +> updateDeviceOptions(id, deviceOptionsDto) + +Update device options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DevicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DevicesApi apiInstance = new DevicesApi(defaultClient); + String id = "id_example"; // String | Device Id. + DeviceOptionsDto deviceOptionsDto = new DeviceOptionsDto(); // DeviceOptionsDto | Device Options. + try { + apiInstance.updateDeviceOptions(id, deviceOptionsDto); + } catch (ApiException e) { + System.err.println("Exception when calling DevicesApi#updateDeviceOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Device Id. | | +| **deviceOptionsDto** | [**DeviceOptionsDto**](DeviceOptionsDto.md)| Device Options. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device options updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DirectPlayProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DirectPlayProfile.md new file mode 100644 index 0000000000000..b4133088a561a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DirectPlayProfile.md @@ -0,0 +1,16 @@ + + +# DirectPlayProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**container** | **String** | | [optional] | +|**audioCodec** | **String** | | [optional] | +|**videoCodec** | **String** | | [optional] | +|**type** | **DlnaProfileType** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesApi.md new file mode 100644 index 0000000000000..786796c760fe3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesApi.md @@ -0,0 +1,157 @@ +# DisplayPreferencesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getDisplayPreferences**](DisplayPreferencesApi.md#getDisplayPreferences) | **GET** /DisplayPreferences/{displayPreferencesId} | Get Display Preferences. | +| [**updateDisplayPreferences**](DisplayPreferencesApi.md#updateDisplayPreferences) | **POST** /DisplayPreferences/{displayPreferencesId} | Update Display Preferences. | + + + +# **getDisplayPreferences** +> DisplayPreferencesDto getDisplayPreferences(displayPreferencesId, userId, client) + +Get Display Preferences. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DisplayPreferencesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DisplayPreferencesApi apiInstance = new DisplayPreferencesApi(defaultClient); + String displayPreferencesId = "displayPreferencesId_example"; // String | Display preferences id. + UUID userId = UUID.randomUUID(); // UUID | User id. + String client = "client_example"; // String | Client. + try { + DisplayPreferencesDto result = apiInstance.getDisplayPreferences(displayPreferencesId, userId, client); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DisplayPreferencesApi#getDisplayPreferences"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **displayPreferencesId** | **String**| Display preferences id. | | +| **userId** | **UUID**| User id. | | +| **client** | **String**| Client. | | + +### Return type + +[**DisplayPreferencesDto**](DisplayPreferencesDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Display preferences retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateDisplayPreferences** +> updateDisplayPreferences(displayPreferencesId, userId, client, displayPreferencesDto) + +Update Display Preferences. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DisplayPreferencesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DisplayPreferencesApi apiInstance = new DisplayPreferencesApi(defaultClient); + String displayPreferencesId = "displayPreferencesId_example"; // String | Display preferences id. + UUID userId = UUID.randomUUID(); // UUID | User Id. + String client = "client_example"; // String | Client. + DisplayPreferencesDto displayPreferencesDto = new DisplayPreferencesDto(); // DisplayPreferencesDto | New Display Preferences object. + try { + apiInstance.updateDisplayPreferences(displayPreferencesId, userId, client, displayPreferencesDto); + } catch (ApiException e) { + System.err.println("Exception when calling DisplayPreferencesApi#updateDisplayPreferences"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **displayPreferencesId** | **String**| Display preferences id. | | +| **userId** | **UUID**| User Id. | | +| **client** | **String**| Client. | | +| **displayPreferencesDto** | [**DisplayPreferencesDto**](DisplayPreferencesDto.md)| New Display Preferences object. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Display preferences updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesDto.md new file mode 100644 index 0000000000000..784ebf16e08c8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DisplayPreferencesDto.md @@ -0,0 +1,27 @@ + + +# DisplayPreferencesDto + +Defines the display preferences for any item that supports them (usually Folders). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the user id. | [optional] | +|**viewType** | **String** | Gets or sets the type of the view. | [optional] | +|**sortBy** | **String** | Gets or sets the sort by. | [optional] | +|**indexBy** | **String** | Gets or sets the index by. | [optional] | +|**rememberIndexing** | **Boolean** | Gets or sets a value indicating whether [remember indexing]. | [optional] | +|**primaryImageHeight** | **Integer** | Gets or sets the height of the primary image. | [optional] | +|**primaryImageWidth** | **Integer** | Gets or sets the width of the primary image. | [optional] | +|**customPrefs** | **Map<String, String>** | Gets or sets the custom prefs. | [optional] | +|**scrollDirection** | **ScrollDirection** | Gets or sets the scroll direction. | [optional] | +|**showBackdrop** | **Boolean** | Gets or sets a value indicating whether to show backdrops on this item. | [optional] | +|**rememberSorting** | **Boolean** | Gets or sets a value indicating whether [remember sorting]. | [optional] | +|**sortOrder** | **SortOrder** | Gets or sets the sort order. | [optional] | +|**showSidebar** | **Boolean** | Gets or sets a value indicating whether [show sidebar]. | [optional] | +|**client** | **String** | Gets or sets the client. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaApi.md new file mode 100644 index 0000000000000..0fb2869a43378 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaApi.md @@ -0,0 +1,422 @@ +# DlnaApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createProfile**](DlnaApi.md#createProfile) | **POST** /Dlna/Profiles | Creates a profile. | +| [**deleteProfile**](DlnaApi.md#deleteProfile) | **DELETE** /Dlna/Profiles/{profileId} | Deletes a profile. | +| [**getDefaultProfile**](DlnaApi.md#getDefaultProfile) | **GET** /Dlna/Profiles/Default | Gets the default profile. | +| [**getProfile**](DlnaApi.md#getProfile) | **GET** /Dlna/Profiles/{profileId} | Gets a single profile. | +| [**getProfileInfos**](DlnaApi.md#getProfileInfos) | **GET** /Dlna/ProfileInfos | Get profile infos. | +| [**updateProfile**](DlnaApi.md#updateProfile) | **POST** /Dlna/Profiles/{profileId} | Updates a profile. | + + + +# **createProfile** +> createProfile(deviceProfile) + +Creates a profile. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + DeviceProfile deviceProfile = new DeviceProfile(); // DeviceProfile | Device profile. + try { + apiInstance.createProfile(deviceProfile); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#createProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deviceProfile** | [**DeviceProfile**](DeviceProfile.md)| Device profile. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device profile created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteProfile** +> deleteProfile(profileId) + +Deletes a profile. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + String profileId = "profileId_example"; // String | Profile id. + try { + apiInstance.deleteProfile(profileId); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#deleteProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **profileId** | **String**| Profile id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device profile deleted. | - | +| **404** | Device profile not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultProfile** +> DeviceProfile getDefaultProfile() + +Gets the default profile. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + try { + DeviceProfile result = apiInstance.getDefaultProfile(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#getDefaultProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**DeviceProfile**](DeviceProfile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default device profile returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getProfile** +> DeviceProfile getProfile(profileId) + +Gets a single profile. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + String profileId = "profileId_example"; // String | Profile Id. + try { + DeviceProfile result = apiInstance.getProfile(profileId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#getProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **profileId** | **String**| Profile Id. | | + +### Return type + +[**DeviceProfile**](DeviceProfile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device profile returned. | - | +| **404** | Device profile not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getProfileInfos** +> List<DeviceProfileInfo> getProfileInfos() + +Get profile infos. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + try { + List result = apiInstance.getProfileInfos(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#getProfileInfos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<DeviceProfileInfo>**](DeviceProfileInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Device profile infos returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateProfile** +> updateProfile(profileId, deviceProfile) + +Updates a profile. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaApi apiInstance = new DlnaApi(defaultClient); + String profileId = "profileId_example"; // String | Profile id. + DeviceProfile deviceProfile = new DeviceProfile(); // DeviceProfile | Device profile. + try { + apiInstance.updateProfile(profileId, deviceProfile); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaApi#updateProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **profileId** | **String**| Profile id. | | +| **deviceProfile** | [**DeviceProfile**](DeviceProfile.md)| Device profile. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Device profile updated. | - | +| **404** | Device profile not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaOptions.md new file mode 100644 index 0000000000000..3a3361849e014 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaOptions.md @@ -0,0 +1,24 @@ + + +# DlnaOptions + +The DlnaOptions class contains the user definable parameters for the dlna subsystems. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enablePlayTo** | **Boolean** | Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem. | [optional] | +|**enableServer** | **Boolean** | Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem. | [optional] | +|**enableDebugLog** | **Boolean** | Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log. If the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work. | [optional] | +|**enablePlayToTracing** | **Boolean** | Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log. If the setting \"Emby.Dlna.PlayTo\": \"Debug\" msut be set in logging.default.json for this property to work. | [optional] | +|**clientDiscoveryIntervalSeconds** | **Integer** | Gets or sets the ssdp client discovery interval time (in seconds). This is the time after which the server will send a ssdp search request. | [optional] | +|**aliveMessageIntervalSeconds** | **Integer** | Gets or sets the frequency at which ssdp alive notifications are transmitted. | [optional] | +|**blastAliveMessageIntervalSeconds** | **Integer** | Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED. | [optional] | +|**defaultUserId** | **String** | Gets or sets the default user account that the dlna server uses. | [optional] | +|**autoCreatePlayToProfiles** | **Boolean** | Gets or sets a value indicating whether playTo device profiles should be created. | [optional] | +|**blastAliveMessages** | **Boolean** | Gets or sets a value indicating whether to blast alive messages. | [optional] | +|**sendOnlyMatchedHost** | **Boolean** | gets or sets a value indicating whether to send only matched host. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaProfileType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaProfileType.md new file mode 100644 index 0000000000000..212f4c6385e5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaProfileType.md @@ -0,0 +1,17 @@ + + +# DlnaProfileType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `PHOTO` (value: `"Photo"`) + +* `SUBTITLE` (value: `"Subtitle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaServerApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaServerApi.md new file mode 100644 index 0000000000000..85980ac8a0aed --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DlnaServerApi.md @@ -0,0 +1,1148 @@ +# DlnaServerApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConnectionManager**](DlnaServerApi.md#getConnectionManager) | **GET** /Dlna/{serverId}/ConnectionManager | Gets Dlna media receiver registrar xml. | +| [**getConnectionManager2**](DlnaServerApi.md#getConnectionManager2) | **GET** /Dlna/{serverId}/ConnectionManager/ConnectionManager | Gets Dlna media receiver registrar xml. | +| [**getConnectionManager3**](DlnaServerApi.md#getConnectionManager3) | **GET** /Dlna/{serverId}/ConnectionManager/ConnectionManager.xml | Gets Dlna media receiver registrar xml. | +| [**getContentDirectory**](DlnaServerApi.md#getContentDirectory) | **GET** /Dlna/{serverId}/ContentDirectory | Gets Dlna content directory xml. | +| [**getContentDirectory2**](DlnaServerApi.md#getContentDirectory2) | **GET** /Dlna/{serverId}/ContentDirectory/ContentDirectory | Gets Dlna content directory xml. | +| [**getContentDirectory3**](DlnaServerApi.md#getContentDirectory3) | **GET** /Dlna/{serverId}/ContentDirectory/ContentDirectory.xml | Gets Dlna content directory xml. | +| [**getDescriptionXml**](DlnaServerApi.md#getDescriptionXml) | **GET** /Dlna/{serverId}/description | Get Description Xml. | +| [**getDescriptionXml2**](DlnaServerApi.md#getDescriptionXml2) | **GET** /Dlna/{serverId}/description.xml | Get Description Xml. | +| [**getIcon**](DlnaServerApi.md#getIcon) | **GET** /Dlna/icons/{fileName} | Gets a server icon. | +| [**getIconId**](DlnaServerApi.md#getIconId) | **GET** /Dlna/{serverId}/icons/{fileName} | Gets a server icon. | +| [**getMediaReceiverRegistrar**](DlnaServerApi.md#getMediaReceiverRegistrar) | **GET** /Dlna/{serverId}/MediaReceiverRegistrar | Gets Dlna media receiver registrar xml. | +| [**getMediaReceiverRegistrar2**](DlnaServerApi.md#getMediaReceiverRegistrar2) | **GET** /Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar | Gets Dlna media receiver registrar xml. | +| [**getMediaReceiverRegistrar3**](DlnaServerApi.md#getMediaReceiverRegistrar3) | **GET** /Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml | Gets Dlna media receiver registrar xml. | +| [**processConnectionManagerControlRequest**](DlnaServerApi.md#processConnectionManagerControlRequest) | **POST** /Dlna/{serverId}/ConnectionManager/Control | Process a connection manager control request. | +| [**processContentDirectoryControlRequest**](DlnaServerApi.md#processContentDirectoryControlRequest) | **POST** /Dlna/{serverId}/ContentDirectory/Control | Process a content directory control request. | +| [**processMediaReceiverRegistrarControlRequest**](DlnaServerApi.md#processMediaReceiverRegistrarControlRequest) | **POST** /Dlna/{serverId}/MediaReceiverRegistrar/Control | Process a media receiver registrar control request. | + + + +# **getConnectionManager** +> File getConnectionManager(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getConnectionManager(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getConnectionManager"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getConnectionManager2** +> File getConnectionManager2(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getConnectionManager2(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getConnectionManager2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getConnectionManager3** +> File getConnectionManager3(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getConnectionManager3(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getConnectionManager3"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getContentDirectory** +> File getContentDirectory(serverId) + +Gets Dlna content directory xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getContentDirectory(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getContentDirectory"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna content directory returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getContentDirectory2** +> File getContentDirectory2(serverId) + +Gets Dlna content directory xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getContentDirectory2(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getContentDirectory2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna content directory returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getContentDirectory3** +> File getContentDirectory3(serverId) + +Gets Dlna content directory xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getContentDirectory3(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getContentDirectory3"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna content directory returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDescriptionXml** +> File getDescriptionXml(serverId) + +Get Description Xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getDescriptionXml(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getDescriptionXml"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Description xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDescriptionXml2** +> File getDescriptionXml2(serverId) + +Get Description Xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getDescriptionXml2(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getDescriptionXml2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Description xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getIcon** +> File getIcon(fileName) + +Gets a server icon. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String fileName = "fileName_example"; // String | The icon filename. + try { + File result = apiInstance.getIcon(fileName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getIcon"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **fileName** | **String**| The icon filename. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Request processed. | - | +| **404** | Not Found. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getIconId** +> File getIconId(serverId, fileName) + +Gets a server icon. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + String fileName = "fileName_example"; // String | The icon filename. + try { + File result = apiInstance.getIconId(serverId, fileName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getIconId"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | +| **fileName** | **String**| The icon filename. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Request processed. | - | +| **404** | Not Found. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaReceiverRegistrar** +> File getMediaReceiverRegistrar(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getMediaReceiverRegistrar(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getMediaReceiverRegistrar"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaReceiverRegistrar2** +> File getMediaReceiverRegistrar2(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getMediaReceiverRegistrar2(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getMediaReceiverRegistrar2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaReceiverRegistrar3** +> File getMediaReceiverRegistrar3(serverId) + +Gets Dlna media receiver registrar xml. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.getMediaReceiverRegistrar3(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#getMediaReceiverRegistrar3"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Dlna media receiver registrar xml returned. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **processConnectionManagerControlRequest** +> File processConnectionManagerControlRequest(serverId) + +Process a connection manager control request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.processConnectionManagerControlRequest(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#processConnectionManagerControlRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Request processed. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **processContentDirectoryControlRequest** +> File processContentDirectoryControlRequest(serverId) + +Process a content directory control request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.processContentDirectoryControlRequest(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#processContentDirectoryControlRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Request processed. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **processMediaReceiverRegistrarControlRequest** +> File processMediaReceiverRegistrarControlRequest(serverId) + +Process a media receiver registrar control request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DlnaServerApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DlnaServerApi apiInstance = new DlnaServerApi(defaultClient); + String serverId = "serverId_example"; // String | Server UUID. + try { + File result = apiInstance.processMediaReceiverRegistrarControlRequest(serverId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DlnaServerApi#processMediaReceiverRegistrarControlRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serverId** | **String**| Server UUID. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/xml + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Request processed. | - | +| **503** | DLNA is disabled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicDayOfWeek.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicDayOfWeek.md new file mode 100644 index 0000000000000..f86a071d13b97 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicDayOfWeek.md @@ -0,0 +1,29 @@ + + +# DynamicDayOfWeek + +## Enum + + +* `SUNDAY` (value: `"Sunday"`) + +* `MONDAY` (value: `"Monday"`) + +* `TUESDAY` (value: `"Tuesday"`) + +* `WEDNESDAY` (value: `"Wednesday"`) + +* `THURSDAY` (value: `"Thursday"`) + +* `FRIDAY` (value: `"Friday"`) + +* `SATURDAY` (value: `"Saturday"`) + +* `EVERYDAY` (value: `"Everyday"`) + +* `WEEKDAY` (value: `"Weekday"`) + +* `WEEKEND` (value: `"Weekend"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicHlsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicHlsApi.md new file mode 100644 index 0000000000000..7e32683440a32 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/DynamicHlsApi.md @@ -0,0 +1,1544 @@ +# DynamicHlsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getHlsAudioSegment**](DynamicHlsApi.md#getHlsAudioSegment) | **GET** /Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container} | Gets a video stream using HTTP live streaming. | +| [**getHlsVideoSegment**](DynamicHlsApi.md#getHlsVideoSegment) | **GET** /Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container} | Gets a video stream using HTTP live streaming. | +| [**getLiveHlsStream**](DynamicHlsApi.md#getLiveHlsStream) | **GET** /Videos/{itemId}/live.m3u8 | Gets a hls live stream. | +| [**getMasterHlsAudioPlaylist**](DynamicHlsApi.md#getMasterHlsAudioPlaylist) | **GET** /Audio/{itemId}/master.m3u8 | Gets an audio hls playlist stream. | +| [**getMasterHlsVideoPlaylist**](DynamicHlsApi.md#getMasterHlsVideoPlaylist) | **GET** /Videos/{itemId}/master.m3u8 | Gets a video hls playlist stream. | +| [**getVariantHlsAudioPlaylist**](DynamicHlsApi.md#getVariantHlsAudioPlaylist) | **GET** /Audio/{itemId}/main.m3u8 | Gets an audio stream using HTTP live streaming. | +| [**getVariantHlsVideoPlaylist**](DynamicHlsApi.md#getVariantHlsVideoPlaylist) | **GET** /Videos/{itemId}/main.m3u8 | Gets a video stream using HTTP live streaming. | +| [**headMasterHlsAudioPlaylist**](DynamicHlsApi.md#headMasterHlsAudioPlaylist) | **HEAD** /Audio/{itemId}/master.m3u8 | Gets an audio hls playlist stream. | +| [**headMasterHlsVideoPlaylist**](DynamicHlsApi.md#headMasterHlsVideoPlaylist) | **HEAD** /Videos/{itemId}/master.m3u8 | Gets a video hls playlist stream. | + + + +# **getHlsAudioSegment** +> File getHlsAudioSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + Integer segmentId = 56; // Integer | The segment id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Long runtimeTicks = 56L; // Long | The position of the requested segment in ticks. + Long actualSegmentLengthTicks = 56L; // Long | The length of the requested segment in ticks. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getHlsAudioSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getHlsAudioSegment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **Integer**| The segment id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **runtimeTicks** | **Long**| The position of the requested segment in ticks. | | +| **actualSegmentLengthTicks** | **Long**| The length of the requested segment in ticks. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getHlsVideoSegment** +> File getHlsVideoSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + Integer segmentId = 56; // Integer | The segment id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Long runtimeTicks = 56L; // Long | The position of the requested segment in ticks. + Long actualSegmentLengthTicks = 56L; // Long | The length of the requested segment in ticks. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The desired segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getHlsVideoSegment(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getHlsVideoSegment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **Integer**| The segment id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **runtimeTicks** | **Long**| The position of the requested segment in ticks. | | +| **actualSegmentLengthTicks** | **Long**| The length of the requested segment in ticks. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The desired segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveHlsStream** +> File getLiveHlsStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest) + +Gets a hls live stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The audio container. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment lenght. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Integer maxWidth = 56; // Integer | Optional. The max width. + Integer maxHeight = 56; // Integer | Optional. The max height. + Boolean enableSubtitlesInManifest = true; // Boolean | Optional. Whether to enable subtitles in the manifest. + try { + File result = apiInstance.getLiveHlsStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getLiveHlsStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The audio container. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment lenght. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **maxWidth** | **Integer**| Optional. The max width. | [optional] | +| **maxHeight** | **Integer**| Optional. The max height. | [optional] | +| **enableSubtitlesInManifest** | **Boolean**| Optional. Whether to enable subtitles in the manifest. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls live stream retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMasterHlsAudioPlaylist** +> File getMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming) + +Gets an audio hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + try { + File result = apiInstance.getMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getMasterHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMasterHlsVideoPlaylist** +> File getMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming) + +Gets a video hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + try { + File result = apiInstance.getMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getMasterHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVariantHlsAudioPlaylist** +> File getVariantHlsAudioPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets an audio stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getVariantHlsAudioPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getVariantHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVariantHlsVideoPlaylist** +> File getVariantHlsVideoPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream using HTTP live streaming. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getVariantHlsVideoPlaylist(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#getVariantHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headMasterHlsAudioPlaylist** +> File headMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming) + +Gets an audio hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + try { + File result = apiInstance.headMasterHlsAudioPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#headMasterHlsAudioPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headMasterHlsVideoPlaylist** +> File headMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming) + +Gets a video hls playlist stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.DynamicHlsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + DynamicHlsApi apiInstance = new DynamicHlsApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + Boolean enableAdaptiveBitrateStreaming = true; // Boolean | Enable adaptive bitrate streaming. + try { + File result = apiInstance.headMasterHlsVideoPlaylist(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DynamicHlsApi#headMasterHlsVideoPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | +| **enableAdaptiveBitrateStreaming** | **Boolean**| Enable adaptive bitrate streaming. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EmbeddedSubtitleOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EmbeddedSubtitleOptions.md new file mode 100644 index 0000000000000..157a005482b84 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EmbeddedSubtitleOptions.md @@ -0,0 +1,17 @@ + + +# EmbeddedSubtitleOptions + +## Enum + + +* `ALLOW_ALL` (value: `"AllowAll"`) + +* `ALLOW_TEXT` (value: `"AllowText"`) + +* `ALLOW_IMAGE` (value: `"AllowImage"`) + +* `ALLOW_NONE` (value: `"AllowNone"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingContext.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingContext.md new file mode 100644 index 0000000000000..6ae43d9485bad --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingContext.md @@ -0,0 +1,13 @@ + + +# EncodingContext + +## Enum + + +* `STREAMING` (value: `"Streaming"`) + +* `STATIC` (value: `"Static"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingOptions.md new file mode 100644 index 0000000000000..cf3e9e27eebe9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EncodingOptions.md @@ -0,0 +1,50 @@ + + +# EncodingOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**encodingThreadCount** | **Integer** | | [optional] | +|**transcodingTempPath** | **String** | | [optional] | +|**fallbackFontPath** | **String** | | [optional] | +|**enableFallbackFont** | **Boolean** | | [optional] | +|**downMixAudioBoost** | **Double** | | [optional] | +|**maxMuxingQueueSize** | **Integer** | | [optional] | +|**enableThrottling** | **Boolean** | | [optional] | +|**throttleDelaySeconds** | **Integer** | | [optional] | +|**hardwareAccelerationType** | **String** | | [optional] | +|**encoderAppPath** | **String** | Gets or sets the FFmpeg path as set by the user via the UI. | [optional] | +|**encoderAppPathDisplay** | **String** | Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. | [optional] | +|**vaapiDevice** | **String** | | [optional] | +|**enableTonemapping** | **Boolean** | | [optional] | +|**enableVppTonemapping** | **Boolean** | | [optional] | +|**tonemappingAlgorithm** | **String** | | [optional] | +|**tonemappingMode** | **String** | | [optional] | +|**tonemappingRange** | **String** | | [optional] | +|**tonemappingDesat** | **Double** | | [optional] | +|**tonemappingPeak** | **Double** | | [optional] | +|**tonemappingParam** | **Double** | | [optional] | +|**vppTonemappingBrightness** | **Double** | | [optional] | +|**vppTonemappingContrast** | **Double** | | [optional] | +|**h264Crf** | **Integer** | | [optional] | +|**h265Crf** | **Integer** | | [optional] | +|**encoderPreset** | **String** | | [optional] | +|**deinterlaceDoubleRate** | **Boolean** | | [optional] | +|**deinterlaceMethod** | **String** | | [optional] | +|**enableDecodingColorDepth10Hevc** | **Boolean** | | [optional] | +|**enableDecodingColorDepth10Vp9** | **Boolean** | | [optional] | +|**enableEnhancedNvdecDecoder** | **Boolean** | | [optional] | +|**preferSystemNativeHwDecoder** | **Boolean** | | [optional] | +|**enableIntelLowPowerH264HwEncoder** | **Boolean** | | [optional] | +|**enableIntelLowPowerHevcHwEncoder** | **Boolean** | | [optional] | +|**enableHardwareEncoding** | **Boolean** | | [optional] | +|**allowHevcEncoding** | **Boolean** | | [optional] | +|**enableSubtitleExtraction** | **Boolean** | | [optional] | +|**hardwareDecodingCodecs** | **List<String>** | | [optional] | +|**allowOnDemandMetadataBasedKeyframeExtractionForExtensions** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EndPointInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EndPointInfo.md new file mode 100644 index 0000000000000..cf258ffac8063 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EndPointInfo.md @@ -0,0 +1,14 @@ + + +# EndPointInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isLocal** | **Boolean** | | [optional] | +|**isInNetwork** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EnvironmentApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EnvironmentApi.md new file mode 100644 index 0000000000000..d502c293cdd78 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/EnvironmentApi.md @@ -0,0 +1,420 @@ +# EnvironmentApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getDefaultDirectoryBrowser**](EnvironmentApi.md#getDefaultDirectoryBrowser) | **GET** /Environment/DefaultDirectoryBrowser | Get Default directory browser. | +| [**getDirectoryContents**](EnvironmentApi.md#getDirectoryContents) | **GET** /Environment/DirectoryContents | Gets the contents of a given directory in the file system. | +| [**getDrives**](EnvironmentApi.md#getDrives) | **GET** /Environment/Drives | Gets available drives from the server's file system. | +| [**getNetworkShares**](EnvironmentApi.md#getNetworkShares) | **GET** /Environment/NetworkShares | Gets network paths. | +| [**getParentPath**](EnvironmentApi.md#getParentPath) | **GET** /Environment/ParentPath | Gets the parent path of a given path. | +| [**validatePath**](EnvironmentApi.md#validatePath) | **POST** /Environment/ValidatePath | Validates path. | + + + +# **getDefaultDirectoryBrowser** +> DefaultDirectoryBrowserInfoDto getDefaultDirectoryBrowser() + +Get Default directory browser. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + DefaultDirectoryBrowserInfoDto result = apiInstance.getDefaultDirectoryBrowser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDefaultDirectoryBrowser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**DefaultDirectoryBrowserInfoDto**](DefaultDirectoryBrowserInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default directory browser returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDirectoryContents** +> List<FileSystemEntryInfo> getDirectoryContents(path, includeFiles, includeDirectories) + +Gets the contents of a given directory in the file system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + String path = "path_example"; // String | The path. + Boolean includeFiles = false; // Boolean | An optional filter to include or exclude files from the results. true/false. + Boolean includeDirectories = false; // Boolean | An optional filter to include or exclude folders from the results. true/false. + try { + List result = apiInstance.getDirectoryContents(path, includeFiles, includeDirectories); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDirectoryContents"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **path** | **String**| The path. | | +| **includeFiles** | **Boolean**| An optional filter to include or exclude files from the results. true/false. | [optional] [default to false] | +| **includeDirectories** | **Boolean**| An optional filter to include or exclude folders from the results. true/false. | [optional] [default to false] | + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Directory contents returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDrives** +> List<FileSystemEntryInfo> getDrives() + +Gets available drives from the server's file system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + List result = apiInstance.getDrives(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getDrives"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | List of entries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNetworkShares** +> List<FileSystemEntryInfo> getNetworkShares() + +Gets network paths. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + try { + List result = apiInstance.getNetworkShares(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getNetworkShares"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FileSystemEntryInfo>**](FileSystemEntryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Empty array returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getParentPath** +> String getParentPath(path) + +Gets the parent path of a given path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + String path = "path_example"; // String | The path. + try { + String result = apiInstance.getParentPath(path); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#getParentPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **path** | **String**| The path. | | + +### Return type + +**String** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **validatePath** +> validatePath(validatePathDto) + +Validates path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.EnvironmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + EnvironmentApi apiInstance = new EnvironmentApi(defaultClient); + ValidatePathDto validatePathDto = new ValidatePathDto(); // ValidatePathDto | Validate request object. + try { + apiInstance.validatePath(validatePathDto); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentApi#validatePath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **validatePathDto** | [**ValidatePathDto**](ValidatePathDto.md)| Validate request object. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Path validated. | - | +| **404** | Path not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdInfo.md new file mode 100644 index 0000000000000..1915de19d174e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdInfo.md @@ -0,0 +1,17 @@ + + +# ExternalIdInfo + +Represents the external id information for serialization to the client. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc). | [optional] | +|**key** | **String** | Gets or sets the unique key for this id. This key should be unique across all providers. | [optional] | +|**type** | **ExternalIdMediaType** | Gets or sets the specific media type for this id. This is used to distinguish between the different external id types for providers with multiple ids. A null value indicates there is no specific media type associated with the external id, or this is the default id for the external provider so there is no need to specify a type. | [optional] | +|**urlFormatString** | **String** | Gets or sets the URL format string. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdMediaType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdMediaType.md new file mode 100644 index 0000000000000..6e13de008ef88 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalIdMediaType.md @@ -0,0 +1,33 @@ + + +# ExternalIdMediaType + +## Enum + + +* `ALBUM` (value: `"Album"`) + +* `ALBUM_ARTIST` (value: `"AlbumArtist"`) + +* `ARTIST` (value: `"Artist"`) + +* `BOX_SET` (value: `"BoxSet"`) + +* `EPISODE` (value: `"Episode"`) + +* `MOVIE` (value: `"Movie"`) + +* `OTHER_ARTIST` (value: `"OtherArtist"`) + +* `PERSON` (value: `"Person"`) + +* `RELEASE_GROUP` (value: `"ReleaseGroup"`) + +* `SEASON` (value: `"Season"`) + +* `SERIES` (value: `"Series"`) + +* `TRACK` (value: `"Track"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalUrl.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalUrl.md new file mode 100644 index 0000000000000..75a2b08a6cb63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ExternalUrl.md @@ -0,0 +1,14 @@ + + +# ExternalUrl + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**url** | **String** | Gets or sets the type of the item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FFmpegLocation.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FFmpegLocation.md new file mode 100644 index 0000000000000..e7800c9f07776 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FFmpegLocation.md @@ -0,0 +1,17 @@ + + +# FFmpegLocation + +## Enum + + +* `NOT_FOUND` (value: `"NotFound"`) + +* `SET_BY_ARGUMENT` (value: `"SetByArgument"`) + +* `CUSTOM` (value: `"Custom"`) + +* `SYSTEM` (value: `"System"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryInfo.md new file mode 100644 index 0000000000000..8994e3301eb17 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryInfo.md @@ -0,0 +1,16 @@ + + +# FileSystemEntryInfo + +Class FileSystemEntryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**path** | **String** | Gets the path. | [optional] | +|**type** | **FileSystemEntryType** | Gets the type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryType.md new file mode 100644 index 0000000000000..c3187822b27e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FileSystemEntryType.md @@ -0,0 +1,17 @@ + + +# FileSystemEntryType + +## Enum + + +* `FILE` (value: `"File"`) + +* `DIRECTORY` (value: `"Directory"`) + +* `NETWORK_COMPUTER` (value: `"NetworkComputer"`) + +* `NETWORK_SHARE` (value: `"NetworkShare"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FilterApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FilterApi.md new file mode 100644 index 0000000000000..c9258303275a0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FilterApi.md @@ -0,0 +1,172 @@ +# FilterApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getQueryFilters**](FilterApi.md#getQueryFilters) | **GET** /Items/Filters2 | Gets query filters. | +| [**getQueryFiltersLegacy**](FilterApi.md#getQueryFiltersLegacy) | **GET** /Items/Filters | Gets legacy query filters. | + + + +# **getQueryFilters** +> QueryFilters getQueryFilters(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive) + +Gets query filters. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.FilterApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + FilterApi apiInstance = new FilterApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isAiring = true; // Boolean | Optional. Is item airing. + Boolean isMovie = true; // Boolean | Optional. Is item movie. + Boolean isSports = true; // Boolean | Optional. Is item sports. + Boolean isKids = true; // Boolean | Optional. Is item kids. + Boolean isNews = true; // Boolean | Optional. Is item news. + Boolean isSeries = true; // Boolean | Optional. Is item series. + Boolean recursive = true; // Boolean | Optional. Search recursive. + try { + QueryFilters result = apiInstance.getQueryFilters(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FilterApi#getQueryFilters"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User id. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isAiring** | **Boolean**| Optional. Is item airing. | [optional] | +| **isMovie** | **Boolean**| Optional. Is item movie. | [optional] | +| **isSports** | **Boolean**| Optional. Is item sports. | [optional] | +| **isKids** | **Boolean**| Optional. Is item kids. | [optional] | +| **isNews** | **Boolean**| Optional. Is item news. | [optional] | +| **isSeries** | **Boolean**| Optional. Is item series. | [optional] | +| **recursive** | **Boolean**| Optional. Search recursive. | [optional] | + +### Return type + +[**QueryFilters**](QueryFilters.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Filters retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getQueryFiltersLegacy** +> QueryFiltersLegacy getQueryFiltersLegacy(userId, parentId, includeItemTypes, mediaTypes) + +Gets legacy query filters. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.FilterApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + FilterApi apiInstance = new FilterApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. User id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Parent id. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + try { + QueryFiltersLegacy result = apiInstance.getQueryFiltersLegacy(userId, parentId, includeItemTypes, mediaTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FilterApi#getQueryFiltersLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. User id. | [optional] | +| **parentId** | **UUID**| Optional. Parent id. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | + +### Return type + +[**QueryFiltersLegacy**](QueryFiltersLegacy.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Legacy filters retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FontFile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FontFile.md new file mode 100644 index 0000000000000..a18a7c6f114b6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/FontFile.md @@ -0,0 +1,17 @@ + + +# FontFile + +Class FontFile. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateModified** | **OffsetDateTime** | Gets or sets the date modified. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordAction.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordAction.md new file mode 100644 index 0000000000000..706a737eac14b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordAction.md @@ -0,0 +1,15 @@ + + +# ForgotPasswordAction + +## Enum + + +* `CONTACT_ADMIN` (value: `"ContactAdmin"`) + +* `PIN_CODE` (value: `"PinCode"`) + +* `IN_NETWORK_REQUIRED` (value: `"InNetworkRequired"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordDto.md new file mode 100644 index 0000000000000..86ea66245fb2d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordDto.md @@ -0,0 +1,14 @@ + + +# ForgotPasswordDto + +Forgot Password request body DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enteredUsername** | **String** | Gets or sets the entered username to have its password reset. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordPinDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordPinDto.md new file mode 100644 index 0000000000000..bbbafdbc98137 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordPinDto.md @@ -0,0 +1,14 @@ + + +# ForgotPasswordPinDto + +Forgot Password Pin enter request body DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pin** | **String** | Gets or sets the entered pin to have the password reset. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordResult.md new file mode 100644 index 0000000000000..89c1c13ea2991 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ForgotPasswordResult.md @@ -0,0 +1,15 @@ + + +# ForgotPasswordResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**action** | **ForgotPasswordAction** | Gets or sets the action. | [optional] | +|**pinFile** | **String** | Gets or sets the pin file. | [optional] | +|**pinExpirationDate** | **OffsetDateTime** | Gets or sets the pin expiration date. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommand.md new file mode 100644 index 0000000000000..25275e04154f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommand.md @@ -0,0 +1,15 @@ + + +# GeneralCommand + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **GeneralCommandType** | This exists simply to identify a set of known commands. | [optional] | +|**controllingUserId** | **UUID** | | [optional] | +|**arguments** | **Map<String, String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommandType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommandType.md new file mode 100644 index 0000000000000..4cce1d5e14b04 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GeneralCommandType.md @@ -0,0 +1,93 @@ + + +# GeneralCommandType + +## Enum + + +* `MOVE_UP` (value: `"MoveUp"`) + +* `MOVE_DOWN` (value: `"MoveDown"`) + +* `MOVE_LEFT` (value: `"MoveLeft"`) + +* `MOVE_RIGHT` (value: `"MoveRight"`) + +* `PAGE_UP` (value: `"PageUp"`) + +* `PAGE_DOWN` (value: `"PageDown"`) + +* `PREVIOUS_LETTER` (value: `"PreviousLetter"`) + +* `NEXT_LETTER` (value: `"NextLetter"`) + +* `TOGGLE_OSD` (value: `"ToggleOsd"`) + +* `TOGGLE_CONTEXT_MENU` (value: `"ToggleContextMenu"`) + +* `SELECT` (value: `"Select"`) + +* `BACK` (value: `"Back"`) + +* `TAKE_SCREENSHOT` (value: `"TakeScreenshot"`) + +* `SEND_KEY` (value: `"SendKey"`) + +* `SEND_STRING` (value: `"SendString"`) + +* `GO_HOME` (value: `"GoHome"`) + +* `GO_TO_SETTINGS` (value: `"GoToSettings"`) + +* `VOLUME_UP` (value: `"VolumeUp"`) + +* `VOLUME_DOWN` (value: `"VolumeDown"`) + +* `MUTE` (value: `"Mute"`) + +* `UNMUTE` (value: `"Unmute"`) + +* `TOGGLE_MUTE` (value: `"ToggleMute"`) + +* `SET_VOLUME` (value: `"SetVolume"`) + +* `SET_AUDIO_STREAM_INDEX` (value: `"SetAudioStreamIndex"`) + +* `SET_SUBTITLE_STREAM_INDEX` (value: `"SetSubtitleStreamIndex"`) + +* `TOGGLE_FULLSCREEN` (value: `"ToggleFullscreen"`) + +* `DISPLAY_CONTENT` (value: `"DisplayContent"`) + +* `GO_TO_SEARCH` (value: `"GoToSearch"`) + +* `DISPLAY_MESSAGE` (value: `"DisplayMessage"`) + +* `SET_REPEAT_MODE` (value: `"SetRepeatMode"`) + +* `CHANNEL_UP` (value: `"ChannelUp"`) + +* `CHANNEL_DOWN` (value: `"ChannelDown"`) + +* `GUIDE` (value: `"Guide"`) + +* `TOGGLE_STATS` (value: `"ToggleStats"`) + +* `PLAY_MEDIA_SOURCE` (value: `"PlayMediaSource"`) + +* `PLAY_TRAILERS` (value: `"PlayTrailers"`) + +* `SET_SHUFFLE_QUEUE` (value: `"SetShuffleQueue"`) + +* `PLAY_STATE` (value: `"PlayState"`) + +* `PLAY_NEXT` (value: `"PlayNext"`) + +* `TOGGLE_OSD_MENU` (value: `"ToggleOsdMenu"`) + +* `PLAY` (value: `"Play"`) + +* `SET_MAX_STREAMING_BITRATE` (value: `"SetMaxStreamingBitrate"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GenresApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GenresApi.md new file mode 100644 index 0000000000000..bde28227ae79a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GenresApi.md @@ -0,0 +1,184 @@ +# GenresApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getGenre**](GenresApi.md#getGenre) | **GET** /Genres/{genreName} | Gets a genre, by name. | +| [**getGenres**](GenresApi.md#getGenres) | **GET** /Genres | Gets all genres from a given item, folder, or the entire library. | + + + +# **getGenre** +> BaseItemDto getGenre(genreName, userId) + +Gets a genre, by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.GenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + GenresApi apiInstance = new GenresApi(defaultClient); + String genreName = "genreName_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + BaseItemDto result = apiInstance.getGenre(genreName, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling GenresApi#getGenre"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **genreName** | **String**| The genre name. | | +| **userId** | **UUID**| The user id. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getGenres** +> BaseItemDtoQueryResult getGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all genres from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.GenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + GenresApi apiInstance = new GenresApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Include total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling GenresApi#getGenres"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Optional. Include total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GetProgramsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GetProgramsDto.md new file mode 100644 index 0000000000000..3e299beaebde8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GetProgramsDto.md @@ -0,0 +1,40 @@ + + +# GetProgramsDto + +Get programs dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**channelIds** | **List<UUID>** | Gets or sets the channels to return guide information for. | [optional] | +|**userId** | **UUID** | Gets or sets optional. Filter by user id. | [optional] | +|**minStartDate** | **OffsetDateTime** | Gets or sets the minimum premiere start date. Optional. | [optional] | +|**hasAired** | **Boolean** | Gets or sets filter by programs that have completed airing, or not. Optional. | [optional] | +|**isAiring** | **Boolean** | Gets or sets filter by programs that are currently airing, or not. Optional. | [optional] | +|**maxStartDate** | **OffsetDateTime** | Gets or sets the maximum premiere start date. Optional. | [optional] | +|**minEndDate** | **OffsetDateTime** | Gets or sets the minimum premiere end date. Optional. | [optional] | +|**maxEndDate** | **OffsetDateTime** | Gets or sets the maximum premiere end date. Optional. | [optional] | +|**isMovie** | **Boolean** | Gets or sets filter for movies. Optional. | [optional] | +|**isSeries** | **Boolean** | Gets or sets filter for series. Optional. | [optional] | +|**isNews** | **Boolean** | Gets or sets filter for news. Optional. | [optional] | +|**isKids** | **Boolean** | Gets or sets filter for kids. Optional. | [optional] | +|**isSports** | **Boolean** | Gets or sets filter for sports. Optional. | [optional] | +|**startIndex** | **Integer** | Gets or sets the record index to start at. All items with a lower index will be dropped from the results. Optional. | [optional] | +|**limit** | **Integer** | Gets or sets the maximum number of records to return. Optional. | [optional] | +|**sortBy** | **List<String>** | Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate. Optional. | [optional] | +|**sortOrder** | **List<SortOrder>** | Gets or sets sort Order - Ascending,Descending. | [optional] | +|**genres** | **List<String>** | Gets or sets the genres to return guide information for. | [optional] | +|**genreIds** | **List<UUID>** | Gets or sets the genre ids to return guide information for. | [optional] | +|**enableImages** | **Boolean** | Gets or sets include image information in output. Optional. | [optional] | +|**enableTotalRecordCount** | **Boolean** | Gets or sets a value indicating whether retrieve total record count. | [optional] | +|**imageTypeLimit** | **Integer** | Gets or sets the max number of images to return, per image type. Optional. | [optional] | +|**enableImageTypes** | **List<ImageType>** | Gets or sets the image types to include in the output. Optional. | [optional] | +|**enableUserData** | **Boolean** | Gets or sets include user data. Optional. | [optional] | +|**seriesTimerId** | **String** | Gets or sets filter by series timer id. Optional. | [optional] | +|**librarySeriesId** | **UUID** | Gets or sets filter by library series id. Optional. | [optional] | +|**fields** | **List<ItemFields>** | Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. Optional. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupInfoDto.md new file mode 100644 index 0000000000000..dad9fb69083eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupInfoDto.md @@ -0,0 +1,18 @@ + + +# GroupInfoDto + +Class GroupInfoDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] | +|**groupName** | **String** | Gets the group name. | [optional] | +|**state** | **GroupStateType** | Gets the group state. | [optional] | +|**participants** | **List<String>** | Gets the participants. | [optional] | +|**lastUpdatedAt** | **OffsetDateTime** | Gets the date when this DTO has been created. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupQueueMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupQueueMode.md new file mode 100644 index 0000000000000..b8071426dfe86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupQueueMode.md @@ -0,0 +1,13 @@ + + +# GroupQueueMode + +## Enum + + +* `QUEUE` (value: `"Queue"`) + +* `QUEUE_NEXT` (value: `"QueueNext"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupRepeatMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupRepeatMode.md new file mode 100644 index 0000000000000..2ffe466256c3e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupRepeatMode.md @@ -0,0 +1,15 @@ + + +# GroupRepeatMode + +## Enum + + +* `REPEAT_ONE` (value: `"RepeatOne"`) + +* `REPEAT_ALL` (value: `"RepeatAll"`) + +* `REPEAT_NONE` (value: `"RepeatNone"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupShuffleMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupShuffleMode.md new file mode 100644 index 0000000000000..d6786fcecad18 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupShuffleMode.md @@ -0,0 +1,13 @@ + + +# GroupShuffleMode + +## Enum + + +* `SORTED` (value: `"Sorted"`) + +* `SHUFFLE` (value: `"Shuffle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupStateType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupStateType.md new file mode 100644 index 0000000000000..58610ecda54b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupStateType.md @@ -0,0 +1,17 @@ + + +# GroupStateType + +## Enum + + +* `IDLE` (value: `"Idle"`) + +* `WAITING` (value: `"Waiting"`) + +* `PAUSED` (value: `"Paused"`) + +* `PLAYING` (value: `"Playing"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupUpdateType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupUpdateType.md new file mode 100644 index 0000000000000..60be6d293f957 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GroupUpdateType.md @@ -0,0 +1,31 @@ + + +# GroupUpdateType + +## Enum + + +* `USER_JOINED` (value: `"UserJoined"`) + +* `USER_LEFT` (value: `"UserLeft"`) + +* `GROUP_JOINED` (value: `"GroupJoined"`) + +* `GROUP_LEFT` (value: `"GroupLeft"`) + +* `STATE_UPDATE` (value: `"StateUpdate"`) + +* `PLAY_QUEUE` (value: `"PlayQueue"`) + +* `NOT_IN_GROUP` (value: `"NotInGroup"`) + +* `GROUP_DOES_NOT_EXIST` (value: `"GroupDoesNotExist"`) + +* `CREATE_GROUP_DENIED` (value: `"CreateGroupDenied"`) + +* `JOIN_GROUP_DENIED` (value: `"JoinGroupDenied"`) + +* `LIBRARY_ACCESS_DENIED` (value: `"LibraryAccessDenied"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GuideInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GuideInfo.md new file mode 100644 index 0000000000000..8fcd257ac979f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/GuideInfo.md @@ -0,0 +1,14 @@ + + +# GuideInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startDate** | **OffsetDateTime** | Gets or sets the start date. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HardwareEncodingType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HardwareEncodingType.md new file mode 100644 index 0000000000000..e67dddfbb8074 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HardwareEncodingType.md @@ -0,0 +1,21 @@ + + +# HardwareEncodingType + +## Enum + + +* `AMF` (value: `"AMF"`) + +* `QSV` (value: `"QSV"`) + +* `NVENC` (value: `"NVENC"`) + +* `V4_L2_M2_M` (value: `"V4L2M2M"`) + +* `VAAPI` (value: `"VAAPI"`) + +* `VIDEO_TOOL_BOX` (value: `"VideoToolBox"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HeaderMatchType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HeaderMatchType.md new file mode 100644 index 0000000000000..65c95d0fd76d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HeaderMatchType.md @@ -0,0 +1,15 @@ + + +# HeaderMatchType + +## Enum + + +* `EQUALS` (value: `"Equals"`) + +* `REGEX` (value: `"Regex"`) + +* `SUBSTRING` (value: `"Substring"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HlsSegmentApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HlsSegmentApi.md new file mode 100644 index 0000000000000..c729c73a46496 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HlsSegmentApi.md @@ -0,0 +1,345 @@ +# HlsSegmentApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getHlsAudioSegmentLegacyAac**](HlsSegmentApi.md#getHlsAudioSegmentLegacyAac) | **GET** /Audio/{itemId}/hls/{segmentId}/stream.aac | Gets the specified audio segment for an audio item. | +| [**getHlsAudioSegmentLegacyMp3**](HlsSegmentApi.md#getHlsAudioSegmentLegacyMp3) | **GET** /Audio/{itemId}/hls/{segmentId}/stream.mp3 | Gets the specified audio segment for an audio item. | +| [**getHlsPlaylistLegacy**](HlsSegmentApi.md#getHlsPlaylistLegacy) | **GET** /Videos/{itemId}/hls/{playlistId}/stream.m3u8 | Gets a hls video playlist. | +| [**getHlsVideoSegmentLegacy**](HlsSegmentApi.md#getHlsVideoSegmentLegacy) | **GET** /Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer} | Gets a hls video segment. | +| [**stopEncodingProcess**](HlsSegmentApi.md#stopEncodingProcess) | **DELETE** /Videos/ActiveEncodings | Stops an active encoding. | + + + +# **getHlsAudioSegmentLegacyAac** +> File getHlsAudioSegmentLegacyAac(itemId, segmentId) + +Gets the specified audio segment for an audio item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String segmentId = "segmentId_example"; // String | The segment id. + try { + File result = apiInstance.getHlsAudioSegmentLegacyAac(itemId, segmentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsAudioSegmentLegacyAac"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **segmentId** | **String**| The segment id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls audio segment returned. | - | + + +# **getHlsAudioSegmentLegacyMp3** +> File getHlsAudioSegmentLegacyMp3(itemId, segmentId) + +Gets the specified audio segment for an audio item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String segmentId = "segmentId_example"; // String | The segment id. + try { + File result = apiInstance.getHlsAudioSegmentLegacyMp3(itemId, segmentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsAudioSegmentLegacyMp3"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **segmentId** | **String**| The segment id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls audio segment returned. | - | + + +# **getHlsPlaylistLegacy** +> File getHlsPlaylistLegacy(itemId, playlistId) + +Gets a hls video playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The video id. + String playlistId = "playlistId_example"; // String | The playlist id. + try { + File result = apiInstance.getHlsPlaylistLegacy(itemId, playlistId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsPlaylistLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The video id. | | +| **playlistId** | **String**| The playlist id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls video playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getHlsVideoSegmentLegacy** +> File getHlsVideoSegmentLegacy(itemId, playlistId, segmentId, segmentContainer) + +Gets a hls video segment. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String playlistId = "playlistId_example"; // String | The playlist id. + String segmentId = "segmentId_example"; // String | The segment id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + try { + File result = apiInstance.getHlsVideoSegmentLegacy(itemId, playlistId, segmentId, segmentContainer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#getHlsVideoSegmentLegacy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **playlistId** | **String**| The playlist id. | | +| **segmentId** | **String**| The segment id. | | +| **segmentContainer** | **String**| The segment container. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Hls video segment returned. | - | +| **404** | Hls segment not found. | - | + + +# **stopEncodingProcess** +> stopEncodingProcess(deviceId, playSessionId) + +Stops an active encoding. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.HlsSegmentApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + HlsSegmentApi apiInstance = new HlsSegmentApi(defaultClient); + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String playSessionId = "playSessionId_example"; // String | The play session id. + try { + apiInstance.stopEncodingProcess(deviceId, playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling HlsSegmentApi#stopEncodingProcess"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | | +| **playSessionId** | **String**| The play session id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Encoding stopped successfully. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HttpHeaderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HttpHeaderInfo.md new file mode 100644 index 0000000000000..0fa1ccb361444 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/HttpHeaderInfo.md @@ -0,0 +1,15 @@ + + +# HttpHeaderInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**value** | **String** | | [optional] | +|**match** | **HeaderMatchType** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IPlugin.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IPlugin.md new file mode 100644 index 0000000000000..7548ba304363f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IPlugin.md @@ -0,0 +1,20 @@ + + +# IPlugin + +Defines the MediaBrowser.Common.Plugins.IPlugin. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name of the plugin. | [optional] [readonly] | +|**description** | **String** | Gets the Description. | [optional] [readonly] | +|**id** | **UUID** | Gets the unique id. | [optional] [readonly] | +|**version** | **String** | Gets the plugin version. | [optional] [readonly] | +|**assemblyFilePath** | **String** | Gets the path to the assembly file. | [optional] [readonly] | +|**canUninstall** | **Boolean** | Gets a value indicating whether the plugin can be uninstalled. | [optional] [readonly] | +|**dataFolderPath** | **String** | Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IgnoreWaitRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IgnoreWaitRequestDto.md new file mode 100644 index 0000000000000..4485049a59dcb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IgnoreWaitRequestDto.md @@ -0,0 +1,14 @@ + + +# IgnoreWaitRequestDto + +Class IgnoreWaitRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ignoreWait** | **Boolean** | Gets or sets a value indicating whether the client should be ignored. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageApi.md new file mode 100644 index 0000000000000..a5ac0197ca39a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageApi.md @@ -0,0 +1,3711 @@ +# ImageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteCustomSplashscreen**](ImageApi.md#deleteCustomSplashscreen) | **DELETE** /Branding/Splashscreen | Delete a custom splashscreen. | +| [**deleteItemImage**](ImageApi.md#deleteItemImage) | **DELETE** /Items/{itemId}/Images/{imageType} | Delete an item's image. | +| [**deleteItemImageByIndex**](ImageApi.md#deleteItemImageByIndex) | **DELETE** /Items/{itemId}/Images/{imageType}/{imageIndex} | Delete an item's image. | +| [**deleteUserImage**](ImageApi.md#deleteUserImage) | **DELETE** /Users/{userId}/Images/{imageType} | Delete the user's image. | +| [**deleteUserImageByIndex**](ImageApi.md#deleteUserImageByIndex) | **DELETE** /Users/{userId}/Images/{imageType}/{index} | Delete the user's image. | +| [**getArtistImage**](ImageApi.md#getArtistImage) | **GET** /Artists/{name}/Images/{imageType}/{imageIndex} | Get artist image by name. | +| [**getGenreImage**](ImageApi.md#getGenreImage) | **GET** /Genres/{name}/Images/{imageType} | Get genre image by name. | +| [**getGenreImageByIndex**](ImageApi.md#getGenreImageByIndex) | **GET** /Genres/{name}/Images/{imageType}/{imageIndex} | Get genre image by name. | +| [**getItemImage**](ImageApi.md#getItemImage) | **GET** /Items/{itemId}/Images/{imageType} | Gets the item's image. | +| [**getItemImage2**](ImageApi.md#getItemImage2) | **GET** /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount} | Gets the item's image. | +| [**getItemImageByIndex**](ImageApi.md#getItemImageByIndex) | **GET** /Items/{itemId}/Images/{imageType}/{imageIndex} | Gets the item's image. | +| [**getItemImageInfos**](ImageApi.md#getItemImageInfos) | **GET** /Items/{itemId}/Images | Get item image infos. | +| [**getMusicGenreImage**](ImageApi.md#getMusicGenreImage) | **GET** /MusicGenres/{name}/Images/{imageType} | Get music genre image by name. | +| [**getMusicGenreImageByIndex**](ImageApi.md#getMusicGenreImageByIndex) | **GET** /MusicGenres/{name}/Images/{imageType}/{imageIndex} | Get music genre image by name. | +| [**getPersonImage**](ImageApi.md#getPersonImage) | **GET** /Persons/{name}/Images/{imageType} | Get person image by name. | +| [**getPersonImageByIndex**](ImageApi.md#getPersonImageByIndex) | **GET** /Persons/{name}/Images/{imageType}/{imageIndex} | Get person image by name. | +| [**getSplashscreen**](ImageApi.md#getSplashscreen) | **GET** /Branding/Splashscreen | Generates or gets the splashscreen. | +| [**getStudioImage**](ImageApi.md#getStudioImage) | **GET** /Studios/{name}/Images/{imageType} | Get studio image by name. | +| [**getStudioImageByIndex**](ImageApi.md#getStudioImageByIndex) | **GET** /Studios/{name}/Images/{imageType}/{imageIndex} | Get studio image by name. | +| [**getUserImage**](ImageApi.md#getUserImage) | **GET** /Users/{userId}/Images/{imageType} | Get user profile image. | +| [**getUserImageByIndex**](ImageApi.md#getUserImageByIndex) | **GET** /Users/{userId}/Images/{imageType}/{imageIndex} | Get user profile image. | +| [**headArtistImage**](ImageApi.md#headArtistImage) | **HEAD** /Artists/{name}/Images/{imageType}/{imageIndex} | Get artist image by name. | +| [**headGenreImage**](ImageApi.md#headGenreImage) | **HEAD** /Genres/{name}/Images/{imageType} | Get genre image by name. | +| [**headGenreImageByIndex**](ImageApi.md#headGenreImageByIndex) | **HEAD** /Genres/{name}/Images/{imageType}/{imageIndex} | Get genre image by name. | +| [**headItemImage**](ImageApi.md#headItemImage) | **HEAD** /Items/{itemId}/Images/{imageType} | Gets the item's image. | +| [**headItemImage2**](ImageApi.md#headItemImage2) | **HEAD** /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount} | Gets the item's image. | +| [**headItemImageByIndex**](ImageApi.md#headItemImageByIndex) | **HEAD** /Items/{itemId}/Images/{imageType}/{imageIndex} | Gets the item's image. | +| [**headMusicGenreImage**](ImageApi.md#headMusicGenreImage) | **HEAD** /MusicGenres/{name}/Images/{imageType} | Get music genre image by name. | +| [**headMusicGenreImageByIndex**](ImageApi.md#headMusicGenreImageByIndex) | **HEAD** /MusicGenres/{name}/Images/{imageType}/{imageIndex} | Get music genre image by name. | +| [**headPersonImage**](ImageApi.md#headPersonImage) | **HEAD** /Persons/{name}/Images/{imageType} | Get person image by name. | +| [**headPersonImageByIndex**](ImageApi.md#headPersonImageByIndex) | **HEAD** /Persons/{name}/Images/{imageType}/{imageIndex} | Get person image by name. | +| [**headStudioImage**](ImageApi.md#headStudioImage) | **HEAD** /Studios/{name}/Images/{imageType} | Get studio image by name. | +| [**headStudioImageByIndex**](ImageApi.md#headStudioImageByIndex) | **HEAD** /Studios/{name}/Images/{imageType}/{imageIndex} | Get studio image by name. | +| [**headUserImage**](ImageApi.md#headUserImage) | **HEAD** /Users/{userId}/Images/{imageType} | Get user profile image. | +| [**headUserImageByIndex**](ImageApi.md#headUserImageByIndex) | **HEAD** /Users/{userId}/Images/{imageType}/{imageIndex} | Get user profile image. | +| [**postUserImage**](ImageApi.md#postUserImage) | **POST** /Users/{userId}/Images/{imageType} | Sets the user image. | +| [**postUserImageByIndex**](ImageApi.md#postUserImageByIndex) | **POST** /Users/{userId}/Images/{imageType}/{index} | Sets the user image. | +| [**setItemImage**](ImageApi.md#setItemImage) | **POST** /Items/{itemId}/Images/{imageType} | Set item image. | +| [**setItemImageByIndex**](ImageApi.md#setItemImageByIndex) | **POST** /Items/{itemId}/Images/{imageType}/{imageIndex} | Set item image. | +| [**updateItemImageIndex**](ImageApi.md#updateItemImageIndex) | **POST** /Items/{itemId}/Images/{imageType}/{imageIndex}/Index | Updates the index for an item image. | +| [**uploadCustomSplashscreen**](ImageApi.md#uploadCustomSplashscreen) | **POST** /Branding/Splashscreen | Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. | + + + +# **deleteCustomSplashscreen** +> deleteCustomSplashscreen() + +Delete a custom splashscreen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + try { + apiInstance.deleteCustomSplashscreen(); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteCustomSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Successfully deleted the custom splashscreen. | - | +| **403** | User does not have permission to delete splashscreen.. | - | +| **401** | Unauthorized | - | + + +# **deleteItemImage** +> deleteItemImage(itemId, imageType, imageIndex) + +Delete an item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | The image index. + try { + apiInstance.deleteItemImage(itemId, imageType, imageIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| The image index. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteItemImageByIndex** +> deleteItemImageByIndex(itemId, imageType, imageIndex) + +Delete an item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | The image index. + try { + apiInstance.deleteItemImageByIndex(itemId, imageType, imageIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| The image index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteUserImage** +> deleteUserImage(userId, imageType, index) + +Delete the user's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | (Unused) Image type. + Integer index = 56; // Integer | (Unused) Image index. + try { + apiInstance.deleteUserImage(userId, imageType, index); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | | +| **imageType** | [**ImageType**](.md)| (Unused) Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **index** | **Integer**| (Unused) Image index. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **403** | User does not have permission to delete the image. | - | +| **401** | Unauthorized | - | + + +# **deleteUserImageByIndex** +> deleteUserImageByIndex(userId, imageType, index) + +Delete the user's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | (Unused) Image type. + Integer index = 56; // Integer | (Unused) Image index. + try { + apiInstance.deleteUserImageByIndex(userId, imageType, index); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#deleteUserImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | | +| **imageType** | [**ImageType**](.md)| (Unused) Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **index** | **Integer**| (Unused) Image index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image deleted. | - | +| **403** | User does not have permission to delete the image. | - | +| **401** | Unauthorized | - | + + +# **getArtistImage** +> File getArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get artist image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Artist name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getArtistImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Artist name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getGenreImage** +> File getGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getGenreImageByIndex** +> File getGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImage** +> File getItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **format** | [**ImageFormat**](.md)| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImage2** +> File getItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer imageIndex = 56; // Integer | Image index. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImage2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | | +| **maxHeight** | **Integer**| The maximum image height to return. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [enum: Bmp, Gif, Jpg, Png, Webp] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | | +| **imageIndex** | **Integer**| Image index. | | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImageByIndex** +> File getItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **format** | [**ImageFormat**](.md)| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getItemImageInfos** +> List<ImageInfo> getItemImageInfos(itemId) + +Get item image infos. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getItemImageInfos(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getItemImageInfos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<ImageInfo>**](ImageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item images returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicGenreImage** +> File getMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getMusicGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getMusicGenreImageByIndex** +> File getMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getMusicGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getPersonImage** +> File getPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getPersonImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getPersonImageByIndex** +> File getPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getPersonImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getSplashscreen** +> File getSplashscreen(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality) + +Generates or gets the splashscreen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String tag = "tag_example"; // String | Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Integer blur = 56; // Integer | Blur image. + String backgroundColor = "backgroundColor_example"; // String | Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Apply a foreground layer on top of the image. + Integer quality = 90; // Integer | Quality setting, from 0-100. + try { + File result = apiInstance.getSplashscreen(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tag** | **String**| Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **blur** | **Integer**| Blur image. | [optional] | +| **backgroundColor** | **String**| Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Apply a foreground layer on top of the image. | [optional] | +| **quality** | **Integer**| Quality setting, from 0-100. | [optional] [default to 90] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Splashscreen returned successfully. | - | + + +# **getStudioImage** +> File getStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getStudioImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getStudioImageByIndex** +> File getStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getStudioImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getUserImage** +> File getUserImage(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.getUserImage(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **getUserImageByIndex** +> File getUserImageByIndex(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.getUserImageByIndex(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#getUserImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headArtistImage** +> File headArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get artist image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Artist name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headArtistImage(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headArtistImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Artist name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headGenreImage** +> File headGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headGenreImageByIndex** +> File headGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImage** +> File headItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headItemImage(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **format** | [**ImageFormat**](.md)| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImage2** +> File headItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer imageIndex = 56; // Integer | Image index. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headItemImage2(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImage2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **maxWidth** | **Integer**| The maximum image width to return. | | +| **maxHeight** | **Integer**| The maximum image height to return. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [enum: Bmp, Gif, Jpg, Png, Webp] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | | +| **imageIndex** | **Integer**| Image index. | | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headItemImageByIndex** +> File headItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer) + +Gets the item's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headItemImageByIndex(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **format** | [**ImageFormat**](.md)| Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headMusicGenreImage** +> File headMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headMusicGenreImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headMusicGenreImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headMusicGenreImageByIndex** +> File headMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get music genre image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Music genre name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headMusicGenreImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headMusicGenreImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Music genre name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headPersonImage** +> File headPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headPersonImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headPersonImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headPersonImageByIndex** +> File headPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get person image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Person name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headPersonImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headPersonImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headStudioImage** +> File headStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headStudioImage(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headStudioImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headStudioImageByIndex** +> File headStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get studio image by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + String name = "name_example"; // String | Studio name. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headStudioImageByIndex(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headStudioImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headUserImage** +> File headUserImage(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + Integer imageIndex = 56; // Integer | Image index. + try { + File result = apiInstance.headUserImage(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | +| **imageIndex** | **Integer**| Image index. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **headUserImageByIndex** +> File headUserImageByIndex(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer) + +Get user profile image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Image index. + String tag = "tag_example"; // String | Optional. Supply the cache tag from the item object to receive strong caching headers. + ImageFormat format = ImageFormat.fromValue("Bmp"); // ImageFormat | Determines the output format of the image - original,gif,jpg,png. + Integer maxWidth = 56; // Integer | The maximum image width to return. + Integer maxHeight = 56; // Integer | The maximum image height to return. + Double percentPlayed = 3.4D; // Double | Optional. Percent to render for the percent played overlay. + Integer unplayedCount = 56; // Integer | Optional. Unplayed count overlay to render. + Integer width = 56; // Integer | The fixed image width to return. + Integer height = 56; // Integer | The fixed image height to return. + Integer quality = 56; // Integer | Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + Integer fillWidth = 56; // Integer | Width of box to fill. + Integer fillHeight = 56; // Integer | Height of box to fill. + Boolean cropWhitespace = true; // Boolean | Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + Boolean addPlayedIndicator = true; // Boolean | Optional. Add a played indicator. + Integer blur = 56; // Integer | Optional. Blur image. + String backgroundColor = "backgroundColor_example"; // String | Optional. Apply a background color for transparent images. + String foregroundLayer = "foregroundLayer_example"; // String | Optional. Apply a foreground layer on top of the image. + try { + File result = apiInstance.headUserImageByIndex(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#headUserImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Image index. | | +| **tag** | **String**| Optional. Supply the cache tag from the item object to receive strong caching headers. | [optional] | +| **format** | [**ImageFormat**](.md)| Determines the output format of the image - original,gif,jpg,png. | [optional] [enum: Bmp, Gif, Jpg, Png, Webp] | +| **maxWidth** | **Integer**| The maximum image width to return. | [optional] | +| **maxHeight** | **Integer**| The maximum image height to return. | [optional] | +| **percentPlayed** | **Double**| Optional. Percent to render for the percent played overlay. | [optional] | +| **unplayedCount** | **Integer**| Optional. Unplayed count overlay to render. | [optional] | +| **width** | **Integer**| The fixed image width to return. | [optional] | +| **height** | **Integer**| The fixed image height to return. | [optional] | +| **quality** | **Integer**| Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. | [optional] | +| **fillWidth** | **Integer**| Width of box to fill. | [optional] | +| **fillHeight** | **Integer**| Height of box to fill. | [optional] | +| **cropWhitespace** | **Boolean**| Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. | [optional] | +| **addPlayedIndicator** | **Boolean**| Optional. Add a played indicator. | [optional] | +| **blur** | **Integer**| Optional. Blur image. | [optional] | +| **backgroundColor** | **String**| Optional. Apply a background color for transparent images. | [optional] | +| **foregroundLayer** | **String**| Optional. Apply a foreground layer on top of the image. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream returned. | - | +| **404** | Item not found. | - | + + +# **postUserImage** +> postUserImage(userId, imageType, index, body) + +Sets the user image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | (Unused) Image type. + Integer index = 56; // Integer | (Unused) Image index. + File body = new File("/path/to/file"); // File | + try { + apiInstance.postUserImage(userId, imageType, index, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#postUserImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | | +| **imageType** | [**ImageType**](.md)| (Unused) Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **index** | **Integer**| (Unused) Image index. | [optional] | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image updated. | - | +| **403** | User does not have permission to delete the image. | - | +| **401** | Unauthorized | - | + + +# **postUserImageByIndex** +> postUserImageByIndex(userId, imageType, index, body) + +Sets the user image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User Id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | (Unused) Image type. + Integer index = 56; // Integer | (Unused) Image index. + File body = new File("/path/to/file"); // File | + try { + apiInstance.postUserImageByIndex(userId, imageType, index, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#postUserImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User Id. | | +| **imageType** | [**ImageType**](.md)| (Unused) Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **index** | **Integer**| (Unused) Image index. | | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image updated. | - | +| **403** | User does not have permission to delete the image. | - | +| **401** | Unauthorized | - | + + +# **setItemImage** +> setItemImage(itemId, imageType, body) + +Set item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + File body = new File("/path/to/file"); // File | + try { + apiInstance.setItemImage(itemId, imageType, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#setItemImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image saved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setItemImageByIndex** +> setItemImageByIndex(itemId, imageType, imageIndex, body) + +Set item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | (Unused) Image index. + File body = new File("/path/to/file"); // File | + try { + apiInstance.setItemImageByIndex(itemId, imageType, imageIndex, body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#setItemImageByIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| (Unused) Image index. | | +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image saved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItemImageIndex** +> updateItemImageIndex(itemId, imageType, imageIndex, newIndex) + +Updates the index for an item image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + ImageType imageType = ImageType.fromValue("Primary"); // ImageType | Image type. + Integer imageIndex = 56; // Integer | Old image index. + Integer newIndex = 56; // Integer | New image index. + try { + apiInstance.updateItemImageIndex(itemId, imageType, imageIndex, newIndex); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#updateItemImageIndex"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **imageType** | [**ImageType**](.md)| Image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageIndex** | **Integer**| Old image index. | | +| **newIndex** | **Integer**| New image index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Image index updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uploadCustomSplashscreen** +> uploadCustomSplashscreen(body) + +Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageApi apiInstance = new ImageApi(defaultClient); + File body = new File("/path/to/file"); // File | + try { + apiInstance.uploadCustomSplashscreen(body); + } catch (ApiException e) { + System.err.println("Exception when calling ImageApi#uploadCustomSplashscreen"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **body** | **File**| | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: image/* + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Successfully uploaded new splashscreen. | - | +| **400** | Error reading MimeType from uploaded image. | - | +| **403** | User does not have permission to upload splashscreen.. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameApi.md new file mode 100644 index 0000000000000..6cd1cf46fb09e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameApi.md @@ -0,0 +1,398 @@ +# ImageByNameApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getGeneralImage**](ImageByNameApi.md#getGeneralImage) | **GET** /Images/General/{name}/{type} | Get General Image. | +| [**getGeneralImages**](ImageByNameApi.md#getGeneralImages) | **GET** /Images/General | Get all general images. | +| [**getMediaInfoImage**](ImageByNameApi.md#getMediaInfoImage) | **GET** /Images/MediaInfo/{theme}/{name} | Get media info image. | +| [**getMediaInfoImages**](ImageByNameApi.md#getMediaInfoImages) | **GET** /Images/MediaInfo | Get all media info images. | +| [**getRatingImage**](ImageByNameApi.md#getRatingImage) | **GET** /Images/Ratings/{theme}/{name} | Get rating image. | +| [**getRatingImages**](ImageByNameApi.md#getRatingImages) | **GET** /Images/Ratings | Get all general images. | + + + +# **getGeneralImage** +> File getGeneralImage(name, type) + +Get General Image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + String name = "name_example"; // String | The name of the image. + String type = "type_example"; // String | Image Type (primary, backdrop, logo, etc). + try { + File result = apiInstance.getGeneralImage(name, type); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getGeneralImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the image. | | +| **type** | **String**| Image Type (primary, backdrop, logo, etc). | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/octet-stream, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream retrieved. | - | +| **404** | Image not found. | - | + + +# **getGeneralImages** +> List<ImageByNameInfo> getGeneralImages() + +Get all general images. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + try { + List result = apiInstance.getGeneralImages(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getGeneralImages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ImageByNameInfo>**](ImageByNameInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Retrieved list of images. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaInfoImage** +> File getMediaInfoImage(theme, name) + +Get media info image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + String theme = "theme_example"; // String | The theme to get the image from. + String name = "name_example"; // String | The name of the image. + try { + File result = apiInstance.getMediaInfoImage(theme, name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getMediaInfoImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **theme** | **String**| The theme to get the image from. | | +| **name** | **String**| The name of the image. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/octet-stream, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream retrieved. | - | +| **404** | Image not found. | - | + + +# **getMediaInfoImages** +> List<ImageByNameInfo> getMediaInfoImages() + +Get all media info images. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + try { + List result = apiInstance.getMediaInfoImages(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getMediaInfoImages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ImageByNameInfo>**](ImageByNameInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image list retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRatingImage** +> File getRatingImage(theme, name) + +Get rating image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + String theme = "theme_example"; // String | The theme to get the image from. + String name = "name_example"; // String | The name of the image. + try { + File result = apiInstance.getRatingImage(theme, name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getRatingImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **theme** | **String**| The theme to get the image from. | | +| **name** | **String**| The name of the image. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/octet-stream, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Image stream retrieved. | - | +| **404** | Image not found. | - | + + +# **getRatingImages** +> List<ImageByNameInfo> getRatingImages() + +Get all general images. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ImageByNameApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ImageByNameApi apiInstance = new ImageByNameApi(defaultClient); + try { + List result = apiInstance.getRatingImages(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ImageByNameApi#getRatingImages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ImageByNameInfo>**](ImageByNameInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Retrieved list of images. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameInfo.md new file mode 100644 index 0000000000000..3fec7cbf0b145 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageByNameInfo.md @@ -0,0 +1,17 @@ + + +# ImageByNameInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**theme** | **String** | Gets or sets the theme. | [optional] | +|**context** | **String** | Gets or sets the context. | [optional] | +|**fileLength** | **Long** | Gets or sets the length of the file. | [optional] | +|**format** | **String** | Gets or sets the format. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageFormat.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageFormat.md new file mode 100644 index 0000000000000..0c3909383c361 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageFormat.md @@ -0,0 +1,19 @@ + + +# ImageFormat + +## Enum + + +* `BMP` (value: `"Bmp"`) + +* `GIF` (value: `"Gif"`) + +* `JPG` (value: `"Jpg"`) + +* `PNG` (value: `"Png"`) + +* `WEBP` (value: `"Webp"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageInfo.md new file mode 100644 index 0000000000000..51e9d082e97de --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageInfo.md @@ -0,0 +1,21 @@ + + +# ImageInfo + +Class ImageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**imageType** | **ImageType** | Gets or sets the type of the image. | [optional] | +|**imageIndex** | **Integer** | Gets or sets the index of the image. | [optional] | +|**imageTag** | **String** | Gets or sets the image tag. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**blurHash** | **String** | Gets or sets the blurhash. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOption.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOption.md new file mode 100644 index 0000000000000..5096b6b017add --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOption.md @@ -0,0 +1,15 @@ + + +# ImageOption + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **ImageType** | Gets or sets the type. | [optional] | +|**limit** | **Integer** | Gets or sets the limit. | [optional] | +|**minWidth** | **Integer** | Gets or sets the minimum width. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOrientation.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOrientation.md new file mode 100644 index 0000000000000..d40e07149947f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageOrientation.md @@ -0,0 +1,25 @@ + + +# ImageOrientation + +## Enum + + +* `TOP_LEFT` (value: `"TopLeft"`) + +* `TOP_RIGHT` (value: `"TopRight"`) + +* `BOTTOM_RIGHT` (value: `"BottomRight"`) + +* `BOTTOM_LEFT` (value: `"BottomLeft"`) + +* `LEFT_TOP` (value: `"LeftTop"`) + +* `RIGHT_TOP` (value: `"RightTop"`) + +* `RIGHT_BOTTOM` (value: `"RightBottom"`) + +* `LEFT_BOTTOM` (value: `"LeftBottom"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageProviderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageProviderInfo.md new file mode 100644 index 0000000000000..6766b50ab22ed --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageProviderInfo.md @@ -0,0 +1,15 @@ + + +# ImageProviderInfo + +Class ImageProviderInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets the name. | [optional] | +|**supportedImages** | **List<ImageType>** | Gets the supported image types. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageSavingConvention.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageSavingConvention.md new file mode 100644 index 0000000000000..52bb2043020f5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageSavingConvention.md @@ -0,0 +1,13 @@ + + +# ImageSavingConvention + +## Enum + + +* `LEGACY` (value: `"Legacy"`) + +* `COMPATIBLE` (value: `"Compatible"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageType.md new file mode 100644 index 0000000000000..eb42054dcf2b6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ImageType.md @@ -0,0 +1,35 @@ + + +# ImageType + +## Enum + + +* `PRIMARY` (value: `"Primary"`) + +* `ART` (value: `"Art"`) + +* `BACKDROP` (value: `"Backdrop"`) + +* `BANNER` (value: `"Banner"`) + +* `LOGO` (value: `"Logo"`) + +* `THUMB` (value: `"Thumb"`) + +* `DISC` (value: `"Disc"`) + +* `BOX` (value: `"Box"`) + +* `SCREENSHOT` (value: `"Screenshot"`) + +* `MENU` (value: `"Menu"`) + +* `CHAPTER` (value: `"Chapter"`) + +* `BOX_REAR` (value: `"BoxRear"`) + +* `PROFILE` (value: `"Profile"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstallationInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstallationInfo.md new file mode 100644 index 0000000000000..98fe1ff262d79 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstallationInfo.md @@ -0,0 +1,20 @@ + + +# InstallationInfo + +Class InstallationInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**guid** | **UUID** | Gets or sets the Id. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**changelog** | **String** | Gets or sets the changelog for this version. | [optional] | +|**sourceUrl** | **String** | Gets or sets the source URL. | [optional] | +|**checksum** | **String** | Gets or sets a checksum for the binary. | [optional] | +|**packageInfo** | [**PackageInfo**](PackageInfo.md) | Gets or sets package information for the installation. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstantMixApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstantMixApi.md new file mode 100644 index 0000000000000..3062b63630047 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/InstantMixApi.md @@ -0,0 +1,680 @@ +# InstantMixApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getInstantMixFromAlbum**](InstantMixApi.md#getInstantMixFromAlbum) | **GET** /Albums/{id}/InstantMix | Creates an instant playlist based on a given album. | +| [**getInstantMixFromArtists**](InstantMixApi.md#getInstantMixFromArtists) | **GET** /Artists/{id}/InstantMix | Creates an instant playlist based on a given artist. | +| [**getInstantMixFromArtists2**](InstantMixApi.md#getInstantMixFromArtists2) | **GET** /Artists/InstantMix | Creates an instant playlist based on a given artist. | +| [**getInstantMixFromItem**](InstantMixApi.md#getInstantMixFromItem) | **GET** /Items/{id}/InstantMix | Creates an instant playlist based on a given item. | +| [**getInstantMixFromMusicGenreById**](InstantMixApi.md#getInstantMixFromMusicGenreById) | **GET** /MusicGenres/InstantMix | Creates an instant playlist based on a given genre. | +| [**getInstantMixFromMusicGenreByName**](InstantMixApi.md#getInstantMixFromMusicGenreByName) | **GET** /MusicGenres/{name}/InstantMix | Creates an instant playlist based on a given genre. | +| [**getInstantMixFromPlaylist**](InstantMixApi.md#getInstantMixFromPlaylist) | **GET** /Playlists/{id}/InstantMix | Creates an instant playlist based on a given playlist. | +| [**getInstantMixFromSong**](InstantMixApi.md#getInstantMixFromSong) | **GET** /Songs/{id}/InstantMix | Creates an instant playlist based on a given song. | + + + +# **getInstantMixFromAlbum** +> BaseItemDtoQueryResult getInstantMixFromAlbum(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given album. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromAlbum(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromAlbum"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromArtists** +> BaseItemDtoQueryResult getInstantMixFromArtists(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given artist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromArtists(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromArtists2** +> BaseItemDtoQueryResult getInstantMixFromArtists2(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given artist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromArtists2(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromArtists2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromItem** +> BaseItemDtoQueryResult getInstantMixFromItem(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromItem(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromMusicGenreById** +> BaseItemDtoQueryResult getInstantMixFromMusicGenreById(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given genre. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromMusicGenreById(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromMusicGenreById"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromMusicGenreByName** +> BaseItemDtoQueryResult getInstantMixFromMusicGenreByName(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given genre. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + String name = "name_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromMusicGenreByName(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromMusicGenreByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The genre name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromPlaylist** +> BaseItemDtoQueryResult getInstantMixFromPlaylist(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromPlaylist(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getInstantMixFromSong** +> BaseItemDtoQueryResult getInstantMixFromSong(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Creates an instant playlist based on a given song. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.InstantMixApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + InstantMixApi apiInstance = new InstantMixApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getInstantMixFromSong(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling InstantMixApi#getInstantMixFromSong"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Instant playlist returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IsoType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IsoType.md new file mode 100644 index 0000000000000..1aeaa2b5f364b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/IsoType.md @@ -0,0 +1,13 @@ + + +# IsoType + +## Enum + + +* `DVD` (value: `"Dvd"`) + +* `BLU_RAY` (value: `"BluRay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemCounts.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemCounts.md new file mode 100644 index 0000000000000..4d0e2ff61ee9d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemCounts.md @@ -0,0 +1,25 @@ + + +# ItemCounts + +Class LibrarySummary. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**movieCount** | **Integer** | Gets or sets the movie count. | [optional] | +|**seriesCount** | **Integer** | Gets or sets the series count. | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**artistCount** | **Integer** | Gets or sets the artist count. | [optional] | +|**programCount** | **Integer** | Gets or sets the program count. | [optional] | +|**trailerCount** | **Integer** | Gets or sets the trailer count. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**albumCount** | **Integer** | Gets or sets the album count. | [optional] | +|**musicVideoCount** | **Integer** | Gets or sets the music video count. | [optional] | +|**boxSetCount** | **Integer** | Gets or sets the box set count. | [optional] | +|**bookCount** | **Integer** | Gets or sets the book count. | [optional] | +|**itemCount** | **Integer** | Gets or sets the item count. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFields.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFields.md new file mode 100644 index 0000000000000..ba132967f120c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFields.md @@ -0,0 +1,131 @@ + + +# ItemFields + +## Enum + + +* `AIR_TIME` (value: `"AirTime"`) + +* `CAN_DELETE` (value: `"CanDelete"`) + +* `CAN_DOWNLOAD` (value: `"CanDownload"`) + +* `CHANNEL_INFO` (value: `"ChannelInfo"`) + +* `CHAPTERS` (value: `"Chapters"`) + +* `CHILD_COUNT` (value: `"ChildCount"`) + +* `CUMULATIVE_RUN_TIME_TICKS` (value: `"CumulativeRunTimeTicks"`) + +* `CUSTOM_RATING` (value: `"CustomRating"`) + +* `DATE_CREATED` (value: `"DateCreated"`) + +* `DATE_LAST_MEDIA_ADDED` (value: `"DateLastMediaAdded"`) + +* `DISPLAY_PREFERENCES_ID` (value: `"DisplayPreferencesId"`) + +* `ETAG` (value: `"Etag"`) + +* `EXTERNAL_URLS` (value: `"ExternalUrls"`) + +* `GENRES` (value: `"Genres"`) + +* `HOME_PAGE_URL` (value: `"HomePageUrl"`) + +* `ITEM_COUNTS` (value: `"ItemCounts"`) + +* `MEDIA_SOURCE_COUNT` (value: `"MediaSourceCount"`) + +* `MEDIA_SOURCES` (value: `"MediaSources"`) + +* `ORIGINAL_TITLE` (value: `"OriginalTitle"`) + +* `OVERVIEW` (value: `"Overview"`) + +* `PARENT_ID` (value: `"ParentId"`) + +* `PATH` (value: `"Path"`) + +* `PEOPLE` (value: `"People"`) + +* `PLAY_ACCESS` (value: `"PlayAccess"`) + +* `PRODUCTION_LOCATIONS` (value: `"ProductionLocations"`) + +* `PROVIDER_IDS` (value: `"ProviderIds"`) + +* `PRIMARY_IMAGE_ASPECT_RATIO` (value: `"PrimaryImageAspectRatio"`) + +* `RECURSIVE_ITEM_COUNT` (value: `"RecursiveItemCount"`) + +* `SETTINGS` (value: `"Settings"`) + +* `SCREENSHOT_IMAGE_TAGS` (value: `"ScreenshotImageTags"`) + +* `SERIES_PRIMARY_IMAGE` (value: `"SeriesPrimaryImage"`) + +* `SERIES_STUDIO` (value: `"SeriesStudio"`) + +* `SORT_NAME` (value: `"SortName"`) + +* `SPECIAL_EPISODE_NUMBERS` (value: `"SpecialEpisodeNumbers"`) + +* `STUDIOS` (value: `"Studios"`) + +* `BASIC_SYNC_INFO` (value: `"BasicSyncInfo"`) + +* `SYNC_INFO` (value: `"SyncInfo"`) + +* `TAGLINES` (value: `"Taglines"`) + +* `TAGS` (value: `"Tags"`) + +* `REMOTE_TRAILERS` (value: `"RemoteTrailers"`) + +* `MEDIA_STREAMS` (value: `"MediaStreams"`) + +* `SEASON_USER_DATA` (value: `"SeasonUserData"`) + +* `SERVICE_NAME` (value: `"ServiceName"`) + +* `THEME_SONG_IDS` (value: `"ThemeSongIds"`) + +* `THEME_VIDEO_IDS` (value: `"ThemeVideoIds"`) + +* `EXTERNAL_ETAG` (value: `"ExternalEtag"`) + +* `PRESENTATION_UNIQUE_KEY` (value: `"PresentationUniqueKey"`) + +* `INHERITED_PARENTAL_RATING_VALUE` (value: `"InheritedParentalRatingValue"`) + +* `EXTERNAL_SERIES_ID` (value: `"ExternalSeriesId"`) + +* `SERIES_PRESENTATION_UNIQUE_KEY` (value: `"SeriesPresentationUniqueKey"`) + +* `DATE_LAST_REFRESHED` (value: `"DateLastRefreshed"`) + +* `DATE_LAST_SAVED` (value: `"DateLastSaved"`) + +* `REFRESH_STATE` (value: `"RefreshState"`) + +* `CHANNEL_IMAGE` (value: `"ChannelImage"`) + +* `ENABLE_MEDIA_SOURCE_DISPLAY` (value: `"EnableMediaSourceDisplay"`) + +* `WIDTH` (value: `"Width"`) + +* `HEIGHT` (value: `"Height"`) + +* `EXTRA_IDS` (value: `"ExtraIds"`) + +* `LOCAL_TRAILER_COUNT` (value: `"LocalTrailerCount"`) + +* `IS_HD` (value: `"IsHD"`) + +* `SPECIAL_FEATURE_COUNT` (value: `"SpecialFeatureCount"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFilter.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFilter.md new file mode 100644 index 0000000000000..157df99b2e12c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemFilter.md @@ -0,0 +1,27 @@ + + +# ItemFilter + +## Enum + + +* `IS_FOLDER` (value: `"IsFolder"`) + +* `IS_NOT_FOLDER` (value: `"IsNotFolder"`) + +* `IS_UNPLAYED` (value: `"IsUnplayed"`) + +* `IS_PLAYED` (value: `"IsPlayed"`) + +* `IS_FAVORITE` (value: `"IsFavorite"`) + +* `IS_RESUMABLE` (value: `"IsResumable"`) + +* `LIKES` (value: `"Likes"`) + +* `DISLIKES` (value: `"Dislikes"`) + +* `IS_FAVORITE_OR_LIKES` (value: `"IsFavoriteOrLikes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemLookupApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemLookupApi.md new file mode 100644 index 0000000000000..838b0f06f96c2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemLookupApi.md @@ -0,0 +1,782 @@ +# ItemLookupApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**applySearchCriteria**](ItemLookupApi.md#applySearchCriteria) | **POST** /Items/RemoteSearch/Apply/{itemId} | Applies search criteria to an item and refreshes metadata. | +| [**getBookRemoteSearchResults**](ItemLookupApi.md#getBookRemoteSearchResults) | **POST** /Items/RemoteSearch/Book | Get book remote search. | +| [**getBoxSetRemoteSearchResults**](ItemLookupApi.md#getBoxSetRemoteSearchResults) | **POST** /Items/RemoteSearch/BoxSet | Get box set remote search. | +| [**getExternalIdInfos**](ItemLookupApi.md#getExternalIdInfos) | **GET** /Items/{itemId}/ExternalIdInfos | Get the item's external id info. | +| [**getMovieRemoteSearchResults**](ItemLookupApi.md#getMovieRemoteSearchResults) | **POST** /Items/RemoteSearch/Movie | Get movie remote search. | +| [**getMusicAlbumRemoteSearchResults**](ItemLookupApi.md#getMusicAlbumRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicAlbum | Get music album remote search. | +| [**getMusicArtistRemoteSearchResults**](ItemLookupApi.md#getMusicArtistRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicArtist | Get music artist remote search. | +| [**getMusicVideoRemoteSearchResults**](ItemLookupApi.md#getMusicVideoRemoteSearchResults) | **POST** /Items/RemoteSearch/MusicVideo | Get music video remote search. | +| [**getPersonRemoteSearchResults**](ItemLookupApi.md#getPersonRemoteSearchResults) | **POST** /Items/RemoteSearch/Person | Get person remote search. | +| [**getSeriesRemoteSearchResults**](ItemLookupApi.md#getSeriesRemoteSearchResults) | **POST** /Items/RemoteSearch/Series | Get series remote search. | +| [**getTrailerRemoteSearchResults**](ItemLookupApi.md#getTrailerRemoteSearchResults) | **POST** /Items/RemoteSearch/Trailer | Get trailer remote search. | + + + +# **applySearchCriteria** +> applySearchCriteria(itemId, remoteSearchResult, replaceAllImages) + +Applies search criteria to an item and refreshes metadata. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + RemoteSearchResult remoteSearchResult = new RemoteSearchResult(); // RemoteSearchResult | The remote search result. + Boolean replaceAllImages = true; // Boolean | Optional. Whether or not to replace all images. Default: True. + try { + apiInstance.applySearchCriteria(itemId, remoteSearchResult, replaceAllImages); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#applySearchCriteria"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **remoteSearchResult** | [**RemoteSearchResult**](RemoteSearchResult.md)| The remote search result. | | +| **replaceAllImages** | **Boolean**| Optional. Whether or not to replace all images. Default: True. | [optional] [default to true] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item metadata refreshed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBookRemoteSearchResults** +> List<RemoteSearchResult> getBookRemoteSearchResults(bookInfoRemoteSearchQuery) + +Get book remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery = new BookInfoRemoteSearchQuery(); // BookInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getBookRemoteSearchResults(bookInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getBookRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bookInfoRemoteSearchQuery** | [**BookInfoRemoteSearchQuery**](BookInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Book remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBoxSetRemoteSearchResults** +> List<RemoteSearchResult> getBoxSetRemoteSearchResults(boxSetInfoRemoteSearchQuery) + +Get box set remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery = new BoxSetInfoRemoteSearchQuery(); // BoxSetInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getBoxSetRemoteSearchResults(boxSetInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getBoxSetRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **boxSetInfoRemoteSearchQuery** | [**BoxSetInfoRemoteSearchQuery**](BoxSetInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Box set remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getExternalIdInfos** +> List<ExternalIdInfo> getExternalIdInfos(itemId) + +Get the item's external id info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getExternalIdInfos(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getExternalIdInfos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<ExternalIdInfo>**](ExternalIdInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | External id info retrieved. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMovieRemoteSearchResults** +> List<RemoteSearchResult> getMovieRemoteSearchResults(movieInfoRemoteSearchQuery) + +Get movie remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery = new MovieInfoRemoteSearchQuery(); // MovieInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMovieRemoteSearchResults(movieInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMovieRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **movieInfoRemoteSearchQuery** | [**MovieInfoRemoteSearchQuery**](MovieInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Movie remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicAlbumRemoteSearchResults** +> List<RemoteSearchResult> getMusicAlbumRemoteSearchResults(albumInfoRemoteSearchQuery) + +Get music album remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery = new AlbumInfoRemoteSearchQuery(); // AlbumInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicAlbumRemoteSearchResults(albumInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicAlbumRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **albumInfoRemoteSearchQuery** | [**AlbumInfoRemoteSearchQuery**](AlbumInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music album remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicArtistRemoteSearchResults** +> List<RemoteSearchResult> getMusicArtistRemoteSearchResults(artistInfoRemoteSearchQuery) + +Get music artist remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery = new ArtistInfoRemoteSearchQuery(); // ArtistInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicArtistRemoteSearchResults(artistInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicArtistRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **artistInfoRemoteSearchQuery** | [**ArtistInfoRemoteSearchQuery**](ArtistInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music artist remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicVideoRemoteSearchResults** +> List<RemoteSearchResult> getMusicVideoRemoteSearchResults(musicVideoInfoRemoteSearchQuery) + +Get music video remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery = new MusicVideoInfoRemoteSearchQuery(); // MusicVideoInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getMusicVideoRemoteSearchResults(musicVideoInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getMusicVideoRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **musicVideoInfoRemoteSearchQuery** | [**MusicVideoInfoRemoteSearchQuery**](MusicVideoInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music video remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPersonRemoteSearchResults** +> List<RemoteSearchResult> getPersonRemoteSearchResults(personLookupInfoRemoteSearchQuery) + +Get person remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery = new PersonLookupInfoRemoteSearchQuery(); // PersonLookupInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getPersonRemoteSearchResults(personLookupInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getPersonRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **personLookupInfoRemoteSearchQuery** | [**PersonLookupInfoRemoteSearchQuery**](PersonLookupInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Person remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesRemoteSearchResults** +> List<RemoteSearchResult> getSeriesRemoteSearchResults(seriesInfoRemoteSearchQuery) + +Get series remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery = new SeriesInfoRemoteSearchQuery(); // SeriesInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getSeriesRemoteSearchResults(seriesInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getSeriesRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesInfoRemoteSearchQuery** | [**SeriesInfoRemoteSearchQuery**](SeriesInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Series remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTrailerRemoteSearchResults** +> List<RemoteSearchResult> getTrailerRemoteSearchResults(trailerInfoRemoteSearchQuery) + +Get trailer remote search. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemLookupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemLookupApi apiInstance = new ItemLookupApi(defaultClient); + TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery = new TrailerInfoRemoteSearchQuery(); // TrailerInfoRemoteSearchQuery | Remote search query. + try { + List result = apiInstance.getTrailerRemoteSearchResults(trailerInfoRemoteSearchQuery); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemLookupApi#getTrailerRemoteSearchResults"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **trailerInfoRemoteSearchQuery** | [**TrailerInfoRemoteSearchQuery**](TrailerInfoRemoteSearchQuery.md)| Remote search query. | | + +### Return type + +[**List<RemoteSearchResult>**](RemoteSearchResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Trailer remote search executed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemRefreshApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemRefreshApi.md new file mode 100644 index 0000000000000..7ad5feeb2d7d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemRefreshApi.md @@ -0,0 +1,86 @@ +# ItemRefreshApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**refreshItem**](ItemRefreshApi.md#refreshItem) | **POST** /Items/{itemId}/Refresh | Refreshes metadata for an item. | + + + +# **refreshItem** +> refreshItem(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages) + +Refreshes metadata for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemRefreshApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemRefreshApi apiInstance = new ItemRefreshApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item id. + MetadataRefreshMode metadataRefreshMode = MetadataRefreshMode.fromValue("None"); // MetadataRefreshMode | (Optional) Specifies the metadata refresh mode. + MetadataRefreshMode imageRefreshMode = MetadataRefreshMode.fromValue("None"); // MetadataRefreshMode | (Optional) Specifies the image refresh mode. + Boolean replaceAllMetadata = false; // Boolean | (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. + Boolean replaceAllImages = false; // Boolean | (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. + try { + apiInstance.refreshItem(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages); + } catch (ApiException e) { + System.err.println("Exception when calling ItemRefreshApi#refreshItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item id. | | +| **metadataRefreshMode** | [**MetadataRefreshMode**](.md)| (Optional) Specifies the metadata refresh mode. | [optional] [default to None] [enum: None, ValidationOnly, Default, FullRefresh] | +| **imageRefreshMode** | [**MetadataRefreshMode**](.md)| (Optional) Specifies the image refresh mode. | [optional] [default to None] [enum: None, ValidationOnly, Default, FullRefresh] | +| **replaceAllMetadata** | **Boolean**| (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. | [optional] [default to false] | +| **replaceAllImages** | **Boolean**| (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item metadata refresh queued. | - | +| **404** | Item to refresh not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemUpdateApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemUpdateApi.md new file mode 100644 index 0000000000000..95ec04c230706 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemUpdateApi.md @@ -0,0 +1,223 @@ +# ItemUpdateApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMetadataEditorInfo**](ItemUpdateApi.md#getMetadataEditorInfo) | **GET** /Items/{itemId}/MetadataEditor | Gets metadata editor info for an item. | +| [**updateItem**](ItemUpdateApi.md#updateItem) | **POST** /Items/{itemId} | Updates an item. | +| [**updateItemContentType**](ItemUpdateApi.md#updateItemContentType) | **POST** /Items/{itemId}/ContentType | Updates an item's content type. | + + + +# **getMetadataEditorInfo** +> MetadataEditorInfo getMetadataEditorInfo(itemId) + +Gets metadata editor info for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + MetadataEditorInfo result = apiInstance.getMetadataEditorInfo(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#getMetadataEditorInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**MetadataEditorInfo**](MetadataEditorInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item metadata editor returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItem** +> updateItem(itemId, baseItemDto) + +Updates an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + BaseItemDto baseItemDto = new BaseItemDto(); // BaseItemDto | The new item properties. + try { + apiInstance.updateItem(itemId, baseItemDto); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#updateItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **baseItemDto** | [**BaseItemDto**](BaseItemDto.md)| The new item properties. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateItemContentType** +> updateItemContentType(itemId, contentType) + +Updates an item's content type. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemUpdateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemUpdateApi apiInstance = new ItemUpdateApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String contentType = "contentType_example"; // String | The content type of the item. + try { + apiInstance.updateItemContentType(itemId, contentType); + } catch (ApiException e) { + System.err.println("Exception when calling ItemUpdateApi#updateItemContentType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **contentType** | **String**| The content type of the item. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item content type updated. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemsApi.md new file mode 100644 index 0000000000000..45e3956d2f715 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ItemsApi.md @@ -0,0 +1,582 @@ +# ItemsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getItems**](ItemsApi.md#getItems) | **GET** /Items | Gets items based on a query. | +| [**getItemsByUserId**](ItemsApi.md#getItemsByUserId) | **GET** /Users/{userId}/Items | Gets items based on a query. | +| [**getResumeItems**](ItemsApi.md#getResumeItems) | **GET** /Users/{userId}/Items/Resume | Gets items based on a query. | + + + +# **getItems** +> BaseItemDtoQueryResult getItems(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages) + +Gets items based on a query. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id supplied as query parameter. + String maxOfficialRating = "maxOfficialRating_example"; // String | Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + Boolean hasThemeSong = true; // Boolean | Optional filter by items with theme songs. + Boolean hasThemeVideo = true; // Boolean | Optional filter by items with theme videos. + Boolean hasSubtitles = true; // Boolean | Optional filter by items with subtitles. + Boolean hasSpecialFeature = true; // Boolean | Optional filter by items with special features. + Boolean hasTrailer = true; // Boolean | Optional filter by items with trailers. + String adjacentTo = "adjacentTo_example"; // String | Optional. Return items that are siblings of a supplied item. + Integer parentIndexNumber = 56; // Integer | Optional filter by parent index number. + Boolean hasParentalRating = true; // Boolean | Optional filter by items that have or do not have a parental rating. + Boolean isHd = true; // Boolean | Optional filter by items that are HD or not. + Boolean is4K = true; // Boolean | Optional filter by items that are 4K or not. + List locationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + List excludeLocationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + Boolean isMissing = true; // Boolean | Optional filter by items that are missing episodes or not. + Boolean isUnaired = true; // Boolean | Optional filter by items that are unaired episodes or not. + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Double minCriticRating = 3.4D; // Double | Optional filter by minimum critic rating. + OffsetDateTime minPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere date. Format = ISO. + OffsetDateTime minDateLastSaved = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date. Format = ISO. + OffsetDateTime minDateLastSavedForUser = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date for the current user. Format = ISO. + OffsetDateTime maxPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere date. Format = ISO. + Boolean hasOverview = true; // Boolean | Optional filter by items that have an overview or not. + Boolean hasImdbId = true; // Boolean | Optional filter by items that have an imdb id or not. + Boolean hasTmdbId = true; // Boolean | Optional filter by items that have a tmdb id or not. + Boolean hasTvdbId = true; // Boolean | Optional filter by items that have a tvdb id or not. + Boolean isMovie = true; // Boolean | Optional filter for live tv movies. + Boolean isSeries = true; // Boolean | Optional filter for live tv series. + Boolean isNews = true; // Boolean | Optional filter for live tv news. + Boolean isKids = true; // Boolean | Optional filter for live tv kids. + Boolean isSports = true; // Boolean | Optional filter for live tv sports. + List excludeItemIds = Arrays.asList(); // List | Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean recursive = true; // Boolean | When searching within folders, this determines whether or not the search will be recursive. true/false. + String searchTerm = "searchTerm_example"; // String | Optional. Filter based on a search term. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List imageTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean isPlayed = true; // Boolean | Optional filter by items that are played, or not. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person id. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List artists = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + List excludeArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + List artistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified artist id. + List albumArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified album artist id. + List contributingArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + List albums = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + List albumIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + List ids = Arrays.asList(); // List | Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + List videoTypes = Arrays.asList(); // List | Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + String minOfficialRating = "minOfficialRating_example"; // String | Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + Boolean isLocked = true; // Boolean | Optional filter by items that are locked. + Boolean isPlaceHolder = true; // Boolean | Optional filter by items that are placeholders. + Boolean hasOfficialRating = true; // Boolean | Optional filter by items that have official ratings. + Boolean collapseBoxSetItems = true; // Boolean | Whether or not to hide items behind their boxsets. + Integer minWidth = 56; // Integer | Optional. Filter by the minimum width of the item. + Integer minHeight = 56; // Integer | Optional. Filter by the minimum height of the item. + Integer maxWidth = 56; // Integer | Optional. Filter by the maximum width of the item. + Integer maxHeight = 56; // Integer | Optional. Filter by the maximum height of the item. + Boolean is3D = true; // Boolean | Optional filter by items that are 3D, or not. + List seriesStatus = Arrays.asList(); // List | Optional filter by Series Status. Allows multiple, comma delimited. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getItems(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id supplied as query parameter. | [optional] | +| **maxOfficialRating** | **String**| Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **hasThemeSong** | **Boolean**| Optional filter by items with theme songs. | [optional] | +| **hasThemeVideo** | **Boolean**| Optional filter by items with theme videos. | [optional] | +| **hasSubtitles** | **Boolean**| Optional filter by items with subtitles. | [optional] | +| **hasSpecialFeature** | **Boolean**| Optional filter by items with special features. | [optional] | +| **hasTrailer** | **Boolean**| Optional filter by items with trailers. | [optional] | +| **adjacentTo** | **String**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **parentIndexNumber** | **Integer**| Optional filter by parent index number. | [optional] | +| **hasParentalRating** | **Boolean**| Optional filter by items that have or do not have a parental rating. | [optional] | +| **isHd** | **Boolean**| Optional filter by items that are HD or not. | [optional] | +| **is4K** | **Boolean**| Optional filter by items that are 4K or not. | [optional] | +| **locationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. | [optional] | +| **excludeLocationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. | [optional] | +| **isMissing** | **Boolean**| Optional filter by items that are missing episodes or not. | [optional] | +| **isUnaired** | **Boolean**| Optional filter by items that are unaired episodes or not. | [optional] | +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **minCriticRating** | **Double**| Optional filter by minimum critic rating. | [optional] | +| **minPremiereDate** | **OffsetDateTime**| Optional. The minimum premiere date. Format = ISO. | [optional] | +| **minDateLastSaved** | **OffsetDateTime**| Optional. The minimum last saved date. Format = ISO. | [optional] | +| **minDateLastSavedForUser** | **OffsetDateTime**| Optional. The minimum last saved date for the current user. Format = ISO. | [optional] | +| **maxPremiereDate** | **OffsetDateTime**| Optional. The maximum premiere date. Format = ISO. | [optional] | +| **hasOverview** | **Boolean**| Optional filter by items that have an overview or not. | [optional] | +| **hasImdbId** | **Boolean**| Optional filter by items that have an imdb id or not. | [optional] | +| **hasTmdbId** | **Boolean**| Optional filter by items that have a tmdb id or not. | [optional] | +| **hasTvdbId** | **Boolean**| Optional filter by items that have a tvdb id or not. | [optional] | +| **isMovie** | **Boolean**| Optional filter for live tv movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for live tv series. | [optional] | +| **isNews** | **Boolean**| Optional filter for live tv news. | [optional] | +| **isKids** | **Boolean**| Optional filter for live tv kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for live tv sports. | [optional] | +| **excludeItemIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **recursive** | **Boolean**| When searching within folders, this determines whether or not the search will be recursive. true/false. | [optional] | +| **searchTerm** | **String**| Optional. Filter based on a search term. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **imageTypes** | [**List<ImageType>**](ImageType.md)| Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **isPlayed** | **Boolean**| Optional filter by items that are played, or not. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person id. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **artists** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. | [optional] | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. | [optional] | +| **artistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified artist id. | [optional] | +| **albumArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified album artist id. | [optional] | +| **contributingArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. | [optional] | +| **albums** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. | [optional] | +| **albumIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. | [optional] | +| **videoTypes** | [**List<VideoType>**](VideoType.md)| Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. | [optional] | +| **minOfficialRating** | **String**| Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **isLocked** | **Boolean**| Optional filter by items that are locked. | [optional] | +| **isPlaceHolder** | **Boolean**| Optional filter by items that are placeholders. | [optional] | +| **hasOfficialRating** | **Boolean**| Optional filter by items that have official ratings. | [optional] | +| **collapseBoxSetItems** | **Boolean**| Whether or not to hide items behind their boxsets. | [optional] | +| **minWidth** | **Integer**| Optional. Filter by the minimum width of the item. | [optional] | +| **minHeight** | **Integer**| Optional. Filter by the minimum height of the item. | [optional] | +| **maxWidth** | **Integer**| Optional. Filter by the maximum width of the item. | [optional] | +| **maxHeight** | **Integer**| Optional. Filter by the maximum height of the item. | [optional] | +| **is3D** | **Boolean**| Optional filter by items that are 3D, or not. | [optional] | +| **seriesStatus** | [**List<SeriesStatus>**](SeriesStatus.md)| Optional filter by Series Status. Allows multiple, comma delimited. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItemsByUserId** +> BaseItemDtoQueryResult getItemsByUserId(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages) + +Gets items based on a query. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id supplied as query parameter. + String maxOfficialRating = "maxOfficialRating_example"; // String | Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + Boolean hasThemeSong = true; // Boolean | Optional filter by items with theme songs. + Boolean hasThemeVideo = true; // Boolean | Optional filter by items with theme videos. + Boolean hasSubtitles = true; // Boolean | Optional filter by items with subtitles. + Boolean hasSpecialFeature = true; // Boolean | Optional filter by items with special features. + Boolean hasTrailer = true; // Boolean | Optional filter by items with trailers. + String adjacentTo = "adjacentTo_example"; // String | Optional. Return items that are siblings of a supplied item. + Integer parentIndexNumber = 56; // Integer | Optional filter by parent index number. + Boolean hasParentalRating = true; // Boolean | Optional filter by items that have or do not have a parental rating. + Boolean isHd = true; // Boolean | Optional filter by items that are HD or not. + Boolean is4K = true; // Boolean | Optional filter by items that are 4K or not. + List locationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + List excludeLocationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + Boolean isMissing = true; // Boolean | Optional filter by items that are missing episodes or not. + Boolean isUnaired = true; // Boolean | Optional filter by items that are unaired episodes or not. + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Double minCriticRating = 3.4D; // Double | Optional filter by minimum critic rating. + OffsetDateTime minPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere date. Format = ISO. + OffsetDateTime minDateLastSaved = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date. Format = ISO. + OffsetDateTime minDateLastSavedForUser = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date for the current user. Format = ISO. + OffsetDateTime maxPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere date. Format = ISO. + Boolean hasOverview = true; // Boolean | Optional filter by items that have an overview or not. + Boolean hasImdbId = true; // Boolean | Optional filter by items that have an imdb id or not. + Boolean hasTmdbId = true; // Boolean | Optional filter by items that have a tmdb id or not. + Boolean hasTvdbId = true; // Boolean | Optional filter by items that have a tvdb id or not. + Boolean isMovie = true; // Boolean | Optional filter for live tv movies. + Boolean isSeries = true; // Boolean | Optional filter for live tv series. + Boolean isNews = true; // Boolean | Optional filter for live tv news. + Boolean isKids = true; // Boolean | Optional filter for live tv kids. + Boolean isSports = true; // Boolean | Optional filter for live tv sports. + List excludeItemIds = Arrays.asList(); // List | Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean recursive = true; // Boolean | When searching within folders, this determines whether or not the search will be recursive. true/false. + String searchTerm = "searchTerm_example"; // String | Optional. Filter based on a search term. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List imageTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean isPlayed = true; // Boolean | Optional filter by items that are played, or not. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person id. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List artists = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + List excludeArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + List artistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified artist id. + List albumArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified album artist id. + List contributingArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + List albums = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + List albumIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + List ids = Arrays.asList(); // List | Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + List videoTypes = Arrays.asList(); // List | Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + String minOfficialRating = "minOfficialRating_example"; // String | Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + Boolean isLocked = true; // Boolean | Optional filter by items that are locked. + Boolean isPlaceHolder = true; // Boolean | Optional filter by items that are placeholders. + Boolean hasOfficialRating = true; // Boolean | Optional filter by items that have official ratings. + Boolean collapseBoxSetItems = true; // Boolean | Whether or not to hide items behind their boxsets. + Integer minWidth = 56; // Integer | Optional. Filter by the minimum width of the item. + Integer minHeight = 56; // Integer | Optional. Filter by the minimum height of the item. + Integer maxWidth = 56; // Integer | Optional. Filter by the maximum width of the item. + Integer maxHeight = 56; // Integer | Optional. Filter by the maximum height of the item. + Boolean is3D = true; // Boolean | Optional filter by items that are 3D, or not. + List seriesStatus = Arrays.asList(); // List | Optional filter by Series Status. Allows multiple, comma delimited. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getItemsByUserId(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getItemsByUserId"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id supplied as query parameter. | | +| **maxOfficialRating** | **String**| Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **hasThemeSong** | **Boolean**| Optional filter by items with theme songs. | [optional] | +| **hasThemeVideo** | **Boolean**| Optional filter by items with theme videos. | [optional] | +| **hasSubtitles** | **Boolean**| Optional filter by items with subtitles. | [optional] | +| **hasSpecialFeature** | **Boolean**| Optional filter by items with special features. | [optional] | +| **hasTrailer** | **Boolean**| Optional filter by items with trailers. | [optional] | +| **adjacentTo** | **String**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **parentIndexNumber** | **Integer**| Optional filter by parent index number. | [optional] | +| **hasParentalRating** | **Boolean**| Optional filter by items that have or do not have a parental rating. | [optional] | +| **isHd** | **Boolean**| Optional filter by items that are HD or not. | [optional] | +| **is4K** | **Boolean**| Optional filter by items that are 4K or not. | [optional] | +| **locationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. | [optional] | +| **excludeLocationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. | [optional] | +| **isMissing** | **Boolean**| Optional filter by items that are missing episodes or not. | [optional] | +| **isUnaired** | **Boolean**| Optional filter by items that are unaired episodes or not. | [optional] | +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **minCriticRating** | **Double**| Optional filter by minimum critic rating. | [optional] | +| **minPremiereDate** | **OffsetDateTime**| Optional. The minimum premiere date. Format = ISO. | [optional] | +| **minDateLastSaved** | **OffsetDateTime**| Optional. The minimum last saved date. Format = ISO. | [optional] | +| **minDateLastSavedForUser** | **OffsetDateTime**| Optional. The minimum last saved date for the current user. Format = ISO. | [optional] | +| **maxPremiereDate** | **OffsetDateTime**| Optional. The maximum premiere date. Format = ISO. | [optional] | +| **hasOverview** | **Boolean**| Optional filter by items that have an overview or not. | [optional] | +| **hasImdbId** | **Boolean**| Optional filter by items that have an imdb id or not. | [optional] | +| **hasTmdbId** | **Boolean**| Optional filter by items that have a tmdb id or not. | [optional] | +| **hasTvdbId** | **Boolean**| Optional filter by items that have a tvdb id or not. | [optional] | +| **isMovie** | **Boolean**| Optional filter for live tv movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for live tv series. | [optional] | +| **isNews** | **Boolean**| Optional filter for live tv news. | [optional] | +| **isKids** | **Boolean**| Optional filter for live tv kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for live tv sports. | [optional] | +| **excludeItemIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **recursive** | **Boolean**| When searching within folders, this determines whether or not the search will be recursive. true/false. | [optional] | +| **searchTerm** | **String**| Optional. Filter based on a search term. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **imageTypes** | [**List<ImageType>**](ImageType.md)| Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **isPlayed** | **Boolean**| Optional filter by items that are played, or not. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person id. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **artists** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. | [optional] | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. | [optional] | +| **artistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified artist id. | [optional] | +| **albumArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified album artist id. | [optional] | +| **contributingArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. | [optional] | +| **albums** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. | [optional] | +| **albumIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. | [optional] | +| **videoTypes** | [**List<VideoType>**](VideoType.md)| Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. | [optional] | +| **minOfficialRating** | **String**| Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **isLocked** | **Boolean**| Optional filter by items that are locked. | [optional] | +| **isPlaceHolder** | **Boolean**| Optional filter by items that are placeholders. | [optional] | +| **hasOfficialRating** | **Boolean**| Optional filter by items that have official ratings. | [optional] | +| **collapseBoxSetItems** | **Boolean**| Whether or not to hide items behind their boxsets. | [optional] | +| **minWidth** | **Integer**| Optional. Filter by the minimum width of the item. | [optional] | +| **minHeight** | **Integer**| Optional. Filter by the minimum height of the item. | [optional] | +| **maxWidth** | **Integer**| Optional. Filter by the maximum width of the item. | [optional] | +| **maxHeight** | **Integer**| Optional. Filter by the maximum height of the item. | [optional] | +| **is3D** | **Boolean**| Optional filter by items that are 3D, or not. | [optional] | +| **seriesStatus** | [**List<SeriesStatus>**](SeriesStatus.md)| Optional filter by Series Status. Allows multiple, comma delimited. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getResumeItems** +> BaseItemDtoQueryResult getResumeItems(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions) + +Gets items based on a query. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ItemsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ItemsApi apiInstance = new ItemsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + Integer startIndex = 56; // Integer | The start index. + Integer limit = 56; // Integer | The item limit. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean excludeActiveSessions = false; // Boolean | Optional. Whether to exclude the currently active sessions. + try { + BaseItemDtoQueryResult result = apiInstance.getResumeItems(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ItemsApi#getResumeItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **startIndex** | **Integer**| The start index. | [optional] | +| **limit** | **Integer**| The item limit. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] [default to true] | +| **excludeActiveSessions** | **Boolean**| Optional. Whether to exclude the currently active sessions. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/JoinGroupRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/JoinGroupRequestDto.md new file mode 100644 index 0000000000000..2b69685838904 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/JoinGroupRequestDto.md @@ -0,0 +1,14 @@ + + +# JoinGroupRequestDto + +Class JoinGroupRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets or sets the group identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/KeepUntil.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/KeepUntil.md new file mode 100644 index 0000000000000..8061580d8f480 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/KeepUntil.md @@ -0,0 +1,17 @@ + + +# KeepUntil + +## Enum + + +* `UNTIL_DELETED` (value: `"UntilDeleted"`) + +* `UNTIL_SPACE_NEEDED` (value: `"UntilSpaceNeeded"`) + +* `UNTIL_WATCHED` (value: `"UntilWatched"`) + +* `UNTIL_DATE` (value: `"UntilDate"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryApi.md new file mode 100644 index 0000000000000..297ff1aeef8f3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryApi.md @@ -0,0 +1,1818 @@ +# LibraryApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteItem**](LibraryApi.md#deleteItem) | **DELETE** /Items/{itemId} | Deletes an item from the library and filesystem. | +| [**deleteItems**](LibraryApi.md#deleteItems) | **DELETE** /Items | Deletes items from the library and filesystem. | +| [**getAncestors**](LibraryApi.md#getAncestors) | **GET** /Items/{itemId}/Ancestors | Gets all parents of an item. | +| [**getCriticReviews**](LibraryApi.md#getCriticReviews) | **GET** /Items/{itemId}/CriticReviews | Gets critic review for an item. | +| [**getDownload**](LibraryApi.md#getDownload) | **GET** /Items/{itemId}/Download | Downloads item media. | +| [**getFile**](LibraryApi.md#getFile) | **GET** /Items/{itemId}/File | Get the original file of an item. | +| [**getItemCounts**](LibraryApi.md#getItemCounts) | **GET** /Items/Counts | Get item counts. | +| [**getLibraryOptionsInfo**](LibraryApi.md#getLibraryOptionsInfo) | **GET** /Libraries/AvailableOptions | Gets the library options info. | +| [**getMediaFolders**](LibraryApi.md#getMediaFolders) | **GET** /Library/MediaFolders | Gets all user media folders. | +| [**getPhysicalPaths**](LibraryApi.md#getPhysicalPaths) | **GET** /Library/PhysicalPaths | Gets a list of physical paths from virtual folders. | +| [**getSimilarAlbums**](LibraryApi.md#getSimilarAlbums) | **GET** /Albums/{itemId}/Similar | Gets similar items. | +| [**getSimilarArtists**](LibraryApi.md#getSimilarArtists) | **GET** /Artists/{itemId}/Similar | Gets similar items. | +| [**getSimilarItems**](LibraryApi.md#getSimilarItems) | **GET** /Items/{itemId}/Similar | Gets similar items. | +| [**getSimilarMovies**](LibraryApi.md#getSimilarMovies) | **GET** /Movies/{itemId}/Similar | Gets similar items. | +| [**getSimilarShows**](LibraryApi.md#getSimilarShows) | **GET** /Shows/{itemId}/Similar | Gets similar items. | +| [**getSimilarTrailers**](LibraryApi.md#getSimilarTrailers) | **GET** /Trailers/{itemId}/Similar | Gets similar items. | +| [**getThemeMedia**](LibraryApi.md#getThemeMedia) | **GET** /Items/{itemId}/ThemeMedia | Get theme songs and videos for an item. | +| [**getThemeSongs**](LibraryApi.md#getThemeSongs) | **GET** /Items/{itemId}/ThemeSongs | Get theme songs for an item. | +| [**getThemeVideos**](LibraryApi.md#getThemeVideos) | **GET** /Items/{itemId}/ThemeVideos | Get theme videos for an item. | +| [**postAddedMovies**](LibraryApi.md#postAddedMovies) | **POST** /Library/Movies/Added | Reports that new movies have been added by an external source. | +| [**postAddedSeries**](LibraryApi.md#postAddedSeries) | **POST** /Library/Series/Added | Reports that new episodes of a series have been added by an external source. | +| [**postUpdatedMedia**](LibraryApi.md#postUpdatedMedia) | **POST** /Library/Media/Updated | Reports that new movies have been added by an external source. | +| [**postUpdatedMovies**](LibraryApi.md#postUpdatedMovies) | **POST** /Library/Movies/Updated | Reports that new movies have been added by an external source. | +| [**postUpdatedSeries**](LibraryApi.md#postUpdatedSeries) | **POST** /Library/Series/Updated | Reports that new episodes of a series have been added by an external source. | +| [**refreshLibrary**](LibraryApi.md#refreshLibrary) | **POST** /Library/Refresh | Starts a library scan. | + + + +# **deleteItem** +> deleteItem(itemId) + +Deletes an item from the library and filesystem. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + apiInstance.deleteItem(itemId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#deleteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item deleted. | - | +| **401** | Unauthorized access. | - | +| **403** | Forbidden | - | + + +# **deleteItems** +> deleteItems(ids) + +Deletes items from the library and filesystem. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + List ids = Arrays.asList(); // List | The item ids. + try { + apiInstance.deleteItems(ids); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#deleteItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ids** | [**List<UUID>**](UUID.md)| The item ids. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items deleted. | - | +| **401** | Unauthorized access. | - | +| **403** | Forbidden | - | + + +# **getAncestors** +> List<BaseItemDto> getAncestors(itemId, userId) + +Gets all parents of an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + List result = apiInstance.getAncestors(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getAncestors"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item parents returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getCriticReviews** +> BaseItemDtoQueryResult getCriticReviews(itemId) + +Gets critic review for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String itemId = "itemId_example"; // String | + try { + BaseItemDtoQueryResult result = apiInstance.getCriticReviews(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getCriticReviews"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| | | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Critic reviews returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDownload** +> File getDownload(itemId) + +Downloads item media. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + File result = apiInstance.getDownload(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getDownload"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media downloaded. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFile** +> File getFile(itemId) + +Get the original file of an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + File result = apiInstance.getFile(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, audio/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File stream returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItemCounts** +> ItemCounts getItemCounts(userId, isFavorite) + +Get item counts. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Get counts from a specific user's library. + Boolean isFavorite = true; // Boolean | Optional. Get counts of favorite items. + try { + ItemCounts result = apiInstance.getItemCounts(userId, isFavorite); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getItemCounts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Get counts from a specific user's library. | [optional] | +| **isFavorite** | **Boolean**| Optional. Get counts of favorite items. | [optional] | + +### Return type + +[**ItemCounts**](ItemCounts.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item counts returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLibraryOptionsInfo** +> LibraryOptionsResultDto getLibraryOptionsInfo(libraryContentType, isNewLibrary) + +Gets the library options info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String libraryContentType = "libraryContentType_example"; // String | Library content type. + Boolean isNewLibrary = false; // Boolean | Whether this is a new library. + try { + LibraryOptionsResultDto result = apiInstance.getLibraryOptionsInfo(libraryContentType, isNewLibrary); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getLibraryOptionsInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **libraryContentType** | **String**| Library content type. | [optional] | +| **isNewLibrary** | **Boolean**| Whether this is a new library. | [optional] [default to false] | + +### Return type + +[**LibraryOptionsResultDto**](LibraryOptionsResultDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Library options info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMediaFolders** +> BaseItemDtoQueryResult getMediaFolders(isHidden) + +Gets all user media folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional. Filter by folders that are marked hidden, or not. + try { + BaseItemDtoQueryResult result = apiInstance.getMediaFolders(isHidden); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getMediaFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional. Filter by folders that are marked hidden, or not. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media folders returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPhysicalPaths** +> List<String> getPhysicalPaths() + +Gets a list of physical paths from virtual folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + try { + List result = apiInstance.getPhysicalPaths(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getPhysicalPaths"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**List<String>** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Physical paths returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarAlbums** +> BaseItemDtoQueryResult getSimilarAlbums(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarAlbums(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarAlbums"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarArtists** +> BaseItemDtoQueryResult getSimilarArtists(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarArtists(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarArtists"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarItems** +> BaseItemDtoQueryResult getSimilarItems(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarItems(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarMovies** +> BaseItemDtoQueryResult getSimilarMovies(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarMovies(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarShows** +> BaseItemDtoQueryResult getSimilarShows(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarShows(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarShows"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSimilarTrailers** +> BaseItemDtoQueryResult getSimilarTrailers(itemId, excludeArtistIds, userId, limit, fields) + +Gets similar items. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List excludeArtistIds = Arrays.asList(); // List | Exclude artist ids. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + try { + BaseItemDtoQueryResult result = apiInstance.getSimilarTrailers(itemId, excludeArtistIds, userId, limit, fields); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getSimilarTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Exclude artist ids. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Similar items returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeMedia** +> AllThemeMediaResult getThemeMedia(itemId, userId, inheritFromParent) + +Get theme songs and videos for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + try { + AllThemeMediaResult result = apiInstance.getThemeMedia(itemId, userId, inheritFromParent); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | + +### Return type + +[**AllThemeMediaResult**](AllThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme songs and videos returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeSongs** +> ThemeMediaResult getThemeSongs(itemId, userId, inheritFromParent) + +Get theme songs for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + try { + ThemeMediaResult result = apiInstance.getThemeSongs(itemId, userId, inheritFromParent); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeSongs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | + +### Return type + +[**ThemeMediaResult**](ThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme songs returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getThemeVideos** +> ThemeMediaResult getThemeVideos(itemId, userId, inheritFromParent) + +Get theme videos for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + Boolean inheritFromParent = false; // Boolean | Optional. Determines whether or not parent items should be searched for theme media. + try { + ThemeMediaResult result = apiInstance.getThemeVideos(itemId, userId, inheritFromParent); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#getThemeVideos"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **inheritFromParent** | **Boolean**| Optional. Determines whether or not parent items should be searched for theme media. | [optional] [default to false] | + +### Return type + +[**ThemeMediaResult**](ThemeMediaResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Theme videos returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postAddedMovies** +> postAddedMovies(tmdbId, imdbId) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tmdbId = "tmdbId_example"; // String | The tmdbId. + String imdbId = "imdbId_example"; // String | The imdbId. + try { + apiInstance.postAddedMovies(tmdbId, imdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postAddedMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tmdbId** | **String**| The tmdbId. | [optional] | +| **imdbId** | **String**| The imdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postAddedSeries** +> postAddedSeries(tvdbId) + +Reports that new episodes of a series have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tvdbId = "tvdbId_example"; // String | The tvdbId. + try { + apiInstance.postAddedSeries(tvdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postAddedSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tvdbId** | **String**| The tvdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedMedia** +> postUpdatedMedia(mediaUpdateInfoDto) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + MediaUpdateInfoDto mediaUpdateInfoDto = new MediaUpdateInfoDto(); // MediaUpdateInfoDto | The update paths. + try { + apiInstance.postUpdatedMedia(mediaUpdateInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mediaUpdateInfoDto** | [**MediaUpdateInfoDto**](MediaUpdateInfoDto.md)| The update paths. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedMovies** +> postUpdatedMovies(tmdbId, imdbId) + +Reports that new movies have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tmdbId = "tmdbId_example"; // String | The tmdbId. + String imdbId = "imdbId_example"; // String | The imdbId. + try { + apiInstance.postUpdatedMovies(tmdbId, imdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedMovies"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tmdbId** | **String**| The tmdbId. | [optional] | +| **imdbId** | **String**| The imdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postUpdatedSeries** +> postUpdatedSeries(tvdbId) + +Reports that new episodes of a series have been added by an external source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + String tvdbId = "tvdbId_example"; // String | The tvdbId. + try { + apiInstance.postUpdatedSeries(tvdbId); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#postUpdatedSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tvdbId** | **String**| The tvdbId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Report success. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **refreshLibrary** +> refreshLibrary() + +Starts a library scan. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryApi apiInstance = new LibraryApi(defaultClient); + try { + apiInstance.refreshLibrary(); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryApi#refreshLibrary"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Library scan started. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionInfoDto.md new file mode 100644 index 0000000000000..5a3c8ae3ce685 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionInfoDto.md @@ -0,0 +1,15 @@ + + +# LibraryOptionInfoDto + +Library option info dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets name. | [optional] | +|**defaultEnabled** | **Boolean** | Gets or sets a value indicating whether default enabled. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptions.md new file mode 100644 index 0000000000000..dc8f5ada1b74f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptions.md @@ -0,0 +1,39 @@ + + +# LibraryOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enablePhotos** | **Boolean** | | [optional] | +|**enableRealtimeMonitor** | **Boolean** | | [optional] | +|**enableChapterImageExtraction** | **Boolean** | | [optional] | +|**extractChapterImagesDuringLibraryScan** | **Boolean** | | [optional] | +|**pathInfos** | [**List<MediaPathInfo>**](MediaPathInfo.md) | | [optional] | +|**saveLocalMetadata** | **Boolean** | | [optional] | +|**enableInternetProviders** | **Boolean** | | [optional] | +|**enableAutomaticSeriesGrouping** | **Boolean** | | [optional] | +|**enableEmbeddedTitles** | **Boolean** | | [optional] | +|**enableEmbeddedEpisodeInfos** | **Boolean** | | [optional] | +|**automaticRefreshIntervalDays** | **Integer** | | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**seasonZeroDisplayName** | **String** | | [optional] | +|**metadataSavers** | **List<String>** | | [optional] | +|**disabledLocalMetadataReaders** | **List<String>** | | [optional] | +|**localMetadataReaderOrder** | **List<String>** | | [optional] | +|**disabledSubtitleFetchers** | **List<String>** | | [optional] | +|**subtitleFetcherOrder** | **List<String>** | | [optional] | +|**skipSubtitlesIfEmbeddedSubtitlesPresent** | **Boolean** | | [optional] | +|**skipSubtitlesIfAudioTrackMatches** | **Boolean** | | [optional] | +|**subtitleDownloadLanguages** | **List<String>** | | [optional] | +|**requirePerfectSubtitleMatch** | **Boolean** | | [optional] | +|**saveSubtitlesWithMedia** | **Boolean** | | [optional] | +|**automaticallyAddToCollection** | **Boolean** | | [optional] | +|**allowEmbeddedSubtitles** | **EmbeddedSubtitleOptions** | An enum representing the options to disable embedded subs. | [optional] | +|**typeOptions** | [**List<TypeOptions>**](TypeOptions.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionsResultDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionsResultDto.md new file mode 100644 index 0000000000000..88ca07b312bef --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryOptionsResultDto.md @@ -0,0 +1,17 @@ + + +# LibraryOptionsResultDto + +Library options result dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**metadataSavers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata savers. | [optional] | +|**metadataReaders** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata readers. | [optional] | +|**subtitleFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the subtitle fetchers. | [optional] | +|**typeOptions** | [**List<LibraryTypeOptionsDto>**](LibraryTypeOptionsDto.md) | Gets or sets the type options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryStructureApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryStructureApi.md new file mode 100644 index 0000000000000..a37433377ec6f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryStructureApi.md @@ -0,0 +1,579 @@ +# LibraryStructureApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addMediaPath**](LibraryStructureApi.md#addMediaPath) | **POST** /Library/VirtualFolders/Paths | Add a media path to a library. | +| [**addVirtualFolder**](LibraryStructureApi.md#addVirtualFolder) | **POST** /Library/VirtualFolders | Adds a virtual folder. | +| [**getVirtualFolders**](LibraryStructureApi.md#getVirtualFolders) | **GET** /Library/VirtualFolders | Gets all virtual folders. | +| [**removeMediaPath**](LibraryStructureApi.md#removeMediaPath) | **DELETE** /Library/VirtualFolders/Paths | Remove a media path. | +| [**removeVirtualFolder**](LibraryStructureApi.md#removeVirtualFolder) | **DELETE** /Library/VirtualFolders | Removes a virtual folder. | +| [**renameVirtualFolder**](LibraryStructureApi.md#renameVirtualFolder) | **POST** /Library/VirtualFolders/Name | Renames a virtual folder. | +| [**updateLibraryOptions**](LibraryStructureApi.md#updateLibraryOptions) | **POST** /Library/VirtualFolders/LibraryOptions | Update library options. | +| [**updateMediaPath**](LibraryStructureApi.md#updateMediaPath) | **POST** /Library/VirtualFolders/Paths/Update | Updates a media path. | + + + +# **addMediaPath** +> addMediaPath(mediaPathDto, refreshLibrary) + +Add a media path to a library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + MediaPathDto mediaPathDto = new MediaPathDto(); // MediaPathDto | The media path dto. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.addMediaPath(mediaPathDto, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#addMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mediaPathDto** | [**MediaPathDto**](MediaPathDto.md)| The media path dto. | | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path added. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **addVirtualFolder** +> addVirtualFolder(name, collectionType, paths, refreshLibrary, addVirtualFolderDto) + +Adds a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the virtual folder. + CollectionTypeOptions collectionType = CollectionTypeOptions.fromValue("Movies"); // CollectionTypeOptions | The type of the collection. + List paths = Arrays.asList(); // List | The paths of the virtual folder. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + AddVirtualFolderDto addVirtualFolderDto = new AddVirtualFolderDto(); // AddVirtualFolderDto | The library options. + try { + apiInstance.addVirtualFolder(name, collectionType, paths, refreshLibrary, addVirtualFolderDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#addVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the virtual folder. | [optional] | +| **collectionType** | [**CollectionTypeOptions**](.md)| The type of the collection. | [optional] [enum: Movies, TvShows, Music, MusicVideos, HomeVideos, BoxSets, Books, Mixed] | +| **paths** | [**List<String>**](String.md)| The paths of the virtual folder. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | +| **addVirtualFolderDto** | [**AddVirtualFolderDto**](AddVirtualFolderDto.md)| The library options. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder added. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVirtualFolders** +> List<VirtualFolderInfo> getVirtualFolders() + +Gets all virtual folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + try { + List result = apiInstance.getVirtualFolders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#getVirtualFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<VirtualFolderInfo>**](VirtualFolderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Virtual folders retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeMediaPath** +> removeMediaPath(name, path, refreshLibrary) + +Remove a media path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the library. + String path = "path_example"; // String | The path to remove. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.removeMediaPath(name, path, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#removeMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the library. | [optional] | +| **path** | **String**| The path to remove. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeVirtualFolder** +> removeVirtualFolder(name, refreshLibrary) + +Removes a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the folder. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.removeVirtualFolder(name, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#removeVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the folder. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **renameVirtualFolder** +> renameVirtualFolder(name, newName, refreshLibrary) + +Renames a virtual folder. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + String name = "name_example"; // String | The name of the virtual folder. + String newName = "newName_example"; // String | The new name. + Boolean refreshLibrary = false; // Boolean | Whether to refresh the library. + try { + apiInstance.renameVirtualFolder(name, newName, refreshLibrary); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#renameVirtualFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the virtual folder. | [optional] | +| **newName** | **String**| The new name. | [optional] | +| **refreshLibrary** | **Boolean**| Whether to refresh the library. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Folder renamed. | - | +| **404** | Library doesn't exist. | - | +| **409** | Library already exists. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateLibraryOptions** +> updateLibraryOptions(updateLibraryOptionsDto) + +Update library options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + UpdateLibraryOptionsDto updateLibraryOptionsDto = new UpdateLibraryOptionsDto(); // UpdateLibraryOptionsDto | The library name and options. + try { + apiInstance.updateLibraryOptions(updateLibraryOptionsDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#updateLibraryOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **updateLibraryOptionsDto** | [**UpdateLibraryOptionsDto**](UpdateLibraryOptionsDto.md)| The library name and options. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Library updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateMediaPath** +> updateMediaPath(updateMediaPathRequestDto) + +Updates a media path. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LibraryStructureApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LibraryStructureApi apiInstance = new LibraryStructureApi(defaultClient); + UpdateMediaPathRequestDto updateMediaPathRequestDto = new UpdateMediaPathRequestDto(); // UpdateMediaPathRequestDto | The name of the library and path infos. + try { + apiInstance.updateMediaPath(updateMediaPathRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling LibraryStructureApi#updateMediaPath"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **updateMediaPathRequestDto** | [**UpdateMediaPathRequestDto**](UpdateMediaPathRequestDto.md)| The name of the library and path infos. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Media path updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryTypeOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryTypeOptionsDto.md new file mode 100644 index 0000000000000..36af73de136bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryTypeOptionsDto.md @@ -0,0 +1,18 @@ + + +# LibraryTypeOptionsDto + +Library type options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Gets or sets the type. | [optional] | +|**metadataFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the metadata fetchers. | [optional] | +|**imageFetchers** | [**List<LibraryOptionInfoDto>**](LibraryOptionInfoDto.md) | Gets or sets the image fetchers. | [optional] | +|**supportedImageTypes** | **List<ImageType>** | Gets or sets the supported image types. | [optional] | +|**defaultImageOptions** | [**List<ImageOption>**](ImageOption.md) | Gets or sets the default image options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryUpdateInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryUpdateInfo.md new file mode 100644 index 0000000000000..67f6e71b412d4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LibraryUpdateInfo.md @@ -0,0 +1,20 @@ + + +# LibraryUpdateInfo + +Class LibraryUpdateInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**foldersAddedTo** | **List<String>** | Gets or sets the folders added to. | [optional] | +|**foldersRemovedFrom** | **List<String>** | Gets or sets the folders removed from. | [optional] | +|**itemsAdded** | **List<String>** | Gets or sets the items added. | [optional] | +|**itemsRemoved** | **List<String>** | Gets or sets the items removed. | [optional] | +|**itemsUpdated** | **List<String>** | Gets or sets the items updated. | [optional] | +|**collectionFolders** | **List<String>** | | [optional] | +|**isEmpty** | **Boolean** | | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ListingsProviderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ListingsProviderInfo.md new file mode 100644 index 0000000000000..e2895564f6d42 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ListingsProviderInfo.md @@ -0,0 +1,30 @@ + + +# ListingsProviderInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | **String** | | [optional] | +|**username** | **String** | | [optional] | +|**password** | **String** | | [optional] | +|**listingsId** | **String** | | [optional] | +|**zipCode** | **String** | | [optional] | +|**country** | **String** | | [optional] | +|**path** | **String** | | [optional] | +|**enabledTuners** | **List<String>** | | [optional] | +|**enableAllTuners** | **Boolean** | | [optional] | +|**newsCategories** | **List<String>** | | [optional] | +|**sportsCategories** | **List<String>** | | [optional] | +|**kidsCategories** | **List<String>** | | [optional] | +|**movieCategories** | **List<String>** | | [optional] | +|**channelMappings** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | +|**moviePrefix** | **String** | | [optional] | +|**preferredLanguage** | **String** | | [optional] | +|**userAgent** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveStreamResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveStreamResponse.md new file mode 100644 index 0000000000000..e0f9b7c68ce16 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveStreamResponse.md @@ -0,0 +1,13 @@ + + +# LiveStreamResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mediaSource** | [**MediaSourceInfo**](MediaSourceInfo.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvApi.md new file mode 100644 index 0000000000000..71d57265bb496 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvApi.md @@ -0,0 +1,3049 @@ +# LiveTvApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addListingProvider**](LiveTvApi.md#addListingProvider) | **POST** /LiveTv/ListingProviders | Adds a listings provider. | +| [**addTunerHost**](LiveTvApi.md#addTunerHost) | **POST** /LiveTv/TunerHosts | Adds a tuner host. | +| [**cancelSeriesTimer**](LiveTvApi.md#cancelSeriesTimer) | **DELETE** /LiveTv/SeriesTimers/{timerId} | Cancels a live tv series timer. | +| [**cancelTimer**](LiveTvApi.md#cancelTimer) | **DELETE** /LiveTv/Timers/{timerId} | Cancels a live tv timer. | +| [**createSeriesTimer**](LiveTvApi.md#createSeriesTimer) | **POST** /LiveTv/SeriesTimers | Creates a live tv series timer. | +| [**createTimer**](LiveTvApi.md#createTimer) | **POST** /LiveTv/Timers | Creates a live tv timer. | +| [**deleteListingProvider**](LiveTvApi.md#deleteListingProvider) | **DELETE** /LiveTv/ListingProviders | Delete listing provider. | +| [**deleteRecording**](LiveTvApi.md#deleteRecording) | **DELETE** /LiveTv/Recordings/{recordingId} | Deletes a live tv recording. | +| [**deleteTunerHost**](LiveTvApi.md#deleteTunerHost) | **DELETE** /LiveTv/TunerHosts | Deletes a tuner host. | +| [**discoverTuners**](LiveTvApi.md#discoverTuners) | **GET** /LiveTv/Tuners/Discover | Discover tuners. | +| [**discvoverTuners**](LiveTvApi.md#discvoverTuners) | **GET** /LiveTv/Tuners/Discvover | Discover tuners. | +| [**getChannel**](LiveTvApi.md#getChannel) | **GET** /LiveTv/Channels/{channelId} | Gets a live tv channel. | +| [**getChannelMappingOptions**](LiveTvApi.md#getChannelMappingOptions) | **GET** /LiveTv/ChannelMappingOptions | Get channel mapping options. | +| [**getDefaultListingProvider**](LiveTvApi.md#getDefaultListingProvider) | **GET** /LiveTv/ListingProviders/Default | Gets default listings provider info. | +| [**getDefaultTimer**](LiveTvApi.md#getDefaultTimer) | **GET** /LiveTv/Timers/Defaults | Gets the default values for a new timer. | +| [**getGuideInfo**](LiveTvApi.md#getGuideInfo) | **GET** /LiveTv/GuideInfo | Get guid info. | +| [**getLineups**](LiveTvApi.md#getLineups) | **GET** /LiveTv/ListingProviders/Lineups | Gets available lineups. | +| [**getLiveRecordingFile**](LiveTvApi.md#getLiveRecordingFile) | **GET** /LiveTv/LiveRecordings/{recordingId}/stream | Gets a live tv recording stream. | +| [**getLiveStreamFile**](LiveTvApi.md#getLiveStreamFile) | **GET** /LiveTv/LiveStreamFiles/{streamId}/stream.{container} | Gets a live tv channel stream. | +| [**getLiveTvChannels**](LiveTvApi.md#getLiveTvChannels) | **GET** /LiveTv/Channels | Gets available live tv channels. | +| [**getLiveTvInfo**](LiveTvApi.md#getLiveTvInfo) | **GET** /LiveTv/Info | Gets available live tv services. | +| [**getLiveTvPrograms**](LiveTvApi.md#getLiveTvPrograms) | **GET** /LiveTv/Programs | Gets available live tv epgs. | +| [**getProgram**](LiveTvApi.md#getProgram) | **GET** /LiveTv/Programs/{programId} | Gets a live tv program. | +| [**getPrograms**](LiveTvApi.md#getPrograms) | **POST** /LiveTv/Programs | Gets available live tv epgs. | +| [**getRecommendedPrograms**](LiveTvApi.md#getRecommendedPrograms) | **GET** /LiveTv/Programs/Recommended | Gets recommended live tv epgs. | +| [**getRecording**](LiveTvApi.md#getRecording) | **GET** /LiveTv/Recordings/{recordingId} | Gets a live tv recording. | +| [**getRecordingFolders**](LiveTvApi.md#getRecordingFolders) | **GET** /LiveTv/Recordings/Folders | Gets recording folders. | +| [**getRecordingGroup**](LiveTvApi.md#getRecordingGroup) | **GET** /LiveTv/Recordings/Groups/{groupId} | Get recording group. | +| [**getRecordingGroups**](LiveTvApi.md#getRecordingGroups) | **GET** /LiveTv/Recordings/Groups | Gets live tv recording groups. | +| [**getRecordings**](LiveTvApi.md#getRecordings) | **GET** /LiveTv/Recordings | Gets live tv recordings. | +| [**getRecordingsSeries**](LiveTvApi.md#getRecordingsSeries) | **GET** /LiveTv/Recordings/Series | Gets live tv recording series. | +| [**getSchedulesDirectCountries**](LiveTvApi.md#getSchedulesDirectCountries) | **GET** /LiveTv/ListingProviders/SchedulesDirect/Countries | Gets available countries. | +| [**getSeriesTimer**](LiveTvApi.md#getSeriesTimer) | **GET** /LiveTv/SeriesTimers/{timerId} | Gets a live tv series timer. | +| [**getSeriesTimers**](LiveTvApi.md#getSeriesTimers) | **GET** /LiveTv/SeriesTimers | Gets live tv series timers. | +| [**getTimer**](LiveTvApi.md#getTimer) | **GET** /LiveTv/Timers/{timerId} | Gets a timer. | +| [**getTimers**](LiveTvApi.md#getTimers) | **GET** /LiveTv/Timers | Gets the live tv timers. | +| [**getTunerHostTypes**](LiveTvApi.md#getTunerHostTypes) | **GET** /LiveTv/TunerHosts/Types | Get tuner host types. | +| [**resetTuner**](LiveTvApi.md#resetTuner) | **POST** /LiveTv/Tuners/{tunerId}/Reset | Resets a tv tuner. | +| [**setChannelMapping**](LiveTvApi.md#setChannelMapping) | **POST** /LiveTv/ChannelMappings | Set channel mappings. | +| [**updateSeriesTimer**](LiveTvApi.md#updateSeriesTimer) | **POST** /LiveTv/SeriesTimers/{timerId} | Updates a live tv series timer. | +| [**updateTimer**](LiveTvApi.md#updateTimer) | **POST** /LiveTv/Timers/{timerId} | Updates a live tv timer. | + + + +# **addListingProvider** +> ListingsProviderInfo addListingProvider(pw, validateListings, validateLogin, listingsProviderInfo) + +Adds a listings provider. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String pw = "pw_example"; // String | Password. + Boolean validateListings = false; // Boolean | Validate listings. + Boolean validateLogin = false; // Boolean | Validate login. + ListingsProviderInfo listingsProviderInfo = new ListingsProviderInfo(); // ListingsProviderInfo | New listings info. + try { + ListingsProviderInfo result = apiInstance.addListingProvider(pw, validateListings, validateLogin, listingsProviderInfo); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#addListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pw** | **String**| Password. | [optional] | +| **validateListings** | **Boolean**| Validate listings. | [optional] [default to false] | +| **validateLogin** | **Boolean**| Validate login. | [optional] [default to false] | +| **listingsProviderInfo** | [**ListingsProviderInfo**](ListingsProviderInfo.md)| New listings info. | [optional] | + +### Return type + +[**ListingsProviderInfo**](ListingsProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created listings provider returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **addTunerHost** +> TunerHostInfo addTunerHost(tunerHostInfo) + +Adds a tuner host. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + TunerHostInfo tunerHostInfo = new TunerHostInfo(); // TunerHostInfo | New tuner host. + try { + TunerHostInfo result = apiInstance.addTunerHost(tunerHostInfo); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#addTunerHost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tunerHostInfo** | [**TunerHostInfo**](TunerHostInfo.md)| New tuner host. | [optional] | + +### Return type + +[**TunerHostInfo**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created tuner host returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **cancelSeriesTimer** +> cancelSeriesTimer(timerId) + +Cancels a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + apiInstance.cancelSeriesTimer(timerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#cancelSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer cancelled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **cancelTimer** +> cancelTimer(timerId) + +Cancels a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + apiInstance.cancelTimer(timerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#cancelTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createSeriesTimer** +> createSeriesTimer(seriesTimerInfoDto) + +Creates a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + SeriesTimerInfoDto seriesTimerInfoDto = new SeriesTimerInfoDto(); // SeriesTimerInfoDto | New series timer info. + try { + apiInstance.createSeriesTimer(seriesTimerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#createSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesTimerInfoDto** | [**SeriesTimerInfoDto**](SeriesTimerInfoDto.md)| New series timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Series timer info created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createTimer** +> createTimer(timerInfoDto) + +Creates a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + TimerInfoDto timerInfoDto = new TimerInfoDto(); // TimerInfoDto | New timer info. + try { + apiInstance.createTimer(timerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#createTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerInfoDto** | [**TimerInfoDto**](TimerInfoDto.md)| New timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteListingProvider** +> deleteListingProvider(id) + +Delete listing provider. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Listing provider id. + try { + apiInstance.deleteListingProvider(id); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Listing provider id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Listing provider deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteRecording** +> deleteRecording(recordingId) + +Deletes a live tv recording. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID recordingId = UUID.randomUUID(); // UUID | Recording id. + try { + apiInstance.deleteRecording(recordingId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **UUID**| Recording id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Recording deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteTunerHost** +> deleteTunerHost(id) + +Deletes a tuner host. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Tuner host id. + try { + apiInstance.deleteTunerHost(id); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#deleteTunerHost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Tuner host id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Tuner host deleted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **discoverTuners** +> List<TunerHostInfo> discoverTuners(newDevicesOnly) + +Discover tuners. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + Boolean newDevicesOnly = false; // Boolean | Only discover new tuners. + try { + List result = apiInstance.discoverTuners(newDevicesOnly); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#discoverTuners"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newDevicesOnly** | **Boolean**| Only discover new tuners. | [optional] [default to false] | + +### Return type + +[**List<TunerHostInfo>**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuners returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **discvoverTuners** +> List<TunerHostInfo> discvoverTuners(newDevicesOnly) + +Discover tuners. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + Boolean newDevicesOnly = false; // Boolean | Only discover new tuners. + try { + List result = apiInstance.discvoverTuners(newDevicesOnly); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#discvoverTuners"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newDevicesOnly** | **Boolean**| Only discover new tuners. | [optional] [default to false] | + +### Return type + +[**List<TunerHostInfo>**](TunerHostInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuners returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannel** +> BaseItemDto getChannel(channelId, userId) + +Gets a live tv channel. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID channelId = UUID.randomUUID(); // UUID | Channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getChannel(channelId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getChannel"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **UUID**| Channel id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv channel returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getChannelMappingOptions** +> ChannelMappingOptionsDto getChannelMappingOptions(providerId) + +Get channel mapping options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String providerId = "providerId_example"; // String | Provider id. + try { + ChannelMappingOptionsDto result = apiInstance.getChannelMappingOptions(providerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getChannelMappingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **providerId** | **String**| Provider id. | [optional] | + +### Return type + +[**ChannelMappingOptionsDto**](ChannelMappingOptionsDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Channel mapping options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultListingProvider** +> ListingsProviderInfo getDefaultListingProvider() + +Gets default listings provider info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + ListingsProviderInfo result = apiInstance.getDefaultListingProvider(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getDefaultListingProvider"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ListingsProviderInfo**](ListingsProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default listings provider info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getDefaultTimer** +> SeriesTimerInfoDto getDefaultTimer(programId) + +Gets the default values for a new timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String programId = "programId_example"; // String | Optional. To attach default values based on a program. + try { + SeriesTimerInfoDto result = apiInstance.getDefaultTimer(programId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getDefaultTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **programId** | **String**| Optional. To attach default values based on a program. | [optional] | + +### Return type + +[**SeriesTimerInfoDto**](SeriesTimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Default values returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getGuideInfo** +> GuideInfo getGuideInfo() + +Get guid info. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + GuideInfo result = apiInstance.getGuideInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getGuideInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**GuideInfo**](GuideInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Guid info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLineups** +> List<NameIdPair> getLineups(id, type, location, country) + +Gets available lineups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String id = "id_example"; // String | Provider id. + String type = "type_example"; // String | Provider type. + String location = "location_example"; // String | Location. + String country = "country_example"; // String | Country. + try { + List result = apiInstance.getLineups(id, type, location, country); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLineups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Provider id. | [optional] | +| **type** | **String**| Provider type. | [optional] | +| **location** | **String**| Location. | [optional] | +| **country** | **String**| Country. | [optional] | + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available lineups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveRecordingFile** +> File getLiveRecordingFile(recordingId) + +Gets a live tv recording stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String recordingId = "recordingId_example"; // String | Recording id. + try { + File result = apiInstance.getLiveRecordingFile(recordingId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveRecordingFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **String**| Recording id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording stream returned. | - | +| **404** | Recording not found. | - | + + +# **getLiveStreamFile** +> File getLiveStreamFile(streamId, container) + +Gets a live tv channel stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String streamId = "streamId_example"; // String | Stream id. + String container = "container_example"; // String | Container type. + try { + File result = apiInstance.getLiveStreamFile(streamId, container); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveStreamFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **streamId** | **String**| Stream id. | | +| **container** | **String**| Container type. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Stream returned. | - | +| **404** | Stream not found. | - | + + +# **getLiveTvChannels** +> BaseItemDtoQueryResult getLiveTvChannels(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram) + +Gets available live tv channels. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + ChannelType type = ChannelType.fromValue("TV"); // ChannelType | Optional. Filter by channel type. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean isFavorite = true; // Boolean | Optional. Filter by channels that are favorites, or not. + Boolean isLiked = true; // Boolean | Optional. Filter by channels that are liked, or not. + Boolean isDisliked = true; // Boolean | Optional. Filter by channels that are disliked, or not. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | \"Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + List sortBy = Arrays.asList(); // List | Optional. Key to sort by. + SortOrder sortOrder = SortOrder.fromValue("Ascending"); // SortOrder | Optional. Sort order. + Boolean enableFavoriteSorting = false; // Boolean | Optional. Incorporate favorite and like status into channel sorting. + Boolean addCurrentProgram = true; // Boolean | Optional. Adds current program info to each channel. + try { + BaseItemDtoQueryResult result = apiInstance.getLiveTvChannels(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvChannels"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **type** | [**ChannelType**](.md)| Optional. Filter by channel type. | [optional] [enum: TV, Radio] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **isFavorite** | **Boolean**| Optional. Filter by channels that are favorites, or not. | [optional] | +| **isLiked** | **Boolean**| Optional. Filter by channels that are liked, or not. | [optional] | +| **isDisliked** | **Boolean**| Optional. Filter by channels that are disliked, or not. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| \"Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Key to sort by. | [optional] | +| **sortOrder** | [**SortOrder**](.md)| Optional. Sort order. | [optional] [enum: Ascending, Descending] | +| **enableFavoriteSorting** | **Boolean**| Optional. Incorporate favorite and like status into channel sorting. | [optional] [default to false] | +| **addCurrentProgram** | **Boolean**| Optional. Adds current program info to each channel. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available live tv channels returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveTvInfo** +> LiveTvInfo getLiveTvInfo() + +Gets available live tv services. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + LiveTvInfo result = apiInstance.getLiveTvInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**LiveTvInfo**](LiveTvInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available live tv services returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLiveTvPrograms** +> BaseItemDtoQueryResult getLiveTvPrograms(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount) + +Gets available live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + List channelIds = Arrays.asList(); // List | The channels to return guide information for. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id. + OffsetDateTime minStartDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere start date. + Boolean hasAired = true; // Boolean | Optional. Filter by programs that have completed airing, or not. + Boolean isAiring = true; // Boolean | Optional. Filter by programs that are currently airing, or not. + OffsetDateTime maxStartDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere start date. + OffsetDateTime minEndDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere end date. + OffsetDateTime maxEndDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere end date. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + List genres = Arrays.asList(); // List | The genres to return guide information for. + List genreIds = Arrays.asList(); // List | The genre ids to return guide information for. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by series timer id. + UUID librarySeriesId = UUID.randomUUID(); // UUID | Optional. Filter by library series id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableTotalRecordCount = true; // Boolean | Retrieve total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getLiveTvPrograms(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getLiveTvPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelIds** | [**List<UUID>**](UUID.md)| The channels to return guide information for. | [optional] | +| **userId** | **UUID**| Optional. Filter by user id. | [optional] | +| **minStartDate** | **OffsetDateTime**| Optional. The minimum premiere start date. | [optional] | +| **hasAired** | **Boolean**| Optional. Filter by programs that have completed airing, or not. | [optional] | +| **isAiring** | **Boolean**| Optional. Filter by programs that are currently airing, or not. | [optional] | +| **maxStartDate** | **OffsetDateTime**| Optional. The maximum premiere start date. | [optional] | +| **minEndDate** | **OffsetDateTime**| Optional. The minimum premiere end date. | [optional] | +| **maxEndDate** | **OffsetDateTime**| Optional. The maximum premiere end date. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **genres** | [**List<String>**](String.md)| The genres to return guide information for. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| The genre ids to return guide information for. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by series timer id. | [optional] | +| **librarySeriesId** | **UUID**| Optional. Filter by library series id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Retrieve total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getProgram** +> BaseItemDto getProgram(programId, userId) + +Gets a live tv program. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String programId = "programId_example"; // String | Program id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getProgram(programId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getProgram"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **programId** | **String**| Program id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Program returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPrograms** +> BaseItemDtoQueryResult getPrograms(getProgramsDto) + +Gets available live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + GetProgramsDto getProgramsDto = new GetProgramsDto(); // GetProgramsDto | Request body. + try { + BaseItemDtoQueryResult result = apiInstance.getPrograms(getProgramsDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **getProgramsDto** | [**GetProgramsDto**](GetProgramsDto.md)| Request body. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecommendedPrograms** +> BaseItemDtoQueryResult getRecommendedPrograms(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount) + +Gets recommended live tv epgs. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. filter by user id. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean isAiring = true; // Boolean | Optional. Filter by programs that are currently airing, or not. + Boolean hasAired = true; // Boolean | Optional. Filter by programs that have completed airing, or not. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List genreIds = Arrays.asList(); // List | The genres to return guide information for. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. include user data. + Boolean enableTotalRecordCount = true; // Boolean | Retrieve total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecommendedPrograms(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecommendedPrograms"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. filter by user id. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **isAiring** | **Boolean**| Optional. Filter by programs that are currently airing, or not. | [optional] | +| **hasAired** | **Boolean**| Optional. Filter by programs that have completed airing, or not. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| The genres to return guide information for. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. include user data. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Retrieve total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recommended epgs returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecording** +> BaseItemDto getRecording(recordingId, userId) + +Gets a live tv recording. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID recordingId = UUID.randomUUID(); // UUID | Recording id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Attach user data. + try { + BaseItemDto result = apiInstance.getRecording(recordingId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **recordingId** | **UUID**| Recording id. | | +| **userId** | **UUID**| Optional. Attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingFolders** +> BaseItemDtoQueryResult getRecordingFolders(userId) + +Gets recording folders. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingFolders(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingFolders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording folders returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingGroup** +> getRecordingGroup(groupId) + +Get recording group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID groupId = UUID.randomUUID(); // UUID | Group id. + try { + apiInstance.getRecordingGroup(groupId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **groupId** | **UUID**| Group id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingGroups** +> BaseItemDtoQueryResult getRecordingGroups(userId) + +Gets live tv recording groups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingGroups(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Recording groups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordings** +> BaseItemDtoQueryResult getRecordings(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount) + +Gets live tv recordings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + RecordingStatus status = RecordingStatus.fromValue("New"); // RecordingStatus | Optional. Filter by recording status. + Boolean isInProgress = true; // Boolean | Optional. Filter by recordings that are in progress, or not. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by recordings belonging to a series timer. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Boolean isMovie = true; // Boolean | Optional. Filter for movies. + Boolean isSeries = true; // Boolean | Optional. Filter for series. + Boolean isKids = true; // Boolean | Optional. Filter for kids. + Boolean isSports = true; // Boolean | Optional. Filter for sports. + Boolean isNews = true; // Boolean | Optional. Filter for news. + Boolean isLibraryItem = true; // Boolean | Optional. Filter for is library item. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Return total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordings(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **status** | [**RecordingStatus**](.md)| Optional. Filter by recording status. | [optional] [enum: New, InProgress, Completed, Cancelled, ConflictedOk, ConflictedNotOk, Error] | +| **isInProgress** | **Boolean**| Optional. Filter by recordings that are in progress, or not. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by recordings belonging to a series timer. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **isMovie** | **Boolean**| Optional. Filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional. Filter for series. | [optional] | +| **isKids** | **Boolean**| Optional. Filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional. Filter for sports. | [optional] | +| **isNews** | **Boolean**| Optional. Filter for news. | [optional] | +| **isLibraryItem** | **Boolean**| Optional. Filter for is library item. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Return total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv recordings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRecordingsSeries** +> BaseItemDtoQueryResult getRecordingsSeries(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount) + +Gets live tv recording series. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user and attach user data. + String groupId = "groupId_example"; // String | Optional. Filter by recording group. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + RecordingStatus status = RecordingStatus.fromValue("New"); // RecordingStatus | Optional. Filter by recording status. + Boolean isInProgress = true; // Boolean | Optional. Filter by recordings that are in progress, or not. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by recordings belonging to a series timer. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Return total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getRecordingsSeries(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getRecordingsSeries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **userId** | **UUID**| Optional. Filter by user and attach user data. | [optional] | +| **groupId** | **String**| Optional. Filter by recording group. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **status** | [**RecordingStatus**](.md)| Optional. Filter by recording status. | [optional] [enum: New, InProgress, Completed, Cancelled, ConflictedOk, ConflictedNotOk, Error] | +| **isInProgress** | **Boolean**| Optional. Filter by recordings that are in progress, or not. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by recordings belonging to a series timer. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Return total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Live tv recordings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSchedulesDirectCountries** +> File getSchedulesDirectCountries() + +Gets available countries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + File result = apiInstance.getSchedulesDirectCountries(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSchedulesDirectCountries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available countries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesTimer** +> SeriesTimerInfoDto getSeriesTimer(timerId) + +Gets a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + SeriesTimerInfoDto result = apiInstance.getSeriesTimer(timerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +[**SeriesTimerInfoDto**](SeriesTimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Series timer returned. | - | +| **404** | Series timer not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeriesTimers** +> SeriesTimerInfoDtoQueryResult getSeriesTimers(sortBy, sortOrder) + +Gets live tv series timers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String sortBy = "sortBy_example"; // String | Optional. Sort by SortName or Priority. + SortOrder sortOrder = SortOrder.fromValue("Ascending"); // SortOrder | Optional. Sort in Ascending or Descending order. + try { + SeriesTimerInfoDtoQueryResult result = apiInstance.getSeriesTimers(sortBy, sortOrder); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getSeriesTimers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sortBy** | **String**| Optional. Sort by SortName or Priority. | [optional] | +| **sortOrder** | [**SortOrder**](.md)| Optional. Sort in Ascending or Descending order. | [optional] [enum: Ascending, Descending] | + +### Return type + +[**SeriesTimerInfoDtoQueryResult**](SeriesTimerInfoDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Timers returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTimer** +> TimerInfoDto getTimer(timerId) + +Gets a timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + try { + TimerInfoDto result = apiInstance.getTimer(timerId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | + +### Return type + +[**TimerInfoDto**](TimerInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Timer returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTimers** +> TimerInfoDtoQueryResult getTimers(channelId, seriesTimerId, isActive, isScheduled) + +Gets the live tv timers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String channelId = "channelId_example"; // String | Optional. Filter by channel id. + String seriesTimerId = "seriesTimerId_example"; // String | Optional. Filter by timers belonging to a series timer. + Boolean isActive = true; // Boolean | Optional. Filter by timers that are active. + Boolean isScheduled = true; // Boolean | Optional. Filter by timers that are scheduled. + try { + TimerInfoDtoQueryResult result = apiInstance.getTimers(channelId, seriesTimerId, isActive, isScheduled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTimers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **channelId** | **String**| Optional. Filter by channel id. | [optional] | +| **seriesTimerId** | **String**| Optional. Filter by timers belonging to a series timer. | [optional] | +| **isActive** | **Boolean**| Optional. Filter by timers that are active. | [optional] | +| **isScheduled** | **Boolean**| Optional. Filter by timers that are scheduled. | [optional] | + +### Return type + +[**TimerInfoDtoQueryResult**](TimerInfoDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTunerHostTypes** +> List<NameIdPair> getTunerHostTypes() + +Get tuner host types. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + try { + List result = apiInstance.getTunerHostTypes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#getTunerHostTypes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Tuner host types returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **resetTuner** +> resetTuner(tunerId) + +Resets a tv tuner. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String tunerId = "tunerId_example"; // String | Tuner id. + try { + apiInstance.resetTuner(tunerId); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#resetTuner"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **tunerId** | **String**| Tuner id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Tuner reset. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setChannelMapping** +> TunerChannelMapping setChannelMapping(setChannelMappingDto) + +Set channel mappings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + SetChannelMappingDto setChannelMappingDto = new SetChannelMappingDto(); // SetChannelMappingDto | The set channel mapping dto. + try { + TunerChannelMapping result = apiInstance.setChannelMapping(setChannelMappingDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#setChannelMapping"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setChannelMappingDto** | [**SetChannelMappingDto**](SetChannelMappingDto.md)| The set channel mapping dto. | | + +### Return type + +[**TunerChannelMapping**](TunerChannelMapping.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Created channel mapping returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateSeriesTimer** +> updateSeriesTimer(timerId, seriesTimerInfoDto) + +Updates a live tv series timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + SeriesTimerInfoDto seriesTimerInfoDto = new SeriesTimerInfoDto(); // SeriesTimerInfoDto | New series timer info. + try { + apiInstance.updateSeriesTimer(timerId, seriesTimerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#updateSeriesTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | +| **seriesTimerInfoDto** | [**SeriesTimerInfoDto**](SeriesTimerInfoDto.md)| New series timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Series timer updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateTimer** +> updateTimer(timerId, timerInfoDto) + +Updates a live tv timer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LiveTvApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LiveTvApi apiInstance = new LiveTvApi(defaultClient); + String timerId = "timerId_example"; // String | Timer id. + TimerInfoDto timerInfoDto = new TimerInfoDto(); // TimerInfoDto | New timer info. + try { + apiInstance.updateTimer(timerId, timerInfoDto); + } catch (ApiException e) { + System.err.println("Exception when calling LiveTvApi#updateTimer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **timerId** | **String**| Timer id. | | +| **timerInfoDto** | [**TimerInfoDto**](TimerInfoDto.md)| New timer info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Timer updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvInfo.md new file mode 100644 index 0000000000000..c3d69a9f38540 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvInfo.md @@ -0,0 +1,15 @@ + + +# LiveTvInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**services** | [**List<LiveTvServiceInfo>**](LiveTvServiceInfo.md) | Gets or sets the services. | [optional] | +|**isEnabled** | **Boolean** | Gets or sets a value indicating whether this instance is enabled. | [optional] | +|**enabledUsers** | **List<String>** | Gets or sets the enabled users. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvOptions.md new file mode 100644 index 0000000000000..e37a859ee17d9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvOptions.md @@ -0,0 +1,25 @@ + + +# LiveTvOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**guideDays** | **Integer** | | [optional] | +|**recordingPath** | **String** | | [optional] | +|**movieRecordingPath** | **String** | | [optional] | +|**seriesRecordingPath** | **String** | | [optional] | +|**enableRecordingSubfolders** | **Boolean** | | [optional] | +|**enableOriginalAudioWithEncodedRecordings** | **Boolean** | | [optional] | +|**tunerHosts** | [**List<TunerHostInfo>**](TunerHostInfo.md) | | [optional] | +|**listingProviders** | [**List<ListingsProviderInfo>**](ListingsProviderInfo.md) | | [optional] | +|**prePaddingSeconds** | **Integer** | | [optional] | +|**postPaddingSeconds** | **Integer** | | [optional] | +|**mediaLocationsCreated** | **List<String>** | | [optional] | +|**recordingPostProcessor** | **String** | | [optional] | +|**recordingPostProcessorArguments** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceInfo.md new file mode 100644 index 0000000000000..164786e24f1d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceInfo.md @@ -0,0 +1,21 @@ + + +# LiveTvServiceInfo + +Class ServiceInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**homePageUrl** | **String** | Gets or sets the home page URL. | [optional] | +|**status** | **LiveTvServiceStatus** | Gets or sets the status. | [optional] | +|**statusMessage** | **String** | Gets or sets the status message. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**hasUpdateAvailable** | **Boolean** | Gets or sets a value indicating whether this instance has update available. | [optional] | +|**isVisible** | **Boolean** | Gets or sets a value indicating whether this instance is visible. | [optional] | +|**tuners** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceStatus.md new file mode 100644 index 0000000000000..192787a0edd12 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LiveTvServiceStatus.md @@ -0,0 +1,13 @@ + + +# LiveTvServiceStatus + +## Enum + + +* `OK` (value: `"Ok"`) + +* `UNAVAILABLE` (value: `"Unavailable"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationApi.md new file mode 100644 index 0000000000000..2ddb03f71418e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationApi.md @@ -0,0 +1,272 @@ +# LocalizationApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getCountries**](LocalizationApi.md#getCountries) | **GET** /Localization/Countries | Gets known countries. | +| [**getCultures**](LocalizationApi.md#getCultures) | **GET** /Localization/Cultures | Gets known cultures. | +| [**getLocalizationOptions**](LocalizationApi.md#getLocalizationOptions) | **GET** /Localization/Options | Gets localization options. | +| [**getParentalRatings**](LocalizationApi.md#getParentalRatings) | **GET** /Localization/ParentalRatings | Gets known parental ratings. | + + + +# **getCountries** +> List<CountryInfo> getCountries() + +Gets known countries. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getCountries(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getCountries"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<CountryInfo>**](CountryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known countries returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getCultures** +> List<CultureDto> getCultures() + +Gets known cultures. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getCultures(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getCultures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<CultureDto>**](CultureDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known cultures returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLocalizationOptions** +> List<LocalizationOption> getLocalizationOptions() + +Gets localization options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getLocalizationOptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getLocalizationOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<LocalizationOption>**](LocalizationOption.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Localization options returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getParentalRatings** +> List<ParentalRating> getParentalRatings() + +Gets known parental ratings. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.LocalizationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + LocalizationApi apiInstance = new LocalizationApi(defaultClient); + try { + List result = apiInstance.getParentalRatings(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LocalizationApi#getParentalRatings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<ParentalRating>**](ParentalRating.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Known parental ratings returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationOption.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationOption.md new file mode 100644 index 0000000000000..4d2355a59551f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocalizationOption.md @@ -0,0 +1,14 @@ + + +# LocalizationOption + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**value** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocationType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocationType.md new file mode 100644 index 0000000000000..80cb2192ade70 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LocationType.md @@ -0,0 +1,17 @@ + + +# LocationType + +## Enum + + +* `FILE_SYSTEM` (value: `"FileSystem"`) + +* `REMOTE` (value: `"Remote"`) + +* `VIRTUAL` (value: `"Virtual"`) + +* `OFFLINE` (value: `"Offline"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogFile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogFile.md new file mode 100644 index 0000000000000..7540d59c945cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogFile.md @@ -0,0 +1,16 @@ + + +# LogFile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**dateCreated** | **OffsetDateTime** | Gets or sets the date created. | [optional] | +|**dateModified** | **OffsetDateTime** | Gets or sets the date modified. | [optional] | +|**size** | **Long** | Gets or sets the size. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogLevel.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogLevel.md new file mode 100644 index 0000000000000..7d32ff2a98081 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/LogLevel.md @@ -0,0 +1,23 @@ + + +# LogLevel + +## Enum + + +* `TRACE` (value: `"Trace"`) + +* `DEBUG` (value: `"Debug"`) + +* `INFORMATION` (value: `"Information"`) + +* `WARNING` (value: `"Warning"`) + +* `ERROR` (value: `"Error"`) + +* `CRITICAL` (value: `"Critical"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaAttachment.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaAttachment.md new file mode 100644 index 0000000000000..221c33973ebfa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaAttachment.md @@ -0,0 +1,20 @@ + + +# MediaAttachment + +Class MediaAttachment. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**codec** | **String** | Gets or sets the codec. | [optional] | +|**codecTag** | **String** | Gets or sets the codec tag. | [optional] | +|**comment** | **String** | Gets or sets the comment. | [optional] | +|**index** | **Integer** | Gets or sets the index. | [optional] | +|**fileName** | **String** | Gets or sets the filename. | [optional] | +|**mimeType** | **String** | Gets or sets the MIME type. | [optional] | +|**deliveryUrl** | **String** | Gets or sets the delivery URL. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaEncoderPathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaEncoderPathDto.md new file mode 100644 index 0000000000000..9839c25ec5176 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaEncoderPathDto.md @@ -0,0 +1,15 @@ + + +# MediaEncoderPathDto + +Media Encoder Path Dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | Gets or sets media encoder path. | [optional] | +|**pathType** | **String** | Gets or sets media encoder path type. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaInfoApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaInfoApi.md new file mode 100644 index 0000000000000..630ab83322b81 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaInfoApi.md @@ -0,0 +1,413 @@ +# MediaInfoApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**closeLiveStream**](MediaInfoApi.md#closeLiveStream) | **POST** /LiveStreams/Close | Closes a media source. | +| [**getBitrateTestBytes**](MediaInfoApi.md#getBitrateTestBytes) | **GET** /Playback/BitrateTest | Tests the network with a request with the size of the bitrate. | +| [**getPlaybackInfo**](MediaInfoApi.md#getPlaybackInfo) | **GET** /Items/{itemId}/PlaybackInfo | Gets live playback media info for an item. | +| [**getPostedPlaybackInfo**](MediaInfoApi.md#getPostedPlaybackInfo) | **POST** /Items/{itemId}/PlaybackInfo | Gets live playback media info for an item. | +| [**openLiveStream**](MediaInfoApi.md#openLiveStream) | **POST** /LiveStreams/Open | Opens a media source. | + + + +# **closeLiveStream** +> closeLiveStream(liveStreamId) + +Closes a media source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + String liveStreamId = "liveStreamId_example"; // String | The livestream id. + try { + apiInstance.closeLiveStream(liveStreamId); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#closeLiveStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **liveStreamId** | **String**| The livestream id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Livestream closed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getBitrateTestBytes** +> File getBitrateTestBytes(size) + +Tests the network with a request with the size of the bitrate. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + Integer size = 102400; // Integer | The bitrate. Defaults to 102400. + try { + File result = apiInstance.getBitrateTestBytes(size); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getBitrateTestBytes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **size** | **Integer**| The bitrate. Defaults to 102400. | [optional] [default to 102400] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/octet-stream + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Test buffer returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlaybackInfo** +> PlaybackInfoResponse getPlaybackInfo(itemId, userId) + +Gets live playback media info for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + PlaybackInfoResponse result = apiInstance.getPlaybackInfo(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getPlaybackInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +[**PlaybackInfoResponse**](PlaybackInfoResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Playback info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPostedPlaybackInfo** +> PlaybackInfoResponse getPostedPlaybackInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto) + +Gets live playback media info for an item. + +For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + Integer maxStreamingBitrate = 56; // Integer | The maximum streaming bitrate. + Long startTimeTicks = 56L; // Long | The start time in ticks. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer maxAudioChannels = 56; // Integer | The maximum number of audio channels. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + String liveStreamId = "liveStreamId_example"; // String | The livestream id. + Boolean autoOpenLiveStream = true; // Boolean | Whether to auto open the livestream. + Boolean enableDirectPlay = true; // Boolean | Whether to enable direct play. Default: true. + Boolean enableDirectStream = true; // Boolean | Whether to enable direct stream. Default: true. + Boolean enableTranscoding = true; // Boolean | Whether to enable transcoding. Default: true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether to allow to copy the video stream. Default: true. + Boolean allowAudioStreamCopy = true; // Boolean | Whether to allow to copy the audio stream. Default: true. + PlaybackInfoDto playbackInfoDto = new PlaybackInfoDto(); // PlaybackInfoDto | The playback info. + try { + PlaybackInfoResponse result = apiInstance.getPostedPlaybackInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#getPostedPlaybackInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **maxStreamingBitrate** | **Integer**| The maximum streaming bitrate. | [optional] | +| **startTimeTicks** | **Long**| The start time in ticks. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **maxAudioChannels** | **Integer**| The maximum number of audio channels. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **liveStreamId** | **String**| The livestream id. | [optional] | +| **autoOpenLiveStream** | **Boolean**| Whether to auto open the livestream. | [optional] | +| **enableDirectPlay** | **Boolean**| Whether to enable direct play. Default: true. | [optional] | +| **enableDirectStream** | **Boolean**| Whether to enable direct stream. Default: true. | [optional] | +| **enableTranscoding** | **Boolean**| Whether to enable transcoding. Default: true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether to allow to copy the video stream. Default: true. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether to allow to copy the audio stream. Default: true. | [optional] | +| **playbackInfoDto** | [**PlaybackInfoDto**](PlaybackInfoDto.md)| The playback info. | [optional] | + +### Return type + +[**PlaybackInfoResponse**](PlaybackInfoResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Playback info returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **openLiveStream** +> LiveStreamResponse openLiveStream(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto) + +Opens a media source. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MediaInfoApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MediaInfoApi apiInstance = new MediaInfoApi(defaultClient); + String openToken = "openToken_example"; // String | The open token. + UUID userId = UUID.randomUUID(); // UUID | The user id. + String playSessionId = "playSessionId_example"; // String | The play session id. + Integer maxStreamingBitrate = 56; // Integer | The maximum streaming bitrate. + Long startTimeTicks = 56L; // Long | The start time in ticks. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer maxAudioChannels = 56; // Integer | The maximum number of audio channels. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Boolean enableDirectPlay = true; // Boolean | Whether to enable direct play. Default: true. + Boolean enableDirectStream = true; // Boolean | Whether to enable direct stream. Default: true. + OpenLiveStreamDto openLiveStreamDto = new OpenLiveStreamDto(); // OpenLiveStreamDto | The open live stream dto. + try { + LiveStreamResponse result = apiInstance.openLiveStream(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MediaInfoApi#openLiveStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **openToken** | **String**| The open token. | [optional] | +| **userId** | **UUID**| The user id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **maxStreamingBitrate** | **Integer**| The maximum streaming bitrate. | [optional] | +| **startTimeTicks** | **Long**| The start time in ticks. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **maxAudioChannels** | **Integer**| The maximum number of audio channels. | [optional] | +| **itemId** | **UUID**| The item id. | [optional] | +| **enableDirectPlay** | **Boolean**| Whether to enable direct play. Default: true. | [optional] | +| **enableDirectStream** | **Boolean**| Whether to enable direct stream. Default: true. | [optional] | +| **openLiveStreamDto** | [**OpenLiveStreamDto**](OpenLiveStreamDto.md)| The open live stream dto. | [optional] | + +### Return type + +[**LiveStreamResponse**](LiveStreamResponse.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Media source opened. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathDto.md new file mode 100644 index 0000000000000..8c4d30faf15a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathDto.md @@ -0,0 +1,16 @@ + + +# MediaPathDto + +Media Path dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the library. | | +|**path** | **String** | Gets or sets the path to add. | [optional] | +|**pathInfo** | [**MediaPathInfo**](MediaPathInfo.md) | Gets or sets the path info. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathInfo.md new file mode 100644 index 0000000000000..e3f828be989be --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaPathInfo.md @@ -0,0 +1,14 @@ + + +# MediaPathInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | | [optional] | +|**networkPath** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaProtocol.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaProtocol.md new file mode 100644 index 0000000000000..8f939fc6e906b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaProtocol.md @@ -0,0 +1,23 @@ + + +# MediaProtocol + +## Enum + + +* `FILE` (value: `"File"`) + +* `HTTP` (value: `"Http"`) + +* `RTMP` (value: `"Rtmp"`) + +* `RTSP` (value: `"Rtsp"`) + +* `UDP` (value: `"Udp"`) + +* `RTP` (value: `"Rtp"`) + +* `FTP` (value: `"Ftp"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceInfo.md new file mode 100644 index 0000000000000..799c8ebf35370 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceInfo.md @@ -0,0 +1,54 @@ + + +# MediaSourceInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**protocol** | **MediaProtocol** | | [optional] | +|**id** | **String** | | [optional] | +|**path** | **String** | | [optional] | +|**encoderPath** | **String** | | [optional] | +|**encoderProtocol** | **MediaProtocol** | | [optional] | +|**type** | **MediaSourceType** | | [optional] | +|**container** | **String** | | [optional] | +|**size** | **Long** | | [optional] | +|**name** | **String** | | [optional] | +|**isRemote** | **Boolean** | Gets or sets a value indicating whether the media is remote. Differentiate internet url vs local network. | [optional] | +|**etag** | **String** | | [optional] | +|**runTimeTicks** | **Long** | | [optional] | +|**readAtNativeFramerate** | **Boolean** | | [optional] | +|**ignoreDts** | **Boolean** | | [optional] | +|**ignoreIndex** | **Boolean** | | [optional] | +|**genPtsInput** | **Boolean** | | [optional] | +|**supportsTranscoding** | **Boolean** | | [optional] | +|**supportsDirectStream** | **Boolean** | | [optional] | +|**supportsDirectPlay** | **Boolean** | | [optional] | +|**isInfiniteStream** | **Boolean** | | [optional] | +|**requiresOpening** | **Boolean** | | [optional] | +|**openToken** | **String** | | [optional] | +|**requiresClosing** | **Boolean** | | [optional] | +|**liveStreamId** | **String** | | [optional] | +|**bufferMs** | **Integer** | | [optional] | +|**requiresLooping** | **Boolean** | | [optional] | +|**supportsProbing** | **Boolean** | | [optional] | +|**videoType** | **VideoType** | | [optional] | +|**isoType** | **IsoType** | | [optional] | +|**video3DFormat** | **Video3DFormat** | | [optional] | +|**mediaStreams** | [**List<MediaStream>**](MediaStream.md) | | [optional] | +|**mediaAttachments** | [**List<MediaAttachment>**](MediaAttachment.md) | | [optional] | +|**formats** | **List<String>** | | [optional] | +|**bitrate** | **Integer** | | [optional] | +|**timestamp** | **TransportStreamTimestamp** | | [optional] | +|**requiredHttpHeaders** | **Map<String, String>** | | [optional] | +|**transcodingUrl** | **String** | | [optional] | +|**transcodingSubProtocol** | **String** | | [optional] | +|**transcodingContainer** | **String** | | [optional] | +|**analyzeDurationMs** | **Integer** | | [optional] | +|**defaultAudioStreamIndex** | **Integer** | | [optional] | +|**defaultSubtitleStreamIndex** | **Integer** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceType.md new file mode 100644 index 0000000000000..c804c515c1eeb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaSourceType.md @@ -0,0 +1,15 @@ + + +# MediaSourceType + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `GROUPING` (value: `"Grouping"`) + +* `PLACEHOLDER` (value: `"Placeholder"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStream.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStream.md new file mode 100644 index 0000000000000..93cb1c59207ee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStream.md @@ -0,0 +1,71 @@ + + +# MediaStream + +Class MediaStream. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**codec** | **String** | Gets or sets the codec. | [optional] | +|**codecTag** | **String** | Gets or sets the codec tag. | [optional] | +|**language** | **String** | Gets or sets the language. | [optional] | +|**colorRange** | **String** | Gets or sets the color range. | [optional] | +|**colorSpace** | **String** | Gets or sets the color space. | [optional] | +|**colorTransfer** | **String** | Gets or sets the color transfer. | [optional] | +|**colorPrimaries** | **String** | Gets or sets the color primaries. | [optional] | +|**dvVersionMajor** | **Integer** | Gets or sets the Dolby Vision version major. | [optional] | +|**dvVersionMinor** | **Integer** | Gets or sets the Dolby Vision version minor. | [optional] | +|**dvProfile** | **Integer** | Gets or sets the Dolby Vision profile. | [optional] | +|**dvLevel** | **Integer** | Gets or sets the Dolby Vision level. | [optional] | +|**rpuPresentFlag** | **Integer** | Gets or sets the Dolby Vision rpu present flag. | [optional] | +|**elPresentFlag** | **Integer** | Gets or sets the Dolby Vision el present flag. | [optional] | +|**blPresentFlag** | **Integer** | Gets or sets the Dolby Vision bl present flag. | [optional] | +|**dvBlSignalCompatibilityId** | **Integer** | Gets or sets the Dolby Vision bl signal compatibility id. | [optional] | +|**comment** | **String** | Gets or sets the comment. | [optional] | +|**timeBase** | **String** | Gets or sets the time base. | [optional] | +|**codecTimeBase** | **String** | Gets or sets the codec time base. | [optional] | +|**title** | **String** | Gets or sets the title. | [optional] | +|**videoRange** | **String** | Gets the video range. | [optional] [readonly] | +|**videoRangeType** | **String** | Gets the video range type. | [optional] [readonly] | +|**videoDoViTitle** | **String** | Gets the video dovi title. | [optional] [readonly] | +|**localizedUndefined** | **String** | | [optional] | +|**localizedDefault** | **String** | | [optional] | +|**localizedForced** | **String** | | [optional] | +|**localizedExternal** | **String** | | [optional] | +|**displayTitle** | **String** | | [optional] [readonly] | +|**nalLengthSize** | **String** | | [optional] | +|**isInterlaced** | **Boolean** | Gets or sets a value indicating whether this instance is interlaced. | [optional] | +|**isAVC** | **Boolean** | | [optional] | +|**channelLayout** | **String** | Gets or sets the channel layout. | [optional] | +|**bitRate** | **Integer** | Gets or sets the bit rate. | [optional] | +|**bitDepth** | **Integer** | Gets or sets the bit depth. | [optional] | +|**refFrames** | **Integer** | Gets or sets the reference frames. | [optional] | +|**packetLength** | **Integer** | Gets or sets the length of the packet. | [optional] | +|**channels** | **Integer** | Gets or sets the channels. | [optional] | +|**sampleRate** | **Integer** | Gets or sets the sample rate. | [optional] | +|**isDefault** | **Boolean** | Gets or sets a value indicating whether this instance is default. | [optional] | +|**isForced** | **Boolean** | Gets or sets a value indicating whether this instance is forced. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**averageFrameRate** | **Float** | Gets or sets the average frame rate. | [optional] | +|**realFrameRate** | **Float** | Gets or sets the real frame rate. | [optional] | +|**profile** | **String** | Gets or sets the profile. | [optional] | +|**type** | **MediaStreamType** | Gets or sets the type. | [optional] | +|**aspectRatio** | **String** | Gets or sets the aspect ratio. | [optional] | +|**index** | **Integer** | Gets or sets the index. | [optional] | +|**score** | **Integer** | Gets or sets the score. | [optional] | +|**isExternal** | **Boolean** | Gets or sets a value indicating whether this instance is external. | [optional] | +|**deliveryMethod** | **SubtitleDeliveryMethod** | Gets or sets the method. | [optional] | +|**deliveryUrl** | **String** | Gets or sets the delivery URL. | [optional] | +|**isExternalUrl** | **Boolean** | Gets or sets a value indicating whether this instance is external URL. | [optional] | +|**isTextSubtitleStream** | **Boolean** | | [optional] [readonly] | +|**supportsExternalStream** | **Boolean** | Gets or sets a value indicating whether [supports external stream]. | [optional] | +|**path** | **String** | Gets or sets the filename. | [optional] | +|**pixelFormat** | **String** | Gets or sets the pixel format. | [optional] | +|**level** | **Double** | Gets or sets the level. | [optional] | +|**isAnamorphic** | **Boolean** | Gets or sets whether this instance is anamorphic. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStreamType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStreamType.md new file mode 100644 index 0000000000000..d16743d2ee173 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaStreamType.md @@ -0,0 +1,19 @@ + + +# MediaStreamType + +## Enum + + +* `AUDIO` (value: `"Audio"`) + +* `VIDEO` (value: `"Video"`) + +* `SUBTITLE` (value: `"Subtitle"`) + +* `EMBEDDED_IMAGE` (value: `"EmbeddedImage"`) + +* `DATA` (value: `"Data"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoDto.md new file mode 100644 index 0000000000000..d32466df4484a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoDto.md @@ -0,0 +1,14 @@ + + +# MediaUpdateInfoDto + +Media Update Info Dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**updates** | [**List<MediaUpdateInfoPathDto>**](MediaUpdateInfoPathDto.md) | Gets or sets the list of updates. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoPathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoPathDto.md new file mode 100644 index 0000000000000..a7993f4b1cb8c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUpdateInfoPathDto.md @@ -0,0 +1,15 @@ + + +# MediaUpdateInfoPathDto + +The media update info path. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | Gets or sets media path. | [optional] | +|**updateType** | **String** | Gets or sets media update type. Created, Modified, Deleted. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUrl.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUrl.md new file mode 100644 index 0000000000000..3e36b4ba4fa6c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MediaUrl.md @@ -0,0 +1,14 @@ + + +# MediaUrl + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**url** | **String** | | [optional] | +|**name** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MessageCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MessageCommand.md new file mode 100644 index 0000000000000..b2d74f578e65d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MessageCommand.md @@ -0,0 +1,15 @@ + + +# MessageCommand + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**header** | **String** | | [optional] | +|**text** | **String** | | | +|**timeoutMs** | **Long** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataConfiguration.md new file mode 100644 index 0000000000000..5143c200a8c68 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataConfiguration.md @@ -0,0 +1,13 @@ + + +# MetadataConfiguration + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**useFileCreationTimeForDateAdded** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataEditorInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataEditorInfo.md new file mode 100644 index 0000000000000..895484c43f86d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataEditorInfo.md @@ -0,0 +1,18 @@ + + +# MetadataEditorInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**parentalRatingOptions** | [**List<ParentalRating>**](ParentalRating.md) | | [optional] | +|**countries** | [**List<CountryInfo>**](CountryInfo.md) | | [optional] | +|**cultures** | [**List<CultureDto>**](CultureDto.md) | | [optional] | +|**externalIdInfos** | [**List<ExternalIdInfo>**](ExternalIdInfo.md) | | [optional] | +|**contentType** | **String** | | [optional] | +|**contentTypeOptions** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataField.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataField.md new file mode 100644 index 0000000000000..39c7ba8fd190d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataField.md @@ -0,0 +1,27 @@ + + +# MetadataField + +## Enum + + +* `CAST` (value: `"Cast"`) + +* `GENRES` (value: `"Genres"`) + +* `PRODUCTION_LOCATIONS` (value: `"ProductionLocations"`) + +* `STUDIOS` (value: `"Studios"`) + +* `TAGS` (value: `"Tags"`) + +* `NAME` (value: `"Name"`) + +* `OVERVIEW` (value: `"Overview"`) + +* `RUNTIME` (value: `"Runtime"`) + +* `OFFICIAL_RATING` (value: `"OfficialRating"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataOptions.md new file mode 100644 index 0000000000000..9de1b45667afa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataOptions.md @@ -0,0 +1,20 @@ + + +# MetadataOptions + +Class MetadataOptions. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemType** | **String** | | [optional] | +|**disabledMetadataSavers** | **List<String>** | | [optional] | +|**localMetadataReaderOrder** | **List<String>** | | [optional] | +|**disabledMetadataFetchers** | **List<String>** | | [optional] | +|**metadataFetcherOrder** | **List<String>** | | [optional] | +|**disabledImageFetchers** | **List<String>** | | [optional] | +|**imageFetcherOrder** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataRefreshMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataRefreshMode.md new file mode 100644 index 0000000000000..560a2e5259712 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MetadataRefreshMode.md @@ -0,0 +1,17 @@ + + +# MetadataRefreshMode + +## Enum + + +* `NONE` (value: `"None"`) + +* `VALIDATION_ONLY` (value: `"ValidationOnly"`) + +* `DEFAULT` (value: `"Default"`) + +* `FULL_REFRESH` (value: `"FullRefresh"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovePlaylistItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovePlaylistItemRequestDto.md new file mode 100644 index 0000000000000..e7b9661efdc9e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovePlaylistItemRequestDto.md @@ -0,0 +1,15 @@ + + +# MovePlaylistItemRequestDto + +Class MovePlaylistItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playlist identifier of the item. | [optional] | +|**newIndex** | **Integer** | Gets or sets the new position. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfo.md new file mode 100644 index 0000000000000..22fca87269397 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfo.md @@ -0,0 +1,23 @@ + + +# MovieInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..f67d2ba561437 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MovieInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# MovieInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**MovieInfo**](MovieInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MoviesApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MoviesApi.md new file mode 100644 index 0000000000000..b30a6c4a4ca82 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MoviesApi.md @@ -0,0 +1,86 @@ +# MoviesApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMovieRecommendations**](MoviesApi.md#getMovieRecommendations) | **GET** /Movies/Recommendations | Gets movie recommendations. | + + + +# **getMovieRecommendations** +> List<RecommendationDto> getMovieRecommendations(userId, parentId, fields, categoryLimit, itemLimit) + +Gets movie recommendations. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MoviesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MoviesApi apiInstance = new MoviesApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. The fields to return. + Integer categoryLimit = 5; // Integer | The max number of categories to return. + Integer itemLimit = 8; // Integer | The max number of items to return per category. + try { + List result = apiInstance.getMovieRecommendations(userId, parentId, fields, categoryLimit, itemLimit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MoviesApi#getMovieRecommendations"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. The fields to return. | [optional] | +| **categoryLimit** | **Integer**| The max number of categories to return. | [optional] [default to 5] | +| **itemLimit** | **Integer**| The max number of items to return per category. | [optional] [default to 8] | + +### Return type + +[**List<RecommendationDto>**](RecommendationDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Movie recommendations returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicGenresApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicGenresApi.md new file mode 100644 index 0000000000000..61fcf30169ce0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicGenresApi.md @@ -0,0 +1,184 @@ +# MusicGenresApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMusicGenre**](MusicGenresApi.md#getMusicGenre) | **GET** /MusicGenres/{genreName} | Gets a music genre, by name. | +| [**getMusicGenres**](MusicGenresApi.md#getMusicGenres) | **GET** /MusicGenres | Gets all music genres from a given item, folder, or the entire library. | + + + +# **getMusicGenre** +> BaseItemDto getMusicGenre(genreName, userId) + +Gets a music genre, by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MusicGenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MusicGenresApi apiInstance = new MusicGenresApi(defaultClient); + String genreName = "genreName_example"; // String | The genre name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getMusicGenre(genreName, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MusicGenresApi#getMusicGenre"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **genreName** | **String**| The genre name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getMusicGenres** +> BaseItemDtoQueryResult getMusicGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount) + +Gets all music genres from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.MusicGenresApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + MusicGenresApi apiInstance = new MusicGenresApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Include total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getMusicGenres(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MusicGenresApi#getMusicGenres"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Optional. Include total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Music genres returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfo.md new file mode 100644 index 0000000000000..468d5407edb7b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfo.md @@ -0,0 +1,24 @@ + + +# MusicVideoInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**artists** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..4ffde0b6e98e5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/MusicVideoInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# MusicVideoInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**MusicVideoInfo**](MusicVideoInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameGuidPair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameGuidPair.md new file mode 100644 index 0000000000000..39a9c57b74284 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameGuidPair.md @@ -0,0 +1,14 @@ + + +# NameGuidPair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**id** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameIdPair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameIdPair.md new file mode 100644 index 0000000000000..356f265817585 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameIdPair.md @@ -0,0 +1,14 @@ + + +# NameIdPair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**id** | **String** | Gets or sets the identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameValuePair.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameValuePair.md new file mode 100644 index 0000000000000..5d9bf7d6ce3a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NameValuePair.md @@ -0,0 +1,14 @@ + + +# NameValuePair + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**value** | **String** | Gets or sets the value. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NetworkConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NetworkConfiguration.md new file mode 100644 index 0000000000000..1d28709ae3884 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NetworkConfiguration.md @@ -0,0 +1,47 @@ + + +# NetworkConfiguration + +Defines the Jellyfin.Networking.Configuration.NetworkConfiguration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**requireHttps** | **Boolean** | Gets or sets a value indicating whether the server should force connections over HTTPS. | [optional] | +|**certificatePath** | **String** | Gets or sets the filesystem path of an X.509 certificate to use for SSL. | [optional] | +|**certificatePassword** | **String** | Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath. | [optional] | +|**baseUrl** | **String** | Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. | [optional] | +|**publicHttpsPort** | **Integer** | Gets or sets the public HTTPS port. | [optional] | +|**httpServerPortNumber** | **Integer** | Gets or sets the HTTP server port number. | [optional] | +|**httpsPortNumber** | **Integer** | Gets or sets the HTTPS server port number. | [optional] | +|**enableHttps** | **Boolean** | Gets or sets a value indicating whether to use HTTPS. | [optional] | +|**publicPort** | **Integer** | Gets or sets the public mapped port. | [optional] | +|**upnPCreateHttpPortMap** | **Boolean** | Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding. | [optional] | +|**udPPortRange** | **String** | Gets or sets the UDPPortRange. | [optional] | +|**enableIPV6** | **Boolean** | Gets or sets a value indicating whether gets or sets IPV6 capability. | [optional] | +|**enableIPV4** | **Boolean** | Gets or sets a value indicating whether gets or sets IPV4 capability. | [optional] | +|**enableSSDPTracing** | **Boolean** | Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log. \"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect. | [optional] | +|**ssDPTracingFilter** | **String** | Gets or sets the SSDPTracingFilter Gets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log. If the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work. | [optional] | +|**udPSendCount** | **Integer** | Gets or sets the number of times SSDP UDP messages are sent. | [optional] | +|**udPSendDelay** | **Integer** | Gets or sets the delay between each groups of SSDP messages (in ms). | [optional] | +|**ignoreVirtualInterfaces** | **Boolean** | Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding. | [optional] | +|**virtualInterfaceNames** | **String** | Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.IgnoreVirtualInterfaces\" />. | [optional] | +|**gatewayMonitorPeriod** | **Integer** | Gets or sets the time (in seconds) between the pings of SSDP gateway monitor. | [optional] | +|**enableMultiSocketBinding** | **Boolean** | Gets a value indicating whether multi-socket binding is available. | [optional] [readonly] | +|**trustAllIP6Interfaces** | **Boolean** | Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network. Depending on the address range implemented ULA ranges might not be used. | [optional] | +|**hdHomerunPortRange** | **String** | Gets or sets the ports that HDHomerun uses. | [optional] | +|**publishedServerUriBySubnet** | **List<String>** | Gets or sets the PublishedServerUriBySubnet Gets or sets PublishedServerUri to advertise for specific subnets. | [optional] | +|**autoDiscoveryTracing** | **Boolean** | Gets or sets a value indicating whether Autodiscovery tracing is enabled. | [optional] | +|**autoDiscovery** | **Boolean** | Gets or sets a value indicating whether Autodiscovery is enabled. | [optional] | +|**remoteIPFilter** | **List<String>** | Gets or sets the filter for remote IP connectivity. Used in conjuntion with <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.IsRemoteIPFilterBlacklist\" />. | [optional] | +|**isRemoteIPFilterBlacklist** | **Boolean** | Gets or sets a value indicating whether <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.RemoteIPFilter\" /> contains a blacklist or a whitelist. Default is a whitelist. | [optional] | +|**enableUPnP** | **Boolean** | Gets or sets a value indicating whether to enable automatic port forwarding. | [optional] | +|**enableRemoteAccess** | **Boolean** | Gets or sets a value indicating whether access outside of the LAN is permitted. | [optional] | +|**localNetworkSubnets** | **List<String>** | Gets or sets the subnets that are deemed to make up the LAN. | [optional] | +|**localNetworkAddresses** | **List<String>** | Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. | [optional] | +|**knownProxies** | **List<String>** | Gets or sets the known proxies. If the proxy is a network, it's added to the KnownNetworks. | [optional] | +|**enablePublishedServerUriByRequest** | **Boolean** | Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NewGroupRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NewGroupRequestDto.md new file mode 100644 index 0000000000000..45f60a5ab04a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NewGroupRequestDto.md @@ -0,0 +1,14 @@ + + +# NewGroupRequestDto + +Class NewGroupRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupName** | **String** | Gets or sets the group name. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NextItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NextItemRequestDto.md new file mode 100644 index 0000000000000..cc79e4a25b1fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NextItemRequestDto.md @@ -0,0 +1,14 @@ + + +# NextItemRequestDto + +Class NextItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playing item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationDto.md new file mode 100644 index 0000000000000..9591366dfebb5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationDto.md @@ -0,0 +1,21 @@ + + +# NotificationDto + +The notification DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the notification ID. Defaults to an empty string. | [optional] | +|**userId** | **String** | Gets or sets the notification's user ID. Defaults to an empty string. | [optional] | +|**date** | **OffsetDateTime** | Gets or sets the notification date. | [optional] | +|**isRead** | **Boolean** | Gets or sets a value indicating whether the notification has been read. Defaults to false. | [optional] | +|**name** | **String** | Gets or sets the notification's name. Defaults to an empty string. | [optional] | +|**description** | **String** | Gets or sets the notification's description. Defaults to an empty string. | [optional] | +|**url** | **String** | Gets or sets the notification's URL. Defaults to an empty string. | [optional] | +|**level** | **NotificationLevel** | Gets or sets the notification level. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationLevel.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationLevel.md new file mode 100644 index 0000000000000..d7e9e51ea8991 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationLevel.md @@ -0,0 +1,15 @@ + + +# NotificationLevel + +## Enum + + +* `NORMAL` (value: `"Normal"`) + +* `WARNING` (value: `"Warning"`) + +* `ERROR` (value: `"Error"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOption.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOption.md new file mode 100644 index 0000000000000..fbfa5bae2e5af --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOption.md @@ -0,0 +1,18 @@ + + +# NotificationOption + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**disabledMonitorUsers** | **List<String>** | Gets or sets user Ids to not monitor (it's opt out). | [optional] | +|**sendToUsers** | **List<String>** | Gets or sets user Ids to send to (if SendToUserMode == Custom). | [optional] | +|**enabled** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Notifications.NotificationOption is enabled. | [optional] | +|**disabledServices** | **List<String>** | Gets or sets the disabled services. | [optional] | +|**sendToUserMode** | **SendToUserType** | Gets or sets the send to user mode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOptions.md new file mode 100644 index 0000000000000..25de52fa66def --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationOptions.md @@ -0,0 +1,13 @@ + + +# NotificationOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**options** | [**List<NotificationOption>**](NotificationOption.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationResultDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationResultDto.md new file mode 100644 index 0000000000000..47f5787991aaf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationResultDto.md @@ -0,0 +1,15 @@ + + +# NotificationResultDto + +A list of notifications with the total record count for pagination. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**notifications** | [**List<NotificationDto>**](NotificationDto.md) | Gets or sets the current page of notifications. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of notifications. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationTypeInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationTypeInfo.md new file mode 100644 index 0000000000000..3fd55fddc0c30 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationTypeInfo.md @@ -0,0 +1,17 @@ + + +# NotificationTypeInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**name** | **String** | | [optional] | +|**enabled** | **Boolean** | | [optional] | +|**category** | **String** | | [optional] | +|**isBasedOnUserEvent** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsApi.md new file mode 100644 index 0000000000000..c6d352ceda25d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsApi.md @@ -0,0 +1,487 @@ +# NotificationsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createAdminNotification**](NotificationsApi.md#createAdminNotification) | **POST** /Notifications/Admin | Sends a notification to all admins. | +| [**getNotificationServices**](NotificationsApi.md#getNotificationServices) | **GET** /Notifications/Services | Gets notification services. | +| [**getNotificationTypes**](NotificationsApi.md#getNotificationTypes) | **GET** /Notifications/Types | Gets notification types. | +| [**getNotifications**](NotificationsApi.md#getNotifications) | **GET** /Notifications/{userId} | Gets a user's notifications. | +| [**getNotificationsSummary**](NotificationsApi.md#getNotificationsSummary) | **GET** /Notifications/{userId}/Summary | Gets a user's notification summary. | +| [**setRead**](NotificationsApi.md#setRead) | **POST** /Notifications/{userId}/Read | Sets notifications as read. | +| [**setUnread**](NotificationsApi.md#setUnread) | **POST** /Notifications/{userId}/Unread | Sets notifications as unread. | + + + +# **createAdminNotification** +> createAdminNotification(adminNotificationDto) + +Sends a notification to all admins. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + AdminNotificationDto adminNotificationDto = new AdminNotificationDto(); // AdminNotificationDto | The notification request. + try { + apiInstance.createAdminNotification(adminNotificationDto); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#createAdminNotification"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **adminNotificationDto** | [**AdminNotificationDto**](AdminNotificationDto.md)| The notification request. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Notification sent. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNotificationServices** +> List<NameIdPair> getNotificationServices() + +Gets notification services. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + try { + List result = apiInstance.getNotificationServices(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#getNotificationServices"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | All notification services returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNotificationTypes** +> List<NotificationTypeInfo> getNotificationTypes() + +Gets notification types. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + try { + List result = apiInstance.getNotificationTypes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#getNotificationTypes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NotificationTypeInfo>**](NotificationTypeInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | All notification types returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNotifications** +> NotificationResultDto getNotifications(userId) + +Gets a user's notifications. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + String userId = "userId_example"; // String | + try { + NotificationResultDto result = apiInstance.getNotifications(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#getNotifications"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **String**| | | + +### Return type + +[**NotificationResultDto**](NotificationResultDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Notifications returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNotificationsSummary** +> NotificationsSummaryDto getNotificationsSummary(userId) + +Gets a user's notification summary. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + String userId = "userId_example"; // String | + try { + NotificationsSummaryDto result = apiInstance.getNotificationsSummary(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#getNotificationsSummary"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **String**| | | + +### Return type + +[**NotificationsSummaryDto**](NotificationsSummaryDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Summary of user's notifications returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setRead** +> setRead(userId) + +Sets notifications as read. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + String userId = "userId_example"; // String | + try { + apiInstance.setRead(userId); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#setRead"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **String**| | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Notifications set as read. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setUnread** +> setUnread(userId) + +Sets notifications as unread. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.NotificationsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + NotificationsApi apiInstance = new NotificationsApi(defaultClient); + String userId = "userId_example"; // String | + try { + apiInstance.setUnread(userId); + } catch (ApiException e) { + System.err.println("Exception when calling NotificationsApi#setUnread"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **String**| | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Notifications set as unread. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsSummaryDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsSummaryDto.md new file mode 100644 index 0000000000000..570b6aa194173 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/NotificationsSummaryDto.md @@ -0,0 +1,15 @@ + + +# NotificationsSummaryDto + +The notification summary DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**unreadCount** | **Integer** | Gets or sets the number of unread notifications. | [optional] | +|**maxUnreadNotificationLevel** | **NotificationLevel** | Gets or sets the maximum unread notification level. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ObjectGroupUpdate.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ObjectGroupUpdate.md new file mode 100644 index 0000000000000..604d56b8d55c3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ObjectGroupUpdate.md @@ -0,0 +1,16 @@ + + +# ObjectGroupUpdate + +Class GroupUpdate. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] | +|**type** | **GroupUpdateType** | Gets the update type. | [optional] | +|**data** | **Object** | Gets the update data. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/OpenLiveStreamDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/OpenLiveStreamDto.md new file mode 100644 index 0000000000000..a4977f71a7510 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/OpenLiveStreamDto.md @@ -0,0 +1,26 @@ + + +# OpenLiveStreamDto + +Open live stream dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**openToken** | **String** | Gets or sets the open token. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session id. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the max streaming bitrate. | [optional] | +|**startTimeTicks** | **Long** | Gets or sets the start time in ticks. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the audio stream index. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the subtitle stream index. | [optional] | +|**maxAudioChannels** | **Integer** | Gets or sets the max audio channels. | [optional] | +|**itemId** | **UUID** | Gets or sets the item id. | [optional] | +|**enableDirectPlay** | **Boolean** | Gets or sets a value indicating whether to enable direct play. | [optional] | +|**enableDirectStream** | **Boolean** | Gets or sets a value indicating whether to enale direct stream. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. | [optional] | +|**directPlayProtocols** | **List<MediaProtocol>** | Gets or sets the device play protocols. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageApi.md new file mode 100644 index 0000000000000..0de884e7b16a7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageApi.md @@ -0,0 +1,426 @@ +# PackageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**cancelPackageInstallation**](PackageApi.md#cancelPackageInstallation) | **DELETE** /Packages/Installing/{packageId} | Cancels a package installation. | +| [**getPackageInfo**](PackageApi.md#getPackageInfo) | **GET** /Packages/{name} | Gets a package by name or assembly GUID. | +| [**getPackages**](PackageApi.md#getPackages) | **GET** /Packages | Gets available packages. | +| [**getRepositories**](PackageApi.md#getRepositories) | **GET** /Repositories | Gets all package repositories. | +| [**installPackage**](PackageApi.md#installPackage) | **POST** /Packages/Installed/{name} | Installs a package. | +| [**setRepositories**](PackageApi.md#setRepositories) | **POST** /Repositories | Sets the enabled and existing package repositories. | + + + +# **cancelPackageInstallation** +> cancelPackageInstallation(packageId) + +Cancels a package installation. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + UUID packageId = UUID.randomUUID(); // UUID | Installation Id. + try { + apiInstance.cancelPackageInstallation(packageId); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#cancelPackageInstallation"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **packageId** | **UUID**| Installation Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Installation cancelled. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPackageInfo** +> PackageInfo getPackageInfo(name, assemblyGuid) + +Gets a package by name or assembly GUID. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + String name = "name_example"; // String | The name of the package. + UUID assemblyGuid = UUID.randomUUID(); // UUID | The GUID of the associated assembly. + try { + PackageInfo result = apiInstance.getPackageInfo(name, assemblyGuid); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getPackageInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the package. | | +| **assemblyGuid** | **UUID**| The GUID of the associated assembly. | [optional] | + +### Return type + +[**PackageInfo**](PackageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Package retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPackages** +> List<PackageInfo> getPackages() + +Gets available packages. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + try { + List result = apiInstance.getPackages(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getPackages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<PackageInfo>**](PackageInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Available packages returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRepositories** +> List<RepositoryInfo> getRepositories() + +Gets all package repositories. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + try { + List result = apiInstance.getRepositories(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#getRepositories"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<RepositoryInfo>**](RepositoryInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Package repositories returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **installPackage** +> installPackage(name, assemblyGuid, version, repositoryUrl) + +Installs a package. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + String name = "name_example"; // String | Package name. + UUID assemblyGuid = UUID.randomUUID(); // UUID | GUID of the associated assembly. + String version = "version_example"; // String | Optional version. Defaults to latest version. + String repositoryUrl = "repositoryUrl_example"; // String | Optional. Specify the repository to install from. + try { + apiInstance.installPackage(name, assemblyGuid, version, repositoryUrl); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#installPackage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Package name. | | +| **assemblyGuid** | **UUID**| GUID of the associated assembly. | [optional] | +| **version** | **String**| Optional version. Defaults to latest version. | [optional] | +| **repositoryUrl** | **String**| Optional. Specify the repository to install from. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Package found. | - | +| **404** | Package not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setRepositories** +> setRepositories(repositoryInfo) + +Sets the enabled and existing package repositories. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PackageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PackageApi apiInstance = new PackageApi(defaultClient); + List repositoryInfo = Arrays.asList(); // List | The list of package repositories. + try { + apiInstance.setRepositories(repositoryInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PackageApi#setRepositories"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **repositoryInfo** | [**List<RepositoryInfo>**](RepositoryInfo.md)| The list of package repositories. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Package repositories saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageInfo.md new file mode 100644 index 0000000000000..705865fc88560 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PackageInfo.md @@ -0,0 +1,21 @@ + + +# PackageInfo + +Class PackageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**description** | **String** | Gets or sets a long description of the plugin containing features or helpful explanations. | [optional] | +|**overview** | **String** | Gets or sets a short overview of what the plugin does. | [optional] | +|**owner** | **String** | Gets or sets the owner. | [optional] | +|**category** | **String** | Gets or sets the category. | [optional] | +|**guid** | **UUID** | Gets or sets the guid of the assembly associated with this plugin. This is used to identify the proper item for automatic updates. | [optional] | +|**versions** | [**List<VersionInfo>**](VersionInfo.md) | Gets or sets the versions. | [optional] | +|**imageUrl** | **String** | Gets or sets the image url for the package. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ParentalRating.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ParentalRating.md new file mode 100644 index 0000000000000..4f9002a9137aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ParentalRating.md @@ -0,0 +1,15 @@ + + +# ParentalRating + +Class ParentalRating. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**value** | **Integer** | Gets or sets the value. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PathSubstitution.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PathSubstitution.md new file mode 100644 index 0000000000000..56ec38301fb33 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PathSubstitution.md @@ -0,0 +1,15 @@ + + +# PathSubstitution + +Defines the MediaBrowser.Model.Configuration.PathSubstitution. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**from** | **String** | Gets or sets the value to substitute. | [optional] | +|**to** | **String** | Gets or sets the value to substitution with. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfo.md new file mode 100644 index 0000000000000..739af0b4ad24c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfo.md @@ -0,0 +1,23 @@ + + +# PersonLookupInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..a11d17ed1df2b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonLookupInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# PersonLookupInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**PersonLookupInfo**](PersonLookupInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonsApi.md new file mode 100644 index 0000000000000..00502c58cc518 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PersonsApi.md @@ -0,0 +1,175 @@ +# PersonsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getPerson**](PersonsApi.md#getPerson) | **GET** /Persons/{name} | Get person by name. | +| [**getPersons**](PersonsApi.md#getPersons) | **GET** /Persons | Gets all persons. | + + + +# **getPerson** +> BaseItemDto getPerson(name, userId) + +Get person by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PersonsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PersonsApi apiInstance = new PersonsApi(defaultClient); + String name = "name_example"; // String | Person name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getPerson(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PersonsApi#getPerson"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Person name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Person returned. | - | +| **404** | Person not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPersons** +> BaseItemDtoQueryResult getPersons(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages) + +Gets all persons. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PersonsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PersonsApi apiInstance = new PersonsApi(defaultClient); + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | The search term. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. userId is required. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + List excludePersonTypes = Arrays.asList(); // List | Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. + List personTypes = Arrays.asList(); // List | Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. + UUID appearsInItemId = UUID.randomUUID(); // UUID | Optional. If specified, person results will be filtered on items related to said persons. + UUID userId = UUID.randomUUID(); // UUID | User id. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getPersons(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PersonsApi#getPersons"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| The search term. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. userId is required. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **excludePersonTypes** | [**List<String>**](String.md)| Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. | [optional] | +| **appearsInItemId** | **UUID**| Optional. If specified, person results will be filtered on items related to said persons. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Persons returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PinRedeemResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PinRedeemResult.md new file mode 100644 index 0000000000000..7c3888c99528f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PinRedeemResult.md @@ -0,0 +1,14 @@ + + +# PinRedeemResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**success** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. | [optional] | +|**usersReset** | **List<String>** | Gets or sets the users reset. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PingRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PingRequestDto.md new file mode 100644 index 0000000000000..76b6eb1d7be65 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PingRequestDto.md @@ -0,0 +1,14 @@ + + +# PingRequestDto + +Class PingRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ping** | **Long** | Gets or sets the ping time. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayAccess.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayAccess.md new file mode 100644 index 0000000000000..f171c350817b7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayAccess.md @@ -0,0 +1,13 @@ + + +# PlayAccess + +## Enum + + +* `FULL` (value: `"Full"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayCommand.md new file mode 100644 index 0000000000000..5ace5922bc0d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayCommand.md @@ -0,0 +1,19 @@ + + +# PlayCommand + +## Enum + + +* `PLAY_NOW` (value: `"PlayNow"`) + +* `PLAY_NEXT` (value: `"PlayNext"`) + +* `PLAY_LAST` (value: `"PlayLast"`) + +* `PLAY_INSTANT_MIX` (value: `"PlayInstantMix"`) + +* `PLAY_SHUFFLE` (value: `"PlayShuffle"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayMethod.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayMethod.md new file mode 100644 index 0000000000000..ccf74c17b0c37 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayMethod.md @@ -0,0 +1,15 @@ + + +# PlayMethod + +## Enum + + +* `TRANSCODE` (value: `"Transcode"`) + +* `DIRECT_STREAM` (value: `"DirectStream"`) + +* `DIRECT_PLAY` (value: `"DirectPlay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequest.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequest.md new file mode 100644 index 0000000000000..422cfb0faf1d9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequest.md @@ -0,0 +1,21 @@ + + +# PlayRequest + +Class PlayRequest. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemIds** | **List<UUID>** | Gets or sets the item ids. | [optional] | +|**startPositionTicks** | **Long** | Gets or sets the start position ticks that the first item should be played at. | [optional] | +|**playCommand** | **PlayCommand** | Gets or sets the play command. | [optional] | +|**controllingUserId** | **UUID** | Gets or sets the controlling user identifier. | [optional] | +|**subtitleStreamIndex** | **Integer** | | [optional] | +|**audioStreamIndex** | **Integer** | | [optional] | +|**mediaSourceId** | **String** | | [optional] | +|**startIndex** | **Integer** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequestDto.md new file mode 100644 index 0000000000000..92c92788b8544 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayRequestDto.md @@ -0,0 +1,16 @@ + + +# PlayRequestDto + +Class PlayRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playingQueue** | **List<UUID>** | Gets or sets the playing queue. | [optional] | +|**playingItemPosition** | **Integer** | Gets or sets the position of the playing item in the queue. | [optional] | +|**startPositionTicks** | **Long** | Gets or sets the start position ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackErrorCode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackErrorCode.md new file mode 100644 index 0000000000000..9da3cd58d2275 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackErrorCode.md @@ -0,0 +1,15 @@ + + +# PlaybackErrorCode + +## Enum + + +* `NOT_ALLOWED` (value: `"NotAllowed"`) + +* `NO_COMPATIBLE_STREAM` (value: `"NoCompatibleStream"`) + +* `RATE_LIMIT_EXCEEDED` (value: `"RateLimitExceeded"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoDto.md new file mode 100644 index 0000000000000..52e1b8fb3fe13 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoDto.md @@ -0,0 +1,28 @@ + + +# PlaybackInfoDto + +Plabyback info dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the playback userId. | [optional] | +|**maxStreamingBitrate** | **Integer** | Gets or sets the max streaming bitrate. | [optional] | +|**startTimeTicks** | **Long** | Gets or sets the start time in ticks. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the audio stream index. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the subtitle stream index. | [optional] | +|**maxAudioChannels** | **Integer** | Gets or sets the max audio channels. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media source id. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream id. | [optional] | +|**deviceProfile** | [**DeviceProfile**](DeviceProfile.md) | A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. | [optional] | +|**enableDirectPlay** | **Boolean** | Gets or sets a value indicating whether to enable direct play. | [optional] | +|**enableDirectStream** | **Boolean** | Gets or sets a value indicating whether to enable direct stream. | [optional] | +|**enableTranscoding** | **Boolean** | Gets or sets a value indicating whether to enable transcoding. | [optional] | +|**allowVideoStreamCopy** | **Boolean** | Gets or sets a value indicating whether to enable video stream copy. | [optional] | +|**allowAudioStreamCopy** | **Boolean** | Gets or sets a value indicating whether to allow audio stream copy. | [optional] | +|**autoOpenLiveStream** | **Boolean** | Gets or sets a value indicating whether to auto open the live stream. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoResponse.md new file mode 100644 index 0000000000000..83da6f88f4225 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackInfoResponse.md @@ -0,0 +1,16 @@ + + +# PlaybackInfoResponse + +Class PlaybackInfoResponse. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mediaSources** | [**List<MediaSourceInfo>**](MediaSourceInfo.md) | Gets or sets the media sources. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**errorCode** | **PlaybackErrorCode** | Gets or sets the error code. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackProgressInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackProgressInfo.md new file mode 100644 index 0000000000000..7e9b4ad3259d0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackProgressInfo.md @@ -0,0 +1,33 @@ + + +# PlaybackProgressInfo + +Class PlaybackProgressInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the subtitle stream. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**playbackStartTimeTicks** | **Long** | | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**brightness** | **Integer** | | [optional] | +|**aspectRatio** | **String** | | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStartInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStartInfo.md new file mode 100644 index 0000000000000..0d2fdcfc02268 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStartInfo.md @@ -0,0 +1,33 @@ + + +# PlaybackStartInfo + +Class PlaybackStartInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the subtitle stream. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**playbackStartTimeTicks** | **Long** | | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**brightness** | **Integer** | | [optional] | +|**aspectRatio** | **String** | | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStopInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStopInfo.md new file mode 100644 index 0000000000000..eeb380d21ccdd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaybackStopInfo.md @@ -0,0 +1,24 @@ + + +# PlaybackStopInfo + +Class PlaybackStopInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**item** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the item. | [optional] | +|**itemId** | **UUID** | Gets or sets the item identifier. | [optional] | +|**sessionId** | **String** | Gets or sets the session id. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the media version identifier. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**liveStreamId** | **String** | Gets or sets the live stream identifier. | [optional] | +|**playSessionId** | **String** | Gets or sets the play session identifier. | [optional] | +|**failed** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. | [optional] | +|**nextMediaType** | **String** | | [optional] | +|**playlistItemId** | **String** | | [optional] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayerStateInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayerStateInfo.md new file mode 100644 index 0000000000000..44fd582ce9c50 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlayerStateInfo.md @@ -0,0 +1,23 @@ + + +# PlayerStateInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**positionTicks** | **Long** | Gets or sets the now playing position ticks. | [optional] | +|**canSeek** | **Boolean** | Gets or sets a value indicating whether this instance can seek. | [optional] | +|**isPaused** | **Boolean** | Gets or sets a value indicating whether this instance is paused. | [optional] | +|**isMuted** | **Boolean** | Gets or sets a value indicating whether this instance is muted. | [optional] | +|**volumeLevel** | **Integer** | Gets or sets the volume level. | [optional] | +|**audioStreamIndex** | **Integer** | Gets or sets the index of the now playing audio stream. | [optional] | +|**subtitleStreamIndex** | **Integer** | Gets or sets the index of the now playing subtitle stream. | [optional] | +|**mediaSourceId** | **String** | Gets or sets the now playing media version identifier. | [optional] | +|**playMethod** | **PlayMethod** | Gets or sets the play method. | [optional] | +|**repeatMode** | **RepeatMode** | Gets or sets the repeat mode. | [optional] | +|**liveStreamId** | **String** | Gets or sets the now playing live stream identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistCreationResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistCreationResult.md new file mode 100644 index 0000000000000..cc4f2c3484d8a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistCreationResult.md @@ -0,0 +1,13 @@ + + +# PlaylistCreationResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistsApi.md new file mode 100644 index 0000000000000..a89d9a99f0854 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaylistsApi.md @@ -0,0 +1,392 @@ +# PlaylistsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addToPlaylist**](PlaylistsApi.md#addToPlaylist) | **POST** /Playlists/{playlistId}/Items | Adds items to a playlist. | +| [**createPlaylist**](PlaylistsApi.md#createPlaylist) | **POST** /Playlists | Creates a new playlist. | +| [**getPlaylistItems**](PlaylistsApi.md#getPlaylistItems) | **GET** /Playlists/{playlistId}/Items | Gets the original items of a playlist. | +| [**moveItem**](PlaylistsApi.md#moveItem) | **POST** /Playlists/{playlistId}/Items/{itemId}/Move/{newIndex} | Moves a playlist item. | +| [**removeFromPlaylist**](PlaylistsApi.md#removeFromPlaylist) | **DELETE** /Playlists/{playlistId}/Items | Removes items from a playlist. | + + + +# **addToPlaylist** +> addToPlaylist(playlistId, ids, userId) + +Adds items to a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + List ids = Arrays.asList(); // List | Item id, comma delimited. + UUID userId = UUID.randomUUID(); // UUID | The userId. + try { + apiInstance.addToPlaylist(playlistId, ids, userId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#addToPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **ids** | [**List<UUID>**](UUID.md)| Item id, comma delimited. | [optional] | +| **userId** | **UUID**| The userId. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items added to playlist. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **createPlaylist** +> PlaylistCreationResult createPlaylist(name, ids, userId, mediaType, createPlaylistDto) + +Creates a new playlist. + +For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String name = "name_example"; // String | The playlist name. + List ids = Arrays.asList(); // List | The item ids. + UUID userId = UUID.randomUUID(); // UUID | The user id. + String mediaType = "mediaType_example"; // String | The media type. + CreatePlaylistDto createPlaylistDto = new CreatePlaylistDto(); // CreatePlaylistDto | The create playlist payload. + try { + PlaylistCreationResult result = apiInstance.createPlaylist(name, ids, userId, mediaType, createPlaylistDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#createPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The playlist name. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| The item ids. | [optional] | +| **userId** | **UUID**| The user id. | [optional] | +| **mediaType** | **String**| The media type. | [optional] | +| **createPlaylistDto** | [**CreatePlaylistDto**](CreatePlaylistDto.md)| The create playlist payload. | [optional] | + +### Return type + +[**PlaylistCreationResult**](PlaylistCreationResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlaylistItems** +> BaseItemDtoQueryResult getPlaylistItems(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes) + +Gets the original items of a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + UUID playlistId = UUID.randomUUID(); // UUID | The playlist id. + UUID userId = UUID.randomUUID(); // UUID | User id. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + try { + BaseItemDtoQueryResult result = apiInstance.getPlaylistItems(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#getPlaylistItems"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **UUID**| The playlist id. | | +| **userId** | **UUID**| User id. | | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Original playlist returned. | - | +| **404** | Playlist not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **moveItem** +> moveItem(playlistId, itemId, newIndex) + +Moves a playlist item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String playlistId = "playlistId_example"; // String | The playlist id. + String itemId = "itemId_example"; // String | The item id. + Integer newIndex = 56; // Integer | The new index. + try { + apiInstance.moveItem(playlistId, itemId, newIndex); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#moveItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **String**| The playlist id. | | +| **itemId** | **String**| The item id. | | +| **newIndex** | **Integer**| The new index. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Item moved to new index. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeFromPlaylist** +> removeFromPlaylist(playlistId, entryIds) + +Removes items from a playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaylistsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaylistsApi apiInstance = new PlaylistsApi(defaultClient); + String playlistId = "playlistId_example"; // String | The playlist id. + List entryIds = Arrays.asList(); // List | The item ids, comma delimited. + try { + apiInstance.removeFromPlaylist(playlistId, entryIds); + } catch (ApiException e) { + System.err.println("Exception when calling PlaylistsApi#removeFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playlistId** | **String**| The playlist id. | | +| **entryIds** | [**List<String>**](String.md)| The item ids, comma delimited. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Items removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateApi.md new file mode 100644 index 0000000000000..517de9dbc5db8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateApi.md @@ -0,0 +1,689 @@ +# PlaystateApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**markPlayedItem**](PlaystateApi.md#markPlayedItem) | **POST** /Users/{userId}/PlayedItems/{itemId} | Marks an item as played for user. | +| [**markUnplayedItem**](PlaystateApi.md#markUnplayedItem) | **DELETE** /Users/{userId}/PlayedItems/{itemId} | Marks an item as unplayed for user. | +| [**onPlaybackProgress**](PlaystateApi.md#onPlaybackProgress) | **POST** /Users/{userId}/PlayingItems/{itemId}/Progress | Reports a user's playback progress. | +| [**onPlaybackStart**](PlaystateApi.md#onPlaybackStart) | **POST** /Users/{userId}/PlayingItems/{itemId} | Reports that a user has begun playing an item. | +| [**onPlaybackStopped**](PlaystateApi.md#onPlaybackStopped) | **DELETE** /Users/{userId}/PlayingItems/{itemId} | Reports that a user has stopped playing an item. | +| [**pingPlaybackSession**](PlaystateApi.md#pingPlaybackSession) | **POST** /Sessions/Playing/Ping | Pings a playback session. | +| [**reportPlaybackProgress**](PlaystateApi.md#reportPlaybackProgress) | **POST** /Sessions/Playing/Progress | Reports playback progress within a session. | +| [**reportPlaybackStart**](PlaystateApi.md#reportPlaybackStart) | **POST** /Sessions/Playing | Reports playback has started within a session. | +| [**reportPlaybackStopped**](PlaystateApi.md#reportPlaybackStopped) | **POST** /Sessions/Playing/Stopped | Reports playback has stopped within a session. | + + + +# **markPlayedItem** +> UserItemDataDto markPlayedItem(userId, itemId, datePlayed) + +Marks an item as played for user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + OffsetDateTime datePlayed = OffsetDateTime.now(); // OffsetDateTime | Optional. The date the item was played. + try { + UserItemDataDto result = apiInstance.markPlayedItem(userId, itemId, datePlayed); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#markPlayedItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | +| **datePlayed** | **OffsetDateTime**| Optional. The date the item was played. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as played. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **markUnplayedItem** +> UserItemDataDto markUnplayedItem(userId, itemId) + +Marks an item as unplayed for user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + UserItemDataDto result = apiInstance.markUnplayedItem(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#markUnplayedItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as unplayed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackProgress** +> onPlaybackProgress(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted) + +Reports a user's playback progress. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + Long positionTicks = 56L; // Long | Optional. The current position, in ticks. 1 tick = 10000 ms. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + Integer volumeLevel = 56; // Integer | Scale of 0-100. + PlayMethod playMethod = PlayMethod.fromValue("Transcode"); // PlayMethod | The play method. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + RepeatMode repeatMode = RepeatMode.fromValue("RepeatNone"); // RepeatMode | The repeat mode. + Boolean isPaused = false; // Boolean | Indicates if the player is paused. + Boolean isMuted = false; // Boolean | Indicates if the player is muted. + try { + apiInstance.onPlaybackProgress(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackProgress"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **positionTicks** | **Long**| Optional. The current position, in ticks. 1 tick = 10000 ms. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **volumeLevel** | **Integer**| Scale of 0-100. | [optional] | +| **playMethod** | [**PlayMethod**](.md)| The play method. | [optional] [enum: Transcode, DirectStream, DirectPlay] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **repeatMode** | [**RepeatMode**](.md)| The repeat mode. | [optional] [enum: RepeatNone, RepeatAll, RepeatOne] | +| **isPaused** | **Boolean**| Indicates if the player is paused. | [optional] [default to false] | +| **isMuted** | **Boolean**| Indicates if the player is muted. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play progress recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackStart** +> onPlaybackStart(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek) + +Reports that a user has begun playing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + Integer audioStreamIndex = 56; // Integer | The audio stream index. + Integer subtitleStreamIndex = 56; // Integer | The subtitle stream index. + PlayMethod playMethod = PlayMethod.fromValue("Transcode"); // PlayMethod | The play method. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + Boolean canSeek = false; // Boolean | Indicates if the client can seek. + try { + apiInstance.onPlaybackStart(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackStart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **audioStreamIndex** | **Integer**| The audio stream index. | [optional] | +| **subtitleStreamIndex** | **Integer**| The subtitle stream index. | [optional] | +| **playMethod** | [**PlayMethod**](.md)| The play method. | [optional] [enum: Transcode, DirectStream, DirectPlay] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **canSeek** | **Boolean**| Indicates if the client can seek. | [optional] [default to false] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play start recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **onPlaybackStopped** +> onPlaybackStopped(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId) + +Reports that a user has stopped playing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + String mediaSourceId = "mediaSourceId_example"; // String | The id of the MediaSource. + String nextMediaType = "nextMediaType_example"; // String | The next media type that will play. + Long positionTicks = 56L; // Long | Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + String playSessionId = "playSessionId_example"; // String | The play session id. + try { + apiInstance.onPlaybackStopped(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#onPlaybackStopped"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | +| **mediaSourceId** | **String**| The id of the MediaSource. | [optional] | +| **nextMediaType** | **String**| The next media type that will play. | [optional] | +| **positionTicks** | **Long**| Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback stop recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **pingPlaybackSession** +> pingPlaybackSession(playSessionId) + +Pings a playback session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + String playSessionId = "playSessionId_example"; // String | Playback session id. + try { + apiInstance.pingPlaybackSession(playSessionId); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#pingPlaybackSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playSessionId** | **String**| Playback session id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback session pinged. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackProgress** +> reportPlaybackProgress(playbackProgressInfo) + +Reports playback progress within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackProgressInfo playbackProgressInfo = new PlaybackProgressInfo(); // PlaybackProgressInfo | The playback progress info. + try { + apiInstance.reportPlaybackProgress(playbackProgressInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackProgress"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackProgressInfo** | [**PlaybackProgressInfo**](PlaybackProgressInfo.md)| The playback progress info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback progress recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackStart** +> reportPlaybackStart(playbackStartInfo) + +Reports playback has started within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackStartInfo playbackStartInfo = new PlaybackStartInfo(); // PlaybackStartInfo | The playback start info. + try { + apiInstance.reportPlaybackStart(playbackStartInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackStart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackStartInfo** | [**PlaybackStartInfo**](PlaybackStartInfo.md)| The playback start info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback start recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportPlaybackStopped** +> reportPlaybackStopped(playbackStopInfo) + +Reports playback has stopped within a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PlaystateApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PlaystateApi apiInstance = new PlaystateApi(defaultClient); + PlaybackStopInfo playbackStopInfo = new PlaybackStopInfo(); // PlaybackStopInfo | The playback stop info. + try { + apiInstance.reportPlaybackStopped(playbackStopInfo); + } catch (ApiException e) { + System.err.println("Exception when calling PlaystateApi#reportPlaybackStopped"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playbackStopInfo** | [**PlaybackStopInfo**](PlaybackStopInfo.md)| The playback stop info. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playback stop recorded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateCommand.md new file mode 100644 index 0000000000000..0b511a77f1b9e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateCommand.md @@ -0,0 +1,27 @@ + + +# PlaystateCommand + +## Enum + + +* `STOP` (value: `"Stop"`) + +* `PAUSE` (value: `"Pause"`) + +* `UNPAUSE` (value: `"Unpause"`) + +* `NEXT_TRACK` (value: `"NextTrack"`) + +* `PREVIOUS_TRACK` (value: `"PreviousTrack"`) + +* `SEEK` (value: `"Seek"`) + +* `REWIND` (value: `"Rewind"`) + +* `FAST_FORWARD` (value: `"FastForward"`) + +* `PLAY_PAUSE` (value: `"PlayPause"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateRequest.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateRequest.md new file mode 100644 index 0000000000000..b06c88ce949f6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PlaystateRequest.md @@ -0,0 +1,15 @@ + + +# PlaystateRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**command** | **PlaystateCommand** | Enum PlaystateCommand. | [optional] | +|**seekPositionTicks** | **Long** | | [optional] | +|**controllingUserId** | **String** | Gets or sets the controlling user identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginInfo.md new file mode 100644 index 0000000000000..d7097c2d11bcc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginInfo.md @@ -0,0 +1,21 @@ + + +# PluginInfo + +This is a serializable stub class that is used by the api to provide information about installed plugins. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**version** | **String** | Gets or sets the version. | [optional] | +|**configurationFileName** | **String** | Gets or sets the name of the configuration file. | [optional] | +|**description** | **String** | Gets or sets the description. | [optional] | +|**id** | **UUID** | Gets or sets the unique id. | [optional] | +|**canUninstall** | **Boolean** | Gets or sets a value indicating whether the plugin can be uninstalled. | [optional] | +|**hasImage** | **Boolean** | Gets or sets a value indicating whether this plugin has a valid image. | [optional] | +|**status** | **PluginStatus** | Gets or sets a value indicating the status of the plugin. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginStatus.md new file mode 100644 index 0000000000000..8443f56dd259f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginStatus.md @@ -0,0 +1,23 @@ + + +# PluginStatus + +## Enum + + +* `ACTIVE` (value: `"Active"`) + +* `RESTART` (value: `"Restart"`) + +* `DELETED` (value: `"Deleted"`) + +* `SUPERCEDED` (value: `"Superceded"`) + +* `MALFUNCTIONED` (value: `"Malfunctioned"`) + +* `NOT_SUPPORTED` (value: `"NotSupported"`) + +* `DISABLED` (value: `"Disabled"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginsApi.md new file mode 100644 index 0000000000000..f231e4c47dad4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PluginsApi.md @@ -0,0 +1,646 @@ +# PluginsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**disablePlugin**](PluginsApi.md#disablePlugin) | **POST** /Plugins/{pluginId}/{version}/Disable | Disable a plugin. | +| [**enablePlugin**](PluginsApi.md#enablePlugin) | **POST** /Plugins/{pluginId}/{version}/Enable | Enables a disabled plugin. | +| [**getPluginConfiguration**](PluginsApi.md#getPluginConfiguration) | **GET** /Plugins/{pluginId}/Configuration | Gets plugin configuration. | +| [**getPluginImage**](PluginsApi.md#getPluginImage) | **GET** /Plugins/{pluginId}/{version}/Image | Gets a plugin's image. | +| [**getPluginManifest**](PluginsApi.md#getPluginManifest) | **POST** /Plugins/{pluginId}/Manifest | Gets a plugin's manifest. | +| [**getPlugins**](PluginsApi.md#getPlugins) | **GET** /Plugins | Gets a list of currently installed plugins. | +| [**uninstallPlugin**](PluginsApi.md#uninstallPlugin) | **DELETE** /Plugins/{pluginId} | Uninstalls a plugin. | +| [**uninstallPluginByVersion**](PluginsApi.md#uninstallPluginByVersion) | **DELETE** /Plugins/{pluginId}/{version} | Uninstalls a plugin by version. | +| [**updatePluginConfiguration**](PluginsApi.md#updatePluginConfiguration) | **POST** /Plugins/{pluginId}/Configuration | Updates plugin configuration. | + + + +# **disablePlugin** +> disablePlugin(pluginId, version) + +Disable a plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.disablePlugin(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#disablePlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin disabled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **enablePlugin** +> enablePlugin(pluginId, version) + +Enables a disabled plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.enablePlugin(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#enablePlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin enabled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginConfiguration** +> Object getPluginConfiguration(pluginId) + +Gets plugin configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + Object result = apiInstance.getPluginConfiguration(pluginId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +**Object** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Plugin configuration returned. | - | +| **404** | Plugin not found or plugin configuration not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginImage** +> File getPluginImage(pluginId, version) + +Gets a plugin's image. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + File result = apiInstance.getPluginImage(pluginId, version); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: image/*, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Plugin image returned. | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPluginManifest** +> getPluginManifest(pluginId) + +Gets a plugin's manifest. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.getPluginManifest(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPluginManifest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin manifest returned. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPlugins** +> List<PluginInfo> getPlugins() + +Gets a list of currently installed plugins. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + try { + List result = apiInstance.getPlugins(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#getPlugins"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<PluginInfo>**](PluginInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Installed plugins returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uninstallPlugin** +> uninstallPlugin(pluginId) + +Uninstalls a plugin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.uninstallPlugin(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#uninstallPlugin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin uninstalled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uninstallPluginByVersion** +> uninstallPluginByVersion(pluginId, version) + +Uninstalls a plugin by version. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + String version = "version_example"; // String | Plugin version. + try { + apiInstance.uninstallPluginByVersion(pluginId, version); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#uninstallPluginByVersion"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | +| **version** | **String**| Plugin version. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin uninstalled. | - | +| **404** | Plugin not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updatePluginConfiguration** +> updatePluginConfiguration(pluginId) + +Updates plugin configuration. + +Accepts plugin configuration as JSON body. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.PluginsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + PluginsApi apiInstance = new PluginsApi(defaultClient); + UUID pluginId = UUID.randomUUID(); // UUID | Plugin id. + try { + apiInstance.updatePluginConfiguration(pluginId); + } catch (ApiException e) { + System.err.println("Exception when calling PluginsApi#updatePluginConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pluginId** | **UUID**| Plugin id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Plugin configuration updated. | - | +| **404** | Plugin not found or plugin does not have configuration. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PreviousItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PreviousItemRequestDto.md new file mode 100644 index 0000000000000..27a55129e62eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PreviousItemRequestDto.md @@ -0,0 +1,14 @@ + + +# PreviousItemRequestDto + +Class PreviousItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playing item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProblemDetails.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProblemDetails.md new file mode 100644 index 0000000000000..1111c411027e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProblemDetails.md @@ -0,0 +1,17 @@ + + +# ProblemDetails + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**title** | **String** | | [optional] | +|**status** | **Integer** | | [optional] | +|**detail** | **String** | | [optional] | +|**instance** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileCondition.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileCondition.md new file mode 100644 index 0000000000000..cb92bbf54784b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileCondition.md @@ -0,0 +1,16 @@ + + +# ProfileCondition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**condition** | **ProfileConditionType** | | [optional] | +|**property** | **ProfileConditionValue** | | [optional] | +|**value** | **String** | | [optional] | +|**isRequired** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionType.md new file mode 100644 index 0000000000000..a22f336020bb7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionType.md @@ -0,0 +1,19 @@ + + +# ProfileConditionType + +## Enum + + +* `EQUALS` (value: `"Equals"`) + +* `NOT_EQUALS` (value: `"NotEquals"`) + +* `LESS_THAN_EQUAL` (value: `"LessThanEqual"`) + +* `GREATER_THAN_EQUAL` (value: `"GreaterThanEqual"`) + +* `EQUALS_ANY` (value: `"EqualsAny"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionValue.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionValue.md new file mode 100644 index 0000000000000..439677d2b00fb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProfileConditionValue.md @@ -0,0 +1,57 @@ + + +# ProfileConditionValue + +## Enum + + +* `AUDIO_CHANNELS` (value: `"AudioChannels"`) + +* `AUDIO_BITRATE` (value: `"AudioBitrate"`) + +* `AUDIO_PROFILE` (value: `"AudioProfile"`) + +* `WIDTH` (value: `"Width"`) + +* `HEIGHT` (value: `"Height"`) + +* `HAS64_BIT_OFFSETS` (value: `"Has64BitOffsets"`) + +* `PACKET_LENGTH` (value: `"PacketLength"`) + +* `VIDEO_BIT_DEPTH` (value: `"VideoBitDepth"`) + +* `VIDEO_BITRATE` (value: `"VideoBitrate"`) + +* `VIDEO_FRAMERATE` (value: `"VideoFramerate"`) + +* `VIDEO_LEVEL` (value: `"VideoLevel"`) + +* `VIDEO_PROFILE` (value: `"VideoProfile"`) + +* `VIDEO_TIMESTAMP` (value: `"VideoTimestamp"`) + +* `IS_ANAMORPHIC` (value: `"IsAnamorphic"`) + +* `REF_FRAMES` (value: `"RefFrames"`) + +* `NUM_AUDIO_STREAMS` (value: `"NumAudioStreams"`) + +* `NUM_VIDEO_STREAMS` (value: `"NumVideoStreams"`) + +* `IS_SECONDARY_AUDIO` (value: `"IsSecondaryAudio"`) + +* `VIDEO_CODEC_TAG` (value: `"VideoCodecTag"`) + +* `IS_AVC` (value: `"IsAvc"`) + +* `IS_INTERLACED` (value: `"IsInterlaced"`) + +* `AUDIO_SAMPLE_RATE` (value: `"AudioSampleRate"`) + +* `AUDIO_BIT_DEPTH` (value: `"AudioBitDepth"`) + +* `VIDEO_RANGE_TYPE` (value: `"VideoRangeType"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProgramAudio.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProgramAudio.md new file mode 100644 index 0000000000000..bc0b57e807ca7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ProgramAudio.md @@ -0,0 +1,21 @@ + + +# ProgramAudio + +## Enum + + +* `MONO` (value: `"Mono"`) + +* `STEREO` (value: `"Stereo"`) + +* `DOLBY` (value: `"Dolby"`) + +* `DOLBY_DIGITAL` (value: `"DolbyDigital"`) + +* `THX` (value: `"Thx"`) + +* `ATMOS` (value: `"Atmos"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PublicSystemInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PublicSystemInfo.md new file mode 100644 index 0000000000000..44cb6880d3d4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/PublicSystemInfo.md @@ -0,0 +1,19 @@ + + +# PublicSystemInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**localAddress** | **String** | Gets or sets the local address. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. | [optional] | +|**version** | **String** | Gets or sets the server version. | [optional] | +|**productName** | **String** | Gets or sets the product name. This is the AssemblyProduct name. | [optional] | +|**operatingSystem** | **String** | Gets or sets the operating system. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**startupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether the startup wizard is completed. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFilters.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFilters.md new file mode 100644 index 0000000000000..35038891c8bd2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFilters.md @@ -0,0 +1,14 @@ + + +# QueryFilters + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**genres** | [**List<NameGuidPair>**](NameGuidPair.md) | | [optional] | +|**tags** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFiltersLegacy.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFiltersLegacy.md new file mode 100644 index 0000000000000..20e572267cd24 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueryFiltersLegacy.md @@ -0,0 +1,16 @@ + + +# QueryFiltersLegacy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**genres** | **List<String>** | | [optional] | +|**tags** | **List<String>** | | [optional] | +|**officialRatings** | **List<String>** | | [optional] | +|**years** | **List<Integer>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueItem.md new file mode 100644 index 0000000000000..51807e0dc5e99 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueItem.md @@ -0,0 +1,14 @@ + + +# QueueItem + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | | [optional] | +|**playlistItemId** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueRequestDto.md new file mode 100644 index 0000000000000..eeff374238033 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QueueRequestDto.md @@ -0,0 +1,15 @@ + + +# QueueRequestDto + +Class QueueRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemIds** | **List<UUID>** | Gets or sets the items to enqueue. | [optional] | +|**mode** | **GroupQueueMode** | Enum GroupQueueMode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectApi.md new file mode 100644 index 0000000000000..179ef6e7e31d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectApi.md @@ -0,0 +1,255 @@ +# QuickConnectApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**authorize**](QuickConnectApi.md#authorize) | **POST** /QuickConnect/Authorize | Authorizes a pending quick connect request. | +| [**connect**](QuickConnectApi.md#connect) | **GET** /QuickConnect/Connect | Attempts to retrieve authentication information. | +| [**getEnabled**](QuickConnectApi.md#getEnabled) | **GET** /QuickConnect/Enabled | Gets the current quick connect state. | +| [**initiate**](QuickConnectApi.md#initiate) | **GET** /QuickConnect/Initiate | Initiate a new quick connect request. | + + + +# **authorize** +> Boolean authorize(code) + +Authorizes a pending quick connect request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + String code = "code_example"; // String | Quick connect code to authorize. + try { + Boolean result = apiInstance.authorize(code); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#authorize"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **code** | **String**| Quick connect code to authorize. | | + +### Return type + +**Boolean** + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect result authorized successfully. | - | +| **403** | Unknown user id. | - | +| **401** | Unauthorized | - | + + +# **connect** +> QuickConnectResult connect(secret) + +Attempts to retrieve authentication information. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + String secret = "secret_example"; // String | Secret previously returned from the Initiate endpoint. + try { + QuickConnectResult result = apiInstance.connect(secret); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#connect"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **secret** | **String**| Secret previously returned from the Initiate endpoint. | | + +### Return type + +[**QuickConnectResult**](QuickConnectResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect result returned. | - | +| **404** | Unknown quick connect secret. | - | + + +# **getEnabled** +> Boolean getEnabled() + +Gets the current quick connect state. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + try { + Boolean result = apiInstance.getEnabled(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#getEnabled"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**Boolean** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect state returned. | - | + + +# **initiate** +> QuickConnectResult initiate() + +Initiate a new quick connect request. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.QuickConnectApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + QuickConnectApi apiInstance = new QuickConnectApi(defaultClient); + try { + QuickConnectResult result = apiInstance.initiate(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling QuickConnectApi#initiate"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**QuickConnectResult**](QuickConnectResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Quick connect request successfully created. | - | +| **401** | Quick connect is not active on this server. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectDto.md new file mode 100644 index 0000000000000..031b523afdf3a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectDto.md @@ -0,0 +1,14 @@ + + +# QuickConnectDto + +The quick connect request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**secret** | **String** | Gets or sets the quick connect secret. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectResult.md new file mode 100644 index 0000000000000..4d085f92952f0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/QuickConnectResult.md @@ -0,0 +1,21 @@ + + +# QuickConnectResult + +Stores the state of an quick connect request. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**authenticated** | **Boolean** | Gets or sets a value indicating whether this request is authorized. | [optional] | +|**secret** | **String** | Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. | [optional] | +|**code** | **String** | Gets the user facing code used so the user can quickly differentiate this request from others. | [optional] | +|**deviceId** | **String** | Gets the requesting device id. | [optional] | +|**deviceName** | **String** | Gets the requesting device name. | [optional] | +|**appName** | **String** | Gets the requesting app name. | [optional] | +|**appVersion** | **String** | Gets the requesting app version. | [optional] | +|**dateAdded** | **OffsetDateTime** | Gets or sets the DateTime that this request was created. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RatingType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RatingType.md new file mode 100644 index 0000000000000..1283e38169d14 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RatingType.md @@ -0,0 +1,13 @@ + + +# RatingType + +## Enum + + +* `SCORE` (value: `"Score"`) + +* `LIKES` (value: `"Likes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ReadyRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ReadyRequestDto.md new file mode 100644 index 0000000000000..8bcae06f3730b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ReadyRequestDto.md @@ -0,0 +1,17 @@ + + +# ReadyRequestDto + +Class ReadyRequest. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**when** | **OffsetDateTime** | Gets or sets when the request has been made by the client. | [optional] | +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | +|**isPlaying** | **Boolean** | Gets or sets a value indicating whether the client playback is unpaused. | [optional] | +|**playlistItemId** | **UUID** | Gets or sets the playlist item identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationDto.md new file mode 100644 index 0000000000000..284e8f4a85024 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationDto.md @@ -0,0 +1,16 @@ + + +# RecommendationDto + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | | [optional] | +|**recommendationType** | **RecommendationType** | | [optional] | +|**baselineItemName** | **String** | | [optional] | +|**categoryId** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationType.md new file mode 100644 index 0000000000000..465f4d2f98374 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecommendationType.md @@ -0,0 +1,21 @@ + + +# RecommendationType + +## Enum + + +* `SIMILAR_TO_RECENTLY_PLAYED` (value: `"SimilarToRecentlyPlayed"`) + +* `SIMILAR_TO_LIKED_ITEM` (value: `"SimilarToLikedItem"`) + +* `HAS_DIRECTOR_FROM_RECENTLY_PLAYED` (value: `"HasDirectorFromRecentlyPlayed"`) + +* `HAS_ACTOR_FROM_RECENTLY_PLAYED` (value: `"HasActorFromRecentlyPlayed"`) + +* `HAS_LIKED_DIRECTOR` (value: `"HasLikedDirector"`) + +* `HAS_LIKED_ACTOR` (value: `"HasLikedActor"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecordingStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecordingStatus.md new file mode 100644 index 0000000000000..79298e8669b89 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RecordingStatus.md @@ -0,0 +1,23 @@ + + +# RecordingStatus + +## Enum + + +* `NEW` (value: `"New"`) + +* `IN_PROGRESS` (value: `"InProgress"`) + +* `COMPLETED` (value: `"Completed"`) + +* `CANCELLED` (value: `"Cancelled"`) + +* `CONFLICTED_OK` (value: `"ConflictedOk"`) + +* `CONFLICTED_NOT_OK` (value: `"ConflictedNotOk"`) + +* `ERROR` (value: `"Error"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageApi.md new file mode 100644 index 0000000000000..7add001c8dccb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageApi.md @@ -0,0 +1,234 @@ +# RemoteImageApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**downloadRemoteImage**](RemoteImageApi.md#downloadRemoteImage) | **POST** /Items/{itemId}/RemoteImages/Download | Downloads a remote image for an item. | +| [**getRemoteImageProviders**](RemoteImageApi.md#getRemoteImageProviders) | **GET** /Items/{itemId}/RemoteImages/Providers | Gets available remote image providers for an item. | +| [**getRemoteImages**](RemoteImageApi.md#getRemoteImages) | **GET** /Items/{itemId}/RemoteImages | Gets available remote images for an item. | + + + +# **downloadRemoteImage** +> downloadRemoteImage(itemId, type, imageUrl) + +Downloads a remote image for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + ImageType type = ImageType.fromValue("Primary"); // ImageType | The image type. + String imageUrl = "imageUrl_example"; // String | The image url. + try { + apiInstance.downloadRemoteImage(itemId, type, imageUrl); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#downloadRemoteImage"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | +| **type** | [**ImageType**](.md)| The image type. | [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **imageUrl** | **String**| The image url. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Remote image downloaded. | - | +| **404** | Remote image not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteImageProviders** +> List<ImageProviderInfo> getRemoteImageProviders(itemId) + +Gets available remote image providers for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + try { + List result = apiInstance.getRemoteImageProviders(itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#getRemoteImageProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | + +### Return type + +[**List<ImageProviderInfo>**](ImageProviderInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Returned remote image providers. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteImages** +> RemoteImageResult getRemoteImages(itemId, type, startIndex, limit, providerName, includeAllLanguages) + +Gets available remote images for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.RemoteImageApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + RemoteImageApi apiInstance = new RemoteImageApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | Item Id. + ImageType type = ImageType.fromValue("Primary"); // ImageType | The image type. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String providerName = "providerName_example"; // String | Optional. The image provider to use. + Boolean includeAllLanguages = false; // Boolean | Optional. Include all languages. + try { + RemoteImageResult result = apiInstance.getRemoteImages(itemId, type, startIndex, limit, providerName, includeAllLanguages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RemoteImageApi#getRemoteImages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| Item Id. | | +| **type** | [**ImageType**](.md)| The image type. | [optional] [enum: Primary, Art, Backdrop, Banner, Logo, Thumb, Disc, Box, Screenshot, Menu, Chapter, BoxRear, Profile] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **providerName** | **String**| Optional. The image provider to use. | [optional] | +| **includeAllLanguages** | **Boolean**| Optional. Include all languages. | [optional] [default to false] | + +### Return type + +[**RemoteImageResult**](RemoteImageResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Remote Images returned. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageInfo.md new file mode 100644 index 0000000000000..137ce7ad0d583 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageInfo.md @@ -0,0 +1,23 @@ + + +# RemoteImageInfo + +Class RemoteImageInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerName** | **String** | Gets or sets the name of the provider. | [optional] | +|**url** | **String** | Gets or sets the URL. | [optional] | +|**thumbnailUrl** | **String** | Gets or sets a url used for previewing a smaller version. | [optional] | +|**height** | **Integer** | Gets or sets the height. | [optional] | +|**width** | **Integer** | Gets or sets the width. | [optional] | +|**communityRating** | **Double** | Gets or sets the community rating. | [optional] | +|**voteCount** | **Integer** | Gets or sets the vote count. | [optional] | +|**language** | **String** | Gets or sets the language. | [optional] | +|**type** | **ImageType** | Gets or sets the type. | [optional] | +|**ratingType** | **RatingType** | Gets or sets the type of the rating. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageResult.md new file mode 100644 index 0000000000000..9cc9a81699103 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteImageResult.md @@ -0,0 +1,16 @@ + + +# RemoteImageResult + +Class RemoteImageResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**images** | [**List<RemoteImageInfo>**](RemoteImageInfo.md) | Gets or sets the images. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total record count. | [optional] | +|**providers** | **List<String>** | Gets or sets the providers. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSearchResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSearchResult.md new file mode 100644 index 0000000000000..0aa2973fdb8b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSearchResult.md @@ -0,0 +1,24 @@ + + +# RemoteSearchResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**productionYear** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**indexNumberEnd** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**imageUrl** | **String** | | [optional] | +|**searchProviderName** | **String** | | [optional] | +|**overview** | **String** | | [optional] | +|**albumArtist** | [**RemoteSearchResult**](RemoteSearchResult.md) | | [optional] | +|**artists** | [**List<RemoteSearchResult>**](RemoteSearchResult.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSubtitleInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSubtitleInfo.md new file mode 100644 index 0000000000000..0c40d4acae925 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoteSubtitleInfo.md @@ -0,0 +1,23 @@ + + +# RemoteSubtitleInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**threeLetterISOLanguageName** | **String** | | [optional] | +|**id** | **String** | | [optional] | +|**providerName** | **String** | | [optional] | +|**name** | **String** | | [optional] | +|**format** | **String** | | [optional] | +|**author** | **String** | | [optional] | +|**comment** | **String** | | [optional] | +|**dateCreated** | **OffsetDateTime** | | [optional] | +|**communityRating** | **Float** | | [optional] | +|**downloadCount** | **Integer** | | [optional] | +|**isHashMatch** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoveFromPlaylistRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoveFromPlaylistRequestDto.md new file mode 100644 index 0000000000000..bbf21a6dfeede --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RemoveFromPlaylistRequestDto.md @@ -0,0 +1,16 @@ + + +# RemoveFromPlaylistRequestDto + +Class RemoveFromPlaylistRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemIds** | **List<UUID>** | Gets or sets the playlist identifiers ot the items. Ignored when clearing the playlist. | [optional] | +|**clearPlaylist** | **Boolean** | Gets or sets a value indicating whether the entire playlist should be cleared. | [optional] | +|**clearPlayingItem** | **Boolean** | Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepeatMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepeatMode.md new file mode 100644 index 0000000000000..9f9ca10f07b03 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepeatMode.md @@ -0,0 +1,15 @@ + + +# RepeatMode + +## Enum + + +* `REPEAT_NONE` (value: `"RepeatNone"`) + +* `REPEAT_ALL` (value: `"RepeatAll"`) + +* `REPEAT_ONE` (value: `"RepeatOne"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepositoryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepositoryInfo.md new file mode 100644 index 0000000000000..b2579a998bc60 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/RepositoryInfo.md @@ -0,0 +1,16 @@ + + +# RepositoryInfo + +Class RepositoryInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**url** | **String** | Gets or sets the URL. | [optional] | +|**enabled** | **Boolean** | Gets or sets a value indicating whether the repository is enabled. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ResponseProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ResponseProfile.md new file mode 100644 index 0000000000000..5b98b72cb35f1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ResponseProfile.md @@ -0,0 +1,19 @@ + + +# ResponseProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**container** | **String** | | [optional] | +|**audioCodec** | **String** | | [optional] | +|**videoCodec** | **String** | | [optional] | +|**type** | **DlnaProfileType** | | [optional] | +|**orgPn** | **String** | | [optional] | +|**mimeType** | **String** | | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScheduledTasksApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScheduledTasksApi.md new file mode 100644 index 0000000000000..98b1586f22439 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScheduledTasksApi.md @@ -0,0 +1,363 @@ +# ScheduledTasksApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTask**](ScheduledTasksApi.md#getTask) | **GET** /ScheduledTasks/{taskId} | Get task by id. | +| [**getTasks**](ScheduledTasksApi.md#getTasks) | **GET** /ScheduledTasks | Get tasks. | +| [**startTask**](ScheduledTasksApi.md#startTask) | **POST** /ScheduledTasks/Running/{taskId} | Start specified task. | +| [**stopTask**](ScheduledTasksApi.md#stopTask) | **DELETE** /ScheduledTasks/Running/{taskId} | Stop specified task. | +| [**updateTask**](ScheduledTasksApi.md#updateTask) | **POST** /ScheduledTasks/{taskId}/Triggers | Update specified task triggers. | + + + +# **getTask** +> TaskInfo getTask(taskId) + +Get task by id. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + TaskInfo result = apiInstance.getTask(taskId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#getTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +[**TaskInfo**](TaskInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Task retrieved. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getTasks** +> List<TaskInfo> getTasks(isHidden, isEnabled) + +Get tasks. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional filter tasks that are hidden, or not. + Boolean isEnabled = true; // Boolean | Optional filter tasks that are enabled, or not. + try { + List result = apiInstance.getTasks(isHidden, isEnabled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#getTasks"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional filter tasks that are hidden, or not. | [optional] | +| **isEnabled** | **Boolean**| Optional filter tasks that are enabled, or not. | [optional] | + +### Return type + +[**List<TaskInfo>**](TaskInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Scheduled tasks retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **startTask** +> startTask(taskId) + +Start specified task. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + apiInstance.startTask(taskId); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#startTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task started. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **stopTask** +> stopTask(taskId) + +Stop specified task. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + try { + apiInstance.stopTask(taskId); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#stopTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task stopped. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateTask** +> updateTask(taskId, taskTriggerInfo) + +Update specified task triggers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.ScheduledTasksApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + ScheduledTasksApi apiInstance = new ScheduledTasksApi(defaultClient); + String taskId = "taskId_example"; // String | Task Id. + List taskTriggerInfo = Arrays.asList(); // List | Triggers. + try { + apiInstance.updateTask(taskId, taskTriggerInfo); + } catch (ApiException e) { + System.err.println("Exception when calling ScheduledTasksApi#updateTask"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **taskId** | **String**| Task Id. | | +| **taskTriggerInfo** | [**List<TaskTriggerInfo>**](TaskTriggerInfo.md)| Triggers. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Task triggers updated. | - | +| **404** | Task not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScrollDirection.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScrollDirection.md new file mode 100644 index 0000000000000..567f1e23d6353 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ScrollDirection.md @@ -0,0 +1,13 @@ + + +# ScrollDirection + +## Enum + + +* `HORIZONTAL` (value: `"Horizontal"`) + +* `VERTICAL` (value: `"Vertical"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchApi.md new file mode 100644 index 0000000000000..bcf5d240e0131 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchApi.md @@ -0,0 +1,112 @@ +# SearchApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**get**](SearchApi.md#get) | **GET** /Search/Hints | Gets the search hint result. | + + + +# **get** +> SearchHintResult get(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists) + +Gets the search hint result. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SearchApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SearchApi apiInstance = new SearchApi(defaultClient); + String searchTerm = "searchTerm_example"; // String | The search term to filter on. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + UUID userId = UUID.randomUUID(); // UUID | Optional. Supply a user id to search within a user's library or omit to search all. + List includeItemTypes = Arrays.asList(); // List | If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. + List excludeItemTypes = Arrays.asList(); // List | If specified, results with these item types are filtered out. This allows multiple, comma delimeted. + List mediaTypes = Arrays.asList(); // List | If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. + UUID parentId = UUID.randomUUID(); // UUID | If specified, only children of the parent are returned. + Boolean isMovie = true; // Boolean | Optional filter for movies. + Boolean isSeries = true; // Boolean | Optional filter for series. + Boolean isNews = true; // Boolean | Optional filter for news. + Boolean isKids = true; // Boolean | Optional filter for kids. + Boolean isSports = true; // Boolean | Optional filter for sports. + Boolean includePeople = true; // Boolean | Optional filter whether to include people. + Boolean includeMedia = true; // Boolean | Optional filter whether to include media. + Boolean includeGenres = true; // Boolean | Optional filter whether to include genres. + Boolean includeStudios = true; // Boolean | Optional filter whether to include studios. + Boolean includeArtists = true; // Boolean | Optional filter whether to include artists. + try { + SearchHintResult result = apiInstance.get(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SearchApi#get"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **searchTerm** | **String**| The search term to filter on. | | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **userId** | **UUID**| Optional. Supply a user id to search within a user's library or omit to search all. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| If specified, results with these item types are filtered out. This allows multiple, comma delimeted. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. | [optional] | +| **parentId** | **UUID**| If specified, only children of the parent are returned. | [optional] | +| **isMovie** | **Boolean**| Optional filter for movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for series. | [optional] | +| **isNews** | **Boolean**| Optional filter for news. | [optional] | +| **isKids** | **Boolean**| Optional filter for kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for sports. | [optional] | +| **includePeople** | **Boolean**| Optional filter whether to include people. | [optional] [default to true] | +| **includeMedia** | **Boolean**| Optional filter whether to include media. | [optional] [default to true] | +| **includeGenres** | **Boolean**| Optional filter whether to include genres. | [optional] [default to true] | +| **includeStudios** | **Boolean**| Optional filter whether to include studios. | [optional] [default to true] | +| **includeArtists** | **Boolean**| Optional filter whether to include artists. | [optional] [default to true] | + +### Return type + +[**SearchHintResult**](SearchHintResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Search hint returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHint.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHint.md new file mode 100644 index 0000000000000..1110ed6ebe49f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHint.md @@ -0,0 +1,42 @@ + + +# SearchHint + +Class SearchHintResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**itemId** | **UUID** | Gets or sets the item id. | [optional] | +|**id** | **UUID** | | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**matchedTerm** | **String** | Gets or sets the matched term. | [optional] | +|**indexNumber** | **Integer** | Gets or sets the index number. | [optional] | +|**productionYear** | **Integer** | Gets or sets the production year. | [optional] | +|**parentIndexNumber** | **Integer** | Gets or sets the parent index number. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the image tag. | [optional] | +|**thumbImageTag** | **String** | Gets or sets the thumb image tag. | [optional] | +|**thumbImageItemId** | **String** | Gets or sets the thumb image item identifier. | [optional] | +|**backdropImageTag** | **String** | Gets or sets the backdrop image tag. | [optional] | +|**backdropImageItemId** | **String** | Gets or sets the backdrop image item identifier. | [optional] | +|**type** | **String** | Gets or sets the type. | [optional] | +|**isFolder** | **Boolean** | | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**mediaType** | **String** | Gets or sets the type of the media. | [optional] | +|**startDate** | **OffsetDateTime** | | [optional] | +|**endDate** | **OffsetDateTime** | | [optional] | +|**series** | **String** | Gets or sets the series. | [optional] | +|**status** | **String** | | [optional] | +|**album** | **String** | Gets or sets the album. | [optional] | +|**albumId** | **UUID** | | [optional] | +|**albumArtist** | **String** | Gets or sets the album artist. | [optional] | +|**artists** | **List<String>** | Gets or sets the artists. | [optional] | +|**songCount** | **Integer** | Gets or sets the song count. | [optional] | +|**episodeCount** | **Integer** | Gets or sets the episode count. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the name of the channel. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHintResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHintResult.md new file mode 100644 index 0000000000000..a4855dc7ec74a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SearchHintResult.md @@ -0,0 +1,15 @@ + + +# SearchHintResult + +Class SearchHintResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchHints** | [**List<SearchHint>**](SearchHint.md) | Gets the search hints. | [optional] | +|**totalRecordCount** | **Integer** | Gets the total record count. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeekRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeekRequestDto.md new file mode 100644 index 0000000000000..b6878cf641b40 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeekRequestDto.md @@ -0,0 +1,14 @@ + + +# SeekRequestDto + +Class SeekRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**positionTicks** | **Long** | Gets or sets the position ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommand.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommand.md new file mode 100644 index 0000000000000..bdbea9d5acac8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommand.md @@ -0,0 +1,19 @@ + + +# SendCommand + +Class SendCommand. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupId** | **UUID** | Gets the group identifier. | [optional] | +|**playlistItemId** | **UUID** | Gets the playlist identifier of the playing item. | [optional] | +|**when** | **OffsetDateTime** | Gets or sets the UTC time when to execute the command. | [optional] | +|**positionTicks** | **Long** | Gets the position ticks. | [optional] | +|**command** | **SendCommandType** | Gets the command. | [optional] | +|**emittedAt** | **OffsetDateTime** | Gets the UTC time when this command has been emitted. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommandType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommandType.md new file mode 100644 index 0000000000000..9899b3666a021 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendCommandType.md @@ -0,0 +1,17 @@ + + +# SendCommandType + +## Enum + + +* `UNPAUSE` (value: `"Unpause"`) + +* `PAUSE` (value: `"Pause"`) + +* `STOP` (value: `"Stop"`) + +* `SEEK` (value: `"Seek"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendToUserType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendToUserType.md new file mode 100644 index 0000000000000..03cb60357d613 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SendToUserType.md @@ -0,0 +1,15 @@ + + +# SendToUserType + +## Enum + + +* `ALL` (value: `"All"`) + +* `ADMINS` (value: `"Admins"`) + +* `CUSTOM` (value: `"Custom"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfo.md new file mode 100644 index 0000000000000..3884e122f223c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfo.md @@ -0,0 +1,23 @@ + + +# SeriesInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..34f0ce4dbf57e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# SeriesInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**SeriesInfo**](SeriesInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesStatus.md new file mode 100644 index 0000000000000..008a65b5126bb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesStatus.md @@ -0,0 +1,13 @@ + + +# SeriesStatus + +## Enum + + +* `CONTINUING` (value: `"Continuing"`) + +* `ENDED` (value: `"Ended"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDto.md new file mode 100644 index 0000000000000..c2afd27a739b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDto.md @@ -0,0 +1,48 @@ + + +# SeriesTimerInfoDto + +Class SeriesTimerInfoDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the Id of the recording. | [optional] | +|**type** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**externalId** | **String** | Gets or sets the external identifier. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel id of the recording. | [optional] | +|**externalChannelId** | **String** | Gets or sets the external channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the channel name of the recording. | [optional] | +|**channelPrimaryImageTag** | **String** | | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**externalProgramId** | **String** | Gets or sets the external program identifier. | [optional] | +|**name** | **String** | Gets or sets the name of the recording. | [optional] | +|**overview** | **String** | Gets or sets the description of the recording. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date of the recording, in UTC. | [optional] | +|**serviceName** | **String** | Gets or sets the name of the service. | [optional] | +|**priority** | **Integer** | Gets or sets the priority. | [optional] | +|**prePaddingSeconds** | **Integer** | Gets or sets the pre padding seconds. | [optional] | +|**postPaddingSeconds** | **Integer** | Gets or sets the post padding seconds. | [optional] | +|**isPrePaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is pre padding required. | [optional] | +|**parentBackdropItemId** | **String** | Gets or sets the Id of the Parent that has a backdrop if the item does not have one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**isPostPaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is post padding required. | [optional] | +|**keepUntil** | **KeepUntil** | | [optional] | +|**recordAnyTime** | **Boolean** | Gets or sets a value indicating whether [record any time]. | [optional] | +|**skipEpisodesInLibrary** | **Boolean** | | [optional] | +|**recordAnyChannel** | **Boolean** | Gets or sets a value indicating whether [record any channel]. | [optional] | +|**keepUpTo** | **Integer** | | [optional] | +|**recordNewOnly** | **Boolean** | Gets or sets a value indicating whether [record new only]. | [optional] | +|**days** | **List<DayOfWeek>** | Gets or sets the days. | [optional] | +|**dayPattern** | **DayPattern** | Gets or sets the day pattern. | [optional] | +|**imageTags** | **Map<String, String>** | Gets or sets the image tags. | [optional] | +|**parentThumbItemId** | **String** | Gets or sets the parent thumb item id. | [optional] | +|**parentThumbImageTag** | **String** | Gets or sets the parent thumb image tag. | [optional] | +|**parentPrimaryImageItemId** | **String** | Gets or sets the parent primary image item identifier. | [optional] | +|**parentPrimaryImageTag** | **String** | Gets or sets the parent primary image tag. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDtoQueryResult.md new file mode 100644 index 0000000000000..157c3127d7c91 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SeriesTimerInfoDtoQueryResult.md @@ -0,0 +1,15 @@ + + +# SeriesTimerInfoDtoQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<SeriesTimerInfoDto>**](SeriesTimerInfoDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerConfiguration.md new file mode 100644 index 0000000000000..79b6ef593023a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerConfiguration.md @@ -0,0 +1,61 @@ + + +# ServerConfiguration + +Represents the server configuration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**logFileRetentionDays** | **Integer** | Gets or sets the number of days we should retain log files. | [optional] | +|**isStartupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether this instance is first run. | [optional] | +|**cachePath** | **String** | Gets or sets the cache path. | [optional] | +|**previousVersion** | **String** | Gets or sets the last known version that was ran using the configuration. | [optional] | +|**previousVersionStr** | **String** | Gets or sets the stringified PreviousVersion to be stored/loaded, because System.Version itself isn't xml-serializable. | [optional] | +|**enableMetrics** | **Boolean** | Gets or sets a value indicating whether to enable prometheus metrics exporting. | [optional] | +|**enableNormalizedItemByNameIds** | **Boolean** | | [optional] | +|**isPortAuthorized** | **Boolean** | Gets or sets a value indicating whether this instance is port authorized. | [optional] | +|**quickConnectAvailable** | **Boolean** | Gets or sets a value indicating whether quick connect is available for use on this server. | [optional] | +|**enableCaseSensitiveItemIds** | **Boolean** | Gets or sets a value indicating whether [enable case sensitive item ids]. | [optional] | +|**disableLiveTvChannelUserDataName** | **Boolean** | | [optional] | +|**metadataPath** | **String** | Gets or sets the metadata path. | [optional] | +|**metadataNetworkPath** | **String** | | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**sortReplaceCharacters** | **List<String>** | Gets or sets characters to be replaced with a ' ' in strings to create a sort name. | [optional] | +|**sortRemoveCharacters** | **List<String>** | Gets or sets characters to be removed from strings to create a sort name. | [optional] | +|**sortRemoveWords** | **List<String>** | Gets or sets words to be removed from strings to create a sort name. | [optional] | +|**minResumePct** | **Integer** | Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. | [optional] | +|**maxResumePct** | **Integer** | Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. | [optional] | +|**minResumeDurationSeconds** | **Integer** | Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. | [optional] | +|**minAudiobookResume** | **Integer** | Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. | [optional] | +|**maxAudiobookResume** | **Integer** | Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. | [optional] | +|**libraryMonitorDelay** | **Integer** | Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed Some delay is necessary with some items because their creation is not atomic. It involves the creation of several different directories and files. | [optional] | +|**imageSavingConvention** | **ImageSavingConvention** | Gets or sets the image saving convention. | [optional] | +|**metadataOptions** | [**List<MetadataOptions>**](MetadataOptions.md) | | [optional] | +|**skipDeserializationForBasicTypes** | **Boolean** | | [optional] | +|**serverName** | **String** | | [optional] | +|**uiCulture** | **String** | | [optional] | +|**saveMetadataHidden** | **Boolean** | | [optional] | +|**contentTypes** | [**List<NameValuePair>**](NameValuePair.md) | | [optional] | +|**remoteClientBitrateLimit** | **Integer** | | [optional] | +|**enableFolderView** | **Boolean** | | [optional] | +|**enableGroupingIntoCollections** | **Boolean** | | [optional] | +|**displaySpecialsWithinSeasons** | **Boolean** | | [optional] | +|**codecsUsed** | **List<String>** | | [optional] | +|**pluginRepositories** | [**List<RepositoryInfo>**](RepositoryInfo.md) | | [optional] | +|**enableExternalContentInSuggestions** | **Boolean** | | [optional] | +|**imageExtractionTimeoutMs** | **Integer** | | [optional] | +|**pathSubstitutions** | [**List<PathSubstitution>**](PathSubstitution.md) | | [optional] | +|**enableSlowResponseWarning** | **Boolean** | Gets or sets a value indicating whether slow server responses should be logged as a warning. | [optional] | +|**slowResponseThresholdMs** | **Long** | Gets or sets the threshold for the slow response time warning in ms. | [optional] | +|**corsHosts** | **List<String>** | Gets or sets the cors hosts. | [optional] | +|**activityLogRetentionDays** | **Integer** | Gets or sets the number of days we should retain activity logs. | [optional] | +|**libraryScanFanoutConcurrency** | **Integer** | Gets or sets the how the library scan fans out. | [optional] | +|**libraryMetadataRefreshConcurrency** | **Integer** | Gets or sets the how many metadata refreshes can run concurrently. | [optional] | +|**removeOldPlugins** | **Boolean** | Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. | [optional] | +|**allowClientLogUpload** | **Boolean** | Gets or sets a value indicating whether clients should be allowed to upload logs. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerDiscoveryInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerDiscoveryInfo.md new file mode 100644 index 0000000000000..50c4a3654bbfa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ServerDiscoveryInfo.md @@ -0,0 +1,17 @@ + + +# ServerDiscoveryInfo + +The server discovery info model. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**address** | **String** | Gets the address. | [optional] | +|**id** | **String** | Gets the server identifier. | [optional] | +|**name** | **String** | Gets the name. | [optional] | +|**endpointAddress** | **String** | Gets the endpoint address. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionApi.md new file mode 100644 index 0000000000000..2d821d7d0ae88 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionApi.md @@ -0,0 +1,1159 @@ +# SessionApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**addUserToSession**](SessionApi.md#addUserToSession) | **POST** /Sessions/{sessionId}/User/{userId} | Adds an additional user to a session. | +| [**displayContent**](SessionApi.md#displayContent) | **POST** /Sessions/{sessionId}/Viewing | Instructs a session to browse to an item or view. | +| [**getAuthProviders**](SessionApi.md#getAuthProviders) | **GET** /Auth/Providers | Get all auth providers. | +| [**getPasswordResetProviders**](SessionApi.md#getPasswordResetProviders) | **GET** /Auth/PasswordResetProviders | Get all password reset providers. | +| [**getSessions**](SessionApi.md#getSessions) | **GET** /Sessions | Gets a list of sessions. | +| [**play**](SessionApi.md#play) | **POST** /Sessions/{sessionId}/Playing | Instructs a session to play an item. | +| [**postCapabilities**](SessionApi.md#postCapabilities) | **POST** /Sessions/Capabilities | Updates capabilities for a device. | +| [**postFullCapabilities**](SessionApi.md#postFullCapabilities) | **POST** /Sessions/Capabilities/Full | Updates capabilities for a device. | +| [**removeUserFromSession**](SessionApi.md#removeUserFromSession) | **DELETE** /Sessions/{sessionId}/User/{userId} | Removes an additional user from a session. | +| [**reportSessionEnded**](SessionApi.md#reportSessionEnded) | **POST** /Sessions/Logout | Reports that a session has ended. | +| [**reportViewing**](SessionApi.md#reportViewing) | **POST** /Sessions/Viewing | Reports that a session is viewing an item. | +| [**sendFullGeneralCommand**](SessionApi.md#sendFullGeneralCommand) | **POST** /Sessions/{sessionId}/Command | Issues a full general command to a client. | +| [**sendGeneralCommand**](SessionApi.md#sendGeneralCommand) | **POST** /Sessions/{sessionId}/Command/{command} | Issues a general command to a client. | +| [**sendMessageCommand**](SessionApi.md#sendMessageCommand) | **POST** /Sessions/{sessionId}/Message | Issues a command to a client to display a message to the user. | +| [**sendPlaystateCommand**](SessionApi.md#sendPlaystateCommand) | **POST** /Sessions/{sessionId}/Playing/{command} | Issues a playstate command to a client. | +| [**sendSystemCommand**](SessionApi.md#sendSystemCommand) | **POST** /Sessions/{sessionId}/System/{command} | Issues a system command to a client. | + + + +# **addUserToSession** +> addUserToSession(sessionId, userId) + +Adds an additional user to a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.addUserToSession(sessionId, userId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#addUserToSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User added to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **displayContent** +> displayContent(sessionId, itemType, itemId, itemName) + +Instructs a session to browse to an item or view. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session Id. + BaseItemKind itemType = BaseItemKind.fromValue("AggregateFolder"); // BaseItemKind | The type of item to browse to. + String itemId = "itemId_example"; // String | The Id of the item. + String itemName = "itemName_example"; // String | The name of the item. + try { + apiInstance.displayContent(sessionId, itemType, itemId, itemName); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#displayContent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session Id. | | +| **itemType** | [**BaseItemKind**](.md)| The type of item to browse to. | [enum: AggregateFolder, Audio, AudioBook, BasePluginFolder, Book, BoxSet, Channel, ChannelFolderItem, CollectionFolder, Episode, Folder, Genre, ManualPlaylistsFolder, Movie, LiveTvChannel, LiveTvProgram, MusicAlbum, MusicArtist, MusicGenre, MusicVideo, Person, Photo, PhotoAlbum, Playlist, PlaylistsFolder, Program, Recording, Season, Series, Studio, Trailer, TvChannel, TvProgram, UserRootFolder, UserView, Video, Year] | +| **itemId** | **String**| The Id of the item. | | +| **itemName** | **String**| The name of the item. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Instruction sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getAuthProviders** +> List<NameIdPair> getAuthProviders() + +Get all auth providers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + List result = apiInstance.getAuthProviders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getAuthProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Auth providers retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPasswordResetProviders** +> List<NameIdPair> getPasswordResetProviders() + +Get all password reset providers. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + List result = apiInstance.getPasswordResetProviders(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getPasswordResetProviders"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<NameIdPair>**](NameIdPair.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Password reset providers retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSessions** +> List<SessionInfo> getSessions(controllableByUserId, deviceId, activeWithinSeconds) + +Gets a list of sessions. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + UUID controllableByUserId = UUID.randomUUID(); // UUID | Filter by sessions that a given user is allowed to remote control. + String deviceId = "deviceId_example"; // String | Filter by device Id. + Integer activeWithinSeconds = 56; // Integer | Optional. Filter by sessions that were active in the last n seconds. + try { + List result = apiInstance.getSessions(controllableByUserId, deviceId, activeWithinSeconds); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#getSessions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **controllableByUserId** | **UUID**| Filter by sessions that a given user is allowed to remote control. | [optional] | +| **deviceId** | **String**| Filter by device Id. | [optional] | +| **activeWithinSeconds** | **Integer**| Optional. Filter by sessions that were active in the last n seconds. | [optional] | + +### Return type + +[**List<SessionInfo>**](SessionInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | List of sessions returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **play** +> play(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex) + +Instructs a session to play an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + PlayCommand playCommand = PlayCommand.fromValue("PlayNow"); // PlayCommand | The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. + List itemIds = Arrays.asList(); // List | The ids of the items to play, comma delimited. + Long startPositionTicks = 56L; // Long | The starting position of the first item. + String mediaSourceId = "mediaSourceId_example"; // String | Optional. The media source id. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to play. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to play. + Integer startIndex = 56; // Integer | Optional. The start index. + try { + apiInstance.play(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#play"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **playCommand** | [**PlayCommand**](.md)| The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. | [enum: PlayNow, PlayNext, PlayLast, PlayInstantMix, PlayShuffle] | +| **itemIds** | [**List<UUID>**](UUID.md)| The ids of the items to play, comma delimited. | | +| **startPositionTicks** | **Long**| The starting position of the first item. | [optional] | +| **mediaSourceId** | **String**| Optional. The media source id. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to play. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to play. | [optional] | +| **startIndex** | **Integer**| Optional. The start index. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Instruction sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postCapabilities** +> postCapabilities(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier) + +Updates capabilities for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String id = "id_example"; // String | The session id. + List playableMediaTypes = Arrays.asList(); // List | A list of playable media types, comma delimited. Audio, Video, Book, Photo. + List supportedCommands = Arrays.asList(); // List | A list of supported remote control commands, comma delimited. + Boolean supportsMediaControl = false; // Boolean | Determines whether media can be played remotely.. + Boolean supportsSync = false; // Boolean | Determines whether sync is supported. + Boolean supportsPersistentIdentifier = true; // Boolean | Determines whether the device supports a unique identifier. + try { + apiInstance.postCapabilities(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#postCapabilities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| The session id. | [optional] | +| **playableMediaTypes** | [**List<String>**](String.md)| A list of playable media types, comma delimited. Audio, Video, Book, Photo. | [optional] | +| **supportedCommands** | [**List<GeneralCommandType>**](GeneralCommandType.md)| A list of supported remote control commands, comma delimited. | [optional] | +| **supportsMediaControl** | **Boolean**| Determines whether media can be played remotely.. | [optional] [default to false] | +| **supportsSync** | **Boolean**| Determines whether sync is supported. | [optional] [default to false] | +| **supportsPersistentIdentifier** | **Boolean**| Determines whether the device supports a unique identifier. | [optional] [default to true] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Capabilities posted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postFullCapabilities** +> postFullCapabilities(clientCapabilitiesDto, id) + +Updates capabilities for a device. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + ClientCapabilitiesDto clientCapabilitiesDto = new ClientCapabilitiesDto(); // ClientCapabilitiesDto | The MediaBrowser.Model.Session.ClientCapabilities. + String id = "id_example"; // String | The session id. + try { + apiInstance.postFullCapabilities(clientCapabilitiesDto, id); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#postFullCapabilities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **clientCapabilitiesDto** | [**ClientCapabilitiesDto**](ClientCapabilitiesDto.md)| The MediaBrowser.Model.Session.ClientCapabilities. | | +| **id** | **String**| The session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Capabilities updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **removeUserFromSession** +> removeUserFromSession(sessionId, userId) + +Removes an additional user from a session. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.removeUserFromSession(sessionId, userId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#removeUserFromSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User removed from session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportSessionEnded** +> reportSessionEnded() + +Reports that a session has ended. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + try { + apiInstance.reportSessionEnded(); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#reportSessionEnded"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Session end reported to server. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **reportViewing** +> reportViewing(itemId, sessionId) + +Reports that a session is viewing an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String itemId = "itemId_example"; // String | The item id. + String sessionId = "sessionId_example"; // String | The session id. + try { + apiInstance.reportViewing(itemId, sessionId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#reportViewing"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **String**| The item id. | | +| **sessionId** | **String**| The session id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Session reported to server. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendFullGeneralCommand** +> sendFullGeneralCommand(sessionId, generalCommand) + +Issues a full general command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommand generalCommand = new GeneralCommand(); // GeneralCommand | The MediaBrowser.Model.Session.GeneralCommand. + try { + apiInstance.sendFullGeneralCommand(sessionId, generalCommand); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendFullGeneralCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **generalCommand** | [**GeneralCommand**](GeneralCommand.md)| The MediaBrowser.Model.Session.GeneralCommand. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Full general command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendGeneralCommand** +> sendGeneralCommand(sessionId, command) + +Issues a general command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommandType command = GeneralCommandType.fromValue("MoveUp"); // GeneralCommandType | The command to send. + try { + apiInstance.sendGeneralCommand(sessionId, command); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendGeneralCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | [**GeneralCommandType**](.md)| The command to send. | [enum: MoveUp, MoveDown, MoveLeft, MoveRight, PageUp, PageDown, PreviousLetter, NextLetter, ToggleOsd, ToggleContextMenu, Select, Back, TakeScreenshot, SendKey, SendString, GoHome, GoToSettings, VolumeUp, VolumeDown, Mute, Unmute, ToggleMute, SetVolume, SetAudioStreamIndex, SetSubtitleStreamIndex, ToggleFullscreen, DisplayContent, GoToSearch, DisplayMessage, SetRepeatMode, ChannelUp, ChannelDown, Guide, ToggleStats, PlayMediaSource, PlayTrailers, SetShuffleQueue, PlayState, PlayNext, ToggleOsdMenu, Play, SetMaxStreamingBitrate] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | General command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendMessageCommand** +> sendMessageCommand(sessionId, messageCommand) + +Issues a command to a client to display a message to the user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + MessageCommand messageCommand = new MessageCommand(); // MessageCommand | The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. + try { + apiInstance.sendMessageCommand(sessionId, messageCommand); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendMessageCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **messageCommand** | [**MessageCommand**](MessageCommand.md)| The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Message sent. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendPlaystateCommand** +> sendPlaystateCommand(sessionId, command, seekPositionTicks, controllingUserId) + +Issues a playstate command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + PlaystateCommand command = PlaystateCommand.fromValue("Stop"); // PlaystateCommand | The MediaBrowser.Model.Session.PlaystateCommand. + Long seekPositionTicks = 56L; // Long | The optional position ticks. + String controllingUserId = "controllingUserId_example"; // String | The optional controlling user id. + try { + apiInstance.sendPlaystateCommand(sessionId, command, seekPositionTicks, controllingUserId); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendPlaystateCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | [**PlaystateCommand**](.md)| The MediaBrowser.Model.Session.PlaystateCommand. | [enum: Stop, Pause, Unpause, NextTrack, PreviousTrack, Seek, Rewind, FastForward, PlayPause] | +| **seekPositionTicks** | **Long**| The optional position ticks. | [optional] | +| **controllingUserId** | **String**| The optional controlling user id. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Playstate command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **sendSystemCommand** +> sendSystemCommand(sessionId, command) + +Issues a system command to a client. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SessionApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SessionApi apiInstance = new SessionApi(defaultClient); + String sessionId = "sessionId_example"; // String | The session id. + GeneralCommandType command = GeneralCommandType.fromValue("MoveUp"); // GeneralCommandType | The command to send. + try { + apiInstance.sendSystemCommand(sessionId, command); + } catch (ApiException e) { + System.err.println("Exception when calling SessionApi#sendSystemCommand"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **String**| The session id. | | +| **command** | [**GeneralCommandType**](.md)| The command to send. | [enum: MoveUp, MoveDown, MoveLeft, MoveRight, PageUp, PageDown, PreviousLetter, NextLetter, ToggleOsd, ToggleContextMenu, Select, Back, TakeScreenshot, SendKey, SendString, GoHome, GoToSettings, VolumeUp, VolumeDown, Mute, Unmute, ToggleMute, SetVolume, SetAudioStreamIndex, SetSubtitleStreamIndex, ToggleFullscreen, DisplayContent, GoToSearch, DisplayMessage, SetRepeatMode, ChannelUp, ChannelDown, Guide, ToggleStats, PlayMediaSource, PlayTrailers, SetShuffleQueue, PlayState, PlayNext, ToggleOsdMenu, Play, SetMaxStreamingBitrate] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | System command sent to session. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionInfo.md new file mode 100644 index 0000000000000..f9e1b359f9c6f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionInfo.md @@ -0,0 +1,42 @@ + + +# SessionInfo + +Class SessionInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playState** | [**PlayerStateInfo**](PlayerStateInfo.md) | | [optional] | +|**additionalUsers** | [**List<SessionUserInfo>**](SessionUserInfo.md) | | [optional] | +|**capabilities** | [**ClientCapabilities**](ClientCapabilities.md) | | [optional] | +|**remoteEndPoint** | **String** | Gets or sets the remote end point. | [optional] | +|**playableMediaTypes** | **List<String>** | Gets the playable media types. | [optional] [readonly] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**userId** | **UUID** | Gets or sets the user id. | [optional] | +|**userName** | **String** | Gets or sets the username. | [optional] | +|**client** | **String** | Gets or sets the type of the client. | [optional] | +|**lastActivityDate** | **OffsetDateTime** | Gets or sets the last activity date. | [optional] | +|**lastPlaybackCheckIn** | **OffsetDateTime** | Gets or sets the last playback check in. | [optional] | +|**deviceName** | **String** | Gets or sets the name of the device. | [optional] | +|**deviceType** | **String** | Gets or sets the type of the device. | [optional] | +|**nowPlayingItem** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the now playing item. | [optional] | +|**fullNowPlayingItem** | [**BaseItem**](BaseItem.md) | Class BaseItem. | [optional] | +|**nowViewingItem** | [**BaseItemDto**](BaseItemDto.md) | This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. | [optional] | +|**deviceId** | **String** | Gets or sets the device id. | [optional] | +|**applicationVersion** | **String** | Gets or sets the application version. | [optional] | +|**transcodingInfo** | [**TranscodingInfo**](TranscodingInfo.md) | | [optional] | +|**isActive** | **Boolean** | Gets a value indicating whether this instance is active. | [optional] [readonly] | +|**supportsMediaControl** | **Boolean** | | [optional] [readonly] | +|**supportsRemoteControl** | **Boolean** | | [optional] [readonly] | +|**nowPlayingQueue** | [**List<QueueItem>**](QueueItem.md) | | [optional] | +|**nowPlayingQueueFullItems** | [**List<BaseItemDto>**](BaseItemDto.md) | | [optional] | +|**hasCustomDeviceName** | **Boolean** | | [optional] | +|**playlistItemId** | **String** | | [optional] | +|**serverId** | **String** | | [optional] | +|**userPrimaryImageTag** | **String** | | [optional] | +|**supportedCommands** | **List<GeneralCommandType>** | Gets the supported commands. | [optional] [readonly] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionMessageType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionMessageType.md new file mode 100644 index 0000000000000..1f869056af973 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionMessageType.md @@ -0,0 +1,77 @@ + + +# SessionMessageType + +## Enum + + +* `FORCE_KEEP_ALIVE` (value: `"ForceKeepAlive"`) + +* `GENERAL_COMMAND` (value: `"GeneralCommand"`) + +* `USER_DATA_CHANGED` (value: `"UserDataChanged"`) + +* `SESSIONS` (value: `"Sessions"`) + +* `PLAY` (value: `"Play"`) + +* `SYNC_PLAY_COMMAND` (value: `"SyncPlayCommand"`) + +* `SYNC_PLAY_GROUP_UPDATE` (value: `"SyncPlayGroupUpdate"`) + +* `PLAYSTATE` (value: `"Playstate"`) + +* `RESTART_REQUIRED` (value: `"RestartRequired"`) + +* `SERVER_SHUTTING_DOWN` (value: `"ServerShuttingDown"`) + +* `SERVER_RESTARTING` (value: `"ServerRestarting"`) + +* `LIBRARY_CHANGED` (value: `"LibraryChanged"`) + +* `USER_DELETED` (value: `"UserDeleted"`) + +* `USER_UPDATED` (value: `"UserUpdated"`) + +* `SERIES_TIMER_CREATED` (value: `"SeriesTimerCreated"`) + +* `TIMER_CREATED` (value: `"TimerCreated"`) + +* `SERIES_TIMER_CANCELLED` (value: `"SeriesTimerCancelled"`) + +* `TIMER_CANCELLED` (value: `"TimerCancelled"`) + +* `REFRESH_PROGRESS` (value: `"RefreshProgress"`) + +* `SCHEDULED_TASK_ENDED` (value: `"ScheduledTaskEnded"`) + +* `PACKAGE_INSTALLATION_CANCELLED` (value: `"PackageInstallationCancelled"`) + +* `PACKAGE_INSTALLATION_FAILED` (value: `"PackageInstallationFailed"`) + +* `PACKAGE_INSTALLATION_COMPLETED` (value: `"PackageInstallationCompleted"`) + +* `PACKAGE_INSTALLING` (value: `"PackageInstalling"`) + +* `PACKAGE_UNINSTALLED` (value: `"PackageUninstalled"`) + +* `ACTIVITY_LOG_ENTRY` (value: `"ActivityLogEntry"`) + +* `SCHEDULED_TASKS_INFO` (value: `"ScheduledTasksInfo"`) + +* `ACTIVITY_LOG_ENTRY_START` (value: `"ActivityLogEntryStart"`) + +* `ACTIVITY_LOG_ENTRY_STOP` (value: `"ActivityLogEntryStop"`) + +* `SESSIONS_START` (value: `"SessionsStart"`) + +* `SESSIONS_STOP` (value: `"SessionsStop"`) + +* `SCHEDULED_TASKS_INFO_START` (value: `"ScheduledTasksInfoStart"`) + +* `SCHEDULED_TASKS_INFO_STOP` (value: `"ScheduledTasksInfoStop"`) + +* `KEEP_ALIVE` (value: `"KeepAlive"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionUserInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionUserInfo.md new file mode 100644 index 0000000000000..9368022458ede --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SessionUserInfo.md @@ -0,0 +1,15 @@ + + +# SessionUserInfo + +Class SessionUserInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **UUID** | Gets or sets the user identifier. | [optional] | +|**userName** | **String** | Gets or sets the name of the user. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetChannelMappingDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetChannelMappingDto.md new file mode 100644 index 0000000000000..bae15591a58a6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetChannelMappingDto.md @@ -0,0 +1,16 @@ + + +# SetChannelMappingDto + +Set channel mapping dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerId** | **String** | Gets or sets the provider id. | | +|**tunerChannelId** | **String** | Gets or sets the tuner channel id. | | +|**providerChannelId** | **String** | Gets or sets the provider channel id. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetPlaylistItemRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetPlaylistItemRequestDto.md new file mode 100644 index 0000000000000..fcbe651c68387 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetPlaylistItemRequestDto.md @@ -0,0 +1,14 @@ + + +# SetPlaylistItemRequestDto + +Class SetPlaylistItemRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playlistItemId** | **UUID** | Gets or sets the playlist identifier of the playing item. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetRepeatModeRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetRepeatModeRequestDto.md new file mode 100644 index 0000000000000..ce81114bf212e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetRepeatModeRequestDto.md @@ -0,0 +1,14 @@ + + +# SetRepeatModeRequestDto + +Class SetRepeatModeRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mode** | **GroupRepeatMode** | Enum GroupRepeatMode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetShuffleModeRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetShuffleModeRequestDto.md new file mode 100644 index 0000000000000..40416afdf05cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SetShuffleModeRequestDto.md @@ -0,0 +1,14 @@ + + +# SetShuffleModeRequestDto + +Class SetShuffleModeRequestDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**mode** | **GroupShuffleMode** | Enum GroupShuffleMode. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SongInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SongInfo.md new file mode 100644 index 0000000000000..e9237fdbfe52a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SongInfo.md @@ -0,0 +1,26 @@ + + +# SongInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | +|**albumArtists** | **List<String>** | | [optional] | +|**album** | **String** | | [optional] | +|**artists** | **List<String>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SortOrder.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SortOrder.md new file mode 100644 index 0000000000000..6ce9bbe6165af --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SortOrder.md @@ -0,0 +1,13 @@ + + +# SortOrder + +## Enum + + +* `ASCENDING` (value: `"Ascending"`) + +* `DESCENDING` (value: `"Descending"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SpecialViewOptionDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SpecialViewOptionDto.md new file mode 100644 index 0000000000000..bd69fe6588943 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SpecialViewOptionDto.md @@ -0,0 +1,15 @@ + + +# SpecialViewOptionDto + +Special view option dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets view option name. | [optional] | +|**id** | **String** | Gets or sets view option id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupApi.md new file mode 100644 index 0000000000000..259a044f5754f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupApi.md @@ -0,0 +1,478 @@ +# StartupApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**completeWizard**](StartupApi.md#completeWizard) | **POST** /Startup/Complete | Completes the startup wizard. | +| [**getFirstUser**](StartupApi.md#getFirstUser) | **GET** /Startup/User | Gets the first user. | +| [**getFirstUser2**](StartupApi.md#getFirstUser2) | **GET** /Startup/FirstUser | Gets the first user. | +| [**getStartupConfiguration**](StartupApi.md#getStartupConfiguration) | **GET** /Startup/Configuration | Gets the initial startup wizard configuration. | +| [**setRemoteAccess**](StartupApi.md#setRemoteAccess) | **POST** /Startup/RemoteAccess | Sets remote access and UPnP. | +| [**updateInitialConfiguration**](StartupApi.md#updateInitialConfiguration) | **POST** /Startup/Configuration | Sets the initial startup wizard configuration. | +| [**updateStartupUser**](StartupApi.md#updateStartupUser) | **POST** /Startup/User | Sets the user name and password. | + + + +# **completeWizard** +> completeWizard() + +Completes the startup wizard. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + apiInstance.completeWizard(); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#completeWizard"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Startup wizard completed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFirstUser** +> StartupUserDto getFirstUser() + +Gets the first user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupUserDto result = apiInstance.getFirstUser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getFirstUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupUserDto**](StartupUserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial user retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFirstUser2** +> StartupUserDto getFirstUser2() + +Gets the first user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupUserDto result = apiInstance.getFirstUser2(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getFirstUser2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupUserDto**](StartupUserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial user retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getStartupConfiguration** +> StartupConfigurationDto getStartupConfiguration() + +Gets the initial startup wizard configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + try { + StartupConfigurationDto result = apiInstance.getStartupConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#getStartupConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**StartupConfigurationDto**](StartupConfigurationDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Initial startup wizard configuration retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **setRemoteAccess** +> setRemoteAccess(startupRemoteAccessDto) + +Sets remote access and UPnP. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupRemoteAccessDto startupRemoteAccessDto = new StartupRemoteAccessDto(); // StartupRemoteAccessDto | The startup remote access dto. + try { + apiInstance.setRemoteAccess(startupRemoteAccessDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#setRemoteAccess"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupRemoteAccessDto** | [**StartupRemoteAccessDto**](StartupRemoteAccessDto.md)| The startup remote access dto. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateInitialConfiguration** +> updateInitialConfiguration(startupConfigurationDto) + +Sets the initial startup wizard configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupConfigurationDto startupConfigurationDto = new StartupConfigurationDto(); // StartupConfigurationDto | The updated startup configuration. + try { + apiInstance.updateInitialConfiguration(startupConfigurationDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#updateInitialConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupConfigurationDto** | [**StartupConfigurationDto**](StartupConfigurationDto.md)| The updated startup configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Configuration saved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateStartupUser** +> updateStartupUser(startupUserDto) + +Sets the user name and password. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StartupApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StartupApi apiInstance = new StartupApi(defaultClient); + StartupUserDto startupUserDto = new StartupUserDto(); // StartupUserDto | The DTO containing username and password. + try { + apiInstance.updateStartupUser(startupUserDto); + } catch (ApiException e) { + System.err.println("Exception when calling StartupApi#updateStartupUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startupUserDto** | [**StartupUserDto**](StartupUserDto.md)| The DTO containing username and password. | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Updated user name and password. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupConfigurationDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupConfigurationDto.md new file mode 100644 index 0000000000000..e9b4ebaea5244 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupConfigurationDto.md @@ -0,0 +1,16 @@ + + +# StartupConfigurationDto + +The startup configuration DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uiCulture** | **String** | Gets or sets UI language culture. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**preferredMetadataLanguage** | **String** | Gets or sets the preferred language for the metadata. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupRemoteAccessDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupRemoteAccessDto.md new file mode 100644 index 0000000000000..55b57ba0b1981 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupRemoteAccessDto.md @@ -0,0 +1,15 @@ + + +# StartupRemoteAccessDto + +Startup remote access dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**enableRemoteAccess** | **Boolean** | Gets or sets a value indicating whether enable remote access. | | +|**enableAutomaticPortMapping** | **Boolean** | Gets or sets a value indicating whether enable automatic port mapping. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupUserDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupUserDto.md new file mode 100644 index 0000000000000..17e67c4be6cc1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StartupUserDto.md @@ -0,0 +1,15 @@ + + +# StartupUserDto + +The startup user DTO. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the username. | [optional] | +|**password** | **String** | Gets or sets the user's password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StudiosApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StudiosApi.md new file mode 100644 index 0000000000000..0948b8bf22bb2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/StudiosApi.md @@ -0,0 +1,182 @@ +# StudiosApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getStudio**](StudiosApi.md#getStudio) | **GET** /Studios/{name} | Gets a studio by name. | +| [**getStudios**](StudiosApi.md#getStudios) | **GET** /Studios | Gets all studios from a given item, folder, or the entire library. | + + + +# **getStudio** +> BaseItemDto getStudio(name, userId) + +Gets a studio by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StudiosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StudiosApi apiInstance = new StudiosApi(defaultClient); + String name = "name_example"; // String | Studio name. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getStudio(name, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StudiosApi#getStudio"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| Studio name. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Studio returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getStudios** +> BaseItemDtoQueryResult getStudios(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount) + +Gets all studios from a given item, folder, or the entire library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.StudiosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + StudiosApi apiInstance = new StudiosApi(defaultClient); + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + String searchTerm = "searchTerm_example"; // String | Optional. Search term. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User id. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Boolean enableTotalRecordCount = true; // Boolean | Total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getStudios(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StudiosApi#getStudios"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **searchTerm** | **String**| Optional. Search term. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User id. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | +| **enableTotalRecordCount** | **Boolean**| Total record count. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Studios returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleApi.md new file mode 100644 index 0000000000000..992d23f8a86e1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleApi.md @@ -0,0 +1,746 @@ +# SubtitleApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteSubtitle**](SubtitleApi.md#deleteSubtitle) | **DELETE** /Videos/{itemId}/Subtitles/{index} | Deletes an external subtitle file. | +| [**downloadRemoteSubtitles**](SubtitleApi.md#downloadRemoteSubtitles) | **POST** /Items/{itemId}/RemoteSearch/Subtitles/{subtitleId} | Downloads a remote subtitle. | +| [**getFallbackFont**](SubtitleApi.md#getFallbackFont) | **GET** /FallbackFont/Fonts/{name} | Gets a fallback font file. | +| [**getFallbackFontList**](SubtitleApi.md#getFallbackFontList) | **GET** /FallbackFont/Fonts | Gets a list of available fallback font files. | +| [**getRemoteSubtitles**](SubtitleApi.md#getRemoteSubtitles) | **GET** /Providers/Subtitles/Subtitles/{id} | Gets the remote subtitles. | +| [**getSubtitle**](SubtitleApi.md#getSubtitle) | **GET** /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat} | Gets subtitles in a specified format. | +| [**getSubtitlePlaylist**](SubtitleApi.md#getSubtitlePlaylist) | **GET** /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8 | Gets an HLS subtitle playlist. | +| [**getSubtitleWithTicks**](SubtitleApi.md#getSubtitleWithTicks) | **GET** /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat} | Gets subtitles in a specified format. | +| [**searchRemoteSubtitles**](SubtitleApi.md#searchRemoteSubtitles) | **GET** /Items/{itemId}/RemoteSearch/Subtitles/{language} | Search remote subtitles. | +| [**uploadSubtitle**](SubtitleApi.md#uploadSubtitle) | **POST** /Videos/{itemId}/Subtitles | Upload an external subtitle file. | + + + +# **deleteSubtitle** +> deleteSubtitle(itemId, index) + +Deletes an external subtitle file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer index = 56; // Integer | The index of the subtitle file. + try { + apiInstance.deleteSubtitle(itemId, index); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#deleteSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **index** | **Integer**| The index of the subtitle file. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle deleted. | - | +| **404** | Item not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **downloadRemoteSubtitles** +> downloadRemoteSubtitles(itemId, subtitleId) + +Downloads a remote subtitle. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String subtitleId = "subtitleId_example"; // String | The subtitle id. + try { + apiInstance.downloadRemoteSubtitles(itemId, subtitleId); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#downloadRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **subtitleId** | **String**| The subtitle id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle downloaded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFallbackFont** +> File getFallbackFont(name) + +Gets a fallback font file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + String name = "name_example"; // String | The name of the fallback font file to get. + try { + File result = apiInstance.getFallbackFont(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getFallbackFont"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the fallback font file to get. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: font/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Fallback font file retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getFallbackFontList** +> List<FontFile> getFallbackFontList() + +Gets a list of available fallback font files. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + try { + List result = apiInstance.getFallbackFontList(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getFallbackFontList"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<FontFile>**](FontFile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRemoteSubtitles** +> File getRemoteSubtitles(id) + +Gets the remote subtitles. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + String id = "id_example"; // String | The item id. + try { + File result = apiInstance.getRemoteSubtitles(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| The item id. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSubtitle** +> File getSubtitle(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks) + +Gets subtitles in a specified format. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID routeItemId = UUID.randomUUID(); // UUID | The (route) item id. + String routeMediaSourceId = "routeMediaSourceId_example"; // String | The (route) media source id. + Integer routeIndex = 56; // Integer | The (route) subtitle stream index. + String routeFormat = "routeFormat_example"; // String | The (route) format of the returned subtitle. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer index = 56; // Integer | The subtitle stream index. + String format = "format_example"; // String | The format of the returned subtitle. + Long endPositionTicks = 56L; // Long | Optional. The end position of the subtitle in ticks. + Boolean copyTimestamps = false; // Boolean | Optional. Whether to copy the timestamps. + Boolean addVttTimeMap = false; // Boolean | Optional. Whether to add a VTT time map. + Long startPositionTicks = 0L; // Long | The start position of the subtitle in ticks. + try { + File result = apiInstance.getSubtitle(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeItemId** | **UUID**| The (route) item id. | | +| **routeMediaSourceId** | **String**| The (route) media source id. | | +| **routeIndex** | **Integer**| The (route) subtitle stream index. | | +| **routeFormat** | **String**| The (route) format of the returned subtitle. | | +| **itemId** | **UUID**| The item id. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **index** | **Integer**| The subtitle stream index. | [optional] | +| **format** | **String**| The format of the returned subtitle. | [optional] | +| **endPositionTicks** | **Long**| Optional. The end position of the subtitle in ticks. | [optional] | +| **copyTimestamps** | **Boolean**| Optional. Whether to copy the timestamps. | [optional] [default to false] | +| **addVttTimeMap** | **Boolean**| Optional. Whether to add a VTT time map. | [optional] [default to false] | +| **startPositionTicks** | **Long**| The start position of the subtitle in ticks. | [optional] [default to 0] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | + + +# **getSubtitlePlaylist** +> File getSubtitlePlaylist(itemId, index, mediaSourceId, segmentLength) + +Gets an HLS subtitle playlist. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + Integer index = 56; // Integer | The subtitle stream index. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer segmentLength = 56; // Integer | The subtitle segment length. + try { + File result = apiInstance.getSubtitlePlaylist(itemId, index, mediaSourceId, segmentLength); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitlePlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **index** | **Integer**| The subtitle stream index. | | +| **mediaSourceId** | **String**| The media source id. | | +| **segmentLength** | **Integer**| The subtitle segment length. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/x-mpegURL + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Subtitle playlist retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSubtitleWithTicks** +> File getSubtitleWithTicks(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap) + +Gets subtitles in a specified format. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID routeItemId = UUID.randomUUID(); // UUID | The (route) item id. + String routeMediaSourceId = "routeMediaSourceId_example"; // String | The (route) media source id. + Integer routeIndex = 56; // Integer | The (route) subtitle stream index. + Long routeStartPositionTicks = 56L; // Long | The (route) start position of the subtitle in ticks. + String routeFormat = "routeFormat_example"; // String | The (route) format of the returned subtitle. + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String mediaSourceId = "mediaSourceId_example"; // String | The media source id. + Integer index = 56; // Integer | The subtitle stream index. + Long startPositionTicks = 56L; // Long | The start position of the subtitle in ticks. + String format = "format_example"; // String | The format of the returned subtitle. + Long endPositionTicks = 56L; // Long | Optional. The end position of the subtitle in ticks. + Boolean copyTimestamps = false; // Boolean | Optional. Whether to copy the timestamps. + Boolean addVttTimeMap = false; // Boolean | Optional. Whether to add a VTT time map. + try { + File result = apiInstance.getSubtitleWithTicks(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#getSubtitleWithTicks"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeItemId** | **UUID**| The (route) item id. | | +| **routeMediaSourceId** | **String**| The (route) media source id. | | +| **routeIndex** | **Integer**| The (route) subtitle stream index. | | +| **routeStartPositionTicks** | **Long**| The (route) start position of the subtitle in ticks. | | +| **routeFormat** | **String**| The (route) format of the returned subtitle. | | +| **itemId** | **UUID**| The item id. | [optional] | +| **mediaSourceId** | **String**| The media source id. | [optional] | +| **index** | **Integer**| The subtitle stream index. | [optional] | +| **startPositionTicks** | **Long**| The start position of the subtitle in ticks. | [optional] | +| **format** | **String**| The format of the returned subtitle. | [optional] | +| **endPositionTicks** | **Long**| Optional. The end position of the subtitle in ticks. | [optional] | +| **copyTimestamps** | **Boolean**| Optional. Whether to copy the timestamps. | [optional] [default to false] | +| **addVttTimeMap** | **Boolean**| Optional. Whether to add a VTT time map. | [optional] [default to false] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | File returned. | - | + + +# **searchRemoteSubtitles** +> List<RemoteSubtitleInfo> searchRemoteSubtitles(itemId, language, isPerfectMatch) + +Search remote subtitles. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String language = "language_example"; // String | The language of the subtitles. + Boolean isPerfectMatch = true; // Boolean | Optional. Only show subtitles which are a perfect match. + try { + List result = apiInstance.searchRemoteSubtitles(itemId, language, isPerfectMatch); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#searchRemoteSubtitles"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **language** | **String**| The language of the subtitles. | | +| **isPerfectMatch** | **Boolean**| Optional. Only show subtitles which are a perfect match. | [optional] | + +### Return type + +[**List<RemoteSubtitleInfo>**](RemoteSubtitleInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Subtitles retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **uploadSubtitle** +> uploadSubtitle(itemId, uploadSubtitleDto) + +Upload an external subtitle file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SubtitleApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SubtitleApi apiInstance = new SubtitleApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item the subtitle belongs to. + UploadSubtitleDto uploadSubtitleDto = new UploadSubtitleDto(); // UploadSubtitleDto | The request body. + try { + apiInstance.uploadSubtitle(itemId, uploadSubtitleDto); + } catch (ApiException e) { + System.err.println("Exception when calling SubtitleApi#uploadSubtitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item the subtitle belongs to. | | +| **uploadSubtitleDto** | [**UploadSubtitleDto**](UploadSubtitleDto.md)| The request body. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Subtitle uploaded. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleDeliveryMethod.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleDeliveryMethod.md new file mode 100644 index 0000000000000..89e45605228cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleDeliveryMethod.md @@ -0,0 +1,19 @@ + + +# SubtitleDeliveryMethod + +## Enum + + +* `ENCODE` (value: `"Encode"`) + +* `EMBED` (value: `"Embed"`) + +* `EXTERNAL` (value: `"External"`) + +* `HLS` (value: `"Hls"`) + +* `DROP` (value: `"Drop"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleOptions.md new file mode 100644 index 0000000000000..08588796d6f86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleOptions.md @@ -0,0 +1,21 @@ + + +# SubtitleOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**skipIfEmbeddedSubtitlesPresent** | **Boolean** | | [optional] | +|**skipIfAudioTrackMatches** | **Boolean** | | [optional] | +|**downloadLanguages** | **List<String>** | | [optional] | +|**downloadMovieSubtitles** | **Boolean** | | [optional] | +|**downloadEpisodeSubtitles** | **Boolean** | | [optional] | +|**openSubtitlesUsername** | **String** | | [optional] | +|**openSubtitlesPasswordHash** | **String** | | [optional] | +|**isOpenSubtitleVipAccount** | **Boolean** | | [optional] | +|**requirePerfectMatch** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitlePlaybackMode.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitlePlaybackMode.md new file mode 100644 index 0000000000000..b3ad6953acc86 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitlePlaybackMode.md @@ -0,0 +1,19 @@ + + +# SubtitlePlaybackMode + +## Enum + + +* `DEFAULT` (value: `"Default"`) + +* `ALWAYS` (value: `"Always"`) + +* `ONLY_FORCED` (value: `"OnlyForced"`) + +* `NONE` (value: `"None"`) + +* `SMART` (value: `"Smart"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleProfile.md new file mode 100644 index 0000000000000..7f7b2d0882792 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SubtitleProfile.md @@ -0,0 +1,17 @@ + + +# SubtitleProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**format** | **String** | | [optional] | +|**method** | **SubtitleDeliveryMethod** | Delivery method to use during playback of a specific subtitle format. | [optional] | +|**didlMode** | **String** | | [optional] | +|**language** | **String** | | [optional] | +|**container** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SuggestionsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SuggestionsApi.md new file mode 100644 index 0000000000000..7a39c2eba2d87 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SuggestionsApi.md @@ -0,0 +1,88 @@ +# SuggestionsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getSuggestions**](SuggestionsApi.md#getSuggestions) | **GET** /Users/{userId}/Suggestions | Gets suggestions. | + + + +# **getSuggestions** +> BaseItemDtoQueryResult getSuggestions(userId, mediaType, type, startIndex, limit, enableTotalRecordCount) + +Gets suggestions. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SuggestionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SuggestionsApi apiInstance = new SuggestionsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + List mediaType = Arrays.asList(); // List | The media types. + List type = Arrays.asList(); // List | The type. + Integer startIndex = 56; // Integer | Optional. The start index. + Integer limit = 56; // Integer | Optional. The limit. + Boolean enableTotalRecordCount = false; // Boolean | Whether to enable the total record count. + try { + BaseItemDtoQueryResult result = apiInstance.getSuggestions(userId, mediaType, type, startIndex, limit, enableTotalRecordCount); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SuggestionsApi#getSuggestions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **mediaType** | [**List<String>**](String.md)| The media types. | [optional] | +| **type** | [**List<BaseItemKind>**](BaseItemKind.md)| The type. | [optional] | +| **startIndex** | **Integer**| Optional. The start index. | [optional] | +| **limit** | **Integer**| Optional. The limit. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Whether to enable the total record count. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Suggestions returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayApi.md new file mode 100644 index 0000000000000..d5049ab1aa2ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayApi.md @@ -0,0 +1,1438 @@ +# SyncPlayApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**syncPlayBuffering**](SyncPlayApi.md#syncPlayBuffering) | **POST** /SyncPlay/Buffering | Notify SyncPlay group that member is buffering. | +| [**syncPlayCreateGroup**](SyncPlayApi.md#syncPlayCreateGroup) | **POST** /SyncPlay/New | Create a new SyncPlay group. | +| [**syncPlayGetGroups**](SyncPlayApi.md#syncPlayGetGroups) | **GET** /SyncPlay/List | Gets all SyncPlay groups. | +| [**syncPlayJoinGroup**](SyncPlayApi.md#syncPlayJoinGroup) | **POST** /SyncPlay/Join | Join an existing SyncPlay group. | +| [**syncPlayLeaveGroup**](SyncPlayApi.md#syncPlayLeaveGroup) | **POST** /SyncPlay/Leave | Leave the joined SyncPlay group. | +| [**syncPlayMovePlaylistItem**](SyncPlayApi.md#syncPlayMovePlaylistItem) | **POST** /SyncPlay/MovePlaylistItem | Request to move an item in the playlist in SyncPlay group. | +| [**syncPlayNextItem**](SyncPlayApi.md#syncPlayNextItem) | **POST** /SyncPlay/NextItem | Request next item in SyncPlay group. | +| [**syncPlayPause**](SyncPlayApi.md#syncPlayPause) | **POST** /SyncPlay/Pause | Request pause in SyncPlay group. | +| [**syncPlayPing**](SyncPlayApi.md#syncPlayPing) | **POST** /SyncPlay/Ping | Update session ping. | +| [**syncPlayPreviousItem**](SyncPlayApi.md#syncPlayPreviousItem) | **POST** /SyncPlay/PreviousItem | Request previous item in SyncPlay group. | +| [**syncPlayQueue**](SyncPlayApi.md#syncPlayQueue) | **POST** /SyncPlay/Queue | Request to queue items to the playlist of a SyncPlay group. | +| [**syncPlayReady**](SyncPlayApi.md#syncPlayReady) | **POST** /SyncPlay/Ready | Notify SyncPlay group that member is ready for playback. | +| [**syncPlayRemoveFromPlaylist**](SyncPlayApi.md#syncPlayRemoveFromPlaylist) | **POST** /SyncPlay/RemoveFromPlaylist | Request to remove items from the playlist in SyncPlay group. | +| [**syncPlaySeek**](SyncPlayApi.md#syncPlaySeek) | **POST** /SyncPlay/Seek | Request seek in SyncPlay group. | +| [**syncPlaySetIgnoreWait**](SyncPlayApi.md#syncPlaySetIgnoreWait) | **POST** /SyncPlay/SetIgnoreWait | Request SyncPlay group to ignore member during group-wait. | +| [**syncPlaySetNewQueue**](SyncPlayApi.md#syncPlaySetNewQueue) | **POST** /SyncPlay/SetNewQueue | Request to set new playlist in SyncPlay group. | +| [**syncPlaySetPlaylistItem**](SyncPlayApi.md#syncPlaySetPlaylistItem) | **POST** /SyncPlay/SetPlaylistItem | Request to change playlist item in SyncPlay group. | +| [**syncPlaySetRepeatMode**](SyncPlayApi.md#syncPlaySetRepeatMode) | **POST** /SyncPlay/SetRepeatMode | Request to set repeat mode in SyncPlay group. | +| [**syncPlaySetShuffleMode**](SyncPlayApi.md#syncPlaySetShuffleMode) | **POST** /SyncPlay/SetShuffleMode | Request to set shuffle mode in SyncPlay group. | +| [**syncPlayStop**](SyncPlayApi.md#syncPlayStop) | **POST** /SyncPlay/Stop | Request stop in SyncPlay group. | +| [**syncPlayUnpause**](SyncPlayApi.md#syncPlayUnpause) | **POST** /SyncPlay/Unpause | Request unpause in SyncPlay group. | + + + +# **syncPlayBuffering** +> syncPlayBuffering(bufferRequestDto) + +Notify SyncPlay group that member is buffering. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + BufferRequestDto bufferRequestDto = new BufferRequestDto(); // BufferRequestDto | The player status. + try { + apiInstance.syncPlayBuffering(bufferRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayBuffering"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bufferRequestDto** | [**BufferRequestDto**](BufferRequestDto.md)| The player status. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group state update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayCreateGroup** +> syncPlayCreateGroup(newGroupRequestDto) + +Create a new SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + NewGroupRequestDto newGroupRequestDto = new NewGroupRequestDto(); // NewGroupRequestDto | The settings of the new group. + try { + apiInstance.syncPlayCreateGroup(newGroupRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayCreateGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newGroupRequestDto** | [**NewGroupRequestDto**](NewGroupRequestDto.md)| The settings of the new group. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | New group created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayGetGroups** +> List<GroupInfoDto> syncPlayGetGroups() + +Gets all SyncPlay groups. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + List result = apiInstance.syncPlayGetGroups(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayGetGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<GroupInfoDto>**](GroupInfoDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Groups returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayJoinGroup** +> syncPlayJoinGroup(joinGroupRequestDto) + +Join an existing SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + JoinGroupRequestDto joinGroupRequestDto = new JoinGroupRequestDto(); // JoinGroupRequestDto | The group to join. + try { + apiInstance.syncPlayJoinGroup(joinGroupRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayJoinGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **joinGroupRequestDto** | [**JoinGroupRequestDto**](JoinGroupRequestDto.md)| The group to join. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group join successful. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayLeaveGroup** +> syncPlayLeaveGroup() + +Leave the joined SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayLeaveGroup(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayLeaveGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group leave successful. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayMovePlaylistItem** +> syncPlayMovePlaylistItem(movePlaylistItemRequestDto) + +Request to move an item in the playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + MovePlaylistItemRequestDto movePlaylistItemRequestDto = new MovePlaylistItemRequestDto(); // MovePlaylistItemRequestDto | The new position for the item. + try { + apiInstance.syncPlayMovePlaylistItem(movePlaylistItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayMovePlaylistItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **movePlaylistItemRequestDto** | [**MovePlaylistItemRequestDto**](MovePlaylistItemRequestDto.md)| The new position for the item. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayNextItem** +> syncPlayNextItem(nextItemRequestDto) + +Request next item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + NextItemRequestDto nextItemRequestDto = new NextItemRequestDto(); // NextItemRequestDto | The current item information. + try { + apiInstance.syncPlayNextItem(nextItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayNextItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **nextItemRequestDto** | [**NextItemRequestDto**](NextItemRequestDto.md)| The current item information. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Next item update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPause** +> syncPlayPause() + +Request pause in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayPause(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPause"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Pause update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPing** +> syncPlayPing(pingRequestDto) + +Update session ping. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PingRequestDto pingRequestDto = new PingRequestDto(); // PingRequestDto | The new ping. + try { + apiInstance.syncPlayPing(pingRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPing"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pingRequestDto** | [**PingRequestDto**](PingRequestDto.md)| The new ping. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Ping updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayPreviousItem** +> syncPlayPreviousItem(previousItemRequestDto) + +Request previous item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PreviousItemRequestDto previousItemRequestDto = new PreviousItemRequestDto(); // PreviousItemRequestDto | The current item information. + try { + apiInstance.syncPlayPreviousItem(previousItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayPreviousItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **previousItemRequestDto** | [**PreviousItemRequestDto**](PreviousItemRequestDto.md)| The current item information. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Previous item update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayQueue** +> syncPlayQueue(queueRequestDto) + +Request to queue items to the playlist of a SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + QueueRequestDto queueRequestDto = new QueueRequestDto(); // QueueRequestDto | The items to add. + try { + apiInstance.syncPlayQueue(queueRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayQueue"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **queueRequestDto** | [**QueueRequestDto**](QueueRequestDto.md)| The items to add. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayReady** +> syncPlayReady(readyRequestDto) + +Notify SyncPlay group that member is ready for playback. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + ReadyRequestDto readyRequestDto = new ReadyRequestDto(); // ReadyRequestDto | The player status. + try { + apiInstance.syncPlayReady(readyRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayReady"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **readyRequestDto** | [**ReadyRequestDto**](ReadyRequestDto.md)| The player status. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Group state update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayRemoveFromPlaylist** +> syncPlayRemoveFromPlaylist(removeFromPlaylistRequestDto) + +Request to remove items from the playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto = new RemoveFromPlaylistRequestDto(); // RemoveFromPlaylistRequestDto | The items to remove. + try { + apiInstance.syncPlayRemoveFromPlaylist(removeFromPlaylistRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayRemoveFromPlaylist"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **removeFromPlaylistRequestDto** | [**RemoveFromPlaylistRequestDto**](RemoveFromPlaylistRequestDto.md)| The items to remove. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySeek** +> syncPlaySeek(seekRequestDto) + +Request seek in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SeekRequestDto seekRequestDto = new SeekRequestDto(); // SeekRequestDto | The new playback position. + try { + apiInstance.syncPlaySeek(seekRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySeek"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seekRequestDto** | [**SeekRequestDto**](SeekRequestDto.md)| The new playback position. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Seek update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetIgnoreWait** +> syncPlaySetIgnoreWait(ignoreWaitRequestDto) + +Request SyncPlay group to ignore member during group-wait. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + IgnoreWaitRequestDto ignoreWaitRequestDto = new IgnoreWaitRequestDto(); // IgnoreWaitRequestDto | The settings to set. + try { + apiInstance.syncPlaySetIgnoreWait(ignoreWaitRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetIgnoreWait"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ignoreWaitRequestDto** | [**IgnoreWaitRequestDto**](IgnoreWaitRequestDto.md)| The settings to set. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Member state updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetNewQueue** +> syncPlaySetNewQueue(playRequestDto) + +Request to set new playlist in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + PlayRequestDto playRequestDto = new PlayRequestDto(); // PlayRequestDto | The new playlist to play in the group. + try { + apiInstance.syncPlaySetNewQueue(playRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetNewQueue"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **playRequestDto** | [**PlayRequestDto**](PlayRequestDto.md)| The new playlist to play in the group. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetPlaylistItem** +> syncPlaySetPlaylistItem(setPlaylistItemRequestDto) + +Request to change playlist item in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetPlaylistItemRequestDto setPlaylistItemRequestDto = new SetPlaylistItemRequestDto(); // SetPlaylistItemRequestDto | The new item to play. + try { + apiInstance.syncPlaySetPlaylistItem(setPlaylistItemRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetPlaylistItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setPlaylistItemRequestDto** | [**SetPlaylistItemRequestDto**](SetPlaylistItemRequestDto.md)| The new item to play. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetRepeatMode** +> syncPlaySetRepeatMode(setRepeatModeRequestDto) + +Request to set repeat mode in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetRepeatModeRequestDto setRepeatModeRequestDto = new SetRepeatModeRequestDto(); // SetRepeatModeRequestDto | The new repeat mode. + try { + apiInstance.syncPlaySetRepeatMode(setRepeatModeRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetRepeatMode"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setRepeatModeRequestDto** | [**SetRepeatModeRequestDto**](SetRepeatModeRequestDto.md)| The new repeat mode. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlaySetShuffleMode** +> syncPlaySetShuffleMode(setShuffleModeRequestDto) + +Request to set shuffle mode in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + SetShuffleModeRequestDto setShuffleModeRequestDto = new SetShuffleModeRequestDto(); // SetShuffleModeRequestDto | The new shuffle mode. + try { + apiInstance.syncPlaySetShuffleMode(setShuffleModeRequestDto); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlaySetShuffleMode"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **setShuffleModeRequestDto** | [**SetShuffleModeRequestDto**](SetShuffleModeRequestDto.md)| The new shuffle mode. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Play queue update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayStop** +> syncPlayStop() + +Request stop in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayStop(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayStop"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Stop update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **syncPlayUnpause** +> syncPlayUnpause() + +Request unpause in SyncPlay group. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SyncPlayApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SyncPlayApi apiInstance = new SyncPlayApi(defaultClient); + try { + apiInstance.syncPlayUnpause(); + } catch (ApiException e) { + System.err.println("Exception when calling SyncPlayApi#syncPlayUnpause"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Unpause update sent to all group members. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayUserAccessType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayUserAccessType.md new file mode 100644 index 0000000000000..c2c4f745efe06 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SyncPlayUserAccessType.md @@ -0,0 +1,15 @@ + + +# SyncPlayUserAccessType + +## Enum + + +* `CREATE_AND_JOIN_GROUPS` (value: `"CreateAndJoinGroups"`) + +* `JOIN_GROUPS` (value: `"JoinGroups"`) + +* `NONE` (value: `"None"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemApi.md new file mode 100644 index 0000000000000..8dada4f3631cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemApi.md @@ -0,0 +1,643 @@ +# SystemApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getEndpointInfo**](SystemApi.md#getEndpointInfo) | **GET** /System/Endpoint | Gets information about the request endpoint. | +| [**getLogFile**](SystemApi.md#getLogFile) | **GET** /System/Logs/Log | Gets a log file. | +| [**getPingSystem**](SystemApi.md#getPingSystem) | **GET** /System/Ping | Pings the system. | +| [**getPublicSystemInfo**](SystemApi.md#getPublicSystemInfo) | **GET** /System/Info/Public | Gets public information about the server. | +| [**getServerLogs**](SystemApi.md#getServerLogs) | **GET** /System/Logs | Gets a list of available server log files. | +| [**getSystemInfo**](SystemApi.md#getSystemInfo) | **GET** /System/Info | Gets information about the server. | +| [**getWakeOnLanInfo**](SystemApi.md#getWakeOnLanInfo) | **GET** /System/WakeOnLanInfo | Gets wake on lan information. | +| [**postPingSystem**](SystemApi.md#postPingSystem) | **POST** /System/Ping | Pings the system. | +| [**restartApplication**](SystemApi.md#restartApplication) | **POST** /System/Restart | Restarts the application. | +| [**shutdownApplication**](SystemApi.md#shutdownApplication) | **POST** /System/Shutdown | Shuts down the application. | + + + +# **getEndpointInfo** +> EndPointInfo getEndpointInfo() + +Gets information about the request endpoint. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + EndPointInfo result = apiInstance.getEndpointInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getEndpointInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**EndPointInfo**](EndPointInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLogFile** +> File getLogFile(name) + +Gets a log file. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + String name = "name_example"; // String | The name of the log file to get. + try { + File result = apiInstance.getLogFile(name); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getLogFile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **name** | **String**| The name of the log file to get. | | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: text/plain + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Log file retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPingSystem** +> String getPingSystem() + +Pings the system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + String result = apiInstance.getPingSystem(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getPingSystem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **getPublicSystemInfo** +> PublicSystemInfo getPublicSystemInfo() + +Gets public information about the server. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + PublicSystemInfo result = apiInstance.getPublicSystemInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getPublicSystemInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**PublicSystemInfo**](PublicSystemInfo.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **getServerLogs** +> List<LogFile> getServerLogs() + +Gets a list of available server log files. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + List result = apiInstance.getServerLogs(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getServerLogs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<LogFile>**](LogFile.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSystemInfo** +> SystemInfo getSystemInfo() + +Gets information about the server. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + SystemInfo result = apiInstance.getSystemInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getSystemInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**SystemInfo**](SystemInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getWakeOnLanInfo** +> List<WakeOnLanInfo> getWakeOnLanInfo() + +Gets wake on lan information. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + List result = apiInstance.getWakeOnLanInfo(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#getWakeOnLanInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<WakeOnLanInfo>**](WakeOnLanInfo.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **postPingSystem** +> String postPingSystem() + +Pings the system. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + String result = apiInstance.postPingSystem(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#postPingSystem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +**String** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Information retrieved. | - | + + +# **restartApplication** +> restartApplication() + +Restarts the application. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + apiInstance.restartApplication(); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#restartApplication"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Server restarted. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **shutdownApplication** +> shutdownApplication() + +Shuts down the application. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.SystemApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + SystemApi apiInstance = new SystemApi(defaultClient); + try { + apiInstance.shutdownApplication(); + } catch (ApiException e) { + System.err.println("Exception when calling SystemApi#shutdownApplication"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Server shut down. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemInfo.md new file mode 100644 index 0000000000000..e91f68ff39dc4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/SystemInfo.md @@ -0,0 +1,39 @@ + + +# SystemInfo + +Class SystemInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**localAddress** | **String** | Gets or sets the local address. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. | [optional] | +|**version** | **String** | Gets or sets the server version. | [optional] | +|**productName** | **String** | Gets or sets the product name. This is the AssemblyProduct name. | [optional] | +|**operatingSystem** | **String** | Gets or sets the operating system. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**startupWizardCompleted** | **Boolean** | Gets or sets a value indicating whether the startup wizard is completed. | [optional] | +|**operatingSystemDisplayName** | **String** | Gets or sets the display name of the operating system. | [optional] | +|**packageName** | **String** | Gets or sets the package name. | [optional] | +|**hasPendingRestart** | **Boolean** | Gets or sets a value indicating whether this instance has pending restart. | [optional] | +|**isShuttingDown** | **Boolean** | | [optional] | +|**supportsLibraryMonitor** | **Boolean** | Gets or sets a value indicating whether [supports library monitor]. | [optional] | +|**webSocketPortNumber** | **Integer** | Gets or sets the web socket port number. | [optional] | +|**completedInstallations** | [**List<InstallationInfo>**](InstallationInfo.md) | Gets or sets the completed installations. | [optional] | +|**canSelfRestart** | **Boolean** | Gets or sets a value indicating whether this instance can self restart. | [optional] | +|**canLaunchWebBrowser** | **Boolean** | | [optional] | +|**programDataPath** | **String** | Gets or sets the program data path. | [optional] | +|**webPath** | **String** | Gets or sets the web UI resources path. | [optional] | +|**itemsByNamePath** | **String** | Gets or sets the items by name path. | [optional] | +|**cachePath** | **String** | Gets or sets the cache path. | [optional] | +|**logPath** | **String** | Gets or sets the log path. | [optional] | +|**internalMetadataPath** | **String** | Gets or sets the internal metadata path. | [optional] | +|**transcodingTempPath** | **String** | Gets or sets the transcode path. | [optional] | +|**hasUpdateAvailable** | **Boolean** | Gets or sets a value indicating whether this instance has update available. | [optional] | +|**encoderLocation** | **FFmpegLocation** | Enum describing the location of the FFmpeg tool. | [optional] | +|**systemArchitecture** | **Architecture** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskCompletionStatus.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskCompletionStatus.md new file mode 100644 index 0000000000000..dac37b76bcdc1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskCompletionStatus.md @@ -0,0 +1,17 @@ + + +# TaskCompletionStatus + +## Enum + + +* `COMPLETED` (value: `"Completed"`) + +* `FAILED` (value: `"Failed"`) + +* `CANCELLED` (value: `"Cancelled"`) + +* `ABORTED` (value: `"Aborted"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskInfo.md new file mode 100644 index 0000000000000..c02e2fd31d9eb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskInfo.md @@ -0,0 +1,23 @@ + + +# TaskInfo + +Class TaskInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**state** | **TaskState** | Gets or sets the state of the task. | [optional] | +|**currentProgressPercentage** | **Double** | Gets or sets the progress. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**lastExecutionResult** | [**TaskResult**](TaskResult.md) | Gets or sets the last execution result. | [optional] | +|**triggers** | [**List<TaskTriggerInfo>**](TaskTriggerInfo.md) | Gets or sets the triggers. | [optional] | +|**description** | **String** | Gets or sets the description. | [optional] | +|**category** | **String** | Gets or sets the category. | [optional] | +|**isHidden** | **Boolean** | Gets or sets a value indicating whether this instance is hidden. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskResult.md new file mode 100644 index 0000000000000..c68827cce3b46 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskResult.md @@ -0,0 +1,21 @@ + + +# TaskResult + +Class TaskExecutionInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startTimeUtc** | **OffsetDateTime** | Gets or sets the start time UTC. | [optional] | +|**endTimeUtc** | **OffsetDateTime** | Gets or sets the end time UTC. | [optional] | +|**status** | **TaskCompletionStatus** | Gets or sets the status. | [optional] | +|**name** | **String** | Gets or sets the name. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | +|**id** | **String** | Gets or sets the id. | [optional] | +|**errorMessage** | **String** | Gets or sets the error message. | [optional] | +|**longErrorMessage** | **String** | Gets or sets the long error message. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskState.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskState.md new file mode 100644 index 0000000000000..ef2086f874538 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskState.md @@ -0,0 +1,15 @@ + + +# TaskState + +## Enum + + +* `IDLE` (value: `"Idle"`) + +* `CANCELLING` (value: `"Cancelling"`) + +* `RUNNING` (value: `"Running"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskTriggerInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskTriggerInfo.md new file mode 100644 index 0000000000000..365bcf881c2b0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TaskTriggerInfo.md @@ -0,0 +1,18 @@ + + +# TaskTriggerInfo + +Class TaskTriggerInfo. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Gets or sets the type. | [optional] | +|**timeOfDayTicks** | **Long** | Gets or sets the time of day. | [optional] | +|**intervalTicks** | **Long** | Gets or sets the interval. | [optional] | +|**dayOfWeek** | **DayOfWeek** | Gets or sets the day of week. | [optional] | +|**maxRuntimeTicks** | **Long** | Gets or sets the maximum runtime ticks. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ThemeMediaResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ThemeMediaResult.md new file mode 100644 index 0000000000000..68475378ac127 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ThemeMediaResult.md @@ -0,0 +1,17 @@ + + +# ThemeMediaResult + +Class ThemeMediaResult. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<BaseItemDto>**](BaseItemDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | +|**ownerId** | **UUID** | Gets or sets the owner id. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimeSyncApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimeSyncApi.md new file mode 100644 index 0000000000000..32320f124bfb0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimeSyncApi.md @@ -0,0 +1,65 @@ +# TimeSyncApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getUtcTime**](TimeSyncApi.md#getUtcTime) | **GET** /GetUtcTime | Gets the current UTC time. | + + + +# **getUtcTime** +> UtcTimeResponse getUtcTime() + +Gets the current UTC time. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TimeSyncApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + TimeSyncApi apiInstance = new TimeSyncApi(defaultClient); + try { + UtcTimeResponse result = apiInstance.getUtcTime(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TimeSyncApi#getUtcTime"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**UtcTimeResponse**](UtcTimeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Time returned. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerEventInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerEventInfo.md new file mode 100644 index 0000000000000..b7bd6c1acdc04 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerEventInfo.md @@ -0,0 +1,14 @@ + + +# TimerEventInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**programId** | **UUID** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDto.md new file mode 100644 index 0000000000000..15bb934361fc8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDto.md @@ -0,0 +1,40 @@ + + +# TimerInfoDto + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Gets or sets the Id of the recording. | [optional] | +|**type** | **String** | | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**externalId** | **String** | Gets or sets the external identifier. | [optional] | +|**channelId** | **UUID** | Gets or sets the channel id of the recording. | [optional] | +|**externalChannelId** | **String** | Gets or sets the external channel identifier. | [optional] | +|**channelName** | **String** | Gets or sets the channel name of the recording. | [optional] | +|**channelPrimaryImageTag** | **String** | | [optional] | +|**programId** | **String** | Gets or sets the program identifier. | [optional] | +|**externalProgramId** | **String** | Gets or sets the external program identifier. | [optional] | +|**name** | **String** | Gets or sets the name of the recording. | [optional] | +|**overview** | **String** | Gets or sets the description of the recording. | [optional] | +|**startDate** | **OffsetDateTime** | Gets or sets the start date of the recording, in UTC. | [optional] | +|**endDate** | **OffsetDateTime** | Gets or sets the end date of the recording, in UTC. | [optional] | +|**serviceName** | **String** | Gets or sets the name of the service. | [optional] | +|**priority** | **Integer** | Gets or sets the priority. | [optional] | +|**prePaddingSeconds** | **Integer** | Gets or sets the pre padding seconds. | [optional] | +|**postPaddingSeconds** | **Integer** | Gets or sets the post padding seconds. | [optional] | +|**isPrePaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is pre padding required. | [optional] | +|**parentBackdropItemId** | **String** | Gets or sets the Id of the Parent that has a backdrop if the item does not have one. | [optional] | +|**parentBackdropImageTags** | **List<String>** | Gets or sets the parent backdrop image tags. | [optional] | +|**isPostPaddingRequired** | **Boolean** | Gets or sets a value indicating whether this instance is post padding required. | [optional] | +|**keepUntil** | **KeepUntil** | | [optional] | +|**status** | **RecordingStatus** | Gets or sets the status. | [optional] | +|**seriesTimerId** | **String** | Gets or sets the series timer identifier. | [optional] | +|**externalSeriesTimerId** | **String** | Gets or sets the external series timer identifier. | [optional] | +|**runTimeTicks** | **Long** | Gets or sets the run time ticks. | [optional] | +|**programInfo** | [**BaseItemDto**](BaseItemDto.md) | Gets or sets the program information. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDtoQueryResult.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDtoQueryResult.md new file mode 100644 index 0000000000000..4de68495f1483 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TimerInfoDtoQueryResult.md @@ -0,0 +1,15 @@ + + +# TimerInfoDtoQueryResult + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**items** | [**List<TimerInfoDto>**](TimerInfoDto.md) | Gets or sets the items. | [optional] | +|**totalRecordCount** | **Integer** | Gets or sets the total number of records available. | [optional] | +|**startIndex** | **Integer** | Gets or sets the index of the first record in Items. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TmdbApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TmdbApi.md new file mode 100644 index 0000000000000..6720a3ea1b85c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TmdbApi.md @@ -0,0 +1,74 @@ +# TmdbApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**tmdbClientConfiguration**](TmdbApi.md#tmdbClientConfiguration) | **GET** /Tmdb/ClientConfiguration | Gets the TMDb image configuration options. | + + + +# **tmdbClientConfiguration** +> ConfigImageTypes tmdbClientConfiguration() + +Gets the TMDb image configuration options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TmdbApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TmdbApi apiInstance = new TmdbApi(defaultClient); + try { + ConfigImageTypes result = apiInstance.tmdbClientConfiguration(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TmdbApi#tmdbClientConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ConfigImageTypes**](ConfigImageTypes.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfo.md new file mode 100644 index 0000000000000..315d098205778 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfo.md @@ -0,0 +1,23 @@ + + +# TrailerInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**originalTitle** | **String** | Gets or sets the original title. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**metadataLanguage** | **String** | Gets or sets the metadata language. | [optional] | +|**metadataCountryCode** | **String** | Gets or sets the metadata country code. | [optional] | +|**providerIds** | **Map<String, String>** | Gets or sets the provider ids. | [optional] | +|**year** | **Integer** | Gets or sets the year. | [optional] | +|**indexNumber** | **Integer** | | [optional] | +|**parentIndexNumber** | **Integer** | | [optional] | +|**premiereDate** | **OffsetDateTime** | | [optional] | +|**isAutomated** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfoRemoteSearchQuery.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfoRemoteSearchQuery.md new file mode 100644 index 0000000000000..5245fb206ff3d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailerInfoRemoteSearchQuery.md @@ -0,0 +1,16 @@ + + +# TrailerInfoRemoteSearchQuery + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**searchInfo** | [**TrailerInfo**](TrailerInfo.md) | | [optional] | +|**itemId** | **UUID** | | [optional] | +|**searchProviderName** | **String** | Gets or sets the provider name to search within if set. | [optional] | +|**includeDisabledProviders** | **Boolean** | Gets or sets a value indicating whether disabled providers should be included. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailersApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailersApi.md new file mode 100644 index 0000000000000..d281d4183dd61 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TrailersApi.md @@ -0,0 +1,244 @@ +# TrailersApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTrailers**](TrailersApi.md#getTrailers) | **GET** /Trailers | Finds movies and trailers similar to a given trailer. | + + + +# **getTrailers** +> BaseItemDtoQueryResult getTrailers(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages) + +Finds movies and trailers similar to a given trailer. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TrailersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TrailersApi apiInstance = new TrailersApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + String maxOfficialRating = "maxOfficialRating_example"; // String | Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + Boolean hasThemeSong = true; // Boolean | Optional filter by items with theme songs. + Boolean hasThemeVideo = true; // Boolean | Optional filter by items with theme videos. + Boolean hasSubtitles = true; // Boolean | Optional filter by items with subtitles. + Boolean hasSpecialFeature = true; // Boolean | Optional filter by items with special features. + Boolean hasTrailer = true; // Boolean | Optional filter by items with trailers. + String adjacentTo = "adjacentTo_example"; // String | Optional. Return items that are siblings of a supplied item. + Integer parentIndexNumber = 56; // Integer | Optional filter by parent index number. + Boolean hasParentalRating = true; // Boolean | Optional filter by items that have or do not have a parental rating. + Boolean isHd = true; // Boolean | Optional filter by items that are HD or not. + Boolean is4K = true; // Boolean | Optional filter by items that are 4K or not. + List locationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + List excludeLocationTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + Boolean isMissing = true; // Boolean | Optional filter by items that are missing episodes or not. + Boolean isUnaired = true; // Boolean | Optional filter by items that are unaired episodes or not. + Double minCommunityRating = 3.4D; // Double | Optional filter by minimum community rating. + Double minCriticRating = 3.4D; // Double | Optional filter by minimum critic rating. + OffsetDateTime minPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum premiere date. Format = ISO. + OffsetDateTime minDateLastSaved = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date. Format = ISO. + OffsetDateTime minDateLastSavedForUser = OffsetDateTime.now(); // OffsetDateTime | Optional. The minimum last saved date for the current user. Format = ISO. + OffsetDateTime maxPremiereDate = OffsetDateTime.now(); // OffsetDateTime | Optional. The maximum premiere date. Format = ISO. + Boolean hasOverview = true; // Boolean | Optional filter by items that have an overview or not. + Boolean hasImdbId = true; // Boolean | Optional filter by items that have an imdb id or not. + Boolean hasTmdbId = true; // Boolean | Optional filter by items that have a tmdb id or not. + Boolean hasTvdbId = true; // Boolean | Optional filter by items that have a tvdb id or not. + Boolean isMovie = true; // Boolean | Optional filter for live tv movies. + Boolean isSeries = true; // Boolean | Optional filter for live tv series. + Boolean isNews = true; // Boolean | Optional filter for live tv news. + Boolean isKids = true; // Boolean | Optional filter for live tv kids. + Boolean isSports = true; // Boolean | Optional filter for live tv sports. + List excludeItemIds = Arrays.asList(); // List | Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean recursive = true; // Boolean | When searching within folders, this determines whether or not the search will be recursive. true/false. + String searchTerm = "searchTerm_example"; // String | Optional. Filter based on a search term. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + List filters = Arrays.asList(); // List | Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. + Boolean isFavorite = true; // Boolean | Optional filter by items that are marked as favorite, or not. + List mediaTypes = Arrays.asList(); // List | Optional filter by MediaType. Allows multiple, comma delimited. + List imageTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean isPlayed = true; // Boolean | Optional filter by items that are played, or not. + List genres = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + List officialRatings = Arrays.asList(); // List | Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + List tags = Arrays.asList(); // List | Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + List years = Arrays.asList(); // List | Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + Boolean enableUserData = true; // Boolean | Optional, include user data. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + String person = "person_example"; // String | Optional. If specified, results will be filtered to include only those containing the specified person. + List personIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified person id. + List personTypes = Arrays.asList(); // List | Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + List studios = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + List artists = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + List excludeArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + List artistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified artist id. + List albumArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified album artist id. + List contributingArtistIds = Arrays.asList(); // List | Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + List albums = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + List albumIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + List ids = Arrays.asList(); // List | Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + List videoTypes = Arrays.asList(); // List | Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + String minOfficialRating = "minOfficialRating_example"; // String | Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + Boolean isLocked = true; // Boolean | Optional filter by items that are locked. + Boolean isPlaceHolder = true; // Boolean | Optional filter by items that are placeholders. + Boolean hasOfficialRating = true; // Boolean | Optional filter by items that have official ratings. + Boolean collapseBoxSetItems = true; // Boolean | Whether or not to hide items behind their boxsets. + Integer minWidth = 56; // Integer | Optional. Filter by the minimum width of the item. + Integer minHeight = 56; // Integer | Optional. Filter by the minimum height of the item. + Integer maxWidth = 56; // Integer | Optional. Filter by the maximum width of the item. + Integer maxHeight = 56; // Integer | Optional. Filter by the maximum height of the item. + Boolean is3D = true; // Boolean | Optional filter by items that are 3D, or not. + List seriesStatus = Arrays.asList(); // List | Optional filter by Series Status. Allows multiple, comma delimited. + String nameStartsWithOrGreater = "nameStartsWithOrGreater_example"; // String | Optional filter by items whose name is sorted equally or greater than a given input string. + String nameStartsWith = "nameStartsWith_example"; // String | Optional filter by items whose name is sorted equally than a given input string. + String nameLessThan = "nameLessThan_example"; // String | Optional filter by items whose name is equally or lesser than a given input string. + List studioIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + List genreIds = Arrays.asList(); // List | Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + Boolean enableTotalRecordCount = true; // Boolean | Optional. Enable the total record count. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getTrailers(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TrailersApi#getTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | [optional] | +| **maxOfficialRating** | **String**| Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **hasThemeSong** | **Boolean**| Optional filter by items with theme songs. | [optional] | +| **hasThemeVideo** | **Boolean**| Optional filter by items with theme videos. | [optional] | +| **hasSubtitles** | **Boolean**| Optional filter by items with subtitles. | [optional] | +| **hasSpecialFeature** | **Boolean**| Optional filter by items with special features. | [optional] | +| **hasTrailer** | **Boolean**| Optional filter by items with trailers. | [optional] | +| **adjacentTo** | **String**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **parentIndexNumber** | **Integer**| Optional filter by parent index number. | [optional] | +| **hasParentalRating** | **Boolean**| Optional filter by items that have or do not have a parental rating. | [optional] | +| **isHd** | **Boolean**| Optional filter by items that are HD or not. | [optional] | +| **is4K** | **Boolean**| Optional filter by items that are 4K or not. | [optional] | +| **locationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. | [optional] | +| **excludeLocationTypes** | [**List<LocationType>**](LocationType.md)| Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. | [optional] | +| **isMissing** | **Boolean**| Optional filter by items that are missing episodes or not. | [optional] | +| **isUnaired** | **Boolean**| Optional filter by items that are unaired episodes or not. | [optional] | +| **minCommunityRating** | **Double**| Optional filter by minimum community rating. | [optional] | +| **minCriticRating** | **Double**| Optional filter by minimum critic rating. | [optional] | +| **minPremiereDate** | **OffsetDateTime**| Optional. The minimum premiere date. Format = ISO. | [optional] | +| **minDateLastSaved** | **OffsetDateTime**| Optional. The minimum last saved date. Format = ISO. | [optional] | +| **minDateLastSavedForUser** | **OffsetDateTime**| Optional. The minimum last saved date for the current user. Format = ISO. | [optional] | +| **maxPremiereDate** | **OffsetDateTime**| Optional. The maximum premiere date. Format = ISO. | [optional] | +| **hasOverview** | **Boolean**| Optional filter by items that have an overview or not. | [optional] | +| **hasImdbId** | **Boolean**| Optional filter by items that have an imdb id or not. | [optional] | +| **hasTmdbId** | **Boolean**| Optional filter by items that have a tmdb id or not. | [optional] | +| **hasTvdbId** | **Boolean**| Optional filter by items that have a tvdb id or not. | [optional] | +| **isMovie** | **Boolean**| Optional filter for live tv movies. | [optional] | +| **isSeries** | **Boolean**| Optional filter for live tv series. | [optional] | +| **isNews** | **Boolean**| Optional filter for live tv news. | [optional] | +| **isKids** | **Boolean**| Optional filter for live tv kids. | [optional] | +| **isSports** | **Boolean**| Optional filter for live tv sports. | [optional] | +| **excludeItemIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **recursive** | **Boolean**| When searching within folders, this determines whether or not the search will be recursive. true/false. | [optional] | +| **searchTerm** | **String**| Optional. Filter based on a search term. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **filters** | [**List<ItemFilter>**](ItemFilter.md)| Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. | [optional] | +| **isFavorite** | **Boolean**| Optional filter by items that are marked as favorite, or not. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **imageTypes** | [**List<ImageType>**](ImageType.md)| Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **isPlayed** | **Boolean**| Optional filter by items that are played, or not. | [optional] | +| **genres** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. | [optional] | +| **officialRatings** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. | [optional] | +| **tags** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. | [optional] | +| **years** | [**List<Integer>**](Integer.md)| Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. | [optional] | +| **enableUserData** | **Boolean**| Optional, include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **person** | **String**| Optional. If specified, results will be filtered to include only those containing the specified person. | [optional] | +| **personIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified person id. | [optional] | +| **personTypes** | [**List<String>**](String.md)| Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. | [optional] | +| **studios** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. | [optional] | +| **artists** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. | [optional] | +| **excludeArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. | [optional] | +| **artistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified artist id. | [optional] | +| **albumArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified album artist id. | [optional] | +| **contributingArtistIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. | [optional] | +| **albums** | [**List<String>**](String.md)| Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. | [optional] | +| **albumIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. | [optional] | +| **ids** | [**List<UUID>**](UUID.md)| Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. | [optional] | +| **videoTypes** | [**List<VideoType>**](VideoType.md)| Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. | [optional] | +| **minOfficialRating** | **String**| Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). | [optional] | +| **isLocked** | **Boolean**| Optional filter by items that are locked. | [optional] | +| **isPlaceHolder** | **Boolean**| Optional filter by items that are placeholders. | [optional] | +| **hasOfficialRating** | **Boolean**| Optional filter by items that have official ratings. | [optional] | +| **collapseBoxSetItems** | **Boolean**| Whether or not to hide items behind their boxsets. | [optional] | +| **minWidth** | **Integer**| Optional. Filter by the minimum width of the item. | [optional] | +| **minHeight** | **Integer**| Optional. Filter by the minimum height of the item. | [optional] | +| **maxWidth** | **Integer**| Optional. Filter by the maximum width of the item. | [optional] | +| **maxHeight** | **Integer**| Optional. Filter by the maximum height of the item. | [optional] | +| **is3D** | **Boolean**| Optional filter by items that are 3D, or not. | [optional] | +| **seriesStatus** | [**List<SeriesStatus>**](SeriesStatus.md)| Optional filter by Series Status. Allows multiple, comma delimited. | [optional] | +| **nameStartsWithOrGreater** | **String**| Optional filter by items whose name is sorted equally or greater than a given input string. | [optional] | +| **nameStartsWith** | **String**| Optional filter by items whose name is sorted equally than a given input string. | [optional] | +| **nameLessThan** | **String**| Optional filter by items whose name is equally or lesser than a given input string. | [optional] | +| **studioIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. | [optional] | +| **genreIds** | [**List<UUID>**](UUID.md)| Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Optional. Enable the total record count. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeReason.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeReason.md new file mode 100644 index 0000000000000..f647122d3fe88 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeReason.md @@ -0,0 +1,59 @@ + + +# TranscodeReason + +## Enum + + +* `CONTAINER_NOT_SUPPORTED` (value: `"ContainerNotSupported"`) + +* `VIDEO_CODEC_NOT_SUPPORTED` (value: `"VideoCodecNotSupported"`) + +* `AUDIO_CODEC_NOT_SUPPORTED` (value: `"AudioCodecNotSupported"`) + +* `SUBTITLE_CODEC_NOT_SUPPORTED` (value: `"SubtitleCodecNotSupported"`) + +* `AUDIO_IS_EXTERNAL` (value: `"AudioIsExternal"`) + +* `SECONDARY_AUDIO_NOT_SUPPORTED` (value: `"SecondaryAudioNotSupported"`) + +* `VIDEO_PROFILE_NOT_SUPPORTED` (value: `"VideoProfileNotSupported"`) + +* `VIDEO_LEVEL_NOT_SUPPORTED` (value: `"VideoLevelNotSupported"`) + +* `VIDEO_RESOLUTION_NOT_SUPPORTED` (value: `"VideoResolutionNotSupported"`) + +* `VIDEO_BIT_DEPTH_NOT_SUPPORTED` (value: `"VideoBitDepthNotSupported"`) + +* `VIDEO_FRAMERATE_NOT_SUPPORTED` (value: `"VideoFramerateNotSupported"`) + +* `REF_FRAMES_NOT_SUPPORTED` (value: `"RefFramesNotSupported"`) + +* `ANAMORPHIC_VIDEO_NOT_SUPPORTED` (value: `"AnamorphicVideoNotSupported"`) + +* `INTERLACED_VIDEO_NOT_SUPPORTED` (value: `"InterlacedVideoNotSupported"`) + +* `AUDIO_CHANNELS_NOT_SUPPORTED` (value: `"AudioChannelsNotSupported"`) + +* `AUDIO_PROFILE_NOT_SUPPORTED` (value: `"AudioProfileNotSupported"`) + +* `AUDIO_SAMPLE_RATE_NOT_SUPPORTED` (value: `"AudioSampleRateNotSupported"`) + +* `AUDIO_BIT_DEPTH_NOT_SUPPORTED` (value: `"AudioBitDepthNotSupported"`) + +* `CONTAINER_BITRATE_EXCEEDS_LIMIT` (value: `"ContainerBitrateExceedsLimit"`) + +* `VIDEO_BITRATE_NOT_SUPPORTED` (value: `"VideoBitrateNotSupported"`) + +* `AUDIO_BITRATE_NOT_SUPPORTED` (value: `"AudioBitrateNotSupported"`) + +* `UNKNOWN_VIDEO_STREAM_INFO` (value: `"UnknownVideoStreamInfo"`) + +* `UNKNOWN_AUDIO_STREAM_INFO` (value: `"UnknownAudioStreamInfo"`) + +* `DIRECT_PLAY_ERROR` (value: `"DirectPlayError"`) + +* `VIDEO_RANGE_TYPE_NOT_SUPPORTED` (value: `"VideoRangeTypeNotSupported"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeSeekInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeSeekInfo.md new file mode 100644 index 0000000000000..c31a1dba3a911 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodeSeekInfo.md @@ -0,0 +1,13 @@ + + +# TranscodeSeekInfo + +## Enum + + +* `AUTO` (value: `"Auto"`) + +* `BYTES` (value: `"Bytes"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingInfo.md new file mode 100644 index 0000000000000..f4619051afe69 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingInfo.md @@ -0,0 +1,25 @@ + + +# TranscodingInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**audioCodec** | **String** | | [optional] | +|**videoCodec** | **String** | | [optional] | +|**container** | **String** | | [optional] | +|**isVideoDirect** | **Boolean** | | [optional] | +|**isAudioDirect** | **Boolean** | | [optional] | +|**bitrate** | **Integer** | | [optional] | +|**framerate** | **Float** | | [optional] | +|**completionPercentage** | **Double** | | [optional] | +|**width** | **Integer** | | [optional] | +|**height** | **Integer** | | [optional] | +|**audioChannels** | **Integer** | | [optional] | +|**hardwareAccelerationType** | **HardwareEncodingType** | | [optional] | +|**transcodeReasons** | **List<TranscodeReason>** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingProfile.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingProfile.md new file mode 100644 index 0000000000000..fd68e83fc7861 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TranscodingProfile.md @@ -0,0 +1,28 @@ + + +# TranscodingProfile + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**container** | **String** | | [optional] | +|**type** | **DlnaProfileType** | | [optional] | +|**videoCodec** | **String** | | [optional] | +|**audioCodec** | **String** | | [optional] | +|**protocol** | **String** | | [optional] | +|**estimateContentLength** | **Boolean** | | [optional] | +|**enableMpegtsM2TsMode** | **Boolean** | | [optional] | +|**transcodeSeekInfo** | **TranscodeSeekInfo** | | [optional] | +|**copyTimestamps** | **Boolean** | | [optional] | +|**context** | **EncodingContext** | | [optional] | +|**enableSubtitlesInManifest** | **Boolean** | | [optional] | +|**maxAudioChannels** | **String** | | [optional] | +|**minSegments** | **Integer** | | [optional] | +|**segmentLength** | **Integer** | | [optional] | +|**breakOnNonKeyFrames** | **Boolean** | | [optional] | +|**conditions** | [**List<ProfileCondition>**](ProfileCondition.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TransportStreamTimestamp.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TransportStreamTimestamp.md new file mode 100644 index 0000000000000..4ae3995fcad41 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TransportStreamTimestamp.md @@ -0,0 +1,15 @@ + + +# TransportStreamTimestamp + +## Enum + + +* `NONE` (value: `"None"`) + +* `ZERO` (value: `"Zero"`) + +* `VALID` (value: `"Valid"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerChannelMapping.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerChannelMapping.md new file mode 100644 index 0000000000000..9917d47d24731 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerChannelMapping.md @@ -0,0 +1,16 @@ + + +# TunerChannelMapping + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**providerChannelName** | **String** | | [optional] | +|**providerChannelId** | **String** | | [optional] | +|**id** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerHostInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerHostInfo.md new file mode 100644 index 0000000000000..99b7d6342cd18 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TunerHostInfo.md @@ -0,0 +1,23 @@ + + +# TunerHostInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**url** | **String** | | [optional] | +|**type** | **String** | | [optional] | +|**deviceId** | **String** | | [optional] | +|**friendlyName** | **String** | | [optional] | +|**importFavoritesOnly** | **Boolean** | | [optional] | +|**allowHWTranscoding** | **Boolean** | | [optional] | +|**enableStreamLooping** | **Boolean** | | [optional] | +|**source** | **String** | | [optional] | +|**tunerCount** | **Integer** | | [optional] | +|**userAgent** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TvShowsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TvShowsApi.md new file mode 100644 index 0000000000000..1edecc9972781 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TvShowsApi.md @@ -0,0 +1,378 @@ +# TvShowsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getEpisodes**](TvShowsApi.md#getEpisodes) | **GET** /Shows/{seriesId}/Episodes | Gets episodes for a tv season. | +| [**getNextUp**](TvShowsApi.md#getNextUp) | **GET** /Shows/NextUp | Gets a list of next up episodes. | +| [**getSeasons**](TvShowsApi.md#getSeasons) | **GET** /Shows/{seriesId}/Seasons | Gets seasons for a tv series. | +| [**getUpcomingEpisodes**](TvShowsApi.md#getUpcomingEpisodes) | **GET** /Shows/Upcoming | Gets a list of upcoming episodes. | + + + +# **getEpisodes** +> BaseItemDtoQueryResult getEpisodes(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy) + +Gets episodes for a tv season. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID seriesId = UUID.randomUUID(); // UUID | The series id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + Integer season = 56; // Integer | Optional filter by season number. + UUID seasonId = UUID.randomUUID(); // UUID | Optional. Filter by season id. + Boolean isMissing = true; // Boolean | Optional. Filter by items that are missing episodes or not. + String adjacentTo = "adjacentTo_example"; // String | Optional. Return items that are siblings of a supplied item. + UUID startItemId = UUID.randomUUID(); // UUID | Optional. Skip through the list until a given item is found. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + Boolean enableImages = true; // Boolean | Optional, include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional, the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + String sortBy = "sortBy_example"; // String | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + try { + BaseItemDtoQueryResult result = apiInstance.getEpisodes(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getEpisodes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesId** | **UUID**| The series id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | +| **season** | **Integer**| Optional filter by season number. | [optional] | +| **seasonId** | **UUID**| Optional. Filter by season id. | [optional] | +| **isMissing** | **Boolean**| Optional. Filter by items that are missing episodes or not. | [optional] | +| **adjacentTo** | **String**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **startItemId** | **UUID**| Optional. Skip through the list until a given item is found. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **enableImages** | **Boolean**| Optional, include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional, the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **sortBy** | **String**| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getNextUp** +> BaseItemDtoQueryResult getNextUp(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching) + +Gets a list of next up episodes. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id of the user to get the next up episodes for. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + String seriesId = "seriesId_example"; // String | Optional. Filter by series id. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + OffsetDateTime nextUpDateCutoff = OffsetDateTime.now(); // OffsetDateTime | Optional. Starting date of shows to show in Next Up section. + Boolean enableTotalRecordCount = true; // Boolean | Whether to enable the total records count. Defaults to true. + Boolean disableFirstEpisode = false; // Boolean | Whether to disable sending the first episode in a series as next up. + Boolean enableRewatching = false; // Boolean | Whether to include watched episode in next up results. + try { + BaseItemDtoQueryResult result = apiInstance.getNextUp(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getNextUp"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id of the user to get the next up episodes for. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **seriesId** | **String**| Optional. Filter by series id. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **nextUpDateCutoff** | **OffsetDateTime**| Optional. Starting date of shows to show in Next Up section. | [optional] | +| **enableTotalRecordCount** | **Boolean**| Whether to enable the total records count. Defaults to true. | [optional] [default to true] | +| **disableFirstEpisode** | **Boolean**| Whether to disable sending the first episode in a series as next up. | [optional] [default to false] | +| **enableRewatching** | **Boolean**| Whether to include watched episode in next up results. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSeasons** +> BaseItemDtoQueryResult getSeasons(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData) + +Gets seasons for a tv series. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID seriesId = UUID.randomUUID(); // UUID | The series id. + UUID userId = UUID.randomUUID(); // UUID | The user id. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. + Boolean isSpecialSeason = true; // Boolean | Optional. Filter by special season. + Boolean isMissing = true; // Boolean | Optional. Filter by items that are missing episodes or not. + String adjacentTo = "adjacentTo_example"; // String | Optional. Return items that are siblings of a supplied item. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + try { + BaseItemDtoQueryResult result = apiInstance.getSeasons(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getSeasons"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **seriesId** | **UUID**| The series id. | | +| **userId** | **UUID**| The user id. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. | [optional] | +| **isSpecialSeason** | **Boolean**| Optional. Filter by special season. | [optional] | +| **isMissing** | **Boolean**| Optional. Filter by items that are missing episodes or not. | [optional] | +| **adjacentTo** | **String**| Optional. Return items that are siblings of a supplied item. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **404** | Not Found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUpcomingEpisodes** +> BaseItemDtoQueryResult getUpcomingEpisodes(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData) + +Gets a list of upcoming episodes. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.TvShowsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + TvShowsApi apiInstance = new TvShowsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id of the user to get the upcoming episodes for. + Integer startIndex = 56; // Integer | Optional. The record index to start at. All items with a lower index will be dropped from the results. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + UUID parentId = UUID.randomUUID(); // UUID | Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + try { + BaseItemDtoQueryResult result = apiInstance.getUpcomingEpisodes(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TvShowsApi#getUpcomingEpisodes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id of the user to get the upcoming episodes for. | [optional] | +| **startIndex** | **Integer**| Optional. The record index to start at. All items with a lower index will be dropped from the results. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **parentId** | **UUID**| Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TypeOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TypeOptions.md new file mode 100644 index 0000000000000..b934c8b40cb41 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/TypeOptions.md @@ -0,0 +1,18 @@ + + +# TypeOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | [optional] | +|**metadataFetchers** | **List<String>** | | [optional] | +|**metadataFetcherOrder** | **List<String>** | | [optional] | +|**imageFetchers** | **List<String>** | | [optional] | +|**imageFetcherOrder** | **List<String>** | | [optional] | +|**imageOptions** | [**List<ImageOption>**](ImageOption.md) | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UniversalAudioApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UniversalAudioApi.md new file mode 100644 index 0000000000000..cd903ea34a64c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UniversalAudioApi.md @@ -0,0 +1,218 @@ +# UniversalAudioApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getUniversalAudioStream**](UniversalAudioApi.md#getUniversalAudioStream) | **GET** /Audio/{itemId}/universal | Gets an audio stream. | +| [**headUniversalAudioStream**](UniversalAudioApi.md#headUniversalAudioStream) | **HEAD** /Audio/{itemId}/universal | Gets an audio stream. | + + + +# **getUniversalAudioStream** +> File getUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UniversalAudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UniversalAudioApi apiInstance = new UniversalAudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List container = Arrays.asList(); // List | Optional. The audio container. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + UUID userId = UUID.randomUUID(); // UUID | Optional. The user id. + String audioCodec = "audioCodec_example"; // String | Optional. The audio codec to transcode to. + Integer maxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels. + Integer transcodingAudioChannels = 56; // Integer | Optional. The number of how many audio channels to transcode to. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + String transcodingContainer = "transcodingContainer_example"; // String | Optional. The container to transcode to. + String transcodingProtocol = "transcodingProtocol_example"; // String | Optional. The transcoding protocol. + Integer maxAudioSampleRate = 56; // Integer | Optional. The maximum audio sample rate. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Boolean enableRemoteMedia = true; // Boolean | Optional. Whether to enable remote media. + Boolean breakOnNonKeyFrames = false; // Boolean | Optional. Whether to break on non key frames. + Boolean enableRedirection = true; // Boolean | Whether to enable redirection. Defaults to true. + try { + File result = apiInstance.getUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UniversalAudioApi#getUniversalAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | [**List<String>**](String.md)| Optional. The audio container. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **userId** | **UUID**| Optional. The user id. | [optional] | +| **audioCodec** | **String**| Optional. The audio codec to transcode to. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. The maximum number of audio channels. | [optional] | +| **transcodingAudioChannels** | **Integer**| Optional. The number of how many audio channels to transcode to. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **transcodingContainer** | **String**| Optional. The container to transcode to. | [optional] | +| **transcodingProtocol** | **String**| Optional. The transcoding protocol. | [optional] | +| **maxAudioSampleRate** | **Integer**| Optional. The maximum audio sample rate. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **enableRemoteMedia** | **Boolean**| Optional. Whether to enable remote media. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] [default to false] | +| **enableRedirection** | **Boolean**| Whether to enable redirection. Defaults to true. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **302** | Redirected to remote audio stream. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **headUniversalAudioStream** +> File headUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection) + +Gets an audio stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UniversalAudioApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UniversalAudioApi apiInstance = new UniversalAudioApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + List container = Arrays.asList(); // List | Optional. The audio container. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + UUID userId = UUID.randomUUID(); // UUID | Optional. The user id. + String audioCodec = "audioCodec_example"; // String | Optional. The audio codec to transcode to. + Integer maxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels. + Integer transcodingAudioChannels = 56; // Integer | Optional. The number of how many audio channels to transcode to. + Integer maxStreamingBitrate = 56; // Integer | Optional. The maximum streaming bitrate. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + String transcodingContainer = "transcodingContainer_example"; // String | Optional. The container to transcode to. + String transcodingProtocol = "transcodingProtocol_example"; // String | Optional. The transcoding protocol. + Integer maxAudioSampleRate = 56; // Integer | Optional. The maximum audio sample rate. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Boolean enableRemoteMedia = true; // Boolean | Optional. Whether to enable remote media. + Boolean breakOnNonKeyFrames = false; // Boolean | Optional. Whether to break on non key frames. + Boolean enableRedirection = true; // Boolean | Whether to enable redirection. Defaults to true. + try { + File result = apiInstance.headUniversalAudioStream(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UniversalAudioApi#headUniversalAudioStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | [**List<String>**](String.md)| Optional. The audio container. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **userId** | **UUID**| Optional. The user id. | [optional] | +| **audioCodec** | **String**| Optional. The audio codec to transcode to. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. The maximum number of audio channels. | [optional] | +| **transcodingAudioChannels** | **Integer**| Optional. The number of how many audio channels to transcode to. | [optional] | +| **maxStreamingBitrate** | **Integer**| Optional. The maximum streaming bitrate. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **transcodingContainer** | **String**| Optional. The container to transcode to. | [optional] | +| **transcodingProtocol** | **String**| Optional. The transcoding protocol. | [optional] | +| **maxAudioSampleRate** | **Integer**| Optional. The maximum audio sample rate. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **enableRemoteMedia** | **Boolean**| Optional. Whether to enable remote media. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] [default to false] | +| **enableRedirection** | **Boolean**| Whether to enable redirection. Defaults to true. | [optional] [default to true] | + +### Return type + +[**File**](File.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: audio/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Audio stream returned. | - | +| **302** | Redirected to remote audio stream. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UnratedItem.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UnratedItem.md new file mode 100644 index 0000000000000..0c7d095f04cc2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UnratedItem.md @@ -0,0 +1,27 @@ + + +# UnratedItem + +## Enum + + +* `MOVIE` (value: `"Movie"`) + +* `TRAILER` (value: `"Trailer"`) + +* `SERIES` (value: `"Series"`) + +* `MUSIC` (value: `"Music"`) + +* `BOOK` (value: `"Book"`) + +* `LIVE_TV_CHANNEL` (value: `"LiveTvChannel"`) + +* `LIVE_TV_PROGRAM` (value: `"LiveTvProgram"`) + +* `CHANNEL_CONTENT` (value: `"ChannelContent"`) + +* `OTHER` (value: `"Other"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateLibraryOptionsDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateLibraryOptionsDto.md new file mode 100644 index 0000000000000..cf7a1df3e81e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateLibraryOptionsDto.md @@ -0,0 +1,15 @@ + + +# UpdateLibraryOptionsDto + +Update library options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Gets or sets the library item id. | [optional] | +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | Gets or sets library options. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateMediaPathRequestDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateMediaPathRequestDto.md new file mode 100644 index 0000000000000..d4fe9232c424e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateMediaPathRequestDto.md @@ -0,0 +1,15 @@ + + +# UpdateMediaPathRequestDto + +Update library options dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the library name. | | +|**pathInfo** | [**MediaPathInfo**](MediaPathInfo.md) | Gets or sets library folder path information. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserEasyPassword.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserEasyPassword.md new file mode 100644 index 0000000000000..62de60fadcad4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserEasyPassword.md @@ -0,0 +1,16 @@ + + +# UpdateUserEasyPassword + +The update user easy password request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**newPassword** | **String** | Gets or sets the new sha1-hashed password. | [optional] | +|**newPw** | **String** | Gets or sets the new password. | [optional] | +|**resetPassword** | **Boolean** | Gets or sets a value indicating whether to reset the password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserPassword.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserPassword.md new file mode 100644 index 0000000000000..d2f8f81db5d98 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UpdateUserPassword.md @@ -0,0 +1,17 @@ + + +# UpdateUserPassword + +The update user password request body. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**currentPassword** | **String** | Gets or sets the current sha1-hashed password. | [optional] | +|**currentPw** | **String** | Gets or sets the current plain text password. | [optional] | +|**newPw** | **String** | Gets or sets the new plain text password. | [optional] | +|**resetPassword** | **Boolean** | Gets or sets a value indicating whether to reset the password. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UploadSubtitleDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UploadSubtitleDto.md new file mode 100644 index 0000000000000..c721637bb0fbd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UploadSubtitleDto.md @@ -0,0 +1,17 @@ + + +# UploadSubtitleDto + +Upload subtitles dto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**language** | **String** | Gets or sets the subtitle language. | | +|**format** | **String** | Gets or sets the subtitle format. | | +|**isForced** | **Boolean** | Gets or sets a value indicating whether the subtitle is forced. | | +|**data** | **String** | Gets or sets the subtitle data. | | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserApi.md new file mode 100644 index 0000000000000..7325c7ae68a67 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserApi.md @@ -0,0 +1,1086 @@ +# UserApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**authenticateUser**](UserApi.md#authenticateUser) | **POST** /Users/{userId}/Authenticate | Authenticates a user. | +| [**authenticateUserByName**](UserApi.md#authenticateUserByName) | **POST** /Users/AuthenticateByName | Authenticates a user by name. | +| [**authenticateWithQuickConnect**](UserApi.md#authenticateWithQuickConnect) | **POST** /Users/AuthenticateWithQuickConnect | Authenticates a user with quick connect. | +| [**createUserByName**](UserApi.md#createUserByName) | **POST** /Users/New | Creates a user. | +| [**deleteUser**](UserApi.md#deleteUser) | **DELETE** /Users/{userId} | Deletes a user. | +| [**forgotPassword**](UserApi.md#forgotPassword) | **POST** /Users/ForgotPassword | Initiates the forgot password process for a local user. | +| [**forgotPasswordPin**](UserApi.md#forgotPasswordPin) | **POST** /Users/ForgotPassword/Pin | Redeems a forgot password pin. | +| [**getCurrentUser**](UserApi.md#getCurrentUser) | **GET** /Users/Me | Gets the user based on auth token. | +| [**getPublicUsers**](UserApi.md#getPublicUsers) | **GET** /Users/Public | Gets a list of publicly visible users for display on a login screen. | +| [**getUserById**](UserApi.md#getUserById) | **GET** /Users/{userId} | Gets a user by Id. | +| [**getUsers**](UserApi.md#getUsers) | **GET** /Users | Gets a list of users. | +| [**updateUser**](UserApi.md#updateUser) | **POST** /Users/{userId} | Updates a user. | +| [**updateUserConfiguration**](UserApi.md#updateUserConfiguration) | **POST** /Users/{userId}/Configuration | Updates a user configuration. | +| [**updateUserEasyPassword**](UserApi.md#updateUserEasyPassword) | **POST** /Users/{userId}/EasyPassword | Updates a user's easy password. | +| [**updateUserPassword**](UserApi.md#updateUserPassword) | **POST** /Users/{userId}/Password | Updates a user's password. | +| [**updateUserPolicy**](UserApi.md#updateUserPolicy) | **POST** /Users/{userId}/Policy | Updates a user policy. | + + + +# **authenticateUser** +> AuthenticationResult authenticateUser(userId, pw, password) + +Authenticates a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + String pw = "pw_example"; // String | The password as plain text. + String password = "password_example"; // String | The password sha1-hash. + try { + AuthenticationResult result = apiInstance.authenticateUser(userId, pw, password); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#authenticateUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **pw** | **String**| The password as plain text. | | +| **password** | **String**| The password sha1-hash. | [optional] | + +### Return type + +[**AuthenticationResult**](AuthenticationResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User authenticated. | - | +| **403** | Sha1-hashed password only is not allowed. | - | +| **404** | User not found. | - | + + +# **authenticateUserByName** +> AuthenticationResult authenticateUserByName(authenticateUserByName) + +Authenticates a user by name. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + AuthenticateUserByName authenticateUserByName = new AuthenticateUserByName(); // AuthenticateUserByName | The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. + try { + AuthenticationResult result = apiInstance.authenticateUserByName(authenticateUserByName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#authenticateUserByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **authenticateUserByName** | [**AuthenticateUserByName**](AuthenticateUserByName.md)| The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. | | + +### Return type + +[**AuthenticationResult**](AuthenticationResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User authenticated. | - | + + +# **authenticateWithQuickConnect** +> AuthenticationResult authenticateWithQuickConnect(quickConnectDto) + +Authenticates a user with quick connect. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + QuickConnectDto quickConnectDto = new QuickConnectDto(); // QuickConnectDto | The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. + try { + AuthenticationResult result = apiInstance.authenticateWithQuickConnect(quickConnectDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#authenticateWithQuickConnect"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **quickConnectDto** | [**QuickConnectDto**](QuickConnectDto.md)| The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. | | + +### Return type + +[**AuthenticationResult**](AuthenticationResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User authenticated. | - | +| **400** | Missing token. | - | + + +# **createUserByName** +> UserDto createUserByName(createUserByName) + +Creates a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + CreateUserByName createUserByName = new CreateUserByName(); // CreateUserByName | The create user by name request body. + try { + UserDto result = apiInstance.createUserByName(createUserByName); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#createUserByName"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **createUserByName** | [**CreateUserByName**](CreateUserByName.md)| The create user by name request body. | | + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User created. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **deleteUser** +> deleteUser(userId) + +Deletes a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + apiInstance.deleteUser(userId); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#deleteUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User deleted. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **forgotPassword** +> ForgotPasswordResult forgotPassword(forgotPasswordDto) + +Initiates the forgot password process for a local user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + ForgotPasswordDto forgotPasswordDto = new ForgotPasswordDto(); // ForgotPasswordDto | The forgot password request containing the entered username. + try { + ForgotPasswordResult result = apiInstance.forgotPassword(forgotPasswordDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#forgotPassword"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **forgotPasswordDto** | [**ForgotPasswordDto**](ForgotPasswordDto.md)| The forgot password request containing the entered username. | | + +### Return type + +[**ForgotPasswordResult**](ForgotPasswordResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Password reset process started. | - | + + +# **forgotPasswordPin** +> PinRedeemResult forgotPasswordPin(forgotPasswordPinDto) + +Redeems a forgot password pin. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + ForgotPasswordPinDto forgotPasswordPinDto = new ForgotPasswordPinDto(); // ForgotPasswordPinDto | The forgot password pin request containing the entered pin. + try { + PinRedeemResult result = apiInstance.forgotPasswordPin(forgotPasswordPinDto); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#forgotPasswordPin"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **forgotPasswordPinDto** | [**ForgotPasswordPinDto**](ForgotPasswordPinDto.md)| The forgot password pin request containing the entered pin. | | + +### Return type + +[**PinRedeemResult**](PinRedeemResult.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Pin reset process started. | - | + + +# **getCurrentUser** +> UserDto getCurrentUser() + +Gets the user based on auth token. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + try { + UserDto result = apiInstance.getCurrentUser(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getCurrentUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User returned. | - | +| **400** | Token is not owned by a user. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getPublicUsers** +> List<UserDto> getPublicUsers() + +Gets a list of publicly visible users for display on a login screen. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + UserApi apiInstance = new UserApi(defaultClient); + try { + List result = apiInstance.getPublicUsers(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getPublicUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<UserDto>**](UserDto.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Public users returned. | - | + + +# **getUserById** +> UserDto getUserById(userId) + +Gets a user by Id. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + try { + UserDto result = apiInstance.getUserById(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getUserById"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | + +### Return type + +[**UserDto**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User returned. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUsers** +> List<UserDto> getUsers(isHidden, isDisabled) + +Gets a list of users. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + Boolean isHidden = true; // Boolean | Optional filter by IsHidden=true or false. + Boolean isDisabled = true; // Boolean | Optional filter by IsDisabled=true or false. + try { + List result = apiInstance.getUsers(isHidden, isDisabled); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#getUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **isHidden** | **Boolean**| Optional filter by IsHidden=true or false. | [optional] | +| **isDisabled** | **Boolean**| Optional filter by IsDisabled=true or false. | [optional] | + +### Return type + +[**List<UserDto>**](UserDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Users returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateUser** +> updateUser(userId, userDto) + +Updates a user. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UserDto userDto = new UserDto(); // UserDto | The updated user model. + try { + apiInstance.updateUser(userId, userDto); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUser"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **userDto** | [**UserDto**](UserDto.md)| The updated user model. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User updated. | - | +| **400** | User information was not supplied. | - | +| **403** | User update forbidden. | - | +| **401** | Unauthorized | - | + + +# **updateUserConfiguration** +> updateUserConfiguration(userId, userConfiguration) + +Updates a user configuration. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UserConfiguration userConfiguration = new UserConfiguration(); // UserConfiguration | The new user configuration. + try { + apiInstance.updateUserConfiguration(userId, userConfiguration); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserConfiguration"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **userConfiguration** | [**UserConfiguration**](UserConfiguration.md)| The new user configuration. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User configuration updated. | - | +| **403** | User configuration update forbidden. | - | +| **401** | Unauthorized | - | + + +# **updateUserEasyPassword** +> updateUserEasyPassword(userId, updateUserEasyPassword) + +Updates a user's easy password. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UpdateUserEasyPassword updateUserEasyPassword = new UpdateUserEasyPassword(); // UpdateUserEasyPassword | The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. + try { + apiInstance.updateUserEasyPassword(userId, updateUserEasyPassword); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserEasyPassword"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **updateUserEasyPassword** | [**UpdateUserEasyPassword**](UpdateUserEasyPassword.md)| The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Password successfully reset. | - | +| **403** | User is not allowed to update the password. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | + + +# **updateUserPassword** +> updateUserPassword(userId, updateUserPassword) + +Updates a user's password. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UpdateUserPassword updateUserPassword = new UpdateUserPassword(); // UpdateUserPassword | The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. + try { + apiInstance.updateUserPassword(userId, updateUserPassword); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserPassword"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **updateUserPassword** | [**UpdateUserPassword**](UpdateUserPassword.md)| The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Password successfully reset. | - | +| **403** | User is not allowed to update the password. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | + + +# **updateUserPolicy** +> updateUserPolicy(userId, userPolicy) + +Updates a user policy. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserApi apiInstance = new UserApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | The user id. + UserPolicy userPolicy = new UserPolicy(); // UserPolicy | The new user policy. + try { + apiInstance.updateUserPolicy(userId, userPolicy); + } catch (ApiException e) { + System.err.println("Exception when calling UserApi#updateUserPolicy"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| The user id. | | +| **userPolicy** | [**UserPolicy**](UserPolicy.md)| The new user policy. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: application/json, text/json, application/*+json + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | User policy updated. | - | +| **400** | User policy was not supplied. | - | +| **403** | User policy update forbidden. | - | +| **401** | Unauthorized | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserConfiguration.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserConfiguration.md new file mode 100644 index 0000000000000..0c68107766b97 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserConfiguration.md @@ -0,0 +1,28 @@ + + +# UserConfiguration + +Class UserConfiguration. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**audioLanguagePreference** | **String** | Gets or sets the audio language preference. | [optional] | +|**playDefaultAudioTrack** | **Boolean** | Gets or sets a value indicating whether [play default audio track]. | [optional] | +|**subtitleLanguagePreference** | **String** | Gets or sets the subtitle language preference. | [optional] | +|**displayMissingEpisodes** | **Boolean** | | [optional] | +|**groupedFolders** | **List<String>** | | [optional] | +|**subtitleMode** | **SubtitlePlaybackMode** | An enum representing a subtitle playback mode. | [optional] | +|**displayCollectionsView** | **Boolean** | | [optional] | +|**enableLocalPassword** | **Boolean** | | [optional] | +|**orderedViews** | **List<String>** | | [optional] | +|**latestItemsExcludes** | **List<String>** | | [optional] | +|**myMediaExcludes** | **List<String>** | | [optional] | +|**hidePlayedInLatest** | **Boolean** | | [optional] | +|**rememberAudioSelections** | **Boolean** | | [optional] | +|**rememberSubtitleSelections** | **Boolean** | | [optional] | +|**enableNextEpisodeAutoPlay** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserDto.md new file mode 100644 index 0000000000000..d6ed9c1212158 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserDto.md @@ -0,0 +1,27 @@ + + +# UserDto + +Class UserDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**serverId** | **String** | Gets or sets the server identifier. | [optional] | +|**serverName** | **String** | Gets or sets the name of the server. This is not used by the server and is for client-side usage only. | [optional] | +|**id** | **UUID** | Gets or sets the id. | [optional] | +|**primaryImageTag** | **String** | Gets or sets the primary image tag. | [optional] | +|**hasPassword** | **Boolean** | Gets or sets a value indicating whether this instance has password. | [optional] | +|**hasConfiguredPassword** | **Boolean** | Gets or sets a value indicating whether this instance has configured password. | [optional] | +|**hasConfiguredEasyPassword** | **Boolean** | Gets or sets a value indicating whether this instance has configured easy password. | [optional] | +|**enableAutoLogin** | **Boolean** | Gets or sets whether async login is enabled or not. | [optional] | +|**lastLoginDate** | **OffsetDateTime** | Gets or sets the last login date. | [optional] | +|**lastActivityDate** | **OffsetDateTime** | Gets or sets the last activity date. | [optional] | +|**_configuration** | [**UserConfiguration**](UserConfiguration.md) | Gets or sets the configuration. | [optional] | +|**policy** | [**UserPolicy**](UserPolicy.md) | Gets or sets the policy. | [optional] | +|**primaryImageAspectRatio** | **Double** | Gets or sets the primary image aspect ratio. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserItemDataDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserItemDataDto.md new file mode 100644 index 0000000000000..f5a79b89ab2fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserItemDataDto.md @@ -0,0 +1,24 @@ + + +# UserItemDataDto + +Class UserItemDataDto. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**rating** | **Double** | Gets or sets the rating. | [optional] | +|**playedPercentage** | **Double** | Gets or sets the played percentage. | [optional] | +|**unplayedItemCount** | **Integer** | Gets or sets the unplayed item count. | [optional] | +|**playbackPositionTicks** | **Long** | Gets or sets the playback position ticks. | [optional] | +|**playCount** | **Integer** | Gets or sets the play count. | [optional] | +|**isFavorite** | **Boolean** | Gets or sets a value indicating whether this instance is favorite. | [optional] | +|**likes** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. | [optional] | +|**lastPlayedDate** | **OffsetDateTime** | Gets or sets the last played date. | [optional] | +|**played** | **Boolean** | Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. | [optional] | +|**key** | **String** | Gets or sets the key. | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserLibraryApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserLibraryApi.md new file mode 100644 index 0000000000000..58447f3e6ab88 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserLibraryApi.md @@ -0,0 +1,746 @@ +# UserLibraryApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteUserItemRating**](UserLibraryApi.md#deleteUserItemRating) | **DELETE** /Users/{userId}/Items/{itemId}/Rating | Deletes a user's saved personal rating for an item. | +| [**getIntros**](UserLibraryApi.md#getIntros) | **GET** /Users/{userId}/Items/{itemId}/Intros | Gets intros to play before the main media item plays. | +| [**getItem**](UserLibraryApi.md#getItem) | **GET** /Users/{userId}/Items/{itemId} | Gets an item from a user's library. | +| [**getLatestMedia**](UserLibraryApi.md#getLatestMedia) | **GET** /Users/{userId}/Items/Latest | Gets latest media. | +| [**getLocalTrailers**](UserLibraryApi.md#getLocalTrailers) | **GET** /Users/{userId}/Items/{itemId}/LocalTrailers | Gets local trailers for an item. | +| [**getRootFolder**](UserLibraryApi.md#getRootFolder) | **GET** /Users/{userId}/Items/Root | Gets the root folder from a user's library. | +| [**getSpecialFeatures**](UserLibraryApi.md#getSpecialFeatures) | **GET** /Users/{userId}/Items/{itemId}/SpecialFeatures | Gets special features for an item. | +| [**markFavoriteItem**](UserLibraryApi.md#markFavoriteItem) | **POST** /Users/{userId}/FavoriteItems/{itemId} | Marks an item as a favorite. | +| [**unmarkFavoriteItem**](UserLibraryApi.md#unmarkFavoriteItem) | **DELETE** /Users/{userId}/FavoriteItems/{itemId} | Unmarks item as a favorite. | +| [**updateUserItemRating**](UserLibraryApi.md#updateUserItemRating) | **POST** /Users/{userId}/Items/{itemId}/Rating | Updates a user's rating for an item. | + + + +# **deleteUserItemRating** +> UserItemDataDto deleteUserItemRating(userId, itemId) + +Deletes a user's saved personal rating for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + UserItemDataDto result = apiInstance.deleteUserItemRating(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#deleteUserItemRating"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Personal rating removed. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getIntros** +> BaseItemDtoQueryResult getIntros(userId, itemId) + +Gets intros to play before the main media item plays. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + BaseItemDtoQueryResult result = apiInstance.getIntros(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getIntros"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Intros returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getItem** +> BaseItemDto getItem(userId, itemId) + +Gets an item from a user's library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + BaseItemDto result = apiInstance.getItem(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLatestMedia** +> List<BaseItemDto> getLatestMedia(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems) + +Gets latest media. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + Boolean isPlayed = true; // Boolean | Filter by items that are played, or not. + Boolean enableImages = true; // Boolean | Optional. include image information in output. + Integer imageTypeLimit = 56; // Integer | Optional. the max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + Boolean enableUserData = true; // Boolean | Optional. include user data. + Integer limit = 20; // Integer | Return item limit. + Boolean groupItems = true; // Boolean | Whether or not to group items into a parent container. + try { + List result = apiInstance.getLatestMedia(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getLatestMedia"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. | [optional] | +| **isPlayed** | **Boolean**| Filter by items that are played, or not. | [optional] | +| **enableImages** | **Boolean**| Optional. include image information in output. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. the max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **enableUserData** | **Boolean**| Optional. include user data. | [optional] | +| **limit** | **Integer**| Return item limit. | [optional] [default to 20] | +| **groupItems** | **Boolean**| Whether or not to group items into a parent container. | [optional] [default to true] | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Latest media returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getLocalTrailers** +> List<BaseItemDto> getLocalTrailers(userId, itemId) + +Gets local trailers for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getLocalTrailers(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getLocalTrailers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getRootFolder** +> BaseItemDto getRootFolder(userId) + +Gets the root folder from a user's library. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + BaseItemDto result = apiInstance.getRootFolder(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getRootFolder"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Root folder returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getSpecialFeatures** +> List<BaseItemDto> getSpecialFeatures(userId, itemId) + +Gets special features for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + List result = apiInstance.getSpecialFeatures(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#getSpecialFeatures"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**List<BaseItemDto>**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Special features returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **markFavoriteItem** +> UserItemDataDto markFavoriteItem(userId, itemId) + +Marks an item as a favorite. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + UserItemDataDto result = apiInstance.markFavoriteItem(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#markFavoriteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item marked as favorite. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **unmarkFavoriteItem** +> UserItemDataDto unmarkFavoriteItem(userId, itemId) + +Unmarks item as a favorite. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + try { + UserItemDataDto result = apiInstance.unmarkFavoriteItem(userId, itemId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#unmarkFavoriteItem"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item unmarked as favorite. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **updateUserItemRating** +> UserItemDataDto updateUserItemRating(userId, itemId, likes) + +Updates a user's rating for an item. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserLibraryApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserLibraryApi apiInstance = new UserLibraryApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + UUID itemId = UUID.randomUUID(); // UUID | Item id. + Boolean likes = true; // Boolean | Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. + try { + UserItemDataDto result = apiInstance.updateUserItemRating(userId, itemId, likes); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserLibraryApi#updateUserItemRating"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **itemId** | **UUID**| Item id. | | +| **likes** | **Boolean**| Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. | [optional] | + +### Return type + +[**UserItemDataDto**](UserItemDataDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Item rating updated. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserPolicy.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserPolicy.md new file mode 100644 index 0000000000000..c2af1ec0670c0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserPolicy.md @@ -0,0 +1,51 @@ + + +# UserPolicy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isAdministrator** | **Boolean** | Gets or sets a value indicating whether this instance is administrator. | [optional] | +|**isHidden** | **Boolean** | Gets or sets a value indicating whether this instance is hidden. | [optional] | +|**isDisabled** | **Boolean** | Gets or sets a value indicating whether this instance is disabled. | [optional] | +|**maxParentalRating** | **Integer** | Gets or sets the max parental rating. | [optional] | +|**blockedTags** | **List<String>** | | [optional] | +|**enableUserPreferenceAccess** | **Boolean** | | [optional] | +|**accessSchedules** | [**List<AccessSchedule>**](AccessSchedule.md) | | [optional] | +|**blockUnratedItems** | **List<UnratedItem>** | | [optional] | +|**enableRemoteControlOfOtherUsers** | **Boolean** | | [optional] | +|**enableSharedDeviceControl** | **Boolean** | | [optional] | +|**enableRemoteAccess** | **Boolean** | | [optional] | +|**enableLiveTvManagement** | **Boolean** | | [optional] | +|**enableLiveTvAccess** | **Boolean** | | [optional] | +|**enableMediaPlayback** | **Boolean** | | [optional] | +|**enableAudioPlaybackTranscoding** | **Boolean** | | [optional] | +|**enableVideoPlaybackTranscoding** | **Boolean** | | [optional] | +|**enablePlaybackRemuxing** | **Boolean** | | [optional] | +|**forceRemoteSourceTranscoding** | **Boolean** | | [optional] | +|**enableContentDeletion** | **Boolean** | | [optional] | +|**enableContentDeletionFromFolders** | **List<String>** | | [optional] | +|**enableContentDownloading** | **Boolean** | | [optional] | +|**enableSyncTranscoding** | **Boolean** | Gets or sets a value indicating whether [enable synchronize]. | [optional] | +|**enableMediaConversion** | **Boolean** | | [optional] | +|**enabledDevices** | **List<String>** | | [optional] | +|**enableAllDevices** | **Boolean** | | [optional] | +|**enabledChannels** | **List<UUID>** | | [optional] | +|**enableAllChannels** | **Boolean** | | [optional] | +|**enabledFolders** | **List<UUID>** | | [optional] | +|**enableAllFolders** | **Boolean** | | [optional] | +|**invalidLoginAttemptCount** | **Integer** | | [optional] | +|**loginAttemptsBeforeLockout** | **Integer** | | [optional] | +|**maxActiveSessions** | **Integer** | | [optional] | +|**enablePublicSharing** | **Boolean** | | [optional] | +|**blockedMediaFolders** | **List<UUID>** | | [optional] | +|**blockedChannels** | **List<UUID>** | | [optional] | +|**remoteClientBitrateLimit** | **Integer** | | [optional] | +|**authenticationProviderId** | **String** | | [optional] | +|**passwordResetProviderId** | **String** | | [optional] | +|**syncPlayAccess** | **SyncPlayUserAccessType** | Gets or sets a value indicating what SyncPlay features the user can access. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserViewsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserViewsApi.md new file mode 100644 index 0000000000000..59235501f5dc0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UserViewsApi.md @@ -0,0 +1,155 @@ +# UserViewsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getGroupingOptions**](UserViewsApi.md#getGroupingOptions) | **GET** /Users/{userId}/GroupingOptions | Get user view grouping options. | +| [**getUserViews**](UserViewsApi.md#getUserViews) | **GET** /Users/{userId}/Views | Get user views. | + + + +# **getGroupingOptions** +> List<SpecialViewOptionDto> getGroupingOptions(userId) + +Get user view grouping options. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserViewsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserViewsApi apiInstance = new UserViewsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + try { + List result = apiInstance.getGroupingOptions(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserViewsApi#getGroupingOptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | + +### Return type + +[**List<SpecialViewOptionDto>**](SpecialViewOptionDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User view grouping options returned. | - | +| **404** | User not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getUserViews** +> BaseItemDtoQueryResult getUserViews(userId, includeExternalContent, presetViews, includeHidden) + +Get user views. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.UserViewsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + UserViewsApi apiInstance = new UserViewsApi(defaultClient); + UUID userId = UUID.randomUUID(); // UUID | User id. + Boolean includeExternalContent = true; // Boolean | Whether or not to include external views such as channels or live tv. + List presetViews = Arrays.asList(); // List | Preset views. + Boolean includeHidden = false; // Boolean | Whether or not to include hidden content. + try { + BaseItemDtoQueryResult result = apiInstance.getUserViews(userId, includeExternalContent, presetViews, includeHidden); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling UserViewsApi#getUserViews"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **userId** | **UUID**| User id. | | +| **includeExternalContent** | **Boolean**| Whether or not to include external views such as channels or live tv. | [optional] | +| **presetViews** | [**List<String>**](String.md)| Preset views. | [optional] | +| **includeHidden** | **Boolean**| Whether or not to include hidden content. | [optional] [default to false] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | User views returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UtcTimeResponse.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UtcTimeResponse.md new file mode 100644 index 0000000000000..f29e9a8ffdd74 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/UtcTimeResponse.md @@ -0,0 +1,15 @@ + + +# UtcTimeResponse + +Class UtcTimeResponse. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**requestReceptionTime** | **OffsetDateTime** | Gets the UTC time when request has been received. | [optional] | +|**responseTransmissionTime** | **OffsetDateTime** | Gets the UTC time when response has been sent. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ValidatePathDto.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ValidatePathDto.md new file mode 100644 index 0000000000000..dd1234d84601d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/ValidatePathDto.md @@ -0,0 +1,16 @@ + + +# ValidatePathDto + +Validate path object. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**validateWritable** | **Boolean** | Gets or sets a value indicating whether validate if path is writable. | [optional] | +|**path** | **String** | Gets or sets the path. | [optional] | +|**isFile** | **Boolean** | Gets or sets is path file. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VersionInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VersionInfo.md new file mode 100644 index 0000000000000..7063b9d749f94 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VersionInfo.md @@ -0,0 +1,22 @@ + + +# VersionInfo + +Defines the MediaBrowser.Model.Updates.VersionInfo class. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**version** | **String** | Gets or sets the version. | [optional] | +|**versionNumber** | **String** | Gets the version as a System.Version. | [optional] [readonly] | +|**changelog** | **String** | Gets or sets the changelog for this version. | [optional] | +|**targetAbi** | **String** | Gets or sets the ABI that this version was built against. | [optional] | +|**sourceUrl** | **String** | Gets or sets the source URL. | [optional] | +|**checksum** | **String** | Gets or sets a checksum for the binary. | [optional] | +|**timestamp** | **String** | Gets or sets a timestamp of when the binary was built. | [optional] | +|**repositoryName** | **String** | Gets or sets the repository name. | [optional] | +|**repositoryUrl** | **String** | Gets or sets the repository url. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Video3DFormat.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Video3DFormat.md new file mode 100644 index 0000000000000..768a9cad3ff61 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/Video3DFormat.md @@ -0,0 +1,19 @@ + + +# Video3DFormat + +## Enum + + +* `HALF_SIDE_BY_SIDE` (value: `"HalfSideBySide"`) + +* `FULL_SIDE_BY_SIDE` (value: `"FullSideBySide"`) + +* `FULL_TOP_AND_BOTTOM` (value: `"FullTopAndBottom"`) + +* `HALF_TOP_AND_BOTTOM` (value: `"HalfTopAndBottom"`) + +* `MVC` (value: `"MVC"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoAttachmentsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoAttachmentsApi.md new file mode 100644 index 0000000000000..db36ace28fd0b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoAttachmentsApi.md @@ -0,0 +1,74 @@ +# VideoAttachmentsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAttachment**](VideoAttachmentsApi.md#getAttachment) | **GET** /Videos/{videoId}/{mediaSourceId}/Attachments/{index} | Get video attachment. | + + + +# **getAttachment** +> File getAttachment(videoId, mediaSourceId, index) + +Get video attachment. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideoAttachmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideoAttachmentsApi apiInstance = new VideoAttachmentsApi(defaultClient); + UUID videoId = UUID.randomUUID(); // UUID | Video ID. + String mediaSourceId = "mediaSourceId_example"; // String | Media Source ID. + Integer index = 56; // Integer | Attachment Index. + try { + File result = apiInstance.getAttachment(videoId, mediaSourceId, index); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideoAttachmentsApi#getAttachment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **videoId** | **UUID**| Video ID. | | +| **mediaSourceId** | **String**| Media Source ID. | | +| **index** | **Integer**| Attachment Index. | | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/octet-stream, application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Attachment retrieved. | - | +| **404** | Video or attachment not found. | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoType.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoType.md new file mode 100644 index 0000000000000..97d66c26edde7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideoType.md @@ -0,0 +1,17 @@ + + +# VideoType + +## Enum + + +* `VIDEO_FILE` (value: `"VideoFile"`) + +* `ISO` (value: `"Iso"`) + +* `DVD` (value: `"Dvd"`) + +* `BLU_RAY` (value: `"BluRay"`) + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideosApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideosApi.md new file mode 100644 index 0000000000000..477b5e7f5cb73 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VideosApi.md @@ -0,0 +1,864 @@ +# VideosApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**deleteAlternateSources**](VideosApi.md#deleteAlternateSources) | **DELETE** /Videos/{itemId}/AlternateSources | Removes alternate video sources. | +| [**getAdditionalPart**](VideosApi.md#getAdditionalPart) | **GET** /Videos/{itemId}/AdditionalParts | Gets additional parts for a video. | +| [**getVideoStream**](VideosApi.md#getVideoStream) | **GET** /Videos/{itemId}/stream | Gets a video stream. | +| [**getVideoStreamByContainer**](VideosApi.md#getVideoStreamByContainer) | **GET** /Videos/{itemId}/stream.{container} | Gets a video stream. | +| [**headVideoStream**](VideosApi.md#headVideoStream) | **HEAD** /Videos/{itemId}/stream | Gets a video stream. | +| [**headVideoStreamByContainer**](VideosApi.md#headVideoStreamByContainer) | **HEAD** /Videos/{itemId}/stream.{container} | Gets a video stream. | +| [**mergeVersions**](VideosApi.md#mergeVersions) | **POST** /Videos/MergeVersions | Merges videos into a single record. | + + + +# **deleteAlternateSources** +> deleteAlternateSources(itemId) + +Removes alternate video sources. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + try { + apiInstance.deleteAlternateSources(itemId); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#deleteAlternateSources"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Alternate sources deleted. | - | +| **404** | Video not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getAdditionalPart** +> BaseItemDtoQueryResult getAdditionalPart(itemId, userId) + +Gets additional parts for a video. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDtoQueryResult result = apiInstance.getAdditionalPart(itemId, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getAdditionalPart"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Additional parts returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getVideoStream** +> File getVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getVideoStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **getVideoStreamByContainer** +> File getVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.getVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#getVideoStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **headVideoStream** +> File headVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.headVideoStream(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#headVideoStream"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | [optional] | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **headVideoStreamByContainer** +> File headVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions) + +Gets a video stream. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + VideosApi apiInstance = new VideosApi(defaultClient); + UUID itemId = UUID.randomUUID(); // UUID | The item id. + String container = "container_example"; // String | The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. + Boolean _static = true; // Boolean | Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + String params = "params_example"; // String | The streaming parameters. + String tag = "tag_example"; // String | The tag. + String deviceProfileId = "deviceProfileId_example"; // String | Optional. The dlna device profile id to utilize. + String playSessionId = "playSessionId_example"; // String | The play session id. + String segmentContainer = "segmentContainer_example"; // String | The segment container. + Integer segmentLength = 56; // Integer | The segment length. + Integer minSegments = 56; // Integer | The minimum number of segments. + String mediaSourceId = "mediaSourceId_example"; // String | The media version id, if playing an alternate version. + String deviceId = "deviceId_example"; // String | The device id of the client requesting. Used to stop encoding processes when needed. + String audioCodec = "audioCodec_example"; // String | Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. + Boolean enableAutoStreamCopy = true; // Boolean | Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + Boolean allowVideoStreamCopy = true; // Boolean | Whether or not to allow copying of the video stream url. + Boolean allowAudioStreamCopy = true; // Boolean | Whether or not to allow copying of the audio stream url. + Boolean breakOnNonKeyFrames = true; // Boolean | Optional. Whether to break on non key frames. + Integer audioSampleRate = 56; // Integer | Optional. Specify a specific audio sample rate, e.g. 44100. + Integer maxAudioBitDepth = 56; // Integer | Optional. The maximum audio bit depth. + Integer audioBitRate = 56; // Integer | Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + Integer audioChannels = 56; // Integer | Optional. Specify a specific number of audio channels to encode to, e.g. 2. + Integer maxAudioChannels = 56; // Integer | Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + String profile = "profile_example"; // String | Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + String level = "level_example"; // String | Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + Float framerate = 3.4F; // Float | Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Float maxFramerate = 3.4F; // Float | Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + Boolean copyTimestamps = true; // Boolean | Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + Long startTimeTicks = 56L; // Long | Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + Integer width = 56; // Integer | Optional. The fixed horizontal resolution of the encoded video. + Integer height = 56; // Integer | Optional. The fixed vertical resolution of the encoded video. + Integer maxWidth = 56; // Integer | Optional. The maximum horizontal resolution of the encoded video. + Integer maxHeight = 56; // Integer | Optional. The maximum vertical resolution of the encoded video. + Integer videoBitRate = 56; // Integer | Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + Integer subtitleStreamIndex = 56; // Integer | Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + SubtitleDeliveryMethod subtitleMethod = SubtitleDeliveryMethod.fromValue("Encode"); // SubtitleDeliveryMethod | Optional. Specify the subtitle delivery method. + Integer maxRefFrames = 56; // Integer | Optional. + Integer maxVideoBitDepth = 56; // Integer | Optional. The maximum video bit depth. + Boolean requireAvc = true; // Boolean | Optional. Whether to require avc. + Boolean deInterlace = true; // Boolean | Optional. Whether to deinterlace the video. + Boolean requireNonAnamorphic = true; // Boolean | Optional. Whether to require a non anamorphic stream. + Integer transcodingMaxAudioChannels = 56; // Integer | Optional. The maximum number of audio channels to transcode. + Integer cpuCoreLimit = 56; // Integer | Optional. The limit of how many cpu cores to use. + String liveStreamId = "liveStreamId_example"; // String | The live stream id. + Boolean enableMpegtsM2TsMode = true; // Boolean | Optional. Whether to enable the MpegtsM2Ts mode. + String videoCodec = "videoCodec_example"; // String | Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. + String subtitleCodec = "subtitleCodec_example"; // String | Optional. Specify a subtitle codec to encode to. + String transcodeReasons = "transcodeReasons_example"; // String | Optional. The transcoding reason. + Integer audioStreamIndex = 56; // Integer | Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + Integer videoStreamIndex = 56; // Integer | Optional. The index of the video stream to use. If omitted the first video stream will be used. + EncodingContext context = EncodingContext.fromValue("Streaming"); // EncodingContext | Optional. The MediaBrowser.Model.Dlna.EncodingContext. + Map streamOptions = new HashMap(); // Map | Optional. The streaming options. + try { + File result = apiInstance.headVideoStreamByContainer(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#headVideoStreamByContainer"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **itemId** | **UUID**| The item id. | | +| **container** | **String**| The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. | | +| **_static** | **Boolean**| Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. | [optional] | +| **params** | **String**| The streaming parameters. | [optional] | +| **tag** | **String**| The tag. | [optional] | +| **deviceProfileId** | **String**| Optional. The dlna device profile id to utilize. | [optional] | +| **playSessionId** | **String**| The play session id. | [optional] | +| **segmentContainer** | **String**| The segment container. | [optional] | +| **segmentLength** | **Integer**| The segment length. | [optional] | +| **minSegments** | **Integer**| The minimum number of segments. | [optional] | +| **mediaSourceId** | **String**| The media version id, if playing an alternate version. | [optional] | +| **deviceId** | **String**| The device id of the client requesting. Used to stop encoding processes when needed. | [optional] | +| **audioCodec** | **String**| Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. | [optional] | +| **enableAutoStreamCopy** | **Boolean**| Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. | [optional] | +| **allowVideoStreamCopy** | **Boolean**| Whether or not to allow copying of the video stream url. | [optional] | +| **allowAudioStreamCopy** | **Boolean**| Whether or not to allow copying of the audio stream url. | [optional] | +| **breakOnNonKeyFrames** | **Boolean**| Optional. Whether to break on non key frames. | [optional] | +| **audioSampleRate** | **Integer**| Optional. Specify a specific audio sample rate, e.g. 44100. | [optional] | +| **maxAudioBitDepth** | **Integer**| Optional. The maximum audio bit depth. | [optional] | +| **audioBitRate** | **Integer**| Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. | [optional] | +| **audioChannels** | **Integer**| Optional. Specify a specific number of audio channels to encode to, e.g. 2. | [optional] | +| **maxAudioChannels** | **Integer**| Optional. Specify a maximum number of audio channels to encode to, e.g. 2. | [optional] | +| **profile** | **String**| Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. | [optional] | +| **level** | **String**| Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. | [optional] | +| **framerate** | **Float**| Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **maxFramerate** | **Float**| Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. | [optional] | +| **copyTimestamps** | **Boolean**| Whether or not to copy timestamps when transcoding with an offset. Defaults to false. | [optional] | +| **startTimeTicks** | **Long**| Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. | [optional] | +| **width** | **Integer**| Optional. The fixed horizontal resolution of the encoded video. | [optional] | +| **height** | **Integer**| Optional. The fixed vertical resolution of the encoded video. | [optional] | +| **maxWidth** | **Integer**| Optional. The maximum horizontal resolution of the encoded video. | [optional] | +| **maxHeight** | **Integer**| Optional. The maximum vertical resolution of the encoded video. | [optional] | +| **videoBitRate** | **Integer**| Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. | [optional] | +| **subtitleStreamIndex** | **Integer**| Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. | [optional] | +| **subtitleMethod** | [**SubtitleDeliveryMethod**](.md)| Optional. Specify the subtitle delivery method. | [optional] [enum: Encode, Embed, External, Hls, Drop] | +| **maxRefFrames** | **Integer**| Optional. | [optional] | +| **maxVideoBitDepth** | **Integer**| Optional. The maximum video bit depth. | [optional] | +| **requireAvc** | **Boolean**| Optional. Whether to require avc. | [optional] | +| **deInterlace** | **Boolean**| Optional. Whether to deinterlace the video. | [optional] | +| **requireNonAnamorphic** | **Boolean**| Optional. Whether to require a non anamorphic stream. | [optional] | +| **transcodingMaxAudioChannels** | **Integer**| Optional. The maximum number of audio channels to transcode. | [optional] | +| **cpuCoreLimit** | **Integer**| Optional. The limit of how many cpu cores to use. | [optional] | +| **liveStreamId** | **String**| The live stream id. | [optional] | +| **enableMpegtsM2TsMode** | **Boolean**| Optional. Whether to enable the MpegtsM2Ts mode. | [optional] | +| **videoCodec** | **String**| Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. | [optional] | +| **subtitleCodec** | **String**| Optional. Specify a subtitle codec to encode to. | [optional] | +| **transcodeReasons** | **String**| Optional. The transcoding reason. | [optional] | +| **audioStreamIndex** | **Integer**| Optional. The index of the audio stream to use. If omitted the first audio stream will be used. | [optional] | +| **videoStreamIndex** | **Integer**| Optional. The index of the video stream to use. If omitted the first video stream will be used. | [optional] | +| **context** | [**EncodingContext**](.md)| Optional. The MediaBrowser.Model.Dlna.EncodingContext. | [optional] [enum: Streaming, Static] | +| **streamOptions** | [**Map<String, String>**](String.md)| Optional. The streaming options. | [optional] | + +### Return type + +[**File**](File.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: video/* + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Video stream returned. | - | + + +# **mergeVersions** +> mergeVersions(ids) + +Merges videos into a single record. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.VideosApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + VideosApi apiInstance = new VideosApi(defaultClient); + List ids = Arrays.asList(); // List | Item id list. This allows multiple, comma delimited. + try { + apiInstance.mergeVersions(ids); + } catch (ApiException e) { + System.err.println("Exception when calling VideosApi#mergeVersions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ids** | [**List<UUID>**](UUID.md)| Item id list. This allows multiple, comma delimited. | | + +### Return type + +null (empty response body) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | Videos merged. | - | +| **400** | Supply at least 2 video ids. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VirtualFolderInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VirtualFolderInfo.md new file mode 100644 index 0000000000000..e68ec518a6fc2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/VirtualFolderInfo.md @@ -0,0 +1,21 @@ + + +# VirtualFolderInfo + +Used to hold information about a user's list of configured virtual folders. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name. | [optional] | +|**locations** | **List<String>** | Gets or sets the locations. | [optional] | +|**collectionType** | **CollectionTypeOptions** | Gets or sets the type of the collection. | [optional] | +|**libraryOptions** | [**LibraryOptions**](LibraryOptions.md) | | [optional] | +|**itemId** | **String** | Gets or sets the item identifier. | [optional] | +|**primaryImageItemId** | **String** | Gets or sets the primary image item identifier. | [optional] | +|**refreshProgress** | **Double** | | [optional] | +|**refreshStatus** | **String** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/WakeOnLanInfo.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/WakeOnLanInfo.md new file mode 100644 index 0000000000000..0afaa31bdfad4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/WakeOnLanInfo.md @@ -0,0 +1,15 @@ + + +# WakeOnLanInfo + +Provides the MAC address and port for wake-on-LAN functionality. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**macAddress** | **String** | Gets the MAC address of the device. | [optional] | +|**port** | **Integer** | Gets or sets the wake-on-LAN port. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XbmcMetadataOptions.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XbmcMetadataOptions.md new file mode 100644 index 0000000000000..b17b6fcb1b45e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XbmcMetadataOptions.md @@ -0,0 +1,17 @@ + + +# XbmcMetadataOptions + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userId** | **String** | | [optional] | +|**releaseDateFormat** | **String** | | [optional] | +|**saveImagePathsInNfo** | **Boolean** | | [optional] | +|**enablePathSubstitution** | **Boolean** | | [optional] | +|**enableExtraThumbsDuplication** | **Boolean** | | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XmlAttribute.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XmlAttribute.md new file mode 100644 index 0000000000000..4b59b93546e91 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/XmlAttribute.md @@ -0,0 +1,15 @@ + + +# XmlAttribute + +Defines the MediaBrowser.Model.Dlna.XmlAttribute. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Gets or sets the name of the attribute. | [optional] | +|**value** | **String** | Gets or sets the value of the attribute. | [optional] | + + + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/YearsApi.md b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/YearsApi.md new file mode 100644 index 0000000000000..02fb199de5a63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/docs/YearsApi.md @@ -0,0 +1,179 @@ +# YearsApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getYear**](YearsApi.md#getYear) | **GET** /Years/{year} | Gets a year. | +| [**getYears**](YearsApi.md#getYears) | **GET** /Years | Get years. | + + + +# **getYear** +> BaseItemDto getYear(year, userId) + +Gets a year. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.YearsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + YearsApi apiInstance = new YearsApi(defaultClient); + Integer year = 56; // Integer | The year. + UUID userId = UUID.randomUUID(); // UUID | Optional. Filter by user id, and attach user data. + try { + BaseItemDto result = apiInstance.getYear(year, userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling YearsApi#getYear"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **year** | **Integer**| The year. | | +| **userId** | **UUID**| Optional. Filter by user id, and attach user data. | [optional] | + +### Return type + +[**BaseItemDto**](BaseItemDto.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Year returned. | - | +| **404** | Year not found. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + + +# **getYears** +> BaseItemDtoQueryResult getYears(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages) + +Get years. + +### Example +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.auth.*; +import org.openapitools.client.models.*; +import org.openapitools.client.api.YearsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + // Configure API key authorization: CustomAuthentication + ApiKeyAuth CustomAuthentication = (ApiKeyAuth) defaultClient.getAuthentication("CustomAuthentication"); + CustomAuthentication.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //CustomAuthentication.setApiKeyPrefix("Token"); + + YearsApi apiInstance = new YearsApi(defaultClient); + Integer startIndex = 56; // Integer | Skips over a given number of items within the results. Use for paging. + Integer limit = 56; // Integer | Optional. The maximum number of records to return. + List sortOrder = Arrays.asList(); // List | Sort Order - Ascending,Descending. + UUID parentId = UUID.randomUUID(); // UUID | Specify this to localize the search to a specific item or folder. Omit to use the root. + List fields = Arrays.asList(); // List | Optional. Specify additional fields of information to return in the output. + List excludeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. + List includeItemTypes = Arrays.asList(); // List | Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. + List mediaTypes = Arrays.asList(); // List | Optional. Filter by MediaType. Allows multiple, comma delimited. + List sortBy = Arrays.asList(); // List | Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. + Boolean enableUserData = true; // Boolean | Optional. Include user data. + Integer imageTypeLimit = 56; // Integer | Optional. The max number of images to return, per image type. + List enableImageTypes = Arrays.asList(); // List | Optional. The image types to include in the output. + UUID userId = UUID.randomUUID(); // UUID | User Id. + Boolean recursive = true; // Boolean | Search recursively. + Boolean enableImages = true; // Boolean | Optional. Include image information in output. + try { + BaseItemDtoQueryResult result = apiInstance.getYears(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling YearsApi#getYears"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startIndex** | **Integer**| Skips over a given number of items within the results. Use for paging. | [optional] | +| **limit** | **Integer**| Optional. The maximum number of records to return. | [optional] | +| **sortOrder** | [**List<SortOrder>**](SortOrder.md)| Sort Order - Ascending,Descending. | [optional] | +| **parentId** | **UUID**| Specify this to localize the search to a specific item or folder. Omit to use the root. | [optional] | +| **fields** | [**List<ItemFields>**](ItemFields.md)| Optional. Specify additional fields of information to return in the output. | [optional] | +| **excludeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. | [optional] | +| **includeItemTypes** | [**List<BaseItemKind>**](BaseItemKind.md)| Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. | [optional] | +| **mediaTypes** | [**List<String>**](String.md)| Optional. Filter by MediaType. Allows multiple, comma delimited. | [optional] | +| **sortBy** | [**List<String>**](String.md)| Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. | [optional] | +| **enableUserData** | **Boolean**| Optional. Include user data. | [optional] | +| **imageTypeLimit** | **Integer**| Optional. The max number of images to return, per image type. | [optional] | +| **enableImageTypes** | [**List<ImageType>**](ImageType.md)| Optional. The image types to include in the output. | [optional] | +| **userId** | **UUID**| User Id. | [optional] | +| **recursive** | **Boolean**| Search recursively. | [optional] [default to true] | +| **enableImages** | **Boolean**| Optional. Include image information in output. | [optional] [default to true] | + +### Return type + +[**BaseItemDtoQueryResult**](BaseItemDtoQueryResult.md) + +### Authorization + +[CustomAuthentication](../README.md#CustomAuthentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/json; profile=CamelCase, application/json; profile=PascalCase + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Year query returned. | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ActivityLogApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ActivityLogApi.java new file mode 100644 index 0000000000000..36fd7ce0ccabe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ActivityLogApi.java @@ -0,0 +1,235 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ActivityLogEntryQueryResult; +import java.time.OffsetDateTime; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ActivityLogApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ActivityLogApi() { + this(Configuration.getDefaultApiClient()); + } + + public ActivityLogApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getLogEntries + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogEntriesCall(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/ActivityLog/Entries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (minDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDate", minDate)); + } + + if (hasUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasUserId", hasUserId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLogEntriesValidateBeforeCall(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + return getLogEntriesCall(startIndex, limit, minDate, hasUserId, _callback); + + } + + /** + * Gets activity log entries. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @return ActivityLogEntryQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ActivityLogEntryQueryResult getLogEntries(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId) throws ApiException { + ApiResponse localVarResp = getLogEntriesWithHttpInfo(startIndex, limit, minDate, hasUserId); + return localVarResp.getData(); + } + + /** + * Gets activity log entries. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @return ApiResponse<ActivityLogEntryQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLogEntriesWithHttpInfo(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId) throws ApiException { + okhttp3.Call localVarCall = getLogEntriesValidateBeforeCall(startIndex, limit, minDate, hasUserId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets activity log entries. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param minDate Optional. The minimum date. Format = ISO. (optional) + * @param hasUserId Optional. Filter log entries if it has user id, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Activity log returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogEntriesAsync(Integer startIndex, Integer limit, OffsetDateTime minDate, Boolean hasUserId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLogEntriesValidateBeforeCall(startIndex, limit, minDate, hasUserId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ApiKeyApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ApiKeyApi.java new file mode 100644 index 0000000000000..5492feda972cc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ApiKeyApi.java @@ -0,0 +1,465 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AuthenticationInfoQueryResult; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ApiKeyApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ApiKeyApi() { + this(Configuration.getDefaultApiClient()); + } + + public ApiKeyApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createKey + * @param app Name of the app using the authentication key. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createKeyCall(String app, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (app != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("app", app)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createKeyValidateBeforeCall(String app, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'app' is set + if (app == null) { + throw new ApiException("Missing the required parameter 'app' when calling createKey(Async)"); + } + + return createKeyCall(app, _callback); + + } + + /** + * Create a new api key. + * + * @param app Name of the app using the authentication key. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createKey(String app) throws ApiException { + createKeyWithHttpInfo(app); + } + + /** + * Create a new api key. + * + * @param app Name of the app using the authentication key. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createKeyWithHttpInfo(String app) throws ApiException { + okhttp3.Call localVarCall = createKeyValidateBeforeCall(app, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Create a new api key. (asynchronously) + * + * @param app Name of the app using the authentication key. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createKeyAsync(String app, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createKeyValidateBeforeCall(app, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getKeys + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getKeysCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getKeysValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getKeysCall(_callback); + + } + + /** + * Get all keys. + * + * @return AuthenticationInfoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public AuthenticationInfoQueryResult getKeys() throws ApiException { + ApiResponse localVarResp = getKeysWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all keys. + * + * @return ApiResponse<AuthenticationInfoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getKeysWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getKeysValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all keys. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Api keys retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getKeysAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getKeysValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for revokeKey + * @param key The access token to delete. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call revokeKeyCall(String key, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Keys/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call revokeKeyValidateBeforeCall(String key, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling revokeKey(Async)"); + } + + return revokeKeyCall(key, _callback); + + } + + /** + * Remove an api key. + * + * @param key The access token to delete. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void revokeKey(String key) throws ApiException { + revokeKeyWithHttpInfo(key); + } + + /** + * Remove an api key. + * + * @param key The access token to delete. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse revokeKeyWithHttpInfo(String key) throws ApiException { + okhttp3.Call localVarCall = revokeKeyValidateBeforeCall(key, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Remove an api key. (asynchronously) + * + * @param key The access token to delete. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Api key deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call revokeKeyAsync(String key, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = revokeKeyValidateBeforeCall(key, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ArtistsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ArtistsApi.java new file mode 100644 index 0000000000000..e99b0c9c38adc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ArtistsApi.java @@ -0,0 +1,993 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ArtistsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ArtistsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ArtistsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAlbumArtists + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAlbumArtistsCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/AlbumArtists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAlbumArtistsValidateBeforeCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getAlbumArtistsCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all album artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getAlbumArtists(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getAlbumArtistsWithHttpInfo(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all album artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getAlbumArtistsWithHttpInfo(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getAlbumArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all album artists from a given item, folder, or the entire library. (asynchronously) + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Album artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAlbumArtistsAsync(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAlbumArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getArtistByName + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistByNameCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistByNameValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getArtistByName(Async)"); + } + + return getArtistByNameCall(name, userId, _callback); + + } + + /** + * Gets an artist by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getArtistByName(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getArtistByNameWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Gets an artist by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getArtistByNameWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getArtistByNameValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an artist by name. (asynchronously) + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistByNameAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistByNameValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getArtists + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistsCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistsValidateBeforeCall(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getArtistsCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getArtists(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getArtistsWithHttpInfo(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all artists from a given item, folder, or the entire library. + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getArtistsWithHttpInfo(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all artists from a given item, folder, or the entire library. (asynchronously) + * + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person ids. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Artists returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getArtistsAsync(Double minCommunityRating, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List genres, List genreIds, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List studioIds, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistsValidateBeforeCall(minCommunityRating, startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, genres, genreIds, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, studioIds, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/AudioApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/AudioApi.java new file mode 100644 index 0000000000000..22d705d880e43 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/AudioApi.java @@ -0,0 +1,2126 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AudioApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AudioApi() { + this(Configuration.getDefaultApiClient()); + } + + public AudioApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAudioStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAudioStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAudioStream(Async)"); + } + + return getAudioStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File getAudioStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getAudioStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse getAudioStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAudioStreamByContainer + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAudioStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAudioStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getAudioStreamByContainer(Async)"); + } + + return getAudioStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File getAudioStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getAudioStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse getAudioStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call getAudioStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headAudioStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headAudioStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headAudioStream(Async)"); + } + + return headAudioStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File headAudioStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = headAudioStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse headAudioStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = headAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headAudioStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headAudioStreamByContainer + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headAudioStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headAudioStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling headAudioStreamByContainer(Async)"); + } + + return headAudioStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public File headAudioStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = headAudioStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public ApiResponse headAudioStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = headAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamporphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
+ */ + public okhttp3.Call headAudioStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headAudioStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/BrandingApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/BrandingApi.java new file mode 100644 index 0000000000000..324fc93d83668 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/BrandingApi.java @@ -0,0 +1,442 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BrandingOptions; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class BrandingApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public BrandingApi() { + this(Configuration.getDefaultApiClient()); + } + + public BrandingApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getBrandingCss + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCssCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Css"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/css", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingCssValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingCssCall(_callback); + + } + + /** + * Gets branding css. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public String getBrandingCss() throws ApiException { + ApiResponse localVarResp = getBrandingCssWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding css. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public ApiResponse getBrandingCssWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingCssValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding css. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCssAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingCssValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBrandingCss2 + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCss2Call(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Css.css"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/css", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingCss2ValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingCss2Call(_callback); + + } + + /** + * Gets branding css. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public String getBrandingCss2() throws ApiException { + ApiResponse localVarResp = getBrandingCss2WithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding css. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public ApiResponse getBrandingCss2WithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingCss2ValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding css. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Branding css returned. -
204 No branding css configured. -
+ */ + public okhttp3.Call getBrandingCss2Async(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingCss2ValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBrandingOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public okhttp3.Call getBrandingOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBrandingOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getBrandingOptionsCall(_callback); + + } + + /** + * Gets branding configuration. + * + * @return BrandingOptions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public BrandingOptions getBrandingOptions() throws ApiException { + ApiResponse localVarResp = getBrandingOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets branding configuration. + * + * @return ApiResponse<BrandingOptions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public ApiResponse getBrandingOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getBrandingOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets branding configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Branding configuration returned. -
+ */ + public okhttp3.Call getBrandingOptionsAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBrandingOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ChannelsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ChannelsApi.java new file mode 100644 index 0000000000000..af6dfb548d19d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ChannelsApi.java @@ -0,0 +1,895 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ChannelFeatures; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ChannelsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ChannelsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ChannelsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAllChannelFeatures + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAllChannelFeaturesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/Features"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAllChannelFeaturesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getAllChannelFeaturesCall(_callback); + + } + + /** + * Get all channel features. + * + * @return List<ChannelFeatures> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAllChannelFeatures() throws ApiException { + ApiResponse> localVarResp = getAllChannelFeaturesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all channel features. + * + * @return ApiResponse<List<ChannelFeatures>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAllChannelFeaturesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getAllChannelFeaturesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all channel features. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAllChannelFeaturesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAllChannelFeaturesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelFeatures + * @param channelId Channel id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelFeaturesCall(UUID channelId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/{channelId}/Features" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelFeaturesValidateBeforeCall(UUID channelId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannelFeatures(Async)"); + } + + return getChannelFeaturesCall(channelId, _callback); + + } + + /** + * Get channel features. + * + * @param channelId Channel id. (required) + * @return ChannelFeatures + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ChannelFeatures getChannelFeatures(UUID channelId) throws ApiException { + ApiResponse localVarResp = getChannelFeaturesWithHttpInfo(channelId); + return localVarResp.getData(); + } + + /** + * Get channel features. + * + * @param channelId Channel id. (required) + * @return ApiResponse<ChannelFeatures> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelFeaturesWithHttpInfo(UUID channelId) throws ApiException { + okhttp3.Call localVarCall = getChannelFeaturesValidateBeforeCall(channelId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel features. (asynchronously) + * + * @param channelId Channel id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelFeaturesAsync(UUID channelId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelFeaturesValidateBeforeCall(channelId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelItems + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelItemsCall(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/{channelId}/Items" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (folderId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("folderId", folderId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelItemsValidateBeforeCall(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannelItems(Async)"); + } + + return getChannelItemsCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, _callback); + + } + + /** + * Get channel items. + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getChannelItems(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields) throws ApiException { + ApiResponse localVarResp = getChannelItemsWithHttpInfo(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields); + return localVarResp.getData(); + } + + /** + * Get channel items. + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelItemsWithHttpInfo(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields) throws ApiException { + okhttp3.Call localVarCall = getChannelItemsValidateBeforeCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel items. (asynchronously) + * + * @param channelId Channel Id. (required) + * @param folderId Optional. Folder Id. (optional) + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Optional. Sort Order - Ascending,Descending. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelItemsAsync(UUID channelId, UUID folderId, UUID userId, Integer startIndex, Integer limit, List sortOrder, List filters, List sortBy, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelItemsValidateBeforeCall(channelId, folderId, userId, startIndex, limit, sortOrder, filters, sortBy, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannels + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelsCall(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (supportsLatestItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsLatestItems", supportsLatestItems)); + } + + if (supportsMediaDeletion != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsMediaDeletion", supportsMediaDeletion)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + return getChannelsCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, _callback); + + } + + /** + * Gets available channels. + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getChannels(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite) throws ApiException { + ApiResponse localVarResp = getChannelsWithHttpInfo(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite); + return localVarResp.getData(); + } + + /** + * Gets available channels. + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite) throws ApiException { + okhttp3.Call localVarCall = getChannelsValidateBeforeCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available channels. (asynchronously) + * + * @param userId User Id to filter by. Use System.Guid.Empty to not filter by user. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param supportsLatestItems Optional. Filter by channels that support getting latest items. (optional) + * @param supportsMediaDeletion Optional. Filter by channels that support media deletion. (optional) + * @param isFavorite Optional. Filter by channels that are favorite. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelsAsync(UUID userId, Integer startIndex, Integer limit, Boolean supportsLatestItems, Boolean supportsMediaDeletion, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelsValidateBeforeCall(userId, startIndex, limit, supportsLatestItems, supportsMediaDeletion, isFavorite, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLatestChannelItems + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestChannelItemsCall(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Channels/Items/Latest"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (channelIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "channelIds", channelIds)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLatestChannelItemsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + return getLatestChannelItemsCall(userId, startIndex, limit, filters, fields, channelIds, _callback); + + } + + /** + * Gets latest channel items. + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLatestChannelItems(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds) throws ApiException { + ApiResponse localVarResp = getLatestChannelItemsWithHttpInfo(userId, startIndex, limit, filters, fields, channelIds); + return localVarResp.getData(); + } + + /** + * Gets latest channel items. + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLatestChannelItemsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds) throws ApiException { + okhttp3.Call localVarCall = getLatestChannelItemsValidateBeforeCall(userId, startIndex, limit, filters, fields, channelIds, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets latest channel items. (asynchronously) + * + * @param userId Optional. User Id. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param channelIds Optional. Specify one or more channel id's, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest channel items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestChannelItemsAsync(UUID userId, Integer startIndex, Integer limit, List filters, List fields, List channelIds, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLatestChannelItemsValidateBeforeCall(userId, startIndex, limit, filters, fields, channelIds, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ClientLogApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ClientLogApi.java new file mode 100644 index 0000000000000..e1e0b0fe196da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ClientLogApi.java @@ -0,0 +1,213 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ClientLogDocumentResponseDto; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ClientLogApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ClientLogApi() { + this(Configuration.getDefaultApiClient()); + } + + public ClientLogApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for logFile + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public okhttp3.Call logFileCall(File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/ClientLog/Document"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "text/plain" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call logFileValidateBeforeCall(File body, final ApiCallback _callback) throws ApiException { + return logFileCall(body, _callback); + + } + + /** + * Upload a document. + * + * @param body (optional) + * @return ClientLogDocumentResponseDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public ClientLogDocumentResponseDto logFile(File body) throws ApiException { + ApiResponse localVarResp = logFileWithHttpInfo(body); + return localVarResp.getData(); + } + + /** + * Upload a document. + * + * @param body (optional) + * @return ApiResponse<ClientLogDocumentResponseDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public ApiResponse logFileWithHttpInfo(File body) throws ApiException { + okhttp3.Call localVarCall = logFileValidateBeforeCall(body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Upload a document. (asynchronously) + * + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Document saved. -
403 Event logging disabled. -
413 Upload size too large. -
401 Unauthorized -
+ */ + public okhttp3.Call logFileAsync(File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = logFileValidateBeforeCall(body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/CollectionApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/CollectionApi.java new file mode 100644 index 0000000000000..838fb831cde55 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/CollectionApi.java @@ -0,0 +1,521 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.CollectionCreationResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CollectionApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public CollectionApi() { + this(Configuration.getDefaultApiClient()); + } + + public CollectionApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addToCollection + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToCollectionCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections/{collectionId}/Items" + .replace("{" + "collectionId" + "}", localVarApiClient.escapeString(collectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addToCollectionValidateBeforeCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'collectionId' is set + if (collectionId == null) { + throw new ApiException("Missing the required parameter 'collectionId' when calling addToCollection(Async)"); + } + + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling addToCollection(Async)"); + } + + return addToCollectionCall(collectionId, ids, _callback); + + } + + /** + * Adds items to a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addToCollection(UUID collectionId, List ids) throws ApiException { + addToCollectionWithHttpInfo(collectionId, ids); + } + + /** + * Adds items to a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addToCollectionWithHttpInfo(UUID collectionId, List ids) throws ApiException { + okhttp3.Call localVarCall = addToCollectionValidateBeforeCall(collectionId, ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds items to a collection. (asynchronously) + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToCollectionAsync(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addToCollectionValidateBeforeCall(collectionId, ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createCollection + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createCollectionCall(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createCollectionValidateBeforeCall(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + return createCollectionCall(name, ids, parentId, isLocked, _callback); + + } + + /** + * Creates a new collection. + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @return CollectionCreationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public CollectionCreationResult createCollection(String name, List ids, UUID parentId, Boolean isLocked) throws ApiException { + ApiResponse localVarResp = createCollectionWithHttpInfo(name, ids, parentId, isLocked); + return localVarResp.getData(); + } + + /** + * Creates a new collection. + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @return ApiResponse<CollectionCreationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createCollectionWithHttpInfo(String name, List ids, UUID parentId, Boolean isLocked) throws ApiException { + okhttp3.Call localVarCall = createCollectionValidateBeforeCall(name, ids, parentId, isLocked, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a new collection. (asynchronously) + * + * @param name The name of the collection. (optional) + * @param ids Item Ids to add to the collection. (optional) + * @param parentId Optional. Create the collection within a specific folder. (optional) + * @param isLocked Whether or not to lock the new collection. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Collection created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createCollectionAsync(String name, List ids, UUID parentId, Boolean isLocked, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createCollectionValidateBeforeCall(name, ids, parentId, isLocked, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for removeFromCollection + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromCollectionCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Collections/{collectionId}/Items" + .replace("{" + "collectionId" + "}", localVarApiClient.escapeString(collectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeFromCollectionValidateBeforeCall(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'collectionId' is set + if (collectionId == null) { + throw new ApiException("Missing the required parameter 'collectionId' when calling removeFromCollection(Async)"); + } + + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling removeFromCollection(Async)"); + } + + return removeFromCollectionCall(collectionId, ids, _callback); + + } + + /** + * Removes items from a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeFromCollection(UUID collectionId, List ids) throws ApiException { + removeFromCollectionWithHttpInfo(collectionId, ids); + } + + /** + * Removes items from a collection. + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeFromCollectionWithHttpInfo(UUID collectionId, List ids) throws ApiException { + okhttp3.Call localVarCall = removeFromCollectionValidateBeforeCall(collectionId, ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes items from a collection. (asynchronously) + * + * @param collectionId The collection id. (required) + * @param ids Item ids, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed from collection. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromCollectionAsync(UUID collectionId, List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeFromCollectionValidateBeforeCall(collectionId, ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ConfigurationApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ConfigurationApi.java new file mode 100644 index 0000000000000..9845e07679fcd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ConfigurationApi.java @@ -0,0 +1,882 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.MediaEncoderPathDto; +import org.openapitools.client.model.MetadataOptions; +import org.openapitools.client.model.ServerConfiguration; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ConfigurationApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ConfigurationApi() { + this(Configuration.getDefaultApiClient()); + } + + public ConfigurationApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getConfigurationCall(_callback); + + } + + /** + * Gets application configuration. + * + * @return ServerConfiguration + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ServerConfiguration getConfiguration() throws ApiException { + ApiResponse localVarResp = getConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets application configuration. + * + * @return ApiResponse<ServerConfiguration> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets application configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Application configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultMetadataOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultMetadataOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration/MetadataOptions/Default"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultMetadataOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultMetadataOptionsCall(_callback); + + } + + /** + * Gets a default MetadataOptions object. + * + * @return MetadataOptions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public MetadataOptions getDefaultMetadataOptions() throws ApiException { + ApiResponse localVarResp = getDefaultMetadataOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a default MetadataOptions object. + * + * @return ApiResponse<MetadataOptions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultMetadataOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultMetadataOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a default MetadataOptions object. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Metadata options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultMetadataOptionsAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultMetadataOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNamedConfiguration + * @param key Configuration key. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNamedConfigurationCall(String key, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Configuration/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNamedConfigurationValidateBeforeCall(String key, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling getNamedConfiguration(Async)"); + } + + return getNamedConfigurationCall(key, _callback); + + } + + /** + * Gets a named configuration. + * + * @param key Configuration key. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getNamedConfiguration(String key) throws ApiException { + ApiResponse localVarResp = getNamedConfigurationWithHttpInfo(key); + return localVarResp.getData(); + } + + /** + * Gets a named configuration. + * + * @param key Configuration key. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNamedConfigurationWithHttpInfo(String key) throws ApiException { + okhttp3.Call localVarCall = getNamedConfigurationValidateBeforeCall(key, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a named configuration. (asynchronously) + * + * @param key Configuration key. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Configuration returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNamedConfigurationAsync(String key, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNamedConfigurationValidateBeforeCall(key, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateConfiguration + * @param serverConfiguration Configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateConfigurationCall(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = serverConfiguration; + + // create path and map variables + String localVarPath = "/System/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateConfigurationValidateBeforeCall(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverConfiguration' is set + if (serverConfiguration == null) { + throw new ApiException("Missing the required parameter 'serverConfiguration' when calling updateConfiguration(Async)"); + } + + return updateConfigurationCall(serverConfiguration, _callback); + + } + + /** + * Updates application configuration. + * + * @param serverConfiguration Configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateConfiguration(ServerConfiguration serverConfiguration) throws ApiException { + updateConfigurationWithHttpInfo(serverConfiguration); + } + + /** + * Updates application configuration. + * + * @param serverConfiguration Configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateConfigurationWithHttpInfo(ServerConfiguration serverConfiguration) throws ApiException { + okhttp3.Call localVarCall = updateConfigurationValidateBeforeCall(serverConfiguration, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates application configuration. (asynchronously) + * + * @param serverConfiguration Configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateConfigurationAsync(ServerConfiguration serverConfiguration, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateConfigurationValidateBeforeCall(serverConfiguration, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateMediaEncoderPath + * @param mediaEncoderPathDto Media encoder path form body. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media encoder path updated. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call updateMediaEncoderPathCall(MediaEncoderPathDto mediaEncoderPathDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = mediaEncoderPathDto; + + // create path and map variables + String localVarPath = "/System/MediaEncoder/Path"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call updateMediaEncoderPathValidateBeforeCall(MediaEncoderPathDto mediaEncoderPathDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'mediaEncoderPathDto' is set + if (mediaEncoderPathDto == null) { + throw new ApiException("Missing the required parameter 'mediaEncoderPathDto' when calling updateMediaEncoderPath(Async)"); + } + + return updateMediaEncoderPathCall(mediaEncoderPathDto, _callback); + + } + + /** + * Updates the path to the media encoder. + * + * @param mediaEncoderPathDto Media encoder path form body. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media encoder path updated. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public void updateMediaEncoderPath(MediaEncoderPathDto mediaEncoderPathDto) throws ApiException { + updateMediaEncoderPathWithHttpInfo(mediaEncoderPathDto); + } + + /** + * Updates the path to the media encoder. + * + * @param mediaEncoderPathDto Media encoder path form body. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media encoder path updated. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse updateMediaEncoderPathWithHttpInfo(MediaEncoderPathDto mediaEncoderPathDto) throws ApiException { + okhttp3.Call localVarCall = updateMediaEncoderPathValidateBeforeCall(mediaEncoderPathDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates the path to the media encoder. (asynchronously) + * + * @param mediaEncoderPathDto Media encoder path form body. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media encoder path updated. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call updateMediaEncoderPathAsync(MediaEncoderPathDto mediaEncoderPathDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateMediaEncoderPathValidateBeforeCall(mediaEncoderPathDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateNamedConfiguration + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateNamedConfigurationCall(String key, Object body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/System/Configuration/{key}" + .replace("{" + "key" + "}", localVarApiClient.escapeString(key.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateNamedConfigurationValidateBeforeCall(String key, Object body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'key' is set + if (key == null) { + throw new ApiException("Missing the required parameter 'key' when calling updateNamedConfiguration(Async)"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling updateNamedConfiguration(Async)"); + } + + return updateNamedConfigurationCall(key, body, _callback); + + } + + /** + * Updates named configuration. + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateNamedConfiguration(String key, Object body) throws ApiException { + updateNamedConfigurationWithHttpInfo(key, body); + } + + /** + * Updates named configuration. + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateNamedConfigurationWithHttpInfo(String key, Object body) throws ApiException { + okhttp3.Call localVarCall = updateNamedConfigurationValidateBeforeCall(key, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates named configuration. (asynchronously) + * + * @param key Configuration key. (required) + * @param body Configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Named configuration updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateNamedConfigurationAsync(String key, Object body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateNamedConfigurationValidateBeforeCall(key, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DashboardApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DashboardApi.java new file mode 100644 index 0000000000000..18d606728111d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DashboardApi.java @@ -0,0 +1,349 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ConfigurationPageInfo; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DashboardApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DashboardApi() { + this(Configuration.getDefaultApiClient()); + } + + public DashboardApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getConfigurationPages + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationPagesCall(Boolean enableInMainMenu, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/web/ConfigurationPages"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (enableInMainMenu != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableInMainMenu", enableInMainMenu)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConfigurationPagesValidateBeforeCall(Boolean enableInMainMenu, final ApiCallback _callback) throws ApiException { + return getConfigurationPagesCall(enableInMainMenu, _callback); + + } + + /** + * Gets the configuration pages. + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @return List<ConfigurationPageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getConfigurationPages(Boolean enableInMainMenu) throws ApiException { + ApiResponse> localVarResp = getConfigurationPagesWithHttpInfo(enableInMainMenu); + return localVarResp.getData(); + } + + /** + * Gets the configuration pages. + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @return ApiResponse<List<ConfigurationPageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getConfigurationPagesWithHttpInfo(Boolean enableInMainMenu) throws ApiException { + okhttp3.Call localVarCall = getConfigurationPagesValidateBeforeCall(enableInMainMenu, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the configuration pages. (asynchronously) + * + * @param enableInMainMenu Whether to enable in the main menu. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPages returned. -
404 Server still loading. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConfigurationPagesAsync(Boolean enableInMainMenu, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getConfigurationPagesValidateBeforeCall(enableInMainMenu, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDashboardConfigurationPage + * @param name The name of the page. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public okhttp3.Call getDashboardConfigurationPageCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/web/ConfigurationPage"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + final String[] localVarAccepts = { + "text/html", + "application/x-javascript", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDashboardConfigurationPageValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + return getDashboardConfigurationPageCall(name, _callback); + + } + + /** + * Gets a dashboard configuration page. + * + * @param name The name of the page. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public File getDashboardConfigurationPage(String name) throws ApiException { + ApiResponse localVarResp = getDashboardConfigurationPageWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a dashboard configuration page. + * + * @param name The name of the page. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public ApiResponse getDashboardConfigurationPageWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getDashboardConfigurationPageValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a dashboard configuration page. (asynchronously) + * + * @param name The name of the page. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ConfigurationPage returned. -
404 Plugin configuration page not found. -
+ */ + public okhttp3.Call getDashboardConfigurationPageAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDashboardConfigurationPageValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DevicesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DevicesApi.java new file mode 100644 index 0000000000000..f54bdc6224316 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DevicesApi.java @@ -0,0 +1,796 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DeviceInfo; +import org.openapitools.client.model.DeviceInfoQueryResult; +import org.openapitools.client.model.DeviceOptions; +import org.openapitools.client.model.DeviceOptionsDto; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DevicesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DevicesApi() { + this(Configuration.getDefaultApiClient()); + } + + public DevicesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteDevice + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteDeviceCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteDeviceValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteDevice(Async)"); + } + + return deleteDeviceCall(id, _callback); + + } + + /** + * Deletes a device. + * + * @param id Device Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteDevice(String id) throws ApiException { + deleteDeviceWithHttpInfo(id); + } + + /** + * Deletes a device. + * + * @param id Device Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteDeviceWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteDeviceValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device deleted. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteDeviceAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteDeviceValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getDeviceInfo + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceInfoCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDeviceInfoValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getDeviceInfo(Async)"); + } + + return getDeviceInfoCall(id, _callback); + + } + + /** + * Get info for a device. + * + * @param id Device Id. (required) + * @return DeviceInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceInfo getDeviceInfo(String id) throws ApiException { + ApiResponse localVarResp = getDeviceInfoWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Get info for a device. + * + * @param id Device Id. (required) + * @return ApiResponse<DeviceInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDeviceInfoWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = getDeviceInfoValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get info for a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device info retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceInfoAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDeviceInfoValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDeviceOptions + * @param id Device Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceOptionsCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDeviceOptionsValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getDeviceOptions(Async)"); + } + + return getDeviceOptionsCall(id, _callback); + + } + + /** + * Get options for a device. + * + * @param id Device Id. (required) + * @return DeviceOptions + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceOptions getDeviceOptions(String id) throws ApiException { + ApiResponse localVarResp = getDeviceOptionsWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Get options for a device. + * + * @param id Device Id. (required) + * @return ApiResponse<DeviceOptions> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDeviceOptionsWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = getDeviceOptionsValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get options for a device. (asynchronously) + * + * @param id Device Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device options retrieved. -
404 Device not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDeviceOptionsAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDeviceOptionsValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDevices + * @param supportsSync Gets or sets a value indicating whether [supports synchronize]. (optional) + * @param userId Gets or sets the user identifier. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDevicesCall(Boolean supportsSync, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Devices"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (supportsSync != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsSync", supportsSync)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDevicesValidateBeforeCall(Boolean supportsSync, UUID userId, final ApiCallback _callback) throws ApiException { + return getDevicesCall(supportsSync, userId, _callback); + + } + + /** + * Get Devices. + * + * @param supportsSync Gets or sets a value indicating whether [supports synchronize]. (optional) + * @param userId Gets or sets the user identifier. (optional) + * @return DeviceInfoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceInfoQueryResult getDevices(Boolean supportsSync, UUID userId) throws ApiException { + ApiResponse localVarResp = getDevicesWithHttpInfo(supportsSync, userId); + return localVarResp.getData(); + } + + /** + * Get Devices. + * + * @param supportsSync Gets or sets a value indicating whether [supports synchronize]. (optional) + * @param userId Gets or sets the user identifier. (optional) + * @return ApiResponse<DeviceInfoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDevicesWithHttpInfo(Boolean supportsSync, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getDevicesValidateBeforeCall(supportsSync, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Devices. (asynchronously) + * + * @param supportsSync Gets or sets a value indicating whether [supports synchronize]. (optional) + * @param userId Gets or sets the user identifier. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Devices retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDevicesAsync(Boolean supportsSync, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDevicesValidateBeforeCall(supportsSync, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateDeviceOptions + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDeviceOptionsCall(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = deviceOptionsDto; + + // create path and map variables + String localVarPath = "/Devices/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateDeviceOptionsValidateBeforeCall(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateDeviceOptions(Async)"); + } + + // verify the required parameter 'deviceOptionsDto' is set + if (deviceOptionsDto == null) { + throw new ApiException("Missing the required parameter 'deviceOptionsDto' when calling updateDeviceOptions(Async)"); + } + + return updateDeviceOptionsCall(id, deviceOptionsDto, _callback); + + } + + /** + * Update device options. + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateDeviceOptions(String id, DeviceOptionsDto deviceOptionsDto) throws ApiException { + updateDeviceOptionsWithHttpInfo(id, deviceOptionsDto); + } + + /** + * Update device options. + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateDeviceOptionsWithHttpInfo(String id, DeviceOptionsDto deviceOptionsDto) throws ApiException { + okhttp3.Call localVarCall = updateDeviceOptionsValidateBeforeCall(id, deviceOptionsDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update device options. (asynchronously) + * + * @param id Device Id. (required) + * @param deviceOptionsDto Device Options. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device options updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDeviceOptionsAsync(String id, DeviceOptionsDto deviceOptionsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateDeviceOptionsValidateBeforeCall(id, deviceOptionsDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java new file mode 100644 index 0000000000000..f1a6c560d7b2b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DisplayPreferencesApi.java @@ -0,0 +1,407 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DisplayPreferencesDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DisplayPreferencesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DisplayPreferencesApi() { + this(Configuration.getDefaultApiClient()); + } + + public DisplayPreferencesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getDisplayPreferences + * @param displayPreferencesId Display preferences id. (required) + * @param userId User id. (required) + * @param client Client. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDisplayPreferencesCall(String displayPreferencesId, UUID userId, String client, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/DisplayPreferences/{displayPreferencesId}" + .replace("{" + "displayPreferencesId" + "}", localVarApiClient.escapeString(displayPreferencesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (client != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("client", client)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDisplayPreferencesValidateBeforeCall(String displayPreferencesId, UUID userId, String client, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'displayPreferencesId' is set + if (displayPreferencesId == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesId' when calling getDisplayPreferences(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getDisplayPreferences(Async)"); + } + + // verify the required parameter 'client' is set + if (client == null) { + throw new ApiException("Missing the required parameter 'client' when calling getDisplayPreferences(Async)"); + } + + return getDisplayPreferencesCall(displayPreferencesId, userId, client, _callback); + + } + + /** + * Get Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User id. (required) + * @param client Client. (required) + * @return DisplayPreferencesDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public DisplayPreferencesDto getDisplayPreferences(String displayPreferencesId, UUID userId, String client) throws ApiException { + ApiResponse localVarResp = getDisplayPreferencesWithHttpInfo(displayPreferencesId, userId, client); + return localVarResp.getData(); + } + + /** + * Get Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User id. (required) + * @param client Client. (required) + * @return ApiResponse<DisplayPreferencesDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDisplayPreferencesWithHttpInfo(String displayPreferencesId, UUID userId, String client) throws ApiException { + okhttp3.Call localVarCall = getDisplayPreferencesValidateBeforeCall(displayPreferencesId, userId, client, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Display Preferences. (asynchronously) + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User id. (required) + * @param client Client. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Display preferences retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDisplayPreferencesAsync(String displayPreferencesId, UUID userId, String client, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDisplayPreferencesValidateBeforeCall(displayPreferencesId, userId, client, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateDisplayPreferences + * @param displayPreferencesId Display preferences id. (required) + * @param userId User Id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDisplayPreferencesCall(String displayPreferencesId, UUID userId, String client, DisplayPreferencesDto displayPreferencesDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = displayPreferencesDto; + + // create path and map variables + String localVarPath = "/DisplayPreferences/{displayPreferencesId}" + .replace("{" + "displayPreferencesId" + "}", localVarApiClient.escapeString(displayPreferencesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (client != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("client", client)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateDisplayPreferencesValidateBeforeCall(String displayPreferencesId, UUID userId, String client, DisplayPreferencesDto displayPreferencesDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'displayPreferencesId' is set + if (displayPreferencesId == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesId' when calling updateDisplayPreferences(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateDisplayPreferences(Async)"); + } + + // verify the required parameter 'client' is set + if (client == null) { + throw new ApiException("Missing the required parameter 'client' when calling updateDisplayPreferences(Async)"); + } + + // verify the required parameter 'displayPreferencesDto' is set + if (displayPreferencesDto == null) { + throw new ApiException("Missing the required parameter 'displayPreferencesDto' when calling updateDisplayPreferences(Async)"); + } + + return updateDisplayPreferencesCall(displayPreferencesId, userId, client, displayPreferencesDto, _callback); + + } + + /** + * Update Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User Id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateDisplayPreferences(String displayPreferencesId, UUID userId, String client, DisplayPreferencesDto displayPreferencesDto) throws ApiException { + updateDisplayPreferencesWithHttpInfo(displayPreferencesId, userId, client, displayPreferencesDto); + } + + /** + * Update Display Preferences. + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User Id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateDisplayPreferencesWithHttpInfo(String displayPreferencesId, UUID userId, String client, DisplayPreferencesDto displayPreferencesDto) throws ApiException { + okhttp3.Call localVarCall = updateDisplayPreferencesValidateBeforeCall(displayPreferencesId, userId, client, displayPreferencesDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update Display Preferences. (asynchronously) + * + * @param displayPreferencesId Display preferences id. (required) + * @param userId User Id. (required) + * @param client Client. (required) + * @param displayPreferencesDto New Display Preferences object. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Display preferences updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateDisplayPreferencesAsync(String displayPreferencesId, UUID userId, String client, DisplayPreferencesDto displayPreferencesDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateDisplayPreferencesValidateBeforeCall(displayPreferencesId, userId, client, displayPreferencesDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaApi.java new file mode 100644 index 0000000000000..d75621c2ef903 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaApi.java @@ -0,0 +1,880 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.DeviceProfileInfo; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DlnaApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DlnaApi() { + this(Configuration.getDefaultApiClient()); + } + + public DlnaApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createProfile + * @param deviceProfile Device profile. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createProfileCall(DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = deviceProfile; + + // create path and map variables + String localVarPath = "/Dlna/Profiles"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createProfileValidateBeforeCall(DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + return createProfileCall(deviceProfile, _callback); + + } + + /** + * Creates a profile. + * + * @param deviceProfile Device profile. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createProfile(DeviceProfile deviceProfile) throws ApiException { + createProfileWithHttpInfo(deviceProfile); + } + + /** + * Creates a profile. + * + * @param deviceProfile Device profile. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createProfileWithHttpInfo(DeviceProfile deviceProfile) throws ApiException { + okhttp3.Call localVarCall = createProfileValidateBeforeCall(deviceProfile, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Creates a profile. (asynchronously) + * + * @param deviceProfile Device profile. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createProfileAsync(DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createProfileValidateBeforeCall(deviceProfile, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteProfile + * @param profileId Profile id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile deleted. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteProfileCall(String profileId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/Profiles/{profileId}" + .replace("{" + "profileId" + "}", localVarApiClient.escapeString(profileId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteProfileValidateBeforeCall(String profileId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'profileId' is set + if (profileId == null) { + throw new ApiException("Missing the required parameter 'profileId' when calling deleteProfile(Async)"); + } + + return deleteProfileCall(profileId, _callback); + + } + + /** + * Deletes a profile. + * + * @param profileId Profile id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile deleted. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteProfile(String profileId) throws ApiException { + deleteProfileWithHttpInfo(profileId); + } + + /** + * Deletes a profile. + * + * @param profileId Profile id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile deleted. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteProfileWithHttpInfo(String profileId) throws ApiException { + okhttp3.Call localVarCall = deleteProfileValidateBeforeCall(profileId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a profile. (asynchronously) + * + * @param profileId Profile id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile deleted. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteProfileAsync(String profileId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteProfileValidateBeforeCall(profileId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getDefaultProfile + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default device profile returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultProfileCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/Profiles/Default"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultProfileValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultProfileCall(_callback); + + } + + /** + * Gets the default profile. + * + * @return DeviceProfile + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default device profile returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceProfile getDefaultProfile() throws ApiException { + ApiResponse localVarResp = getDefaultProfileWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the default profile. + * + * @return ApiResponse<DeviceProfile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default device profile returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultProfileWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultProfileValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the default profile. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default device profile returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultProfileAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultProfileValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getProfile + * @param profileId Profile Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile returned. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProfileCall(String profileId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/Profiles/{profileId}" + .replace("{" + "profileId" + "}", localVarApiClient.escapeString(profileId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProfileValidateBeforeCall(String profileId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'profileId' is set + if (profileId == null) { + throw new ApiException("Missing the required parameter 'profileId' when calling getProfile(Async)"); + } + + return getProfileCall(profileId, _callback); + + } + + /** + * Gets a single profile. + * + * @param profileId Profile Id. (required) + * @return DeviceProfile + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile returned. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public DeviceProfile getProfile(String profileId) throws ApiException { + ApiResponse localVarResp = getProfileWithHttpInfo(profileId); + return localVarResp.getData(); + } + + /** + * Gets a single profile. + * + * @param profileId Profile Id. (required) + * @return ApiResponse<DeviceProfile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile returned. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getProfileWithHttpInfo(String profileId) throws ApiException { + okhttp3.Call localVarCall = getProfileValidateBeforeCall(profileId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a single profile. (asynchronously) + * + * @param profileId Profile Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile returned. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProfileAsync(String profileId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getProfileValidateBeforeCall(profileId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getProfileInfos + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile infos returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProfileInfosCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/ProfileInfos"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProfileInfosValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getProfileInfosCall(_callback); + + } + + /** + * Get profile infos. + * + * @return List<DeviceProfileInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile infos returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getProfileInfos() throws ApiException { + ApiResponse> localVarResp = getProfileInfosWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get profile infos. + * + * @return ApiResponse<List<DeviceProfileInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile infos returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getProfileInfosWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getProfileInfosValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get profile infos. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Device profile infos returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProfileInfosAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getProfileInfosValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateProfile + * @param profileId Profile id. (required) + * @param deviceProfile Device profile. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile updated. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateProfileCall(String profileId, DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = deviceProfile; + + // create path and map variables + String localVarPath = "/Dlna/Profiles/{profileId}" + .replace("{" + "profileId" + "}", localVarApiClient.escapeString(profileId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateProfileValidateBeforeCall(String profileId, DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'profileId' is set + if (profileId == null) { + throw new ApiException("Missing the required parameter 'profileId' when calling updateProfile(Async)"); + } + + return updateProfileCall(profileId, deviceProfile, _callback); + + } + + /** + * Updates a profile. + * + * @param profileId Profile id. (required) + * @param deviceProfile Device profile. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile updated. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateProfile(String profileId, DeviceProfile deviceProfile) throws ApiException { + updateProfileWithHttpInfo(profileId, deviceProfile); + } + + /** + * Updates a profile. + * + * @param profileId Profile id. (required) + * @param deviceProfile Device profile. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile updated. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateProfileWithHttpInfo(String profileId, DeviceProfile deviceProfile) throws ApiException { + okhttp3.Call localVarCall = updateProfileValidateBeforeCall(profileId, deviceProfile, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a profile. (asynchronously) + * + * @param profileId Profile id. (required) + * @param deviceProfile Device profile. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Device profile updated. -
404 Device profile not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateProfileAsync(String profileId, DeviceProfile deviceProfile, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateProfileValidateBeforeCall(profileId, deviceProfile, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaServerApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaServerApi.java new file mode 100644 index 0000000000000..514b2e4c5c656 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DlnaServerApi.java @@ -0,0 +1,2324 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DlnaServerApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DlnaServerApi() { + this(Configuration.getDefaultApiClient()); + } + + public DlnaServerApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getConnectionManager + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManagerCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ConnectionManager" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConnectionManagerValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getConnectionManager(Async)"); + } + + return getConnectionManagerCall(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getConnectionManager(String serverId) throws ApiException { + ApiResponse localVarResp = getConnectionManagerWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getConnectionManagerWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getConnectionManagerValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManagerAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionManagerValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionManager2 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManager2Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ConnectionManager/ConnectionManager" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConnectionManager2ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getConnectionManager2(Async)"); + } + + return getConnectionManager2Call(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getConnectionManager2(String serverId) throws ApiException { + ApiResponse localVarResp = getConnectionManager2WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getConnectionManager2WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getConnectionManager2ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManager2Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionManager2ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionManager3 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManager3Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConnectionManager3ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getConnectionManager3(Async)"); + } + + return getConnectionManager3Call(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getConnectionManager3(String serverId) throws ApiException { + ApiResponse localVarResp = getConnectionManager3WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getConnectionManager3WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getConnectionManager3ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getConnectionManager3Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionManager3ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getContentDirectory + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectoryCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ContentDirectory" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getContentDirectoryValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getContentDirectory(Async)"); + } + + return getContentDirectoryCall(serverId, _callback); + + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getContentDirectory(String serverId) throws ApiException { + ApiResponse localVarResp = getContentDirectoryWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getContentDirectoryWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getContentDirectoryValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna content directory xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectoryAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getContentDirectoryValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getContentDirectory2 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectory2Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ContentDirectory/ContentDirectory" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getContentDirectory2ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getContentDirectory2(Async)"); + } + + return getContentDirectory2Call(serverId, _callback); + + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getContentDirectory2(String serverId) throws ApiException { + ApiResponse localVarResp = getContentDirectory2WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getContentDirectory2WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getContentDirectory2ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna content directory xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectory2Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getContentDirectory2ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getContentDirectory3 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectory3Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getContentDirectory3ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getContentDirectory3(Async)"); + } + + return getContentDirectory3Call(serverId, _callback); + + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getContentDirectory3(String serverId) throws ApiException { + ApiResponse localVarResp = getContentDirectory3WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna content directory xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getContentDirectory3WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getContentDirectory3ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna content directory xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna content directory returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getContentDirectory3Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getContentDirectory3ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDescriptionXml + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDescriptionXmlCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/description" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDescriptionXmlValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getDescriptionXml(Async)"); + } + + return getDescriptionXmlCall(serverId, _callback); + + } + + /** + * Get Description Xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getDescriptionXml(String serverId) throws ApiException { + ApiResponse localVarResp = getDescriptionXmlWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Get Description Xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDescriptionXmlWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getDescriptionXmlValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Description Xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDescriptionXmlAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDescriptionXmlValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDescriptionXml2 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDescriptionXml2Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/description.xml" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDescriptionXml2ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getDescriptionXml2(Async)"); + } + + return getDescriptionXml2Call(serverId, _callback); + + } + + /** + * Get Description Xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getDescriptionXml2(String serverId) throws ApiException { + ApiResponse localVarResp = getDescriptionXml2WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Get Description Xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDescriptionXml2WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getDescriptionXml2ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Description Xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Description xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDescriptionXml2Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDescriptionXml2ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getIcon + * @param fileName The icon filename. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIconCall(String fileName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/icons/{fileName}" + .replace("{" + "fileName" + "}", localVarApiClient.escapeString(fileName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getIconValidateBeforeCall(String fileName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'fileName' is set + if (fileName == null) { + throw new ApiException("Missing the required parameter 'fileName' when calling getIcon(Async)"); + } + + return getIconCall(fileName, _callback); + + } + + /** + * Gets a server icon. + * + * @param fileName The icon filename. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getIcon(String fileName) throws ApiException { + ApiResponse localVarResp = getIconWithHttpInfo(fileName); + return localVarResp.getData(); + } + + /** + * Gets a server icon. + * + * @param fileName The icon filename. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getIconWithHttpInfo(String fileName) throws ApiException { + okhttp3.Call localVarCall = getIconValidateBeforeCall(fileName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a server icon. (asynchronously) + * + * @param fileName The icon filename. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIconAsync(String fileName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getIconValidateBeforeCall(fileName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getIconId + * @param serverId Server UUID. (required) + * @param fileName The icon filename. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIconIdCall(String serverId, String fileName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/icons/{fileName}" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())) + .replace("{" + "fileName" + "}", localVarApiClient.escapeString(fileName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getIconIdValidateBeforeCall(String serverId, String fileName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getIconId(Async)"); + } + + // verify the required parameter 'fileName' is set + if (fileName == null) { + throw new ApiException("Missing the required parameter 'fileName' when calling getIconId(Async)"); + } + + return getIconIdCall(serverId, fileName, _callback); + + } + + /** + * Gets a server icon. + * + * @param serverId Server UUID. (required) + * @param fileName The icon filename. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getIconId(String serverId, String fileName) throws ApiException { + ApiResponse localVarResp = getIconIdWithHttpInfo(serverId, fileName); + return localVarResp.getData(); + } + + /** + * Gets a server icon. + * + * @param serverId Server UUID. (required) + * @param fileName The icon filename. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getIconIdWithHttpInfo(String serverId, String fileName) throws ApiException { + okhttp3.Call localVarCall = getIconIdValidateBeforeCall(serverId, fileName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a server icon. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param fileName The icon filename. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
404 Not Found. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIconIdAsync(String serverId, String fileName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getIconIdValidateBeforeCall(serverId, fileName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaReceiverRegistrar + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrarCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/MediaReceiverRegistrar" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaReceiverRegistrarValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getMediaReceiverRegistrar(Async)"); + } + + return getMediaReceiverRegistrarCall(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMediaReceiverRegistrar(String serverId) throws ApiException { + ApiResponse localVarResp = getMediaReceiverRegistrarWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMediaReceiverRegistrarWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getMediaReceiverRegistrarValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrarAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaReceiverRegistrarValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaReceiverRegistrar2 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrar2Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaReceiverRegistrar2ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getMediaReceiverRegistrar2(Async)"); + } + + return getMediaReceiverRegistrar2Call(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMediaReceiverRegistrar2(String serverId) throws ApiException { + ApiResponse localVarResp = getMediaReceiverRegistrar2WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMediaReceiverRegistrar2WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getMediaReceiverRegistrar2ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrar2Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaReceiverRegistrar2ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaReceiverRegistrar3 + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrar3Call(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaReceiverRegistrar3ValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling getMediaReceiverRegistrar3(Async)"); + } + + return getMediaReceiverRegistrar3Call(serverId, _callback); + + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMediaReceiverRegistrar3(String serverId) throws ApiException { + ApiResponse localVarResp = getMediaReceiverRegistrar3WithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Gets Dlna media receiver registrar xml. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMediaReceiverRegistrar3WithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = getMediaReceiverRegistrar3ValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets Dlna media receiver registrar xml. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Dlna media receiver registrar xml returned. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaReceiverRegistrar3Async(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaReceiverRegistrar3ValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for processConnectionManagerControlRequest + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processConnectionManagerControlRequestCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ConnectionManager/Control" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call processConnectionManagerControlRequestValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling processConnectionManagerControlRequest(Async)"); + } + + return processConnectionManagerControlRequestCall(serverId, _callback); + + } + + /** + * Process a connection manager control request. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File processConnectionManagerControlRequest(String serverId) throws ApiException { + ApiResponse localVarResp = processConnectionManagerControlRequestWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Process a connection manager control request. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse processConnectionManagerControlRequestWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = processConnectionManagerControlRequestValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Process a connection manager control request. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processConnectionManagerControlRequestAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = processConnectionManagerControlRequestValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for processContentDirectoryControlRequest + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processContentDirectoryControlRequestCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/ContentDirectory/Control" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call processContentDirectoryControlRequestValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling processContentDirectoryControlRequest(Async)"); + } + + return processContentDirectoryControlRequestCall(serverId, _callback); + + } + + /** + * Process a content directory control request. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File processContentDirectoryControlRequest(String serverId) throws ApiException { + ApiResponse localVarResp = processContentDirectoryControlRequestWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Process a content directory control request. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse processContentDirectoryControlRequestWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = processContentDirectoryControlRequestValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Process a content directory control request. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processContentDirectoryControlRequestAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = processContentDirectoryControlRequestValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for processMediaReceiverRegistrarControlRequest + * @param serverId Server UUID. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processMediaReceiverRegistrarControlRequestCall(String serverId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Dlna/{serverId}/MediaReceiverRegistrar/Control" + .replace("{" + "serverId" + "}", localVarApiClient.escapeString(serverId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/xml" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call processMediaReceiverRegistrarControlRequestValidateBeforeCall(String serverId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serverId' is set + if (serverId == null) { + throw new ApiException("Missing the required parameter 'serverId' when calling processMediaReceiverRegistrarControlRequest(Async)"); + } + + return processMediaReceiverRegistrarControlRequestCall(serverId, _callback); + + } + + /** + * Process a media receiver registrar control request. + * + * @param serverId Server UUID. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public File processMediaReceiverRegistrarControlRequest(String serverId) throws ApiException { + ApiResponse localVarResp = processMediaReceiverRegistrarControlRequestWithHttpInfo(serverId); + return localVarResp.getData(); + } + + /** + * Process a media receiver registrar control request. + * + * @param serverId Server UUID. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse processMediaReceiverRegistrarControlRequestWithHttpInfo(String serverId) throws ApiException { + okhttp3.Call localVarCall = processMediaReceiverRegistrarControlRequestValidateBeforeCall(serverId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Process a media receiver registrar control request. (asynchronously) + * + * @param serverId Server UUID. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Request processed. -
503 DLNA is disabled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call processMediaReceiverRegistrarControlRequestAsync(String serverId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = processMediaReceiverRegistrarControlRequestValidateBeforeCall(serverId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DynamicHlsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DynamicHlsApi.java new file mode 100644 index 0000000000000..82d3165de4b5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/DynamicHlsApi.java @@ -0,0 +1,4969 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DynamicHlsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DynamicHlsApi() { + this(Configuration.getDefaultApiClient()); + } + + public DynamicHlsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getHlsAudioSegment + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsAudioSegmentCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (runtimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("runtimeTicks", runtimeTicks)); + } + + if (actualSegmentLengthTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("actualSegmentLengthTicks", actualSegmentLengthTicks)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentValidateBeforeCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'runtimeTicks' is set + if (runtimeTicks == null) { + throw new ApiException("Missing the required parameter 'runtimeTicks' when calling getHlsAudioSegment(Async)"); + } + + // verify the required parameter 'actualSegmentLengthTicks' is set + if (actualSegmentLengthTicks == null) { + throw new ApiException("Missing the required parameter 'actualSegmentLengthTicks' when calling getHlsAudioSegment(Async)"); + } + + return getHlsAudioSegmentCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsAudioSegment(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentWithHttpInfo(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsAudioSegmentWithHttpInfo(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsAudioSegmentAsync(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsVideoSegment + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsVideoSegmentCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (runtimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("runtimeTicks", runtimeTicks)); + } + + if (actualSegmentLengthTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("actualSegmentLengthTicks", actualSegmentLengthTicks)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsVideoSegmentValidateBeforeCall(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'runtimeTicks' is set + if (runtimeTicks == null) { + throw new ApiException("Missing the required parameter 'runtimeTicks' when calling getHlsVideoSegment(Async)"); + } + + // verify the required parameter 'actualSegmentLengthTicks' is set + if (actualSegmentLengthTicks == null) { + throw new ApiException("Missing the required parameter 'actualSegmentLengthTicks' when calling getHlsVideoSegment(Async)"); + } + + return getHlsVideoSegmentCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsVideoSegment(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getHlsVideoSegmentWithHttpInfo(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsVideoSegmentWithHttpInfo(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getHlsVideoSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param runtimeTicks The position of the requested segment in ticks. (required) + * @param actualSegmentLengthTicks The length of the requested segment in ticks. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The desired segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsVideoSegmentAsync(UUID itemId, String playlistId, Integer segmentId, String container, Long runtimeTicks, Long actualSegmentLengthTicks, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsVideoSegmentValidateBeforeCall(itemId, playlistId, segmentId, container, runtimeTicks, actualSegmentLengthTicks, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveHlsStream + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveHlsStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/live.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (enableSubtitlesInManifest != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableSubtitlesInManifest", enableSubtitlesInManifest)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveHlsStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getLiveHlsStream(Async)"); + } + + return getLiveHlsStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, _callback); + + } + + /** + * Gets a hls live stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getLiveHlsStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest) throws ApiException { + ApiResponse localVarResp = getLiveHlsStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest); + return localVarResp.getData(); + } + + /** + * Gets a hls live stream. + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveHlsStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest) throws ApiException { + okhttp3.Call localVarCall = getLiveHlsStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls live stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The audio container. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment lenght. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param maxWidth Optional. The max width. (optional) + * @param maxHeight Optional. The max height. (optional) + * @param enableSubtitlesInManifest Optional. Whether to enable subtitles in the manifest. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls live stream retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveHlsStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Integer maxWidth, Integer maxHeight, Boolean enableSubtitlesInManifest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveHlsStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, maxWidth, maxHeight, enableSubtitlesInManifest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMasterHlsAudioPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsAudioPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMasterHlsAudioPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMasterHlsAudioPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getMasterHlsAudioPlaylist(Async)"); + } + + return getMasterHlsAudioPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMasterHlsAudioPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + ApiResponse localVarResp = getMasterHlsAudioPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + return localVarResp.getData(); + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMasterHlsAudioPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + okhttp3.Call localVarCall = getMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsAudioPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMasterHlsVideoPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsVideoPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMasterHlsVideoPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMasterHlsVideoPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getMasterHlsVideoPlaylist(Async)"); + } + + return getMasterHlsVideoPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getMasterHlsVideoPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + ApiResponse localVarResp = getMasterHlsVideoPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + return localVarResp.getData(); + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMasterHlsVideoPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + okhttp3.Call localVarCall = getMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMasterHlsVideoPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVariantHlsAudioPlaylist + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsAudioPlaylistCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/main.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVariantHlsAudioPlaylistValidateBeforeCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVariantHlsAudioPlaylist(Async)"); + } + + return getVariantHlsAudioPlaylistCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets an audio stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getVariantHlsAudioPlaylist(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getVariantHlsAudioPlaylistWithHttpInfo(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets an audio stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getVariantHlsAudioPlaylistWithHttpInfo(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getVariantHlsAudioPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsAudioPlaylistAsync(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVariantHlsAudioPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVariantHlsVideoPlaylist + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsVideoPlaylistCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/main.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVariantHlsVideoPlaylistValidateBeforeCall(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVariantHlsVideoPlaylist(Async)"); + } + + return getVariantHlsVideoPlaylistCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getVariantHlsVideoPlaylist(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getVariantHlsVideoPlaylistWithHttpInfo(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream using HTTP live streaming. + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getVariantHlsVideoPlaylistWithHttpInfo(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getVariantHlsVideoPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream using HTTP live streaming. (asynchronously) + * + * @param itemId The item id. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVariantHlsVideoPlaylistAsync(UUID itemId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVariantHlsVideoPlaylistValidateBeforeCall(itemId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMasterHlsAudioPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsAudioPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMasterHlsAudioPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headMasterHlsAudioPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling headMasterHlsAudioPlaylist(Async)"); + } + + return headMasterHlsAudioPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headMasterHlsAudioPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + ApiResponse localVarResp = headMasterHlsAudioPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + return localVarResp.getData(); + } + + /** + * Gets an audio hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headMasterHlsAudioPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + okhttp3.Call localVarCall = headMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsAudioPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer maxStreamingBitrate, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMasterHlsAudioPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, maxStreamingBitrate, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMasterHlsVideoPlaylist + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsVideoPlaylistCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/master.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + if (enableAdaptiveBitrateStreaming != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAdaptiveBitrateStreaming", enableAdaptiveBitrateStreaming)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMasterHlsVideoPlaylistValidateBeforeCall(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headMasterHlsVideoPlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling headMasterHlsVideoPlaylist(Async)"); + } + + return headMasterHlsVideoPlaylistCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headMasterHlsVideoPlaylist(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + ApiResponse localVarResp = headMasterHlsVideoPlaylistWithHttpInfo(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming); + return localVarResp.getData(); + } + + /** + * Gets a video hls playlist stream. + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headMasterHlsVideoPlaylistWithHttpInfo(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming) throws ApiException { + okhttp3.Call localVarCall = headMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video hls playlist stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param mediaSourceId The media version id, if playing an alternate version. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param enableAdaptiveBitrateStreaming Enable adaptive bitrate streaming. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headMasterHlsVideoPlaylistAsync(UUID itemId, String mediaSourceId, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, Boolean enableAdaptiveBitrateStreaming, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMasterHlsVideoPlaylistValidateBeforeCall(itemId, mediaSourceId, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, enableAdaptiveBitrateStreaming, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/EnvironmentApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/EnvironmentApi.java new file mode 100644 index 0000000000000..f631e6e8b2084 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/EnvironmentApi.java @@ -0,0 +1,903 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.DefaultDirectoryBrowserInfoDto; +import org.openapitools.client.model.FileSystemEntryInfo; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.ValidatePathDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class EnvironmentApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public EnvironmentApi() { + this(Configuration.getDefaultApiClient()); + } + + public EnvironmentApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getDefaultDirectoryBrowser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultDirectoryBrowserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/DefaultDirectoryBrowser"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultDirectoryBrowserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultDirectoryBrowserCall(_callback); + + } + + /** + * Get Default directory browser. + * + * @return DefaultDirectoryBrowserInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public DefaultDirectoryBrowserInfoDto getDefaultDirectoryBrowser() throws ApiException { + ApiResponse localVarResp = getDefaultDirectoryBrowserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get Default directory browser. + * + * @return ApiResponse<DefaultDirectoryBrowserInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultDirectoryBrowserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultDirectoryBrowserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Default directory browser. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default directory browser returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultDirectoryBrowserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultDirectoryBrowserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDirectoryContents + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDirectoryContentsCall(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/DirectoryContents"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + if (includeFiles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeFiles", includeFiles)); + } + + if (includeDirectories != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeDirectories", includeDirectories)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDirectoryContentsValidateBeforeCall(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'path' is set + if (path == null) { + throw new ApiException("Missing the required parameter 'path' when calling getDirectoryContents(Async)"); + } + + return getDirectoryContentsCall(path, includeFiles, includeDirectories, _callback); + + } + + /** + * Gets the contents of a given directory in the file system. + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getDirectoryContents(String path, Boolean includeFiles, Boolean includeDirectories) throws ApiException { + ApiResponse> localVarResp = getDirectoryContentsWithHttpInfo(path, includeFiles, includeDirectories); + return localVarResp.getData(); + } + + /** + * Gets the contents of a given directory in the file system. + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getDirectoryContentsWithHttpInfo(String path, Boolean includeFiles, Boolean includeDirectories) throws ApiException { + okhttp3.Call localVarCall = getDirectoryContentsValidateBeforeCall(path, includeFiles, includeDirectories, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the contents of a given directory in the file system. (asynchronously) + * + * @param path The path. (required) + * @param includeFiles An optional filter to include or exclude files from the results. true/false. (optional, default to false) + * @param includeDirectories An optional filter to include or exclude folders from the results. true/false. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Directory contents returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDirectoryContentsAsync(String path, Boolean includeFiles, Boolean includeDirectories, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getDirectoryContentsValidateBeforeCall(path, includeFiles, includeDirectories, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDrives + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDrivesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/Drives"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDrivesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDrivesCall(_callback); + + } + + /** + * Gets available drives from the server's file system. + * + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getDrives() throws ApiException { + ApiResponse> localVarResp = getDrivesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available drives from the server's file system. + * + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getDrivesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDrivesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available drives from the server's file system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of entries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDrivesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getDrivesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNetworkShares + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getNetworkSharesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/NetworkShares"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getNetworkSharesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getNetworkSharesCall(_callback); + + } + + /** + * Gets network paths. + * + * @return List<FileSystemEntryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public List getNetworkShares() throws ApiException { + ApiResponse> localVarResp = getNetworkSharesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets network paths. + * + * @return ApiResponse<List<FileSystemEntryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse> getNetworkSharesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getNetworkSharesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets network paths. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Empty array returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getNetworkSharesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getNetworkSharesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getParentPath + * @param path The path. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentPathCall(String path, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Environment/ParentPath"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getParentPathValidateBeforeCall(String path, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'path' is set + if (path == null) { + throw new ApiException("Missing the required parameter 'path' when calling getParentPath(Async)"); + } + + return getParentPathCall(path, _callback); + + } + + /** + * Gets the parent path of a given path. + * + * @param path The path. (required) + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public String getParentPath(String path) throws ApiException { + ApiResponse localVarResp = getParentPathWithHttpInfo(path); + return localVarResp.getData(); + } + + /** + * Gets the parent path of a given path. + * + * @param path The path. (required) + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getParentPathWithHttpInfo(String path) throws ApiException { + okhttp3.Call localVarCall = getParentPathValidateBeforeCall(path, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the parent path of a given path. (asynchronously) + * + * @param path The path. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentPathAsync(String path, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getParentPathValidateBeforeCall(path, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for validatePath + * @param validatePathDto Validate request object. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call validatePathCall(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = validatePathDto; + + // create path and map variables + String localVarPath = "/Environment/ValidatePath"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call validatePathValidateBeforeCall(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'validatePathDto' is set + if (validatePathDto == null) { + throw new ApiException("Missing the required parameter 'validatePathDto' when calling validatePath(Async)"); + } + + return validatePathCall(validatePathDto, _callback); + + } + + /** + * Validates path. + * + * @param validatePathDto Validate request object. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void validatePath(ValidatePathDto validatePathDto) throws ApiException { + validatePathWithHttpInfo(validatePathDto); + } + + /** + * Validates path. + * + * @param validatePathDto Validate request object. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse validatePathWithHttpInfo(ValidatePathDto validatePathDto) throws ApiException { + okhttp3.Call localVarCall = validatePathValidateBeforeCall(validatePathDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Validates path. (asynchronously) + * + * @param validatePathDto Validate request object. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Path validated. -
404 Path not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call validatePathAsync(ValidatePathDto validatePathDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = validatePathValidateBeforeCall(validatePathDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/FilterApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/FilterApi.java new file mode 100644 index 0000000000000..5b63f1643a5aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/FilterApi.java @@ -0,0 +1,444 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.QueryFilters; +import org.openapitools.client.model.QueryFiltersLegacy; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FilterApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public FilterApi() { + this(Configuration.getDefaultApiClient()); + } + + public FilterApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getQueryFilters + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersCall(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Filters2"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQueryFiltersValidateBeforeCall(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + return getQueryFiltersCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, _callback); + + } + + /** + * Gets query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @return QueryFilters + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public QueryFilters getQueryFilters(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive) throws ApiException { + ApiResponse localVarResp = getQueryFiltersWithHttpInfo(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive); + return localVarResp.getData(); + } + + /** + * Gets query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @return ApiResponse<QueryFilters> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getQueryFiltersWithHttpInfo(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive) throws ApiException { + okhttp3.Call localVarCall = getQueryFiltersValidateBeforeCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets query filters. (asynchronously) + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isAiring Optional. Is item airing. (optional) + * @param isMovie Optional. Is item movie. (optional) + * @param isSports Optional. Is item sports. (optional) + * @param isKids Optional. Is item kids. (optional) + * @param isNews Optional. Is item news. (optional) + * @param isSeries Optional. Is item series. (optional) + * @param recursive Optional. Search recursive. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersAsync(UUID userId, UUID parentId, List includeItemTypes, Boolean isAiring, Boolean isMovie, Boolean isSports, Boolean isKids, Boolean isNews, Boolean isSeries, Boolean recursive, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQueryFiltersValidateBeforeCall(userId, parentId, includeItemTypes, isAiring, isMovie, isSports, isKids, isNews, isSeries, recursive, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getQueryFiltersLegacy + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersLegacyCall(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Filters"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getQueryFiltersLegacyValidateBeforeCall(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + return getQueryFiltersLegacyCall(userId, parentId, includeItemTypes, mediaTypes, _callback); + + } + + /** + * Gets legacy query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @return QueryFiltersLegacy + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public QueryFiltersLegacy getQueryFiltersLegacy(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes) throws ApiException { + ApiResponse localVarResp = getQueryFiltersLegacyWithHttpInfo(userId, parentId, includeItemTypes, mediaTypes); + return localVarResp.getData(); + } + + /** + * Gets legacy query filters. + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @return ApiResponse<QueryFiltersLegacy> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getQueryFiltersLegacyWithHttpInfo(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes) throws ApiException { + okhttp3.Call localVarCall = getQueryFiltersLegacyValidateBeforeCall(userId, parentId, includeItemTypes, mediaTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets legacy query filters. (asynchronously) + * + * @param userId Optional. User id. (optional) + * @param parentId Optional. Parent id. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Legacy filters retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getQueryFiltersLegacyAsync(UUID userId, UUID parentId, List includeItemTypes, List mediaTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getQueryFiltersLegacyValidateBeforeCall(userId, parentId, includeItemTypes, mediaTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/GenresApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/GenresApi.java new file mode 100644 index 0000000000000..dacca0bb2c69a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/GenresApi.java @@ -0,0 +1,497 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GenresApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public GenresApi() { + this(Configuration.getDefaultApiClient()); + } + + public GenresApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getGenre + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenreCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{genreName}" + .replace("{" + "genreName" + "}", localVarApiClient.escapeString(genreName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreValidateBeforeCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'genreName' is set + if (genreName == null) { + throw new ApiException("Missing the required parameter 'genreName' when calling getGenre(Async)"); + } + + return getGenreCall(genreName, userId, _callback); + + } + + /** + * Gets a genre, by name. + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getGenre(String genreName, UUID userId) throws ApiException { + ApiResponse localVarResp = getGenreWithHttpInfo(genreName, userId); + return localVarResp.getData(); + } + + /** + * Gets a genre, by name. + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGenreWithHttpInfo(String genreName, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getGenreValidateBeforeCall(genreName, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a genre, by name. (asynchronously) + * + * @param genreName The genre name. (required) + * @param userId The user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenreAsync(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreValidateBeforeCall(genreName, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenres + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenresCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenresValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getGenresCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getGenres(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getGenresWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGenresWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all genres from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Genres returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGenresAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/HlsSegmentApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/HlsSegmentApi.java new file mode 100644 index 0000000000000..e7a878a788488 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/HlsSegmentApi.java @@ -0,0 +1,805 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HlsSegmentApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public HlsSegmentApi() { + this(Configuration.getDefaultApiClient()); + } + + public HlsSegmentApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getHlsAudioSegmentLegacyAac + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyAacCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls/{segmentId}/stream.aac" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentLegacyAacValidateBeforeCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegmentLegacyAac(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegmentLegacyAac(Async)"); + } + + return getHlsAudioSegmentLegacyAacCall(itemId, segmentId, _callback); + + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public File getHlsAudioSegmentLegacyAac(String itemId, String segmentId) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentLegacyAacWithHttpInfo(itemId, segmentId); + return localVarResp.getData(); + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public ApiResponse getHlsAudioSegmentLegacyAacWithHttpInfo(String itemId, String segmentId) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyAacValidateBeforeCall(itemId, segmentId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the specified audio segment for an audio item. (asynchronously) + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyAacAsync(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyAacValidateBeforeCall(itemId, segmentId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsAudioSegmentLegacyMp3 + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyMp3Call(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/hls/{segmentId}/stream.mp3" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsAudioSegmentLegacyMp3ValidateBeforeCall(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsAudioSegmentLegacyMp3(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsAudioSegmentLegacyMp3(Async)"); + } + + return getHlsAudioSegmentLegacyMp3Call(itemId, segmentId, _callback); + + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public File getHlsAudioSegmentLegacyMp3(String itemId, String segmentId) throws ApiException { + ApiResponse localVarResp = getHlsAudioSegmentLegacyMp3WithHttpInfo(itemId, segmentId); + return localVarResp.getData(); + } + + /** + * Gets the specified audio segment for an audio item. + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public ApiResponse getHlsAudioSegmentLegacyMp3WithHttpInfo(String itemId, String segmentId) throws ApiException { + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyMp3ValidateBeforeCall(itemId, segmentId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the specified audio segment for an audio item. (asynchronously) + * + * @param itemId The item id. (required) + * @param segmentId The segment id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Hls audio segment returned. -
+ */ + public okhttp3.Call getHlsAudioSegmentLegacyMp3Async(String itemId, String segmentId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsAudioSegmentLegacyMp3ValidateBeforeCall(itemId, segmentId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsPlaylistLegacy + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsPlaylistLegacyCall(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls/{playlistId}/stream.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsPlaylistLegacyValidateBeforeCall(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsPlaylistLegacy(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsPlaylistLegacy(Async)"); + } + + return getHlsPlaylistLegacyCall(itemId, playlistId, _callback); + + } + + /** + * Gets a hls video playlist. + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getHlsPlaylistLegacy(String itemId, String playlistId) throws ApiException { + ApiResponse localVarResp = getHlsPlaylistLegacyWithHttpInfo(itemId, playlistId); + return localVarResp.getData(); + } + + /** + * Gets a hls video playlist. + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getHlsPlaylistLegacyWithHttpInfo(String itemId, String playlistId) throws ApiException { + okhttp3.Call localVarCall = getHlsPlaylistLegacyValidateBeforeCall(itemId, playlistId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls video playlist. (asynchronously) + * + * @param itemId The video id. (required) + * @param playlistId The playlist id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getHlsPlaylistLegacyAsync(String itemId, String playlistId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsPlaylistLegacyValidateBeforeCall(itemId, playlistId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getHlsVideoSegmentLegacy + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public okhttp3.Call getHlsVideoSegmentLegacyCall(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "segmentId" + "}", localVarApiClient.escapeString(segmentId.toString())) + .replace("{" + "segmentContainer" + "}", localVarApiClient.escapeString(segmentContainer.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getHlsVideoSegmentLegacyValidateBeforeCall(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'segmentId' is set + if (segmentId == null) { + throw new ApiException("Missing the required parameter 'segmentId' when calling getHlsVideoSegmentLegacy(Async)"); + } + + // verify the required parameter 'segmentContainer' is set + if (segmentContainer == null) { + throw new ApiException("Missing the required parameter 'segmentContainer' when calling getHlsVideoSegmentLegacy(Async)"); + } + + return getHlsVideoSegmentLegacyCall(itemId, playlistId, segmentId, segmentContainer, _callback); + + } + + /** + * Gets a hls video segment. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public File getHlsVideoSegmentLegacy(String itemId, String playlistId, String segmentId, String segmentContainer) throws ApiException { + ApiResponse localVarResp = getHlsVideoSegmentLegacyWithHttpInfo(itemId, playlistId, segmentId, segmentContainer); + return localVarResp.getData(); + } + + /** + * Gets a hls video segment. + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public ApiResponse getHlsVideoSegmentLegacyWithHttpInfo(String itemId, String playlistId, String segmentId, String segmentContainer) throws ApiException { + okhttp3.Call localVarCall = getHlsVideoSegmentLegacyValidateBeforeCall(itemId, playlistId, segmentId, segmentContainer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a hls video segment. (asynchronously) + * + * @param itemId The item id. (required) + * @param playlistId The playlist id. (required) + * @param segmentId The segment id. (required) + * @param segmentContainer The segment container. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Hls video segment returned. -
404 Hls segment not found. -
+ */ + public okhttp3.Call getHlsVideoSegmentLegacyAsync(String itemId, String playlistId, String segmentId, String segmentContainer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getHlsVideoSegmentLegacyValidateBeforeCall(itemId, playlistId, segmentId, segmentContainer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for stopEncodingProcess + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopEncodingProcessCall(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/ActiveEncodings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call stopEncodingProcessValidateBeforeCall(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deviceId' is set + if (deviceId == null) { + throw new ApiException("Missing the required parameter 'deviceId' when calling stopEncodingProcess(Async)"); + } + + // verify the required parameter 'playSessionId' is set + if (playSessionId == null) { + throw new ApiException("Missing the required parameter 'playSessionId' when calling stopEncodingProcess(Async)"); + } + + return stopEncodingProcessCall(deviceId, playSessionId, _callback); + + } + + /** + * Stops an active encoding. + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public void stopEncodingProcess(String deviceId, String playSessionId) throws ApiException { + stopEncodingProcessWithHttpInfo(deviceId, playSessionId); + } + + /** + * Stops an active encoding. + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse stopEncodingProcessWithHttpInfo(String deviceId, String playSessionId) throws ApiException { + okhttp3.Call localVarCall = stopEncodingProcessValidateBeforeCall(deviceId, playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Stops an active encoding. (asynchronously) + * + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (required) + * @param playSessionId The play session id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Encoding stopped successfully. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopEncodingProcessAsync(String deviceId, String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = stopEncodingProcessValidateBeforeCall(deviceId, playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageApi.java new file mode 100644 index 0000000000000..e9d845a9ca6aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageApi.java @@ -0,0 +1,9996 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ImageFormat; +import org.openapitools.client.model.ImageInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ImageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ImageApi() { + this(Configuration.getDefaultApiClient()); + } + + public ImageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteCustomSplashscreen + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteCustomSplashscreenCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteCustomSplashscreenValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return deleteCustomSplashscreenCall(_callback); + + } + + /** + * Delete a custom splashscreen. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public void deleteCustomSplashscreen() throws ApiException { + deleteCustomSplashscreenWithHttpInfo(); + } + + /** + * Delete a custom splashscreen. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public ApiResponse deleteCustomSplashscreenWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = deleteCustomSplashscreenValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete a custom splashscreen. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully deleted the custom splashscreen. -
403 User does not have permission to delete splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteCustomSplashscreenAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteCustomSplashscreenValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteItemImage(Async)"); + } + + return deleteItemImageCall(itemId, imageType, imageIndex, _callback); + + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteItemImage(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + deleteItemImageWithHttpInfo(itemId, imageType, imageIndex); + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = deleteItemImageValidateBeforeCall(itemId, imageType, imageIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete an item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageAsync(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemImageValidateBeforeCall(itemId, imageType, imageIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling deleteItemImageByIndex(Async)"); + } + + return deleteItemImageByIndexCall(itemId, imageType, imageIndex, _callback); + + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + deleteItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex); + } + + /** + * Delete an item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = deleteItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete an item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex The image index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteUserImage + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageCall(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserImageValidateBeforeCall(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling deleteUserImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteUserImage(Async)"); + } + + return deleteUserImageCall(userId, imageType, index, _callback); + + } + + /** + * Delete the user's image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public void deleteUserImage(UUID userId, ImageType imageType, Integer index) throws ApiException { + deleteUserImageWithHttpInfo(userId, imageType, index); + } + + /** + * Delete the user's image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public ApiResponse deleteUserImageWithHttpInfo(UUID userId, ImageType imageType, Integer index) throws ApiException { + okhttp3.Call localVarCall = deleteUserImageValidateBeforeCall(userId, imageType, index, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete the user's image. (asynchronously) + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageAsync(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserImageValidateBeforeCall(userId, imageType, index, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteUserImageByIndex + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageByIndexCall(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}/{index}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserImageByIndexValidateBeforeCall(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling deleteUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling deleteUserImageByIndex(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling deleteUserImageByIndex(Async)"); + } + + return deleteUserImageByIndexCall(userId, imageType, index, _callback); + + } + + /** + * Delete the user's image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public void deleteUserImageByIndex(UUID userId, ImageType imageType, Integer index) throws ApiException { + deleteUserImageByIndexWithHttpInfo(userId, imageType, index); + } + + /** + * Delete the user's image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public ApiResponse deleteUserImageByIndexWithHttpInfo(UUID userId, ImageType imageType, Integer index) throws ApiException { + okhttp3.Call localVarCall = deleteUserImageByIndexValidateBeforeCall(userId, imageType, index, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete the user's image. (asynchronously) + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image deleted. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call deleteUserImageByIndexAsync(UUID userId, ImageType imageType, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserImageByIndexValidateBeforeCall(userId, imageType, index, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getArtistImage + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getArtistImageCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getArtistImageValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getArtistImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getArtistImage(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getArtistImage(Async)"); + } + + return getArtistImageCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getArtistImage(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getArtistImageWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getArtistImageWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get artist image by name. (asynchronously) + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getArtistImageAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenreImage + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getGenreImage(Async)"); + } + + return getGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGenreImageByIndex + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getGenreImageByIndex(Async)"); + } + + return getGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImage(Async)"); + } + + return getItemImageCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImage(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getItemImageWithHttpInfo(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageAsync(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImage2 + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImage2Call(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "maxWidth" + "}", localVarApiClient.escapeString(maxWidth.toString())) + .replace("{" + "maxHeight" + "}", localVarApiClient.escapeString(maxHeight.toString())) + .replace("{" + "tag" + "}", localVarApiClient.escapeString(tag.toString())) + .replace("{" + "format" + "}", localVarApiClient.escapeString(format.toString())) + .replace("{" + "percentPlayed" + "}", localVarApiClient.escapeString(percentPlayed.toString())) + .replace("{" + "unplayedCount" + "}", localVarApiClient.escapeString(unplayedCount.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImage2ValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'maxWidth' is set + if (maxWidth == null) { + throw new ApiException("Missing the required parameter 'maxWidth' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'maxHeight' is set + if (maxHeight == null) { + throw new ApiException("Missing the required parameter 'maxHeight' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'tag' is set + if (tag == null) { + throw new ApiException("Missing the required parameter 'tag' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'format' is set + if (format == null) { + throw new ApiException("Missing the required parameter 'format' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'percentPlayed' is set + if (percentPlayed == null) { + throw new ApiException("Missing the required parameter 'percentPlayed' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'unplayedCount' is set + if (unplayedCount == null) { + throw new ApiException("Missing the required parameter 'unplayedCount' when calling getItemImage2(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getItemImage2(Async)"); + } + + return getItemImage2Call(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImage2(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getItemImage2WithHttpInfo(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImage2WithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImage2Async(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getItemImageByIndex(Async)"); + } + + return getItemImageByIndexCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemImageInfos + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemImageInfosCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemImageInfosValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItemImageInfos(Async)"); + } + + return getItemImageInfosCall(itemId, _callback); + + } + + /** + * Get item image infos. + * + * @param itemId Item id. (required) + * @return List<ImageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getItemImageInfos(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getItemImageInfosWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get item image infos. + * + * @param itemId Item id. (required) + * @return ApiResponse<List<ImageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getItemImageInfosWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getItemImageInfosValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get item image infos. (asynchronously) + * + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemImageInfosAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemImageInfosValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenreImage + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getMusicGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getMusicGenreImage(Async)"); + } + + return getMusicGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getMusicGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getMusicGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getMusicGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenreImageByIndex + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getMusicGenreImageByIndex(Async)"); + } + + return getMusicGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getMusicGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getMusicGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getMusicGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getMusicGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonImage + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPersonImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getPersonImage(Async)"); + } + + return getPersonImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getPersonImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getPersonImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getPersonImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonImageByIndex + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getPersonImageByIndex(Async)"); + } + + return getPersonImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getPersonImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getPersonImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getPersonImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getPersonImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSplashscreen + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public okhttp3.Call getSplashscreenCall(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + final String[] localVarAccepts = { + "image/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSplashscreenValidateBeforeCall(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + return getSplashscreenCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, _callback); + + } + + /** + * Generates or gets the splashscreen. + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public File getSplashscreen(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality) throws ApiException { + ApiResponse localVarResp = getSplashscreenWithHttpInfo(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality); + return localVarResp.getData(); + } + + /** + * Generates or gets the splashscreen. + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public ApiResponse getSplashscreenWithHttpInfo(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality) throws ApiException { + okhttp3.Call localVarCall = getSplashscreenValidateBeforeCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Generates or gets the splashscreen. (asynchronously) + * + * @param tag Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param blur Blur image. (optional) + * @param backgroundColor Apply a background color for transparent images. (optional) + * @param foregroundLayer Apply a foreground layer on top of the image. (optional) + * @param quality Quality setting, from 0-100. (optional, default to 90) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Splashscreen returned successfully. -
+ */ + public okhttp3.Call getSplashscreenAsync(String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer fillWidth, Integer fillHeight, Integer blur, String backgroundColor, String foregroundLayer, Integer quality, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSplashscreenValidateBeforeCall(tag, format, maxWidth, maxHeight, width, height, fillWidth, fillHeight, blur, backgroundColor, foregroundLayer, quality, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudioImage + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudioImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getStudioImage(Async)"); + } + + return getStudioImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getStudioImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getStudioImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getStudioImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudioImageByIndex + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getStudioImageByIndex(Async)"); + } + + return getStudioImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getStudioImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getStudioImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getStudioImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getStudioImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserImage + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageCall(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserImageValidateBeforeCall(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getUserImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getUserImage(Async)"); + } + + return getUserImageCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getUserImage(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = getUserImageWithHttpInfo(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getUserImageWithHttpInfo(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = getUserImageValidateBeforeCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageAsync(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserImageValidateBeforeCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserImageByIndex + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageByIndexCall(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}/{imageIndex}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserImageByIndexValidateBeforeCall(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling getUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling getUserImageByIndex(Async)"); + } + + return getUserImageByIndexCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File getUserImageByIndex(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = getUserImageByIndexWithHttpInfo(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse getUserImageByIndexWithHttpInfo(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = getUserImageByIndexValidateBeforeCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call getUserImageByIndexAsync(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserImageByIndexValidateBeforeCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headArtistImage + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headArtistImageCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headArtistImageValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headArtistImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headArtistImage(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headArtistImage(Async)"); + } + + return headArtistImageCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headArtistImage(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headArtistImageWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get artist image by name. + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headArtistImageWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get artist image by name. (asynchronously) + * + * @param name Artist name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headArtistImageAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headArtistImageValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headGenreImage + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headGenreImage(Async)"); + } + + return headGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headGenreImageByIndex + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Genres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headGenreImageByIndex(Async)"); + } + + return headGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get genre image by name. + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get genre image by name. (asynchronously) + * + * @param name Genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImageValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImage(Async)"); + } + + return headItemImageCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImage(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headItemImageWithHttpInfo(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImageWithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageAsync(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImageValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImage2 + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImage2Call(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "maxWidth" + "}", localVarApiClient.escapeString(maxWidth.toString())) + .replace("{" + "maxHeight" + "}", localVarApiClient.escapeString(maxHeight.toString())) + .replace("{" + "tag" + "}", localVarApiClient.escapeString(tag.toString())) + .replace("{" + "format" + "}", localVarApiClient.escapeString(format.toString())) + .replace("{" + "percentPlayed" + "}", localVarApiClient.escapeString(percentPlayed.toString())) + .replace("{" + "unplayedCount" + "}", localVarApiClient.escapeString(unplayedCount.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImage2ValidateBeforeCall(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'maxWidth' is set + if (maxWidth == null) { + throw new ApiException("Missing the required parameter 'maxWidth' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'maxHeight' is set + if (maxHeight == null) { + throw new ApiException("Missing the required parameter 'maxHeight' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'tag' is set + if (tag == null) { + throw new ApiException("Missing the required parameter 'tag' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'format' is set + if (format == null) { + throw new ApiException("Missing the required parameter 'format' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'percentPlayed' is set + if (percentPlayed == null) { + throw new ApiException("Missing the required parameter 'percentPlayed' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'unplayedCount' is set + if (unplayedCount == null) { + throw new ApiException("Missing the required parameter 'unplayedCount' when calling headItemImage2(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headItemImage2(Async)"); + } + + return headItemImage2Call(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImage2(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headItemImage2WithHttpInfo(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImage2WithHttpInfo(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param maxWidth The maximum image width to return. (required) + * @param maxHeight The maximum image height to return. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (required) + * @param format Determines the output format of the image - original,gif,jpg,png. (required) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (required) + * @param unplayedCount Optional. Unplayed count overlay to render. (required) + * @param imageIndex Image index. (required) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImage2Async(UUID itemId, ImageType imageType, Integer maxWidth, Integer maxHeight, String tag, ImageFormat format, Double percentPlayed, Integer unplayedCount, Integer imageIndex, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImage2ValidateBeforeCall(itemId, imageType, maxWidth, maxHeight, tag, format, percentPlayed, unplayedCount, imageIndex, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headItemImageByIndex(Async)"); + } + + return headItemImageByIndexCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Gets the item's image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the item's image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param format Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer maxWidth, Integer maxHeight, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, String tag, Boolean cropWhitespace, ImageFormat format, Boolean addPlayedIndicator, Double percentPlayed, Integer unplayedCount, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, maxWidth, maxHeight, width, height, quality, fillWidth, fillHeight, tag, cropWhitespace, format, addPlayedIndicator, percentPlayed, unplayedCount, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMusicGenreImage + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMusicGenreImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headMusicGenreImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headMusicGenreImage(Async)"); + } + + return headMusicGenreImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headMusicGenreImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headMusicGenreImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headMusicGenreImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMusicGenreImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headMusicGenreImageByIndex + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headMusicGenreImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headMusicGenreImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headMusicGenreImageByIndex(Async)"); + } + + return headMusicGenreImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headMusicGenreImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headMusicGenreImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get music genre image by name. + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headMusicGenreImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music genre image by name. (asynchronously) + * + * @param name Music genre name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headMusicGenreImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headMusicGenreImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headPersonImage + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headPersonImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headPersonImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headPersonImage(Async)"); + } + + return headPersonImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headPersonImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headPersonImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headPersonImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headPersonImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headPersonImageByIndex + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headPersonImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headPersonImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headPersonImageByIndex(Async)"); + } + + return headPersonImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headPersonImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headPersonImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get person image by name. + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headPersonImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person image by name. (asynchronously) + * + * @param name Person name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headPersonImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headPersonImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headStudioImage + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headStudioImageValidateBeforeCall(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headStudioImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headStudioImage(Async)"); + } + + return headStudioImageCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headStudioImage(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headStudioImageWithHttpInfo(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headStudioImageWithHttpInfo(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageAsync(String name, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headStudioImageValidateBeforeCall(name, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headStudioImageByIndex + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageByIndexCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}/Images/{imageType}/{imageIndex}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headStudioImageByIndexValidateBeforeCall(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling headStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headStudioImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headStudioImageByIndex(Async)"); + } + + return headStudioImageByIndexCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headStudioImageByIndex(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headStudioImageByIndexWithHttpInfo(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get studio image by name. + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headStudioImageByIndexWithHttpInfo(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get studio image by name. (asynchronously) + * + * @param name Studio name. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headStudioImageByIndexAsync(String name, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headStudioImageByIndexValidateBeforeCall(name, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headUserImage + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageCall(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + if (imageIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageIndex", imageIndex)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headUserImageValidateBeforeCall(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling headUserImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headUserImage(Async)"); + } + + return headUserImageCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headUserImage(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + ApiResponse localVarResp = headUserImageWithHttpInfo(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headUserImageWithHttpInfo(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex) throws ApiException { + okhttp3.Call localVarCall = headUserImageValidateBeforeCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param imageIndex Image index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageAsync(UUID userId, ImageType imageType, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, Integer imageIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headUserImageValidateBeforeCall(userId, imageType, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, imageIndex, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headUserImageByIndex + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageByIndexCall(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}/{imageIndex}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (percentPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("percentPlayed", percentPlayed)); + } + + if (unplayedCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("unplayedCount", unplayedCount)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (quality != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("quality", quality)); + } + + if (fillWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillWidth", fillWidth)); + } + + if (fillHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("fillHeight", fillHeight)); + } + + if (cropWhitespace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cropWhitespace", cropWhitespace)); + } + + if (addPlayedIndicator != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addPlayedIndicator", addPlayedIndicator)); + } + + if (blur != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("blur", blur)); + } + + if (backgroundColor != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("backgroundColor", backgroundColor)); + } + + if (foregroundLayer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("foregroundLayer", foregroundLayer)); + } + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headUserImageByIndexValidateBeforeCall(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling headUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling headUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling headUserImageByIndex(Async)"); + } + + return headUserImageByIndexCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public File headUserImageByIndex(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + ApiResponse localVarResp = headUserImageByIndexWithHttpInfo(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer); + return localVarResp.getData(); + } + + /** + * Get user profile image. + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public ApiResponse headUserImageByIndexWithHttpInfo(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer) throws ApiException { + okhttp3.Call localVarCall = headUserImageByIndexValidateBeforeCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user profile image. (asynchronously) + * + * @param userId User id. (required) + * @param imageType Image type. (required) + * @param imageIndex Image index. (required) + * @param tag Optional. Supply the cache tag from the item object to receive strong caching headers. (optional) + * @param format Determines the output format of the image - original,gif,jpg,png. (optional) + * @param maxWidth The maximum image width to return. (optional) + * @param maxHeight The maximum image height to return. (optional) + * @param percentPlayed Optional. Percent to render for the percent played overlay. (optional) + * @param unplayedCount Optional. Unplayed count overlay to render. (optional) + * @param width The fixed image width to return. (optional) + * @param height The fixed image height to return. (optional) + * @param quality Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. (optional) + * @param fillWidth Width of box to fill. (optional) + * @param fillHeight Height of box to fill. (optional) + * @param cropWhitespace Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. (optional) + * @param addPlayedIndicator Optional. Add a played indicator. (optional) + * @param blur Optional. Blur image. (optional) + * @param backgroundColor Optional. Apply a background color for transparent images. (optional) + * @param foregroundLayer Optional. Apply a foreground layer on top of the image. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream returned. -
404 Item not found. -
+ */ + public okhttp3.Call headUserImageByIndexAsync(UUID userId, ImageType imageType, Integer imageIndex, String tag, ImageFormat format, Integer maxWidth, Integer maxHeight, Double percentPlayed, Integer unplayedCount, Integer width, Integer height, Integer quality, Integer fillWidth, Integer fillHeight, Boolean cropWhitespace, Boolean addPlayedIndicator, Integer blur, String backgroundColor, String foregroundLayer, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headUserImageByIndexValidateBeforeCall(userId, imageType, imageIndex, tag, format, maxWidth, maxHeight, percentPlayed, unplayedCount, width, height, quality, fillWidth, fillHeight, cropWhitespace, addPlayedIndicator, blur, backgroundColor, foregroundLayer, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postUserImage + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageCall(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUserImageValidateBeforeCall(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling postUserImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling postUserImage(Async)"); + } + + return postUserImageCall(userId, imageType, index, body, _callback); + + } + + /** + * Sets the user image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public void postUserImage(UUID userId, ImageType imageType, Integer index, File body) throws ApiException { + postUserImageWithHttpInfo(userId, imageType, index, body); + } + + /** + * Sets the user image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public ApiResponse postUserImageWithHttpInfo(UUID userId, ImageType imageType, Integer index, File body) throws ApiException { + okhttp3.Call localVarCall = postUserImageValidateBeforeCall(userId, imageType, index, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the user image. (asynchronously) + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (optional) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageAsync(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUserImageValidateBeforeCall(userId, imageType, index, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUserImageByIndex + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageByIndexCall(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Users/{userId}/Images/{imageType}/{index}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUserImageByIndexValidateBeforeCall(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling postUserImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling postUserImageByIndex(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling postUserImageByIndex(Async)"); + } + + return postUserImageByIndexCall(userId, imageType, index, body, _callback); + + } + + /** + * Sets the user image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public void postUserImageByIndex(UUID userId, ImageType imageType, Integer index, File body) throws ApiException { + postUserImageByIndexWithHttpInfo(userId, imageType, index, body); + } + + /** + * Sets the user image. + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public ApiResponse postUserImageByIndexWithHttpInfo(UUID userId, ImageType imageType, Integer index, File body) throws ApiException { + okhttp3.Call localVarCall = postUserImageByIndexValidateBeforeCall(userId, imageType, index, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the user image. (asynchronously) + * + * @param userId User Id. (required) + * @param imageType (Unused) Image type. (required) + * @param index (Unused) Image index. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Image updated. -
403 User does not have permission to delete the image. -
401 Unauthorized -
+ */ + public okhttp3.Call postUserImageByIndexAsync(UUID userId, ImageType imageType, Integer index, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUserImageByIndexValidateBeforeCall(userId, imageType, index, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setItemImage + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageCall(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setItemImageValidateBeforeCall(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling setItemImage(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling setItemImage(Async)"); + } + + return setItemImageCall(itemId, imageType, body, _callback); + + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setItemImage(UUID itemId, ImageType imageType, File body) throws ApiException { + setItemImageWithHttpInfo(itemId, imageType, body); + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setItemImageWithHttpInfo(UUID itemId, ImageType imageType, File body) throws ApiException { + okhttp3.Call localVarCall = setItemImageValidateBeforeCall(itemId, imageType, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Set item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageAsync(UUID itemId, ImageType imageType, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setItemImageValidateBeforeCall(itemId, imageType, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setItemImageByIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageByIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setItemImageByIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling setItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling setItemImageByIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling setItemImageByIndex(Async)"); + } + + return setItemImageByIndexCall(itemId, imageType, imageIndex, body, _callback); + + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setItemImageByIndex(UUID itemId, ImageType imageType, Integer imageIndex, File body) throws ApiException { + setItemImageByIndexWithHttpInfo(itemId, imageType, imageIndex, body); + } + + /** + * Set item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setItemImageByIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, File body) throws ApiException { + okhttp3.Call localVarCall = setItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Set item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex (Unused) Image index. (required) + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image saved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setItemImageByIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setItemImageByIndexValidateBeforeCall(itemId, imageType, imageIndex, body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateItemImageIndex + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemImageIndexCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "imageType" + "}", localVarApiClient.escapeString(imageType.toString())) + .replace("{" + "imageIndex" + "}", localVarApiClient.escapeString(imageIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newIndex", newIndex)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemImageIndexValidateBeforeCall(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'imageType' is set + if (imageType == null) { + throw new ApiException("Missing the required parameter 'imageType' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'imageIndex' is set + if (imageIndex == null) { + throw new ApiException("Missing the required parameter 'imageIndex' when calling updateItemImageIndex(Async)"); + } + + // verify the required parameter 'newIndex' is set + if (newIndex == null) { + throw new ApiException("Missing the required parameter 'newIndex' when calling updateItemImageIndex(Async)"); + } + + return updateItemImageIndexCall(itemId, imageType, imageIndex, newIndex, _callback); + + } + + /** + * Updates the index for an item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItemImageIndex(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex) throws ApiException { + updateItemImageIndexWithHttpInfo(itemId, imageType, imageIndex, newIndex); + } + + /** + * Updates the index for an item image. + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemImageIndexWithHttpInfo(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex) throws ApiException { + okhttp3.Call localVarCall = updateItemImageIndexValidateBeforeCall(itemId, imageType, imageIndex, newIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates the index for an item image. (asynchronously) + * + * @param itemId Item id. (required) + * @param imageType Image type. (required) + * @param imageIndex Old image index. (required) + * @param newIndex New image index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Image index updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemImageIndexAsync(UUID itemId, ImageType imageType, Integer imageIndex, Integer newIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemImageIndexValidateBeforeCall(itemId, imageType, imageIndex, newIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for uploadCustomSplashscreen + * @param body (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call uploadCustomSplashscreenCall(File body, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/Branding/Splashscreen"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "image/*" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uploadCustomSplashscreenValidateBeforeCall(File body, final ApiCallback _callback) throws ApiException { + return uploadCustomSplashscreenCall(body, _callback); + + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + * + * @param body (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public void uploadCustomSplashscreen(File body) throws ApiException { + uploadCustomSplashscreenWithHttpInfo(body); + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. + * + * @param body (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public ApiResponse uploadCustomSplashscreenWithHttpInfo(File body) throws ApiException { + okhttp3.Call localVarCall = uploadCustomSplashscreenValidateBeforeCall(body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uploads a custom splashscreen. The body is expected to the image contents base64 encoded. (asynchronously) + * + * @param body (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Successfully uploaded new splashscreen. -
400 Error reading MimeType from uploaded image. -
403 User does not have permission to upload splashscreen.. -
401 Unauthorized -
+ */ + public okhttp3.Call uploadCustomSplashscreenAsync(File body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uploadCustomSplashscreenValidateBeforeCall(body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageByNameApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageByNameApi.java new file mode 100644 index 0000000000000..a86f435e40182 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ImageByNameApi.java @@ -0,0 +1,893 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ImageByNameInfo; +import org.openapitools.client.model.ProblemDetails; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ImageByNameApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ImageByNameApi() { + this(Configuration.getDefaultApiClient()); + } + + public ImageByNameApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getGeneralImage + * @param name The name of the image. (required) + * @param type Image Type (primary, backdrop, logo, etc). (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getGeneralImageCall(String name, String type, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/General/{name}/{type}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())) + .replace("{" + "type" + "}", localVarApiClient.escapeString(type.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/octet-stream", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGeneralImageValidateBeforeCall(String name, String type, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getGeneralImage(Async)"); + } + + // verify the required parameter 'type' is set + if (type == null) { + throw new ApiException("Missing the required parameter 'type' when calling getGeneralImage(Async)"); + } + + return getGeneralImageCall(name, type, _callback); + + } + + /** + * Get General Image. + * + * @param name The name of the image. (required) + * @param type Image Type (primary, backdrop, logo, etc). (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public File getGeneralImage(String name, String type) throws ApiException { + ApiResponse localVarResp = getGeneralImageWithHttpInfo(name, type); + return localVarResp.getData(); + } + + /** + * Get General Image. + * + * @param name The name of the image. (required) + * @param type Image Type (primary, backdrop, logo, etc). (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public ApiResponse getGeneralImageWithHttpInfo(String name, String type) throws ApiException { + okhttp3.Call localVarCall = getGeneralImageValidateBeforeCall(name, type, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get General Image. (asynchronously) + * + * @param name The name of the image. (required) + * @param type Image Type (primary, backdrop, logo, etc). (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getGeneralImageAsync(String name, String type, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGeneralImageValidateBeforeCall(name, type, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGeneralImages + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGeneralImagesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/General"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGeneralImagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getGeneralImagesCall(_callback); + + } + + /** + * Get all general images. + * + * @return List<ImageByNameInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getGeneralImages() throws ApiException { + ApiResponse> localVarResp = getGeneralImagesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all general images. + * + * @return ApiResponse<List<ImageByNameInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getGeneralImagesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getGeneralImagesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all general images. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGeneralImagesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getGeneralImagesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaInfoImage + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getMediaInfoImageCall(String theme, String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/MediaInfo/{theme}/{name}" + .replace("{" + "theme" + "}", localVarApiClient.escapeString(theme.toString())) + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/octet-stream", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaInfoImageValidateBeforeCall(String theme, String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'theme' is set + if (theme == null) { + throw new ApiException("Missing the required parameter 'theme' when calling getMediaInfoImage(Async)"); + } + + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getMediaInfoImage(Async)"); + } + + return getMediaInfoImageCall(theme, name, _callback); + + } + + /** + * Get media info image. + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public File getMediaInfoImage(String theme, String name) throws ApiException { + ApiResponse localVarResp = getMediaInfoImageWithHttpInfo(theme, name); + return localVarResp.getData(); + } + + /** + * Get media info image. + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public ApiResponse getMediaInfoImageWithHttpInfo(String theme, String name) throws ApiException { + okhttp3.Call localVarCall = getMediaInfoImageValidateBeforeCall(theme, name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get media info image. (asynchronously) + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getMediaInfoImageAsync(String theme, String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaInfoImageValidateBeforeCall(theme, name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaInfoImages + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image list retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaInfoImagesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/MediaInfo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaInfoImagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getMediaInfoImagesCall(_callback); + + } + + /** + * Get all media info images. + * + * @return List<ImageByNameInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image list retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMediaInfoImages() throws ApiException { + ApiResponse> localVarResp = getMediaInfoImagesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all media info images. + * + * @return ApiResponse<List<ImageByNameInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image list retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMediaInfoImagesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getMediaInfoImagesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all media info images. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Image list retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaInfoImagesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaInfoImagesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRatingImage + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getRatingImageCall(String theme, String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/Ratings/{theme}/{name}" + .replace("{" + "theme" + "}", localVarApiClient.escapeString(theme.toString())) + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/octet-stream", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRatingImageValidateBeforeCall(String theme, String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'theme' is set + if (theme == null) { + throw new ApiException("Missing the required parameter 'theme' when calling getRatingImage(Async)"); + } + + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getRatingImage(Async)"); + } + + return getRatingImageCall(theme, name, _callback); + + } + + /** + * Get rating image. + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public File getRatingImage(String theme, String name) throws ApiException { + ApiResponse localVarResp = getRatingImageWithHttpInfo(theme, name); + return localVarResp.getData(); + } + + /** + * Get rating image. + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public ApiResponse getRatingImageWithHttpInfo(String theme, String name) throws ApiException { + okhttp3.Call localVarCall = getRatingImageValidateBeforeCall(theme, name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get rating image. (asynchronously) + * + * @param theme The theme to get the image from. (required) + * @param name The name of the image. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Image stream retrieved. -
404 Image not found. -
+ */ + public okhttp3.Call getRatingImageAsync(String theme, String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRatingImageValidateBeforeCall(theme, name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRatingImages + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRatingImagesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Images/Ratings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRatingImagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getRatingImagesCall(_callback); + + } + + /** + * Get all general images. + * + * @return List<ImageByNameInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getRatingImages() throws ApiException { + ApiResponse> localVarResp = getRatingImagesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all general images. + * + * @return ApiResponse<List<ImageByNameInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getRatingImagesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getRatingImagesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all general images. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Retrieved list of images. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRatingImagesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getRatingImagesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/InstantMixApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/InstantMixApi.java new file mode 100644 index 0000000000000..2a709a64f0217 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/InstantMixApi.java @@ -0,0 +1,1637 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class InstantMixApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public InstantMixApi() { + this(Configuration.getDefaultApiClient()); + } + + public InstantMixApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getInstantMixFromAlbum + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromAlbumCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Albums/{id}/InstantMix" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromAlbumValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromAlbum(Async)"); + } + + return getInstantMixFromAlbumCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given album. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromAlbum(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromAlbumWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given album. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromAlbumWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromAlbumValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given album. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromAlbumAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromAlbumValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromArtists + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromArtistsCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{id}/InstantMix" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromArtistsValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromArtists(Async)"); + } + + return getInstantMixFromArtistsCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromArtists(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromArtistsWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromArtistsWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromArtistsValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given artist. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromArtistsAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromArtistsValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromArtists2 + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getInstantMixFromArtists2Call(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/InstantMix"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromArtists2ValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromArtists2(Async)"); + } + + return getInstantMixFromArtists2Call(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getInstantMixFromArtists2(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromArtists2WithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given artist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getInstantMixFromArtists2WithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromArtists2ValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given artist. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getInstantMixFromArtists2Async(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromArtists2ValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromItem + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromItemCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{id}/InstantMix" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromItemValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromItem(Async)"); + } + + return getInstantMixFromItemCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given item. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromItem(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromItemWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given item. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromItemWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromItemValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given item. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromItemAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromItemValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromMusicGenreById + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByIdCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/InstantMix"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromMusicGenreByIdValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromMusicGenreById(Async)"); + } + + return getInstantMixFromMusicGenreByIdCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromMusicGenreById(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromMusicGenreByIdWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromMusicGenreByIdWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByIdValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given genre. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByIdAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByIdValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromMusicGenreByName + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByNameCall(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{name}/InstantMix" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromMusicGenreByNameValidateBeforeCall(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getInstantMixFromMusicGenreByName(Async)"); + } + + return getInstantMixFromMusicGenreByNameCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromMusicGenreByName(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromMusicGenreByNameWithHttpInfo(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given genre. + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromMusicGenreByNameWithHttpInfo(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByNameValidateBeforeCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given genre. (asynchronously) + * + * @param name The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromMusicGenreByNameAsync(String name, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromMusicGenreByNameValidateBeforeCall(name, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromPlaylist + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromPlaylistCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{id}/InstantMix" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromPlaylistValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromPlaylist(Async)"); + } + + return getInstantMixFromPlaylistCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given playlist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromPlaylist(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromPlaylistWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given playlist. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromPlaylistWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromPlaylistValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given playlist. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromPlaylistAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromPlaylistValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getInstantMixFromSong + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromSongCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Songs/{id}/InstantMix" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getInstantMixFromSongValidateBeforeCall(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getInstantMixFromSong(Async)"); + } + + return getInstantMixFromSongCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Creates an instant playlist based on a given song. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getInstantMixFromSong(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getInstantMixFromSongWithHttpInfo(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Creates an instant playlist based on a given song. + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getInstantMixFromSongWithHttpInfo(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getInstantMixFromSongValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an instant playlist based on a given song. (asynchronously) + * + * @param id The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Instant playlist returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getInstantMixFromSongAsync(UUID id, UUID userId, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getInstantMixFromSongValidateBeforeCall(id, userId, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemLookupApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemLookupApi.java new file mode 100644 index 0000000000000..68f01d0c53678 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemLookupApi.java @@ -0,0 +1,1629 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AlbumInfoRemoteSearchQuery; +import org.openapitools.client.model.ArtistInfoRemoteSearchQuery; +import org.openapitools.client.model.BookInfoRemoteSearchQuery; +import org.openapitools.client.model.BoxSetInfoRemoteSearchQuery; +import org.openapitools.client.model.ExternalIdInfo; +import org.openapitools.client.model.MovieInfoRemoteSearchQuery; +import org.openapitools.client.model.MusicVideoInfoRemoteSearchQuery; +import org.openapitools.client.model.PersonLookupInfoRemoteSearchQuery; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteSearchResult; +import org.openapitools.client.model.SeriesInfoRemoteSearchQuery; +import org.openapitools.client.model.TrailerInfoRemoteSearchQuery; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemLookupApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemLookupApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemLookupApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for applySearchCriteria + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call applySearchCriteriaCall(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = remoteSearchResult; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Apply/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (replaceAllImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllImages", replaceAllImages)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call applySearchCriteriaValidateBeforeCall(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling applySearchCriteria(Async)"); + } + + // verify the required parameter 'remoteSearchResult' is set + if (remoteSearchResult == null) { + throw new ApiException("Missing the required parameter 'remoteSearchResult' when calling applySearchCriteria(Async)"); + } + + return applySearchCriteriaCall(itemId, remoteSearchResult, replaceAllImages, _callback); + + } + + /** + * Applies search criteria to an item and refreshes metadata. + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void applySearchCriteria(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages) throws ApiException { + applySearchCriteriaWithHttpInfo(itemId, remoteSearchResult, replaceAllImages); + } + + /** + * Applies search criteria to an item and refreshes metadata. + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse applySearchCriteriaWithHttpInfo(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages) throws ApiException { + okhttp3.Call localVarCall = applySearchCriteriaValidateBeforeCall(itemId, remoteSearchResult, replaceAllImages, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Applies search criteria to an item and refreshes metadata. (asynchronously) + * + * @param itemId Item id. (required) + * @param remoteSearchResult The remote search result. (required) + * @param replaceAllImages Optional. Whether or not to replace all images. Default: True. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refreshed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call applySearchCriteriaAsync(UUID itemId, RemoteSearchResult remoteSearchResult, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = applySearchCriteriaValidateBeforeCall(itemId, remoteSearchResult, replaceAllImages, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getBookRemoteSearchResults + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBookRemoteSearchResultsCall(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bookInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Book"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBookRemoteSearchResultsValidateBeforeCall(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bookInfoRemoteSearchQuery' is set + if (bookInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'bookInfoRemoteSearchQuery' when calling getBookRemoteSearchResults(Async)"); + } + + return getBookRemoteSearchResultsCall(bookInfoRemoteSearchQuery, _callback); + + } + + /** + * Get book remote search. + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getBookRemoteSearchResults(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getBookRemoteSearchResultsWithHttpInfo(bookInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get book remote search. + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getBookRemoteSearchResultsWithHttpInfo(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getBookRemoteSearchResultsValidateBeforeCall(bookInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get book remote search. (asynchronously) + * + * @param bookInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Book remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBookRemoteSearchResultsAsync(BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getBookRemoteSearchResultsValidateBeforeCall(bookInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getBoxSetRemoteSearchResults + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBoxSetRemoteSearchResultsCall(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = boxSetInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/BoxSet"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBoxSetRemoteSearchResultsValidateBeforeCall(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'boxSetInfoRemoteSearchQuery' is set + if (boxSetInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'boxSetInfoRemoteSearchQuery' when calling getBoxSetRemoteSearchResults(Async)"); + } + + return getBoxSetRemoteSearchResultsCall(boxSetInfoRemoteSearchQuery, _callback); + + } + + /** + * Get box set remote search. + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getBoxSetRemoteSearchResults(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getBoxSetRemoteSearchResultsWithHttpInfo(boxSetInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get box set remote search. + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getBoxSetRemoteSearchResultsWithHttpInfo(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getBoxSetRemoteSearchResultsValidateBeforeCall(boxSetInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get box set remote search. (asynchronously) + * + * @param boxSetInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Box set remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBoxSetRemoteSearchResultsAsync(BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getBoxSetRemoteSearchResultsValidateBeforeCall(boxSetInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getExternalIdInfos + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getExternalIdInfosCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ExternalIdInfos" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getExternalIdInfosValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getExternalIdInfos(Async)"); + } + + return getExternalIdInfosCall(itemId, _callback); + + } + + /** + * Get the item's external id info. + * + * @param itemId Item id. (required) + * @return List<ExternalIdInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getExternalIdInfos(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getExternalIdInfosWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get the item's external id info. + * + * @param itemId Item id. (required) + * @return ApiResponse<List<ExternalIdInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getExternalIdInfosWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getExternalIdInfosValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get the item's external id info. (asynchronously) + * + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 External id info retrieved. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getExternalIdInfosAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getExternalIdInfosValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMovieRemoteSearchResults + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRemoteSearchResultsCall(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = movieInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Movie"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMovieRemoteSearchResultsValidateBeforeCall(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'movieInfoRemoteSearchQuery' is set + if (movieInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'movieInfoRemoteSearchQuery' when calling getMovieRemoteSearchResults(Async)"); + } + + return getMovieRemoteSearchResultsCall(movieInfoRemoteSearchQuery, _callback); + + } + + /** + * Get movie remote search. + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMovieRemoteSearchResults(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMovieRemoteSearchResultsWithHttpInfo(movieInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get movie remote search. + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMovieRemoteSearchResultsWithHttpInfo(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMovieRemoteSearchResultsValidateBeforeCall(movieInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get movie remote search. (asynchronously) + * + * @param movieInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRemoteSearchResultsAsync(MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMovieRemoteSearchResultsValidateBeforeCall(movieInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicAlbumRemoteSearchResults + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicAlbumRemoteSearchResultsCall(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = albumInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicAlbum"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicAlbumRemoteSearchResultsValidateBeforeCall(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'albumInfoRemoteSearchQuery' is set + if (albumInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'albumInfoRemoteSearchQuery' when calling getMusicAlbumRemoteSearchResults(Async)"); + } + + return getMusicAlbumRemoteSearchResultsCall(albumInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music album remote search. + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicAlbumRemoteSearchResults(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicAlbumRemoteSearchResultsWithHttpInfo(albumInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music album remote search. + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicAlbumRemoteSearchResultsWithHttpInfo(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicAlbumRemoteSearchResultsValidateBeforeCall(albumInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music album remote search. (asynchronously) + * + * @param albumInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music album remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicAlbumRemoteSearchResultsAsync(AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicAlbumRemoteSearchResultsValidateBeforeCall(albumInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicArtistRemoteSearchResults + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicArtistRemoteSearchResultsCall(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = artistInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicArtist"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicArtistRemoteSearchResultsValidateBeforeCall(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'artistInfoRemoteSearchQuery' is set + if (artistInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'artistInfoRemoteSearchQuery' when calling getMusicArtistRemoteSearchResults(Async)"); + } + + return getMusicArtistRemoteSearchResultsCall(artistInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music artist remote search. + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicArtistRemoteSearchResults(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicArtistRemoteSearchResultsWithHttpInfo(artistInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music artist remote search. + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicArtistRemoteSearchResultsWithHttpInfo(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicArtistRemoteSearchResultsValidateBeforeCall(artistInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music artist remote search. (asynchronously) + * + * @param artistInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music artist remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicArtistRemoteSearchResultsAsync(ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicArtistRemoteSearchResultsValidateBeforeCall(artistInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicVideoRemoteSearchResults + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicVideoRemoteSearchResultsCall(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = musicVideoInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/MusicVideo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicVideoRemoteSearchResultsValidateBeforeCall(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'musicVideoInfoRemoteSearchQuery' is set + if (musicVideoInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'musicVideoInfoRemoteSearchQuery' when calling getMusicVideoRemoteSearchResults(Async)"); + } + + return getMusicVideoRemoteSearchResultsCall(musicVideoInfoRemoteSearchQuery, _callback); + + } + + /** + * Get music video remote search. + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMusicVideoRemoteSearchResults(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getMusicVideoRemoteSearchResultsWithHttpInfo(musicVideoInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get music video remote search. + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMusicVideoRemoteSearchResultsWithHttpInfo(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getMusicVideoRemoteSearchResultsValidateBeforeCall(musicVideoInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get music video remote search. (asynchronously) + * + * @param musicVideoInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music video remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicVideoRemoteSearchResultsAsync(MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicVideoRemoteSearchResultsValidateBeforeCall(musicVideoInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersonRemoteSearchResults + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonRemoteSearchResultsCall(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = personLookupInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Person"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonRemoteSearchResultsValidateBeforeCall(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'personLookupInfoRemoteSearchQuery' is set + if (personLookupInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'personLookupInfoRemoteSearchQuery' when calling getPersonRemoteSearchResults(Async)"); + } + + return getPersonRemoteSearchResultsCall(personLookupInfoRemoteSearchQuery, _callback); + + } + + /** + * Get person remote search. + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPersonRemoteSearchResults(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getPersonRemoteSearchResultsWithHttpInfo(personLookupInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get person remote search. + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPersonRemoteSearchResultsWithHttpInfo(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getPersonRemoteSearchResultsValidateBeforeCall(personLookupInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person remote search. (asynchronously) + * + * @param personLookupInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Person remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonRemoteSearchResultsAsync(PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonRemoteSearchResultsValidateBeforeCall(personLookupInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesRemoteSearchResults + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesRemoteSearchResultsCall(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Series"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesRemoteSearchResultsValidateBeforeCall(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesInfoRemoteSearchQuery' is set + if (seriesInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'seriesInfoRemoteSearchQuery' when calling getSeriesRemoteSearchResults(Async)"); + } + + return getSeriesRemoteSearchResultsCall(seriesInfoRemoteSearchQuery, _callback); + + } + + /** + * Get series remote search. + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSeriesRemoteSearchResults(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getSeriesRemoteSearchResultsWithHttpInfo(seriesInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get series remote search. + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSeriesRemoteSearchResultsWithHttpInfo(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getSeriesRemoteSearchResultsValidateBeforeCall(seriesInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get series remote search. (asynchronously) + * + * @param seriesInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Series remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesRemoteSearchResultsAsync(SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesRemoteSearchResultsValidateBeforeCall(seriesInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTrailerRemoteSearchResults + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailerRemoteSearchResultsCall(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = trailerInfoRemoteSearchQuery; + + // create path and map variables + String localVarPath = "/Items/RemoteSearch/Trailer"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrailerRemoteSearchResultsValidateBeforeCall(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'trailerInfoRemoteSearchQuery' is set + if (trailerInfoRemoteSearchQuery == null) { + throw new ApiException("Missing the required parameter 'trailerInfoRemoteSearchQuery' when calling getTrailerRemoteSearchResults(Async)"); + } + + return getTrailerRemoteSearchResultsCall(trailerInfoRemoteSearchQuery, _callback); + + } + + /** + * Get trailer remote search. + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @return List<RemoteSearchResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTrailerRemoteSearchResults(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery) throws ApiException { + ApiResponse> localVarResp = getTrailerRemoteSearchResultsWithHttpInfo(trailerInfoRemoteSearchQuery); + return localVarResp.getData(); + } + + /** + * Get trailer remote search. + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @return ApiResponse<List<RemoteSearchResult>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTrailerRemoteSearchResultsWithHttpInfo(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery) throws ApiException { + okhttp3.Call localVarCall = getTrailerRemoteSearchResultsValidateBeforeCall(trailerInfoRemoteSearchQuery, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get trailer remote search. (asynchronously) + * + * @param trailerInfoRemoteSearchQuery Remote search query. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Trailer remote search executed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailerRemoteSearchResultsAsync(TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrailerRemoteSearchResultsValidateBeforeCall(trailerInfoRemoteSearchQuery, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemRefreshApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemRefreshApi.java new file mode 100644 index 0000000000000..5664f54bc7264 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemRefreshApi.java @@ -0,0 +1,246 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.MetadataRefreshMode; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemRefreshApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemRefreshApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemRefreshApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for refreshItem + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshItemCall(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Refresh" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (metadataRefreshMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("metadataRefreshMode", metadataRefreshMode)); + } + + if (imageRefreshMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageRefreshMode", imageRefreshMode)); + } + + if (replaceAllMetadata != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllMetadata", replaceAllMetadata)); + } + + if (replaceAllImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("replaceAllImages", replaceAllImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call refreshItemValidateBeforeCall(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling refreshItem(Async)"); + } + + return refreshItemCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, _callback); + + } + + /** + * Refreshes metadata for an item. + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void refreshItem(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages) throws ApiException { + refreshItemWithHttpInfo(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages); + } + + /** + * Refreshes metadata for an item. + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse refreshItemWithHttpInfo(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages) throws ApiException { + okhttp3.Call localVarCall = refreshItemValidateBeforeCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Refreshes metadata for an item. (asynchronously) + * + * @param itemId Item id. (required) + * @param metadataRefreshMode (Optional) Specifies the metadata refresh mode. (optional, default to None) + * @param imageRefreshMode (Optional) Specifies the image refresh mode. (optional, default to None) + * @param replaceAllMetadata (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param replaceAllImages (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item metadata refresh queued. -
404 Item to refresh not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshItemAsync(UUID itemId, MetadataRefreshMode metadataRefreshMode, MetadataRefreshMode imageRefreshMode, Boolean replaceAllMetadata, Boolean replaceAllImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = refreshItemValidateBeforeCall(itemId, metadataRefreshMode, imageRefreshMode, replaceAllMetadata, replaceAllImages, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemUpdateApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemUpdateApi.java new file mode 100644 index 0000000000000..bd785561f0921 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemUpdateApi.java @@ -0,0 +1,513 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.MetadataEditorInfo; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemUpdateApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemUpdateApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemUpdateApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMetadataEditorInfo + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMetadataEditorInfoCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/MetadataEditor" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMetadataEditorInfoValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getMetadataEditorInfo(Async)"); + } + + return getMetadataEditorInfoCall(itemId, _callback); + + } + + /** + * Gets metadata editor info for an item. + * + * @param itemId The item id. (required) + * @return MetadataEditorInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public MetadataEditorInfo getMetadataEditorInfo(UUID itemId) throws ApiException { + ApiResponse localVarResp = getMetadataEditorInfoWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets metadata editor info for an item. + * + * @param itemId The item id. (required) + * @return ApiResponse<MetadataEditorInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMetadataEditorInfoWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getMetadataEditorInfoValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets metadata editor info for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item metadata editor returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMetadataEditorInfoAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMetadataEditorInfoValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateItem + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemCall(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = baseItemDto; + + // create path and map variables + String localVarPath = "/Items/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemValidateBeforeCall(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItem(Async)"); + } + + // verify the required parameter 'baseItemDto' is set + if (baseItemDto == null) { + throw new ApiException("Missing the required parameter 'baseItemDto' when calling updateItem(Async)"); + } + + return updateItemCall(itemId, baseItemDto, _callback); + + } + + /** + * Updates an item. + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItem(UUID itemId, BaseItemDto baseItemDto) throws ApiException { + updateItemWithHttpInfo(itemId, baseItemDto); + } + + /** + * Updates an item. + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemWithHttpInfo(UUID itemId, BaseItemDto baseItemDto) throws ApiException { + okhttp3.Call localVarCall = updateItemValidateBeforeCall(itemId, baseItemDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param baseItemDto The new item properties. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemAsync(UUID itemId, BaseItemDto baseItemDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemValidateBeforeCall(itemId, baseItemDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateItemContentType + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemContentTypeCall(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ContentType" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (contentType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("contentType", contentType)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateItemContentTypeValidateBeforeCall(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateItemContentType(Async)"); + } + + return updateItemContentTypeCall(itemId, contentType, _callback); + + } + + /** + * Updates an item's content type. + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateItemContentType(UUID itemId, String contentType) throws ApiException { + updateItemContentTypeWithHttpInfo(itemId, contentType); + } + + /** + * Updates an item's content type. + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateItemContentTypeWithHttpInfo(UUID itemId, String contentType) throws ApiException { + okhttp3.Call localVarCall = updateItemContentTypeValidateBeforeCall(itemId, contentType, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates an item's content type. (asynchronously) + * + * @param itemId The item id. (required) + * @param contentType The content type of the item. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Item content type updated. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateItemContentTypeAsync(UUID itemId, String contentType, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateItemContentTypeValidateBeforeCall(itemId, contentType, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemsApi.java new file mode 100644 index 0000000000000..e2ecc6a35654b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ItemsApi.java @@ -0,0 +1,1950 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.LocationType; +import java.time.OffsetDateTime; +import org.openapitools.client.model.SeriesStatus; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; +import org.openapitools.client.model.VideoType; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ItemsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ItemsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ItemsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getItems + * @param userId The user id supplied as query parameter. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxOfficialRating", maxOfficialRating)); + } + + if (hasThemeSong != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeSong", hasThemeSong)); + } + + if (hasThemeVideo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeVideo", hasThemeVideo)); + } + + if (hasSubtitles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSubtitles", hasSubtitles)); + } + + if (hasSpecialFeature != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSpecialFeature", hasSpecialFeature)); + } + + if (hasTrailer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTrailer", hasTrailer)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (parentIndexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentIndexNumber", parentIndexNumber)); + } + + if (hasParentalRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasParentalRating", hasParentalRating)); + } + + if (isHd != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHd", isHd)); + } + + if (is4K != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is4K", is4K)); + } + + if (locationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "locationTypes", locationTypes)); + } + + if (excludeLocationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeLocationTypes", excludeLocationTypes)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (isUnaired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isUnaired", isUnaired)); + } + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (minCriticRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCriticRating", minCriticRating)); + } + + if (minPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minPremiereDate", minPremiereDate)); + } + + if (minDateLastSaved != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSaved", minDateLastSaved)); + } + + if (minDateLastSavedForUser != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSavedForUser", minDateLastSavedForUser)); + } + + if (maxPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxPremiereDate", maxPremiereDate)); + } + + if (hasOverview != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOverview", hasOverview)); + } + + if (hasImdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasImdbId", hasImdbId)); + } + + if (hasTmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTmdbId", hasTmdbId)); + } + + if (hasTvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTvdbId", hasTvdbId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (excludeItemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemIds", excludeItemIds)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (imageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "imageTypes", imageTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (artists != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artists", artists)); + } + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (artistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artistIds", artistIds)); + } + + if (albumArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumArtistIds", albumArtistIds)); + } + + if (contributingArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "contributingArtistIds", contributingArtistIds)); + } + + if (albums != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albums", albums)); + } + + if (albumIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumIds", albumIds)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (videoTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "videoTypes", videoTypes)); + } + + if (minOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minOfficialRating", minOfficialRating)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + if (isPlaceHolder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlaceHolder", isPlaceHolder)); + } + + if (hasOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOfficialRating", hasOfficialRating)); + } + + if (collapseBoxSetItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collapseBoxSetItems", collapseBoxSetItems)); + } + + if (minWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minWidth", minWidth)); + } + + if (minHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minHeight", minHeight)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (is3D != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is3D", is3D)); + } + + if (seriesStatus != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "seriesStatus", seriesStatus)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemsValidateBeforeCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getItemsCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getItems(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getItemsWithHttpInfo(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + return localVarResp.getData(); + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemsWithHttpInfo(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getItemsValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets items based on a query. (asynchronously) + * + * @param userId The user id supplied as query parameter. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsAsync(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemsValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemsByUserId + * @param userId The user id supplied as query parameter. (required) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsByUserIdCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (maxOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxOfficialRating", maxOfficialRating)); + } + + if (hasThemeSong != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeSong", hasThemeSong)); + } + + if (hasThemeVideo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeVideo", hasThemeVideo)); + } + + if (hasSubtitles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSubtitles", hasSubtitles)); + } + + if (hasSpecialFeature != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSpecialFeature", hasSpecialFeature)); + } + + if (hasTrailer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTrailer", hasTrailer)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (parentIndexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentIndexNumber", parentIndexNumber)); + } + + if (hasParentalRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasParentalRating", hasParentalRating)); + } + + if (isHd != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHd", isHd)); + } + + if (is4K != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is4K", is4K)); + } + + if (locationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "locationTypes", locationTypes)); + } + + if (excludeLocationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeLocationTypes", excludeLocationTypes)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (isUnaired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isUnaired", isUnaired)); + } + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (minCriticRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCriticRating", minCriticRating)); + } + + if (minPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minPremiereDate", minPremiereDate)); + } + + if (minDateLastSaved != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSaved", minDateLastSaved)); + } + + if (minDateLastSavedForUser != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSavedForUser", minDateLastSavedForUser)); + } + + if (maxPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxPremiereDate", maxPremiereDate)); + } + + if (hasOverview != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOverview", hasOverview)); + } + + if (hasImdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasImdbId", hasImdbId)); + } + + if (hasTmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTmdbId", hasTmdbId)); + } + + if (hasTvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTvdbId", hasTvdbId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (excludeItemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemIds", excludeItemIds)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (imageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "imageTypes", imageTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (artists != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artists", artists)); + } + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (artistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artistIds", artistIds)); + } + + if (albumArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumArtistIds", albumArtistIds)); + } + + if (contributingArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "contributingArtistIds", contributingArtistIds)); + } + + if (albums != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albums", albums)); + } + + if (albumIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumIds", albumIds)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (videoTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "videoTypes", videoTypes)); + } + + if (minOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minOfficialRating", minOfficialRating)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + if (isPlaceHolder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlaceHolder", isPlaceHolder)); + } + + if (hasOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOfficialRating", hasOfficialRating)); + } + + if (collapseBoxSetItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collapseBoxSetItems", collapseBoxSetItems)); + } + + if (minWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minWidth", minWidth)); + } + + if (minHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minHeight", minHeight)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (is3D != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is3D", is3D)); + } + + if (seriesStatus != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "seriesStatus", seriesStatus)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemsByUserIdValidateBeforeCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getItemsByUserId(Async)"); + } + + return getItemsByUserIdCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter. (required) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getItemsByUserId(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getItemsByUserIdWithHttpInfo(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + return localVarResp.getData(); + } + + /** + * Gets items based on a query. + * + * @param userId The user id supplied as query parameter. (required) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemsByUserIdWithHttpInfo(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getItemsByUserIdValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets items based on a query. (asynchronously) + * + * @param userId The user id supplied as query parameter. (required) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemsByUserIdAsync(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemsByUserIdValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getResumeItems + * @param userId The user id. (required) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getResumeItemsCall(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/Resume" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (excludeActiveSessions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("excludeActiveSessions", excludeActiveSessions)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getResumeItemsValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getResumeItems(Async)"); + } + + return getResumeItemsCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, _callback); + + } + + /** + * Gets items based on a query. + * + * @param userId The user id. (required) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getResumeItems(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions) throws ApiException { + ApiResponse localVarResp = getResumeItemsWithHttpInfo(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions); + return localVarResp.getData(); + } + + /** + * Gets items based on a query. + * + * @param userId The user id. (required) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getResumeItemsWithHttpInfo(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions) throws ApiException { + okhttp3.Call localVarCall = getResumeItemsValidateBeforeCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets items based on a query. (asynchronously) + * + * @param userId The user id. (required) + * @param startIndex The start index. (optional) + * @param limit The item limit. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param excludeActiveSessions Optional. Whether to exclude the currently active sessions. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getResumeItemsAsync(UUID userId, Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List mediaTypes, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludeItemTypes, List includeItemTypes, Boolean enableTotalRecordCount, Boolean enableImages, Boolean excludeActiveSessions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getResumeItemsValidateBeforeCall(userId, startIndex, limit, searchTerm, parentId, fields, mediaTypes, enableUserData, imageTypeLimit, enableImageTypes, excludeItemTypes, includeItemTypes, enableTotalRecordCount, enableImages, excludeActiveSessions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryApi.java new file mode 100644 index 0000000000000..b4e3aaaa4b62c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryApi.java @@ -0,0 +1,3743 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AllThemeMediaResult; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import java.io.File; +import org.openapitools.client.model.ItemCounts; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.LibraryOptionsResultDto; +import org.openapitools.client.model.MediaUpdateInfoDto; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.ThemeMediaResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LibraryApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LibraryApi() { + this(Configuration.getDefaultApiClient()); + } + + public LibraryApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteItem + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteItem(Async)"); + } + + return deleteItemCall(itemId, _callback); + + } + + /** + * Deletes an item from the library and filesystem. + * + * @param itemId The item id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public void deleteItem(UUID itemId) throws ApiException { + deleteItemWithHttpInfo(itemId); + } + + /** + * Deletes an item from the library and filesystem. + * + * @param itemId The item id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public ApiResponse deleteItemWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteItemValidateBeforeCall(itemId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an item from the library and filesystem. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemValidateBeforeCall(itemId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteItems + * @param ids The item ids. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemsCall(List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteItemsValidateBeforeCall(List ids, final ApiCallback _callback) throws ApiException { + return deleteItemsCall(ids, _callback); + + } + + /** + * Deletes items from the library and filesystem. + * + * @param ids The item ids. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public void deleteItems(List ids) throws ApiException { + deleteItemsWithHttpInfo(ids); + } + + /** + * Deletes items from the library and filesystem. + * + * @param ids The item ids. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public ApiResponse deleteItemsWithHttpInfo(List ids) throws ApiException { + okhttp3.Call localVarCall = deleteItemsValidateBeforeCall(ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes items from the library and filesystem. (asynchronously) + * + * @param ids The item ids. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items deleted. -
401 Unauthorized access. -
403 Forbidden -
+ */ + public okhttp3.Call deleteItemsAsync(List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteItemsValidateBeforeCall(ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAncestors + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAncestorsCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Ancestors" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAncestorsValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAncestors(Async)"); + } + + return getAncestorsCall(itemId, userId, _callback); + + } + + /** + * Gets all parents of an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAncestors(UUID itemId, UUID userId) throws ApiException { + ApiResponse> localVarResp = getAncestorsWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets all parents of an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAncestorsWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getAncestorsValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all parents of an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Item parents returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAncestorsAsync(UUID itemId, UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAncestorsValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCriticReviews + * @param itemId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getCriticReviewsCall(String itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/CriticReviews" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getCriticReviewsValidateBeforeCall(String itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getCriticReviews(Async)"); + } + + return getCriticReviewsCall(itemId, _callback); + + } + + /** + * Gets critic review for an item. + * + * @param itemId (required) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getCriticReviews(String itemId) throws ApiException { + ApiResponse localVarResp = getCriticReviewsWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets critic review for an item. + * + * @param itemId (required) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getCriticReviewsWithHttpInfo(String itemId) throws ApiException { + okhttp3.Call localVarCall = getCriticReviewsValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets critic review for an item. (asynchronously) + * + * @param itemId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Critic reviews returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getCriticReviewsAsync(String itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getCriticReviewsValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDownload + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDownloadCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Download" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDownloadValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getDownload(Async)"); + } + + return getDownloadCall(itemId, _callback); + + } + + /** + * Downloads item media. + * + * @param itemId The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getDownload(UUID itemId) throws ApiException { + ApiResponse localVarResp = getDownloadWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Downloads item media. + * + * @param itemId The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDownloadWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getDownloadValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Downloads item media. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Media downloaded. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDownloadAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDownloadValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFile + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFileCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/File" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "audio/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFileValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getFile(Async)"); + } + + return getFileCall(itemId, _callback); + + } + + /** + * Get the original file of an item. + * + * @param itemId The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getFile(UUID itemId) throws ApiException { + ApiResponse localVarResp = getFileWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Get the original file of an item. + * + * @param itemId The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFileWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getFileValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get the original file of an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 File stream returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFileAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFileValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItemCounts + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCountsCall(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/Counts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemCountsValidateBeforeCall(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + return getItemCountsCall(userId, isFavorite, _callback); + + } + + /** + * Get item counts. + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @return ItemCounts + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ItemCounts getItemCounts(UUID userId, Boolean isFavorite) throws ApiException { + ApiResponse localVarResp = getItemCountsWithHttpInfo(userId, isFavorite); + return localVarResp.getData(); + } + + /** + * Get item counts. + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @return ApiResponse<ItemCounts> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemCountsWithHttpInfo(UUID userId, Boolean isFavorite) throws ApiException { + okhttp3.Call localVarCall = getItemCountsValidateBeforeCall(userId, isFavorite, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get item counts. (asynchronously) + * + * @param userId Optional. Get counts from a specific user's library. (optional) + * @param isFavorite Optional. Get counts of favorite items. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item counts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCountsAsync(UUID userId, Boolean isFavorite, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemCountsValidateBeforeCall(userId, isFavorite, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLibraryOptionsInfo + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLibraryOptionsInfoCall(String libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Libraries/AvailableOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (libraryContentType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("libraryContentType", libraryContentType)); + } + + if (isNewLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNewLibrary", isNewLibrary)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLibraryOptionsInfoValidateBeforeCall(String libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + return getLibraryOptionsInfoCall(libraryContentType, isNewLibrary, _callback); + + } + + /** + * Gets the library options info. + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @return LibraryOptionsResultDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public LibraryOptionsResultDto getLibraryOptionsInfo(String libraryContentType, Boolean isNewLibrary) throws ApiException { + ApiResponse localVarResp = getLibraryOptionsInfoWithHttpInfo(libraryContentType, isNewLibrary); + return localVarResp.getData(); + } + + /** + * Gets the library options info. + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @return ApiResponse<LibraryOptionsResultDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLibraryOptionsInfoWithHttpInfo(String libraryContentType, Boolean isNewLibrary) throws ApiException { + okhttp3.Call localVarCall = getLibraryOptionsInfoValidateBeforeCall(libraryContentType, isNewLibrary, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the library options info. (asynchronously) + * + * @param libraryContentType Library content type. (optional) + * @param isNewLibrary Whether this is a new library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Library options info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLibraryOptionsInfoAsync(String libraryContentType, Boolean isNewLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLibraryOptionsInfoValidateBeforeCall(libraryContentType, isNewLibrary, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMediaFolders + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaFoldersCall(Boolean isHidden, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/MediaFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMediaFoldersValidateBeforeCall(Boolean isHidden, final ApiCallback _callback) throws ApiException { + return getMediaFoldersCall(isHidden, _callback); + + } + + /** + * Gets all user media folders. + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getMediaFolders(Boolean isHidden) throws ApiException { + ApiResponse localVarResp = getMediaFoldersWithHttpInfo(isHidden); + return localVarResp.getData(); + } + + /** + * Gets all user media folders. + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMediaFoldersWithHttpInfo(Boolean isHidden) throws ApiException { + okhttp3.Call localVarCall = getMediaFoldersValidateBeforeCall(isHidden, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all user media folders. (asynchronously) + * + * @param isHidden Optional. Filter by folders that are marked hidden, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMediaFoldersAsync(Boolean isHidden, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMediaFoldersValidateBeforeCall(isHidden, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPhysicalPaths + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPhysicalPathsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/PhysicalPaths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPhysicalPathsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPhysicalPathsCall(_callback); + + } + + /** + * Gets a list of physical paths from virtual folders. + * + * @return List<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPhysicalPaths() throws ApiException { + ApiResponse> localVarResp = getPhysicalPathsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of physical paths from virtual folders. + * + * @return ApiResponse<List<String>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPhysicalPathsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPhysicalPathsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of physical paths from virtual folders. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Physical paths returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPhysicalPathsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPhysicalPathsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarAlbums + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarAlbumsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Albums/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarAlbumsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarAlbums(Async)"); + } + + return getSimilarAlbumsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarAlbums(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarAlbumsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarAlbumsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarAlbumsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarAlbumsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarAlbumsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarArtists + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarArtistsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Artists/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarArtistsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarArtists(Async)"); + } + + return getSimilarArtistsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarArtists(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarArtistsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarArtistsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarArtistsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarArtistsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarArtistsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarItems + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarItemsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarItemsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarItems(Async)"); + } + + return getSimilarItemsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarItems(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarItemsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarItemsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarItemsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarItemsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarItemsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarMovies + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarMoviesCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Movies/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarMoviesValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarMovies(Async)"); + } + + return getSimilarMoviesCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarMovies(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarMoviesWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarMoviesWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarMoviesValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarMoviesAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarMoviesValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarShows + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarShowsCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarShowsValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarShows(Async)"); + } + + return getSimilarShowsCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarShows(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarShowsWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarShowsWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarShowsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarShowsAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarShowsValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSimilarTrailers + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarTrailersCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Trailers/{itemId}/Similar" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSimilarTrailersValidateBeforeCall(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSimilarTrailers(Async)"); + } + + return getSimilarTrailersCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSimilarTrailers(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + ApiResponse localVarResp = getSimilarTrailersWithHttpInfo(itemId, excludeArtistIds, userId, limit, fields); + return localVarResp.getData(); + } + + /** + * Gets similar items. + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSimilarTrailersWithHttpInfo(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields) throws ApiException { + okhttp3.Call localVarCall = getSimilarTrailersValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets similar items. (asynchronously) + * + * @param itemId The item id. (required) + * @param excludeArtistIds Exclude artist ids. (optional) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Similar items returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSimilarTrailersAsync(UUID itemId, List excludeArtistIds, UUID userId, Integer limit, List fields, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSimilarTrailersValidateBeforeCall(itemId, excludeArtistIds, userId, limit, fields, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeMedia + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeMediaCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeMedia" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeMediaValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeMedia(Async)"); + } + + return getThemeMediaCall(itemId, userId, inheritFromParent, _callback); + + } + + /** + * Get theme songs and videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return AllThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public AllThemeMediaResult getThemeMedia(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + ApiResponse localVarResp = getThemeMediaWithHttpInfo(itemId, userId, inheritFromParent); + return localVarResp.getData(); + } + + /** + * Get theme songs and videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return ApiResponse<AllThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeMediaWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + okhttp3.Call localVarCall = getThemeMediaValidateBeforeCall(itemId, userId, inheritFromParent, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme songs and videos for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs and videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeMediaAsync(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeMediaValidateBeforeCall(itemId, userId, inheritFromParent, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeSongs + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeSongsCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeSongs" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeSongsValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeSongs(Async)"); + } + + return getThemeSongsCall(itemId, userId, inheritFromParent, _callback); + + } + + /** + * Get theme songs for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return ThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ThemeMediaResult getThemeSongs(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + ApiResponse localVarResp = getThemeSongsWithHttpInfo(itemId, userId, inheritFromParent); + return localVarResp.getData(); + } + + /** + * Get theme songs for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return ApiResponse<ThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeSongsWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + okhttp3.Call localVarCall = getThemeSongsValidateBeforeCall(itemId, userId, inheritFromParent, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme songs for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme songs returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeSongsAsync(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeSongsValidateBeforeCall(itemId, userId, inheritFromParent, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getThemeVideos + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeVideosCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/ThemeVideos" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (inheritFromParent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("inheritFromParent", inheritFromParent)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getThemeVideosValidateBeforeCall(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getThemeVideos(Async)"); + } + + return getThemeVideosCall(itemId, userId, inheritFromParent, _callback); + + } + + /** + * Get theme videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return ThemeMediaResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ThemeMediaResult getThemeVideos(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + ApiResponse localVarResp = getThemeVideosWithHttpInfo(itemId, userId, inheritFromParent); + return localVarResp.getData(); + } + + /** + * Get theme videos for an item. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @return ApiResponse<ThemeMediaResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getThemeVideosWithHttpInfo(UUID itemId, UUID userId, Boolean inheritFromParent) throws ApiException { + okhttp3.Call localVarCall = getThemeVideosValidateBeforeCall(itemId, userId, inheritFromParent, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get theme videos for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param inheritFromParent Optional. Determines whether or not parent items should be searched for theme media. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Theme videos returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getThemeVideosAsync(UUID itemId, UUID userId, Boolean inheritFromParent, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getThemeVideosValidateBeforeCall(itemId, userId, inheritFromParent, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postAddedMovies + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedMoviesCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Movies/Added"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tmdbId", tmdbId)); + } + + if (imdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imdbId", imdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postAddedMoviesValidateBeforeCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + return postAddedMoviesCall(tmdbId, imdbId, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postAddedMovies(String tmdbId, String imdbId) throws ApiException { + postAddedMoviesWithHttpInfo(tmdbId, imdbId); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postAddedMoviesWithHttpInfo(String tmdbId, String imdbId) throws ApiException { + okhttp3.Call localVarCall = postAddedMoviesValidateBeforeCall(tmdbId, imdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedMoviesAsync(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postAddedMoviesValidateBeforeCall(tmdbId, imdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postAddedSeries + * @param tvdbId The tvdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedSeriesCall(String tvdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Series/Added"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tvdbId", tvdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postAddedSeriesValidateBeforeCall(String tvdbId, final ApiCallback _callback) throws ApiException { + return postAddedSeriesCall(tvdbId, _callback); + + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postAddedSeries(String tvdbId) throws ApiException { + postAddedSeriesWithHttpInfo(tvdbId); + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postAddedSeriesWithHttpInfo(String tvdbId) throws ApiException { + okhttp3.Call localVarCall = postAddedSeriesValidateBeforeCall(tvdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new episodes of a series have been added by an external source. (asynchronously) + * + * @param tvdbId The tvdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postAddedSeriesAsync(String tvdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postAddedSeriesValidateBeforeCall(tvdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedMedia + * @param mediaUpdateInfoDto The update paths. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMediaCall(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = mediaUpdateInfoDto; + + // create path and map variables + String localVarPath = "/Library/Media/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedMediaValidateBeforeCall(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'mediaUpdateInfoDto' is set + if (mediaUpdateInfoDto == null) { + throw new ApiException("Missing the required parameter 'mediaUpdateInfoDto' when calling postUpdatedMedia(Async)"); + } + + return postUpdatedMediaCall(mediaUpdateInfoDto, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param mediaUpdateInfoDto The update paths. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedMedia(MediaUpdateInfoDto mediaUpdateInfoDto) throws ApiException { + postUpdatedMediaWithHttpInfo(mediaUpdateInfoDto); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param mediaUpdateInfoDto The update paths. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedMediaWithHttpInfo(MediaUpdateInfoDto mediaUpdateInfoDto) throws ApiException { + okhttp3.Call localVarCall = postUpdatedMediaValidateBeforeCall(mediaUpdateInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param mediaUpdateInfoDto The update paths. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMediaAsync(MediaUpdateInfoDto mediaUpdateInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedMediaValidateBeforeCall(mediaUpdateInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedMovies + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMoviesCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Movies/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tmdbId", tmdbId)); + } + + if (imdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imdbId", imdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedMoviesValidateBeforeCall(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + return postUpdatedMoviesCall(tmdbId, imdbId, _callback); + + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedMovies(String tmdbId, String imdbId) throws ApiException { + postUpdatedMoviesWithHttpInfo(tmdbId, imdbId); + } + + /** + * Reports that new movies have been added by an external source. + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedMoviesWithHttpInfo(String tmdbId, String imdbId) throws ApiException { + okhttp3.Call localVarCall = postUpdatedMoviesValidateBeforeCall(tmdbId, imdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new movies have been added by an external source. (asynchronously) + * + * @param tmdbId The tmdbId. (optional) + * @param imdbId The imdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedMoviesAsync(String tmdbId, String imdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedMoviesValidateBeforeCall(tmdbId, imdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postUpdatedSeries + * @param tvdbId The tvdbId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedSeriesCall(String tvdbId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Series/Updated"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (tvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tvdbId", tvdbId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postUpdatedSeriesValidateBeforeCall(String tvdbId, final ApiCallback _callback) throws ApiException { + return postUpdatedSeriesCall(tvdbId, _callback); + + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postUpdatedSeries(String tvdbId) throws ApiException { + postUpdatedSeriesWithHttpInfo(tvdbId); + } + + /** + * Reports that new episodes of a series have been added by an external source. + * + * @param tvdbId The tvdbId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postUpdatedSeriesWithHttpInfo(String tvdbId) throws ApiException { + okhttp3.Call localVarCall = postUpdatedSeriesValidateBeforeCall(tvdbId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that new episodes of a series have been added by an external source. (asynchronously) + * + * @param tvdbId The tvdbId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Report success. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postUpdatedSeriesAsync(String tvdbId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postUpdatedSeriesValidateBeforeCall(tvdbId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for refreshLibrary + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshLibraryCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/Refresh"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call refreshLibraryValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return refreshLibraryCall(_callback); + + } + + /** + * Starts a library scan. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public void refreshLibrary() throws ApiException { + refreshLibraryWithHttpInfo(); + } + + /** + * Starts a library scan. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse refreshLibraryWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = refreshLibraryValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Starts a library scan. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library scan started. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call refreshLibraryAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = refreshLibraryValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryStructureApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryStructureApi.java new file mode 100644 index 0000000000000..8afc657d3fed4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LibraryStructureApi.java @@ -0,0 +1,1201 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AddVirtualFolderDto; +import org.openapitools.client.model.CollectionTypeOptions; +import org.openapitools.client.model.MediaPathDto; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.UpdateLibraryOptionsDto; +import org.openapitools.client.model.UpdateMediaPathRequestDto; +import org.openapitools.client.model.VirtualFolderInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LibraryStructureApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LibraryStructureApi() { + this(Configuration.getDefaultApiClient()); + } + + public LibraryStructureApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addMediaPath + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addMediaPathCall(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = mediaPathDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addMediaPathValidateBeforeCall(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'mediaPathDto' is set + if (mediaPathDto == null) { + throw new ApiException("Missing the required parameter 'mediaPathDto' when calling addMediaPath(Async)"); + } + + return addMediaPathCall(mediaPathDto, refreshLibrary, _callback); + + } + + /** + * Add a media path to a library. + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addMediaPath(MediaPathDto mediaPathDto, Boolean refreshLibrary) throws ApiException { + addMediaPathWithHttpInfo(mediaPathDto, refreshLibrary); + } + + /** + * Add a media path to a library. + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addMediaPathWithHttpInfo(MediaPathDto mediaPathDto, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = addMediaPathValidateBeforeCall(mediaPathDto, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Add a media path to a library. (asynchronously) + * + * @param mediaPathDto The media path dto. (required) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addMediaPathAsync(MediaPathDto mediaPathDto, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addMediaPathValidateBeforeCall(mediaPathDto, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for addVirtualFolder + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addVirtualFolderCall(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = addVirtualFolderDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (collectionType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collectionType", collectionType)); + } + + if (paths != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "paths", paths)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addVirtualFolderValidateBeforeCall(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + return addVirtualFolderCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, _callback); + + } + + /** + * Adds a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addVirtualFolder(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto) throws ApiException { + addVirtualFolderWithHttpInfo(name, collectionType, paths, refreshLibrary, addVirtualFolderDto); + } + + /** + * Adds a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addVirtualFolderWithHttpInfo(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto) throws ApiException { + okhttp3.Call localVarCall = addVirtualFolderValidateBeforeCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds a virtual folder. (asynchronously) + * + * @param name The name of the virtual folder. (optional) + * @param collectionType The type of the collection. (optional) + * @param paths The paths of the virtual folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param addVirtualFolderDto The library options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder added. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addVirtualFolderAsync(String name, CollectionTypeOptions collectionType, List paths, Boolean refreshLibrary, AddVirtualFolderDto addVirtualFolderDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addVirtualFolderValidateBeforeCall(name, collectionType, paths, refreshLibrary, addVirtualFolderDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getVirtualFolders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVirtualFoldersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVirtualFoldersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getVirtualFoldersCall(_callback); + + } + + /** + * Gets all virtual folders. + * + * @return List<VirtualFolderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getVirtualFolders() throws ApiException { + ApiResponse> localVarResp = getVirtualFoldersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all virtual folders. + * + * @return ApiResponse<List<VirtualFolderInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getVirtualFoldersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getVirtualFoldersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all virtual folders. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Virtual folders retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getVirtualFoldersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getVirtualFoldersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for removeMediaPath + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeMediaPathCall(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (path != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("path", path)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeMediaPathValidateBeforeCall(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return removeMediaPathCall(name, path, refreshLibrary, _callback); + + } + + /** + * Remove a media path. + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeMediaPath(String name, String path, Boolean refreshLibrary) throws ApiException { + removeMediaPathWithHttpInfo(name, path, refreshLibrary); + } + + /** + * Remove a media path. + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeMediaPathWithHttpInfo(String name, String path, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = removeMediaPathValidateBeforeCall(name, path, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Remove a media path. (asynchronously) + * + * @param name The name of the library. (optional) + * @param path The path to remove. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeMediaPathAsync(String name, String path, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeMediaPathValidateBeforeCall(name, path, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeVirtualFolder + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeVirtualFolderCall(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeVirtualFolderValidateBeforeCall(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return removeVirtualFolderCall(name, refreshLibrary, _callback); + + } + + /** + * Removes a virtual folder. + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeVirtualFolder(String name, Boolean refreshLibrary) throws ApiException { + removeVirtualFolderWithHttpInfo(name, refreshLibrary); + } + + /** + * Removes a virtual folder. + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeVirtualFolderWithHttpInfo(String name, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = removeVirtualFolderValidateBeforeCall(name, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes a virtual folder. (asynchronously) + * + * @param name The name of the folder. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeVirtualFolderAsync(String name, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeVirtualFolderValidateBeforeCall(name, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for renameVirtualFolder + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call renameVirtualFolderCall(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Name"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (newName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newName", newName)); + } + + if (refreshLibrary != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("refreshLibrary", refreshLibrary)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call renameVirtualFolderValidateBeforeCall(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + return renameVirtualFolderCall(name, newName, refreshLibrary, _callback); + + } + + /** + * Renames a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public void renameVirtualFolder(String name, String newName, Boolean refreshLibrary) throws ApiException { + renameVirtualFolderWithHttpInfo(name, newName, refreshLibrary); + } + + /** + * Renames a virtual folder. + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse renameVirtualFolderWithHttpInfo(String name, String newName, Boolean refreshLibrary) throws ApiException { + okhttp3.Call localVarCall = renameVirtualFolderValidateBeforeCall(name, newName, refreshLibrary, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Renames a virtual folder. (asynchronously) + * + * @param name The name of the virtual folder. (optional) + * @param newName The new name. (optional) + * @param refreshLibrary Whether to refresh the library. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
204 Folder renamed. -
404 Library doesn't exist. -
409 Library already exists. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call renameVirtualFolderAsync(String name, String newName, Boolean refreshLibrary, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = renameVirtualFolderValidateBeforeCall(name, newName, refreshLibrary, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateLibraryOptions + * @param updateLibraryOptionsDto The library name and options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateLibraryOptionsCall(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateLibraryOptionsDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/LibraryOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateLibraryOptionsValidateBeforeCall(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + return updateLibraryOptionsCall(updateLibraryOptionsDto, _callback); + + } + + /** + * Update library options. + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateLibraryOptions(UpdateLibraryOptionsDto updateLibraryOptionsDto) throws ApiException { + updateLibraryOptionsWithHttpInfo(updateLibraryOptionsDto); + } + + /** + * Update library options. + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateLibraryOptionsWithHttpInfo(UpdateLibraryOptionsDto updateLibraryOptionsDto) throws ApiException { + okhttp3.Call localVarCall = updateLibraryOptionsValidateBeforeCall(updateLibraryOptionsDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update library options. (asynchronously) + * + * @param updateLibraryOptionsDto The library name and options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Library updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateLibraryOptionsAsync(UpdateLibraryOptionsDto updateLibraryOptionsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateLibraryOptionsValidateBeforeCall(updateLibraryOptionsDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateMediaPath + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateMediaPathCall(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateMediaPathRequestDto; + + // create path and map variables + String localVarPath = "/Library/VirtualFolders/Paths/Update"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateMediaPathValidateBeforeCall(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'updateMediaPathRequestDto' is set + if (updateMediaPathRequestDto == null) { + throw new ApiException("Missing the required parameter 'updateMediaPathRequestDto' when calling updateMediaPath(Async)"); + } + + return updateMediaPathCall(updateMediaPathRequestDto, _callback); + + } + + /** + * Updates a media path. + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateMediaPath(UpdateMediaPathRequestDto updateMediaPathRequestDto) throws ApiException { + updateMediaPathWithHttpInfo(updateMediaPathRequestDto); + } + + /** + * Updates a media path. + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateMediaPathWithHttpInfo(UpdateMediaPathRequestDto updateMediaPathRequestDto) throws ApiException { + okhttp3.Call localVarCall = updateMediaPathValidateBeforeCall(updateMediaPathRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a media path. (asynchronously) + * + * @param updateMediaPathRequestDto The name of the library and path infos. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Media path updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateMediaPathAsync(UpdateMediaPathRequestDto updateMediaPathRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateMediaPathValidateBeforeCall(updateMediaPathRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LiveTvApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LiveTvApi.java new file mode 100644 index 0000000000000..fe7e7966fdc6b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LiveTvApi.java @@ -0,0 +1,6440 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ChannelMappingOptionsDto; +import org.openapitools.client.model.ChannelType; +import java.io.File; +import org.openapitools.client.model.GetProgramsDto; +import org.openapitools.client.model.GuideInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ListingsProviderInfo; +import org.openapitools.client.model.LiveTvInfo; +import org.openapitools.client.model.NameIdPair; +import java.time.OffsetDateTime; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RecordingStatus; +import org.openapitools.client.model.SeriesTimerInfoDto; +import org.openapitools.client.model.SeriesTimerInfoDtoQueryResult; +import org.openapitools.client.model.SetChannelMappingDto; +import org.openapitools.client.model.SortOrder; +import org.openapitools.client.model.TimerInfoDto; +import org.openapitools.client.model.TimerInfoDtoQueryResult; +import org.openapitools.client.model.TunerChannelMapping; +import org.openapitools.client.model.TunerHostInfo; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LiveTvApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LiveTvApi() { + this(Configuration.getDefaultApiClient()); + } + + public LiveTvApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addListingProvider + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addListingProviderCall(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = listingsProviderInfo; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (pw != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("pw", pw)); + } + + if (validateListings != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("validateListings", validateListings)); + } + + if (validateLogin != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("validateLogin", validateLogin)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addListingProviderValidateBeforeCall(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + return addListingProviderCall(pw, validateListings, validateLogin, listingsProviderInfo, _callback); + + } + + /** + * Adds a listings provider. + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @return ListingsProviderInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ListingsProviderInfo addListingProvider(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo) throws ApiException { + ApiResponse localVarResp = addListingProviderWithHttpInfo(pw, validateListings, validateLogin, listingsProviderInfo); + return localVarResp.getData(); + } + + /** + * Adds a listings provider. + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @return ApiResponse<ListingsProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addListingProviderWithHttpInfo(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo) throws ApiException { + okhttp3.Call localVarCall = addListingProviderValidateBeforeCall(pw, validateListings, validateLogin, listingsProviderInfo, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Adds a listings provider. (asynchronously) + * + * @param pw Password. (optional) + * @param validateListings Validate listings. (optional, default to false) + * @param validateLogin Validate login. (optional, default to false) + * @param listingsProviderInfo New listings info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created listings provider returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addListingProviderAsync(String pw, Boolean validateListings, Boolean validateLogin, ListingsProviderInfo listingsProviderInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addListingProviderValidateBeforeCall(pw, validateListings, validateLogin, listingsProviderInfo, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for addTunerHost + * @param tunerHostInfo New tuner host. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addTunerHostCall(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = tunerHostInfo; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addTunerHostValidateBeforeCall(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + return addTunerHostCall(tunerHostInfo, _callback); + + } + + /** + * Adds a tuner host. + * + * @param tunerHostInfo New tuner host. (optional) + * @return TunerHostInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TunerHostInfo addTunerHost(TunerHostInfo tunerHostInfo) throws ApiException { + ApiResponse localVarResp = addTunerHostWithHttpInfo(tunerHostInfo); + return localVarResp.getData(); + } + + /** + * Adds a tuner host. + * + * @param tunerHostInfo New tuner host. (optional) + * @return ApiResponse<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addTunerHostWithHttpInfo(TunerHostInfo tunerHostInfo) throws ApiException { + okhttp3.Call localVarCall = addTunerHostValidateBeforeCall(tunerHostInfo, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Adds a tuner host. (asynchronously) + * + * @param tunerHostInfo New tuner host. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created tuner host returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addTunerHostAsync(TunerHostInfo tunerHostInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addTunerHostValidateBeforeCall(tunerHostInfo, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for cancelSeriesTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelSeriesTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelSeriesTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling cancelSeriesTimer(Async)"); + } + + return cancelSeriesTimerCall(timerId, _callback); + + } + + /** + * Cancels a live tv series timer. + * + * @param timerId Timer id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelSeriesTimer(String timerId) throws ApiException { + cancelSeriesTimerWithHttpInfo(timerId); + } + + /** + * Cancels a live tv series timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelSeriesTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = cancelSeriesTimerValidateBeforeCall(timerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelSeriesTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelSeriesTimerValidateBeforeCall(timerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for cancelTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling cancelTimer(Async)"); + } + + return cancelTimerCall(timerId, _callback); + + } + + /** + * Cancels a live tv timer. + * + * @param timerId Timer id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelTimer(String timerId) throws ApiException { + cancelTimerWithHttpInfo(timerId); + } + + /** + * Cancels a live tv timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = cancelTimerValidateBeforeCall(timerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a live tv timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelTimerValidateBeforeCall(timerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createSeriesTimer + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createSeriesTimerCall(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesTimerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createSeriesTimerValidateBeforeCall(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + return createSeriesTimerCall(seriesTimerInfoDto, _callback); + + } + + /** + * Creates a live tv series timer. + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createSeriesTimer(SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + createSeriesTimerWithHttpInfo(seriesTimerInfoDto); + } + + /** + * Creates a live tv series timer. + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createSeriesTimerWithHttpInfo(SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + okhttp3.Call localVarCall = createSeriesTimerValidateBeforeCall(seriesTimerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Creates a live tv series timer. (asynchronously) + * + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer info created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createSeriesTimerAsync(SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createSeriesTimerValidateBeforeCall(seriesTimerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createTimer + * @param timerInfoDto New timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createTimerCall(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = timerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/Timers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createTimerValidateBeforeCall(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + return createTimerCall(timerInfoDto, _callback); + + } + + /** + * Creates a live tv timer. + * + * @param timerInfoDto New timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createTimer(TimerInfoDto timerInfoDto) throws ApiException { + createTimerWithHttpInfo(timerInfoDto); + } + + /** + * Creates a live tv timer. + * + * @param timerInfoDto New timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createTimerWithHttpInfo(TimerInfoDto timerInfoDto) throws ApiException { + okhttp3.Call localVarCall = createTimerValidateBeforeCall(timerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Creates a live tv timer. (asynchronously) + * + * @param timerInfoDto New timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createTimerAsync(TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createTimerValidateBeforeCall(timerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteListingProvider + * @param id Listing provider id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteListingProviderCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteListingProviderValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + return deleteListingProviderCall(id, _callback); + + } + + /** + * Delete listing provider. + * + * @param id Listing provider id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteListingProvider(String id) throws ApiException { + deleteListingProviderWithHttpInfo(id); + } + + /** + * Delete listing provider. + * + * @param id Listing provider id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteListingProviderWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteListingProviderValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete listing provider. (asynchronously) + * + * @param id Listing provider id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Listing provider deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteListingProviderAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteListingProviderValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteRecording + * @param recordingId Recording id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteRecordingCall(UUID recordingId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/{recordingId}" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteRecordingValidateBeforeCall(UUID recordingId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling deleteRecording(Async)"); + } + + return deleteRecordingCall(recordingId, _callback); + + } + + /** + * Deletes a live tv recording. + * + * @param recordingId Recording id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteRecording(UUID recordingId) throws ApiException { + deleteRecordingWithHttpInfo(recordingId); + } + + /** + * Deletes a live tv recording. + * + * @param recordingId Recording id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteRecordingWithHttpInfo(UUID recordingId) throws ApiException { + okhttp3.Call localVarCall = deleteRecordingValidateBeforeCall(recordingId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a live tv recording. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Recording deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteRecordingAsync(UUID recordingId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRecordingValidateBeforeCall(recordingId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for deleteTunerHost + * @param id Tuner host id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteTunerHostCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteTunerHostValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + return deleteTunerHostCall(id, _callback); + + } + + /** + * Deletes a tuner host. + * + * @param id Tuner host id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteTunerHost(String id) throws ApiException { + deleteTunerHostWithHttpInfo(id); + } + + /** + * Deletes a tuner host. + * + * @param id Tuner host id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteTunerHostWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = deleteTunerHostValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a tuner host. (asynchronously) + * + * @param id Tuner host id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner host deleted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteTunerHostAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteTunerHostValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for discoverTuners + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discoverTunersCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/Discover"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newDevicesOnly != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newDevicesOnly", newDevicesOnly)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call discoverTunersValidateBeforeCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + return discoverTunersCall(newDevicesOnly, _callback); + + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return List<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List discoverTuners(Boolean newDevicesOnly) throws ApiException { + ApiResponse> localVarResp = discoverTunersWithHttpInfo(newDevicesOnly); + return localVarResp.getData(); + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return ApiResponse<List<TunerHostInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> discoverTunersWithHttpInfo(Boolean newDevicesOnly) throws ApiException { + okhttp3.Call localVarCall = discoverTunersValidateBeforeCall(newDevicesOnly, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Discover tuners. (asynchronously) + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discoverTunersAsync(Boolean newDevicesOnly, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = discoverTunersValidateBeforeCall(newDevicesOnly, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for discvoverTuners + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discvoverTunersCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/Discvover"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (newDevicesOnly != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("newDevicesOnly", newDevicesOnly)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call discvoverTunersValidateBeforeCall(Boolean newDevicesOnly, final ApiCallback _callback) throws ApiException { + return discvoverTunersCall(newDevicesOnly, _callback); + + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return List<TunerHostInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List discvoverTuners(Boolean newDevicesOnly) throws ApiException { + ApiResponse> localVarResp = discvoverTunersWithHttpInfo(newDevicesOnly); + return localVarResp.getData(); + } + + /** + * Discover tuners. + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @return ApiResponse<List<TunerHostInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> discvoverTunersWithHttpInfo(Boolean newDevicesOnly) throws ApiException { + okhttp3.Call localVarCall = discvoverTunersValidateBeforeCall(newDevicesOnly, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Discover tuners. (asynchronously) + * + * @param newDevicesOnly Only discover new tuners. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuners returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call discvoverTunersAsync(Boolean newDevicesOnly, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = discvoverTunersValidateBeforeCall(newDevicesOnly, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannel + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelCall(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Channels/{channelId}" + .replace("{" + "channelId" + "}", localVarApiClient.escapeString(channelId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelValidateBeforeCall(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'channelId' is set + if (channelId == null) { + throw new ApiException("Missing the required parameter 'channelId' when calling getChannel(Async)"); + } + + return getChannelCall(channelId, userId, _callback); + + } + + /** + * Gets a live tv channel. + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getChannel(UUID channelId, UUID userId) throws ApiException { + ApiResponse localVarResp = getChannelWithHttpInfo(channelId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv channel. + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelWithHttpInfo(UUID channelId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getChannelValidateBeforeCall(channelId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv channel. (asynchronously) + * + * @param channelId Channel id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv channel returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelAsync(UUID channelId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelValidateBeforeCall(channelId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getChannelMappingOptions + * @param providerId Provider id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelMappingOptionsCall(String providerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ChannelMappingOptions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (providerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("providerId", providerId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getChannelMappingOptionsValidateBeforeCall(String providerId, final ApiCallback _callback) throws ApiException { + return getChannelMappingOptionsCall(providerId, _callback); + + } + + /** + * Get channel mapping options. + * + * @param providerId Provider id. (optional) + * @return ChannelMappingOptionsDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ChannelMappingOptionsDto getChannelMappingOptions(String providerId) throws ApiException { + ApiResponse localVarResp = getChannelMappingOptionsWithHttpInfo(providerId); + return localVarResp.getData(); + } + + /** + * Get channel mapping options. + * + * @param providerId Provider id. (optional) + * @return ApiResponse<ChannelMappingOptionsDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getChannelMappingOptionsWithHttpInfo(String providerId) throws ApiException { + okhttp3.Call localVarCall = getChannelMappingOptionsValidateBeforeCall(providerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get channel mapping options. (asynchronously) + * + * @param providerId Provider id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Channel mapping options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getChannelMappingOptionsAsync(String providerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getChannelMappingOptionsValidateBeforeCall(providerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultListingProvider + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultListingProviderCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/Default"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultListingProviderValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getDefaultListingProviderCall(_callback); + + } + + /** + * Gets default listings provider info. + * + * @return ListingsProviderInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ListingsProviderInfo getDefaultListingProvider() throws ApiException { + ApiResponse localVarResp = getDefaultListingProviderWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets default listings provider info. + * + * @return ApiResponse<ListingsProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultListingProviderWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getDefaultListingProviderValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets default listings provider info. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default listings provider info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultListingProviderAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultListingProviderValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDefaultTimer + * @param programId Optional. To attach default values based on a program. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultTimerCall(String programId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/Defaults"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (programId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("programId", programId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDefaultTimerValidateBeforeCall(String programId, final ApiCallback _callback) throws ApiException { + return getDefaultTimerCall(programId, _callback); + + } + + /** + * Gets the default values for a new timer. + * + * @param programId Optional. To attach default values based on a program. (optional) + * @return SeriesTimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDto getDefaultTimer(String programId) throws ApiException { + ApiResponse localVarResp = getDefaultTimerWithHttpInfo(programId); + return localVarResp.getData(); + } + + /** + * Gets the default values for a new timer. + * + * @param programId Optional. To attach default values based on a program. (optional) + * @return ApiResponse<SeriesTimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getDefaultTimerWithHttpInfo(String programId) throws ApiException { + okhttp3.Call localVarCall = getDefaultTimerValidateBeforeCall(programId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the default values for a new timer. (asynchronously) + * + * @param programId Optional. To attach default values based on a program. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Default values returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getDefaultTimerAsync(String programId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getDefaultTimerValidateBeforeCall(programId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getGuideInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGuideInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/GuideInfo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGuideInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getGuideInfoCall(_callback); + + } + + /** + * Get guid info. + * + * @return GuideInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public GuideInfo getGuideInfo() throws ApiException { + ApiResponse localVarResp = getGuideInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get guid info. + * + * @return ApiResponse<GuideInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getGuideInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getGuideInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get guid info. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Guid info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGuideInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getGuideInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLineups + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLineupsCall(String id, String type, String location, String country, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/Lineups"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (location != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("location", location)); + } + + if (country != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("country", country)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLineupsValidateBeforeCall(String id, String type, String location, String country, final ApiCallback _callback) throws ApiException { + return getLineupsCall(id, type, location, country, _callback); + + } + + /** + * Gets available lineups. + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLineups(String id, String type, String location, String country) throws ApiException { + ApiResponse> localVarResp = getLineupsWithHttpInfo(id, type, location, country); + return localVarResp.getData(); + } + + /** + * Gets available lineups. + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLineupsWithHttpInfo(String id, String type, String location, String country) throws ApiException { + okhttp3.Call localVarCall = getLineupsValidateBeforeCall(id, type, location, country, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available lineups. (asynchronously) + * + * @param id Provider id. (optional) + * @param type Provider type. (optional) + * @param location Location. (optional) + * @param country Country. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available lineups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLineupsAsync(String id, String type, String location, String country, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLineupsValidateBeforeCall(id, type, location, country, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveRecordingFile + * @param recordingId Recording id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public okhttp3.Call getLiveRecordingFileCall(String recordingId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/LiveRecordings/{recordingId}/stream" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveRecordingFileValidateBeforeCall(String recordingId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling getLiveRecordingFile(Async)"); + } + + return getLiveRecordingFileCall(recordingId, _callback); + + } + + /** + * Gets a live tv recording stream. + * + * @param recordingId Recording id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public File getLiveRecordingFile(String recordingId) throws ApiException { + ApiResponse localVarResp = getLiveRecordingFileWithHttpInfo(recordingId); + return localVarResp.getData(); + } + + /** + * Gets a live tv recording stream. + * + * @param recordingId Recording id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public ApiResponse getLiveRecordingFileWithHttpInfo(String recordingId) throws ApiException { + okhttp3.Call localVarCall = getLiveRecordingFileValidateBeforeCall(recordingId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv recording stream. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Recording stream returned. -
404 Recording not found. -
+ */ + public okhttp3.Call getLiveRecordingFileAsync(String recordingId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveRecordingFileValidateBeforeCall(recordingId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveStreamFile + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public okhttp3.Call getLiveStreamFileCall(String streamId, String container, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}" + .replace("{" + "streamId" + "}", localVarApiClient.escapeString(streamId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "video/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveStreamFileValidateBeforeCall(String streamId, String container, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'streamId' is set + if (streamId == null) { + throw new ApiException("Missing the required parameter 'streamId' when calling getLiveStreamFile(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getLiveStreamFile(Async)"); + } + + return getLiveStreamFileCall(streamId, container, _callback); + + } + + /** + * Gets a live tv channel stream. + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public File getLiveStreamFile(String streamId, String container) throws ApiException { + ApiResponse localVarResp = getLiveStreamFileWithHttpInfo(streamId, container); + return localVarResp.getData(); + } + + /** + * Gets a live tv channel stream. + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public ApiResponse getLiveStreamFileWithHttpInfo(String streamId, String container) throws ApiException { + okhttp3.Call localVarCall = getLiveStreamFileValidateBeforeCall(streamId, container, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv channel stream. (asynchronously) + * + * @param streamId Stream id. (required) + * @param container Container type. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Stream returned. -
404 Stream not found. -
+ */ + public okhttp3.Call getLiveStreamFileAsync(String streamId, String container, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveStreamFileValidateBeforeCall(streamId, container, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvChannels + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvChannelsCall(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Channels"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (isLiked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLiked", isLiked)); + } + + if (isDisliked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isDisliked", isDisliked)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder)); + } + + if (enableFavoriteSorting != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableFavoriteSorting", enableFavoriteSorting)); + } + + if (addCurrentProgram != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addCurrentProgram", addCurrentProgram)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvChannelsValidateBeforeCall(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + return getLiveTvChannelsCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, _callback); + + } + + /** + * Gets available live tv channels. + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLiveTvChannels(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram) throws ApiException { + ApiResponse localVarResp = getLiveTvChannelsWithHttpInfo(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram); + return localVarResp.getData(); + } + + /** + * Gets available live tv channels. + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvChannelsWithHttpInfo(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram) throws ApiException { + okhttp3.Call localVarCall = getLiveTvChannelsValidateBeforeCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv channels. (asynchronously) + * + * @param type Optional. Filter by channel type. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isFavorite Optional. Filter by channels that are favorites, or not. (optional) + * @param isLiked Optional. Filter by channels that are liked, or not. (optional) + * @param isDisliked Optional. Filter by channels that are disliked, or not. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes \"Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Key to sort by. (optional) + * @param sortOrder Optional. Sort order. (optional) + * @param enableFavoriteSorting Optional. Incorporate favorite and like status into channel sorting. (optional, default to false) + * @param addCurrentProgram Optional. Adds current program info to each channel. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv channels returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvChannelsAsync(ChannelType type, UUID userId, Integer startIndex, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer limit, Boolean isFavorite, Boolean isLiked, Boolean isDisliked, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, List sortBy, SortOrder sortOrder, Boolean enableFavoriteSorting, Boolean addCurrentProgram, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvChannelsValidateBeforeCall(type, userId, startIndex, isMovie, isSeries, isNews, isKids, isSports, limit, isFavorite, isLiked, isDisliked, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, sortBy, sortOrder, enableFavoriteSorting, addCurrentProgram, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getLiveTvInfoCall(_callback); + + } + + /** + * Gets available live tv services. + * + * @return LiveTvInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public LiveTvInfo getLiveTvInfo() throws ApiException { + ApiResponse localVarResp = getLiveTvInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available live tv services. + * + * @return ApiResponse<LiveTvInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getLiveTvInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv services. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available live tv services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLiveTvPrograms + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvProgramsCall(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "channelIds", channelIds)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (minStartDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minStartDate", minStartDate)); + } + + if (hasAired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasAired", hasAired)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (maxStartDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStartDate", maxStartDate)); + } + + if (minEndDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minEndDate", minEndDate)); + } + + if (maxEndDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxEndDate", maxEndDate)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (librarySeriesId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("librarySeriesId", librarySeriesId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLiveTvProgramsValidateBeforeCall(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getLiveTvProgramsCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, _callback); + + } + + /** + * Gets available live tv epgs. + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getLiveTvPrograms(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getLiveTvProgramsWithHttpInfo(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets available live tv epgs. + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLiveTvProgramsWithHttpInfo(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getLiveTvProgramsValidateBeforeCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv epgs. (asynchronously) + * + * @param channelIds The channels to return guide information for. (optional) + * @param userId Optional. Filter by user id. (optional) + * @param minStartDate Optional. The minimum premiere start date. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param maxStartDate Optional. The maximum premiere start date. (optional) + * @param minEndDate Optional. The minimum premiere end date. (optional) + * @param maxEndDate Optional. The maximum premiere end date. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param genres The genres to return guide information for. (optional) + * @param genreIds The genre ids to return guide information for. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param seriesTimerId Optional. Filter by series timer id. (optional) + * @param librarySeriesId Optional. Filter by library series id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLiveTvProgramsAsync(List channelIds, UUID userId, OffsetDateTime minStartDate, Boolean hasAired, Boolean isAiring, OffsetDateTime maxStartDate, OffsetDateTime minEndDate, OffsetDateTime maxEndDate, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Integer startIndex, Integer limit, List sortBy, List sortOrder, List genres, List genreIds, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String seriesTimerId, UUID librarySeriesId, List fields, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLiveTvProgramsValidateBeforeCall(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getProgram + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramCall(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs/{programId}" + .replace("{" + "programId" + "}", localVarApiClient.escapeString(programId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProgramValidateBeforeCall(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'programId' is set + if (programId == null) { + throw new ApiException("Missing the required parameter 'programId' when calling getProgram(Async)"); + } + + return getProgramCall(programId, userId, _callback); + + } + + /** + * Gets a live tv program. + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getProgram(String programId, UUID userId) throws ApiException { + ApiResponse localVarResp = getProgramWithHttpInfo(programId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv program. + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getProgramWithHttpInfo(String programId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getProgramValidateBeforeCall(programId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv program. (asynchronously) + * + * @param programId Program id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Program returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramAsync(String programId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getProgramValidateBeforeCall(programId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPrograms + * @param getProgramsDto Request body. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramsCall(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = getProgramsDto; + + // create path and map variables + String localVarPath = "/LiveTv/Programs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getProgramsValidateBeforeCall(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + return getProgramsCall(getProgramsDto, _callback); + + } + + /** + * Gets available live tv epgs. + * + * @param getProgramsDto Request body. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getPrograms(GetProgramsDto getProgramsDto) throws ApiException { + ApiResponse localVarResp = getProgramsWithHttpInfo(getProgramsDto); + return localVarResp.getData(); + } + + /** + * Gets available live tv epgs. + * + * @param getProgramsDto Request body. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getProgramsWithHttpInfo(GetProgramsDto getProgramsDto) throws ApiException { + okhttp3.Call localVarCall = getProgramsValidateBeforeCall(getProgramsDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available live tv epgs. (asynchronously) + * + * @param getProgramsDto Request body. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getProgramsAsync(GetProgramsDto getProgramsDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getProgramsValidateBeforeCall(getProgramsDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecommendedPrograms + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecommendedProgramsCall(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Programs/Recommended"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (isAiring != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isAiring", isAiring)); + } + + if (hasAired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasAired", hasAired)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecommendedProgramsValidateBeforeCall(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecommendedProgramsCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, _callback); + + } + + /** + * Gets recommended live tv epgs. + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecommendedPrograms(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecommendedProgramsWithHttpInfo(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets recommended live tv epgs. + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecommendedProgramsWithHttpInfo(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecommendedProgramsValidateBeforeCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets recommended live tv epgs. (asynchronously) + * + * @param userId Optional. filter by user id. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param isAiring Optional. Filter by programs that are currently airing, or not. (optional) + * @param hasAired Optional. Filter by programs that have completed airing, or not. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param genreIds The genres to return guide information for. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param enableTotalRecordCount Retrieve total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recommended epgs returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecommendedProgramsAsync(UUID userId, Integer limit, Boolean isAiring, Boolean hasAired, Boolean isSeries, Boolean isMovie, Boolean isNews, Boolean isKids, Boolean isSports, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List genreIds, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecommendedProgramsValidateBeforeCall(userId, limit, isAiring, hasAired, isSeries, isMovie, isNews, isKids, isSports, enableImages, imageTypeLimit, enableImageTypes, genreIds, fields, enableUserData, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecording + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingCall(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/{recordingId}" + .replace("{" + "recordingId" + "}", localVarApiClient.escapeString(recordingId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingValidateBeforeCall(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'recordingId' is set + if (recordingId == null) { + throw new ApiException("Missing the required parameter 'recordingId' when calling getRecording(Async)"); + } + + return getRecordingCall(recordingId, userId, _callback); + + } + + /** + * Gets a live tv recording. + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getRecording(UUID recordingId, UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingWithHttpInfo(recordingId, userId); + return localVarResp.getData(); + } + + /** + * Gets a live tv recording. + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingWithHttpInfo(UUID recordingId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingValidateBeforeCall(recordingId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv recording. (asynchronously) + * + * @param recordingId Recording id. (required) + * @param userId Optional. Attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingAsync(UUID recordingId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingValidateBeforeCall(recordingId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingFolders + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingFoldersCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Folders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingFoldersValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getRecordingFoldersCall(userId, _callback); + + } + + /** + * Gets recording folders. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecordingFolders(UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingFoldersWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets recording folders. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingFoldersWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingFoldersValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets recording folders. (asynchronously) + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording folders returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingFoldersAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingFoldersValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingGroup + * @param groupId Group id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupCall(UUID groupId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Groups/{groupId}" + .replace("{" + "groupId" + "}", localVarApiClient.escapeString(groupId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingGroupValidateBeforeCall(UUID groupId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'groupId' is set + if (groupId == null) { + throw new ApiException("Missing the required parameter 'groupId' when calling getRecordingGroup(Async)"); + } + + return getRecordingGroupCall(groupId, _callback); + + } + + /** + * Get recording group. + * + * @param groupId Group id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public void getRecordingGroup(UUID groupId) throws ApiException { + getRecordingGroupWithHttpInfo(groupId); + } + + /** + * Get recording group. + * + * @param groupId Group id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingGroupWithHttpInfo(UUID groupId) throws ApiException { + okhttp3.Call localVarCall = getRecordingGroupValidateBeforeCall(groupId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Get recording group. (asynchronously) + * + * @param groupId Group id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupAsync(UUID groupId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingGroupValidateBeforeCall(groupId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getRecordingGroups + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupsCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Groups"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingGroupsValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + return getRecordingGroupsCall(userId, _callback); + + } + + /** + * Gets live tv recording groups. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getRecordingGroups(UUID userId) throws ApiException { + ApiResponse localVarResp = getRecordingGroupsWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets live tv recording groups. + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingGroupsWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRecordingGroupsValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recording groups. (asynchronously) + * + * @param userId Optional. Filter by user and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Recording groups returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingGroupsAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingGroupsValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordings + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingsCall(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (isInProgress != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isInProgress", isInProgress)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isLibraryItem != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLibraryItem", isLibraryItem)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingsValidateBeforeCall(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecordingsCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, _callback); + + } + + /** + * Gets live tv recordings. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getRecordings(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecordingsWithHttpInfo(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets live tv recordings. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRecordingsWithHttpInfo(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecordingsValidateBeforeCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recordings. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param isMovie Optional. Filter for movies. (optional) + * @param isSeries Optional. Filter for series. (optional) + * @param isKids Optional. Filter for kids. (optional) + * @param isSports Optional. Filter for sports. (optional) + * @param isNews Optional. Filter for news. (optional) + * @param isLibraryItem Optional. Filter for is library item. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRecordingsAsync(String channelId, UUID userId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean isMovie, Boolean isSeries, Boolean isKids, Boolean isSports, Boolean isNews, Boolean isLibraryItem, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingsValidateBeforeCall(channelId, userId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, isMovie, isSeries, isKids, isSports, isNews, isLibraryItem, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRecordingsSeries + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingsSeriesCall(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Recordings/Series"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (groupId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("groupId", groupId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (isInProgress != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isInProgress", isInProgress)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getRecordingsSeriesValidateBeforeCall(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getRecordingsSeriesCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, _callback); + + } + + /** + * Gets live tv recording series. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getRecordingsSeries(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getRecordingsSeriesWithHttpInfo(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets live tv recording series. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getRecordingsSeriesWithHttpInfo(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getRecordingsSeriesValidateBeforeCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv recording series. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param userId Optional. Filter by user and attach user data. (optional) + * @param groupId Optional. Filter by recording group. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param status Optional. Filter by recording status. (optional) + * @param isInProgress Optional. Filter by recordings that are in progress, or not. (optional) + * @param seriesTimerId Optional. Filter by recordings belonging to a series timer. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param enableTotalRecordCount Optional. Return total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Live tv recordings returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getRecordingsSeriesAsync(String channelId, UUID userId, String groupId, Integer startIndex, Integer limit, RecordingStatus status, Boolean isInProgress, String seriesTimerId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, List fields, Boolean enableUserData, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRecordingsSeriesValidateBeforeCall(channelId, userId, groupId, startIndex, limit, status, isInProgress, seriesTimerId, enableImages, imageTypeLimit, enableImageTypes, fields, enableUserData, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSchedulesDirectCountries + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSchedulesDirectCountriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/ListingProviders/SchedulesDirect/Countries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSchedulesDirectCountriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getSchedulesDirectCountriesCall(_callback); + + } + + /** + * Gets available countries. + * + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getSchedulesDirectCountries() throws ApiException { + ApiResponse localVarResp = getSchedulesDirectCountriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available countries. + * + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSchedulesDirectCountriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getSchedulesDirectCountriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available countries. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSchedulesDirectCountriesAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSchedulesDirectCountriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling getSeriesTimer(Async)"); + } + + return getSeriesTimerCall(timerId, _callback); + + } + + /** + * Gets a live tv series timer. + * + * @param timerId Timer id. (required) + * @return SeriesTimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDto getSeriesTimer(String timerId) throws ApiException { + ApiResponse localVarResp = getSeriesTimerWithHttpInfo(timerId); + return localVarResp.getData(); + } + + /** + * Gets a live tv series timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<SeriesTimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeriesTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = getSeriesTimerValidateBeforeCall(timerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Series timer returned. -
404 Series timer not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesTimerValidateBeforeCall(timerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeriesTimers + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimersCall(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (sortBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortOrder", sortOrder)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeriesTimersValidateBeforeCall(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + return getSeriesTimersCall(sortBy, sortOrder, _callback); + + } + + /** + * Gets live tv series timers. + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @return SeriesTimerInfoDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SeriesTimerInfoDtoQueryResult getSeriesTimers(String sortBy, SortOrder sortOrder) throws ApiException { + ApiResponse localVarResp = getSeriesTimersWithHttpInfo(sortBy, sortOrder); + return localVarResp.getData(); + } + + /** + * Gets live tv series timers. + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @return ApiResponse<SeriesTimerInfoDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeriesTimersWithHttpInfo(String sortBy, SortOrder sortOrder) throws ApiException { + okhttp3.Call localVarCall = getSeriesTimersValidateBeforeCall(sortBy, sortOrder, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live tv series timers. (asynchronously) + * + * @param sortBy Optional. Sort by SortName or Priority. (optional) + * @param sortOrder Optional. Sort in Ascending or Descending order. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timers returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeriesTimersAsync(String sortBy, SortOrder sortOrder, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeriesTimersValidateBeforeCall(sortBy, sortOrder, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTimer + * @param timerId Timer id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimerCall(String timerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTimerValidateBeforeCall(String timerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling getTimer(Async)"); + } + + return getTimerCall(timerId, _callback); + + } + + /** + * Gets a timer. + * + * @param timerId Timer id. (required) + * @return TimerInfoDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TimerInfoDto getTimer(String timerId) throws ApiException { + ApiResponse localVarResp = getTimerWithHttpInfo(timerId); + return localVarResp.getData(); + } + + /** + * Gets a timer. + * + * @param timerId Timer id. (required) + * @return ApiResponse<TimerInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTimerWithHttpInfo(String timerId) throws ApiException { + okhttp3.Call localVarCall = getTimerValidateBeforeCall(timerId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Timer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimerAsync(String timerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTimerValidateBeforeCall(timerId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTimers + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimersCall(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Timers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (channelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("channelId", channelId)); + } + + if (seriesTimerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesTimerId", seriesTimerId)); + } + + if (isActive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isActive", isActive)); + } + + if (isScheduled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isScheduled", isScheduled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTimersValidateBeforeCall(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + return getTimersCall(channelId, seriesTimerId, isActive, isScheduled, _callback); + + } + + /** + * Gets the live tv timers. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @return TimerInfoDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public TimerInfoDtoQueryResult getTimers(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled) throws ApiException { + ApiResponse localVarResp = getTimersWithHttpInfo(channelId, seriesTimerId, isActive, isScheduled); + return localVarResp.getData(); + } + + /** + * Gets the live tv timers. + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @return ApiResponse<TimerInfoDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTimersWithHttpInfo(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled) throws ApiException { + okhttp3.Call localVarCall = getTimersValidateBeforeCall(channelId, seriesTimerId, isActive, isScheduled, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the live tv timers. (asynchronously) + * + * @param channelId Optional. Filter by channel id. (optional) + * @param seriesTimerId Optional. Filter by timers belonging to a series timer. (optional) + * @param isActive Optional. Filter by timers that are active. (optional) + * @param isScheduled Optional. Filter by timers that are scheduled. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTimersAsync(String channelId, String seriesTimerId, Boolean isActive, Boolean isScheduled, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTimersValidateBeforeCall(channelId, seriesTimerId, isActive, isScheduled, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTunerHostTypes + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTunerHostTypesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/TunerHosts/Types"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTunerHostTypesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getTunerHostTypesCall(_callback); + + } + + /** + * Get tuner host types. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTunerHostTypes() throws ApiException { + ApiResponse> localVarResp = getTunerHostTypesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get tuner host types. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTunerHostTypesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getTunerHostTypesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get tuner host types. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Tuner host types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTunerHostTypesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTunerHostTypesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for resetTuner + * @param tunerId Tuner id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call resetTunerCall(String tunerId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveTv/Tuners/{tunerId}/Reset" + .replace("{" + "tunerId" + "}", localVarApiClient.escapeString(tunerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call resetTunerValidateBeforeCall(String tunerId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'tunerId' is set + if (tunerId == null) { + throw new ApiException("Missing the required parameter 'tunerId' when calling resetTuner(Async)"); + } + + return resetTunerCall(tunerId, _callback); + + } + + /** + * Resets a tv tuner. + * + * @param tunerId Tuner id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public void resetTuner(String tunerId) throws ApiException { + resetTunerWithHttpInfo(tunerId); + } + + /** + * Resets a tv tuner. + * + * @param tunerId Tuner id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse resetTunerWithHttpInfo(String tunerId) throws ApiException { + okhttp3.Call localVarCall = resetTunerValidateBeforeCall(tunerId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Resets a tv tuner. (asynchronously) + * + * @param tunerId Tuner id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Tuner reset. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call resetTunerAsync(String tunerId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = resetTunerValidateBeforeCall(tunerId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setChannelMapping + * @param setChannelMappingDto The set channel mapping dto. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setChannelMappingCall(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setChannelMappingDto; + + // create path and map variables + String localVarPath = "/LiveTv/ChannelMappings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setChannelMappingValidateBeforeCall(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setChannelMappingDto' is set + if (setChannelMappingDto == null) { + throw new ApiException("Missing the required parameter 'setChannelMappingDto' when calling setChannelMapping(Async)"); + } + + return setChannelMappingCall(setChannelMappingDto, _callback); + + } + + /** + * Set channel mappings. + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @return TunerChannelMapping + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public TunerChannelMapping setChannelMapping(SetChannelMappingDto setChannelMappingDto) throws ApiException { + ApiResponse localVarResp = setChannelMappingWithHttpInfo(setChannelMappingDto); + return localVarResp.getData(); + } + + /** + * Set channel mappings. + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @return ApiResponse<TunerChannelMapping> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setChannelMappingWithHttpInfo(SetChannelMappingDto setChannelMappingDto) throws ApiException { + okhttp3.Call localVarCall = setChannelMappingValidateBeforeCall(setChannelMappingDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Set channel mappings. (asynchronously) + * + * @param setChannelMappingDto The set channel mapping dto. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Created channel mapping returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setChannelMappingAsync(SetChannelMappingDto setChannelMappingDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setChannelMappingValidateBeforeCall(setChannelMappingDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateSeriesTimer + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateSeriesTimerCall(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seriesTimerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/SeriesTimers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateSeriesTimerValidateBeforeCall(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling updateSeriesTimer(Async)"); + } + + return updateSeriesTimerCall(timerId, seriesTimerInfoDto, _callback); + + } + + /** + * Updates a live tv series timer. + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateSeriesTimer(String timerId, SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + updateSeriesTimerWithHttpInfo(timerId, seriesTimerInfoDto); + } + + /** + * Updates a live tv series timer. + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateSeriesTimerWithHttpInfo(String timerId, SeriesTimerInfoDto seriesTimerInfoDto) throws ApiException { + okhttp3.Call localVarCall = updateSeriesTimerValidateBeforeCall(timerId, seriesTimerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a live tv series timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param seriesTimerInfoDto New series timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Series timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateSeriesTimerAsync(String timerId, SeriesTimerInfoDto seriesTimerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateSeriesTimerValidateBeforeCall(timerId, seriesTimerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateTimer + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTimerCall(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = timerInfoDto; + + // create path and map variables + String localVarPath = "/LiveTv/Timers/{timerId}" + .replace("{" + "timerId" + "}", localVarApiClient.escapeString(timerId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateTimerValidateBeforeCall(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'timerId' is set + if (timerId == null) { + throw new ApiException("Missing the required parameter 'timerId' when calling updateTimer(Async)"); + } + + return updateTimerCall(timerId, timerInfoDto, _callback); + + } + + /** + * Updates a live tv timer. + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateTimer(String timerId, TimerInfoDto timerInfoDto) throws ApiException { + updateTimerWithHttpInfo(timerId, timerInfoDto); + } + + /** + * Updates a live tv timer. + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateTimerWithHttpInfo(String timerId, TimerInfoDto timerInfoDto) throws ApiException { + okhttp3.Call localVarCall = updateTimerValidateBeforeCall(timerId, timerInfoDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a live tv timer. (asynchronously) + * + * @param timerId Timer id. (required) + * @param timerInfoDto New timer info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Timer updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTimerAsync(String timerId, TimerInfoDto timerInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateTimerValidateBeforeCall(timerId, timerInfoDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LocalizationApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LocalizationApi.java new file mode 100644 index 0000000000000..45e2497047eca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/LocalizationApi.java @@ -0,0 +1,586 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.CountryInfo; +import org.openapitools.client.model.CultureDto; +import org.openapitools.client.model.LocalizationOption; +import org.openapitools.client.model.ParentalRating; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class LocalizationApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public LocalizationApi() { + this(Configuration.getDefaultApiClient()); + } + + public LocalizationApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getCountries + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCountriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Countries"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCountriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCountriesCall(_callback); + + } + + /** + * Gets known countries. + * + * @return List<CountryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getCountries() throws ApiException { + ApiResponse> localVarResp = getCountriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known countries. + * + * @return ApiResponse<List<CountryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getCountriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCountriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known countries. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known countries returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCountriesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getCountriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCultures + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCulturesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Cultures"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCulturesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCulturesCall(_callback); + + } + + /** + * Gets known cultures. + * + * @return List<CultureDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getCultures() throws ApiException { + ApiResponse> localVarResp = getCulturesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known cultures. + * + * @return ApiResponse<List<CultureDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getCulturesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCulturesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known cultures. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known cultures returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCulturesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getCulturesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLocalizationOptions + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalizationOptionsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/Options"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLocalizationOptionsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getLocalizationOptionsCall(_callback); + + } + + /** + * Gets localization options. + * + * @return List<LocalizationOption> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLocalizationOptions() throws ApiException { + ApiResponse> localVarResp = getLocalizationOptionsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets localization options. + * + * @return ApiResponse<List<LocalizationOption>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLocalizationOptionsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getLocalizationOptionsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets localization options. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Localization options returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalizationOptionsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLocalizationOptionsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getParentalRatings + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentalRatingsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Localization/ParentalRatings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getParentalRatingsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getParentalRatingsCall(_callback); + + } + + /** + * Gets known parental ratings. + * + * @return List<ParentalRating> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getParentalRatings() throws ApiException { + ApiResponse> localVarResp = getParentalRatingsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets known parental ratings. + * + * @return ApiResponse<List<ParentalRating>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getParentalRatingsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getParentalRatingsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets known parental ratings. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Known parental ratings returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getParentalRatingsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getParentalRatingsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MediaInfoApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MediaInfoApi.java new file mode 100644 index 0000000000000..058bd4fd19bbf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MediaInfoApi.java @@ -0,0 +1,974 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.LiveStreamResponse; +import org.openapitools.client.model.OpenLiveStreamDto; +import org.openapitools.client.model.PlaybackInfoDto; +import org.openapitools.client.model.PlaybackInfoResponse; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MediaInfoApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MediaInfoApi() { + this(Configuration.getDefaultApiClient()); + } + + public MediaInfoApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for closeLiveStream + * @param liveStreamId The livestream id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call closeLiveStreamCall(String liveStreamId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/LiveStreams/Close"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call closeLiveStreamValidateBeforeCall(String liveStreamId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'liveStreamId' is set + if (liveStreamId == null) { + throw new ApiException("Missing the required parameter 'liveStreamId' when calling closeLiveStream(Async)"); + } + + return closeLiveStreamCall(liveStreamId, _callback); + + } + + /** + * Closes a media source. + * + * @param liveStreamId The livestream id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void closeLiveStream(String liveStreamId) throws ApiException { + closeLiveStreamWithHttpInfo(liveStreamId); + } + + /** + * Closes a media source. + * + * @param liveStreamId The livestream id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse closeLiveStreamWithHttpInfo(String liveStreamId) throws ApiException { + okhttp3.Call localVarCall = closeLiveStreamValidateBeforeCall(liveStreamId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Closes a media source. (asynchronously) + * + * @param liveStreamId The livestream id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Livestream closed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call closeLiveStreamAsync(String liveStreamId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = closeLiveStreamValidateBeforeCall(liveStreamId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getBitrateTestBytes + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBitrateTestBytesCall(Integer size, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playback/BitrateTest"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (size != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("size", size)); + } + + final String[] localVarAccepts = { + "application/octet-stream" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getBitrateTestBytesValidateBeforeCall(Integer size, final ApiCallback _callback) throws ApiException { + return getBitrateTestBytesCall(size, _callback); + + } + + /** + * Tests the network with a request with the size of the bitrate. + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getBitrateTestBytes(Integer size) throws ApiException { + ApiResponse localVarResp = getBitrateTestBytesWithHttpInfo(size); + return localVarResp.getData(); + } + + /** + * Tests the network with a request with the size of the bitrate. + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getBitrateTestBytesWithHttpInfo(Integer size) throws ApiException { + okhttp3.Call localVarCall = getBitrateTestBytesValidateBeforeCall(size, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Tests the network with a request with the size of the bitrate. (asynchronously) + * + * @param size The bitrate. Defaults to 102400. (optional, default to 102400) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Test buffer returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getBitrateTestBytesAsync(Integer size, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getBitrateTestBytesValidateBeforeCall(size, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaybackInfo + * @param itemId The item id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaybackInfoCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/PlaybackInfo" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaybackInfoValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getPlaybackInfo(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getPlaybackInfo(Async)"); + } + + return getPlaybackInfoCall(itemId, userId, _callback); + + } + + /** + * Gets live playback media info for an item. + * + * @param itemId The item id. (required) + * @param userId The user id. (required) + * @return PlaybackInfoResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaybackInfoResponse getPlaybackInfo(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getPlaybackInfoWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets live playback media info for an item. + * + * @param itemId The item id. (required) + * @param userId The user id. (required) + * @return ApiResponse<PlaybackInfoResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPlaybackInfoWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getPlaybackInfoValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live playback media info for an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaybackInfoAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaybackInfoValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPostedPlaybackInfo + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPostedPlaybackInfoCall(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackInfoDto; + + // create path and map variables + String localVarPath = "/Items/{itemId}/PlaybackInfo" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (autoOpenLiveStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("autoOpenLiveStream", autoOpenLiveStream)); + } + + if (enableDirectPlay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectPlay", enableDirectPlay)); + } + + if (enableDirectStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectStream", enableDirectStream)); + } + + if (enableTranscoding != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTranscoding", enableTranscoding)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPostedPlaybackInfoValidateBeforeCall(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getPostedPlaybackInfo(Async)"); + } + + return getPostedPlaybackInfoCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, _callback); + + } + + /** + * Gets live playback media info for an item. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @return PlaybackInfoResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaybackInfoResponse getPostedPlaybackInfo(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) throws ApiException { + ApiResponse localVarResp = getPostedPlaybackInfoWithHttpInfo(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto); + return localVarResp.getData(); + } + + /** + * Gets live playback media info for an item. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @return ApiResponse<PlaybackInfoResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPostedPlaybackInfoWithHttpInfo(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) throws ApiException { + okhttp3.Call localVarCall = getPostedPlaybackInfoValidateBeforeCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets live playback media info for an item. (asynchronously) + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param itemId The item id. (required) + * @param userId The user id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param mediaSourceId The media source id. (optional) + * @param liveStreamId The livestream id. (optional) + * @param autoOpenLiveStream Whether to auto open the livestream. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param enableTranscoding Whether to enable transcoding. Default: true. (optional) + * @param allowVideoStreamCopy Whether to allow to copy the video stream. Default: true. (optional) + * @param allowAudioStreamCopy Whether to allow to copy the audio stream. Default: true. (optional) + * @param playbackInfoDto The playback info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Playback info returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPostedPlaybackInfoAsync(UUID itemId, UUID userId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, String mediaSourceId, String liveStreamId, Boolean autoOpenLiveStream, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPostedPlaybackInfoValidateBeforeCall(itemId, userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, autoOpenLiveStream, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, playbackInfoDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for openLiveStream + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call openLiveStreamCall(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = openLiveStreamDto; + + // create path and map variables + String localVarPath = "/LiveStreams/Open"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (openToken != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("openToken", openToken)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (enableDirectPlay != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectPlay", enableDirectPlay)); + } + + if (enableDirectStream != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableDirectStream", enableDirectStream)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call openLiveStreamValidateBeforeCall(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + return openLiveStreamCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto, _callback); + + } + + /** + * Opens a media source. + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @return LiveStreamResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public LiveStreamResponse openLiveStream(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, OpenLiveStreamDto openLiveStreamDto) throws ApiException { + ApiResponse localVarResp = openLiveStreamWithHttpInfo(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto); + return localVarResp.getData(); + } + + /** + * Opens a media source. + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @return ApiResponse<LiveStreamResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse openLiveStreamWithHttpInfo(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, OpenLiveStreamDto openLiveStreamDto) throws ApiException { + okhttp3.Call localVarCall = openLiveStreamValidateBeforeCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Opens a media source. (asynchronously) + * + * @param openToken The open token. (optional) + * @param userId The user id. (optional) + * @param playSessionId The play session id. (optional) + * @param maxStreamingBitrate The maximum streaming bitrate. (optional) + * @param startTimeTicks The start time in ticks. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param maxAudioChannels The maximum number of audio channels. (optional) + * @param itemId The item id. (optional) + * @param enableDirectPlay Whether to enable direct play. Default: true. (optional) + * @param enableDirectStream Whether to enable direct stream. Default: true. (optional) + * @param openLiveStreamDto The open live stream dto. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Media source opened. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call openLiveStreamAsync(String openToken, UUID userId, String playSessionId, Integer maxStreamingBitrate, Long startTimeTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer maxAudioChannels, UUID itemId, Boolean enableDirectPlay, Boolean enableDirectStream, OpenLiveStreamDto openLiveStreamDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = openLiveStreamValidateBeforeCall(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, openLiveStreamDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MoviesApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MoviesApi.java new file mode 100644 index 0000000000000..bb36735920866 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MoviesApi.java @@ -0,0 +1,244 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.RecommendationDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MoviesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MoviesApi() { + this(Configuration.getDefaultApiClient()); + } + + public MoviesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMovieRecommendations + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRecommendationsCall(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Movies/Recommendations"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (categoryLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("categoryLimit", categoryLimit)); + } + + if (itemLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemLimit", itemLimit)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMovieRecommendationsValidateBeforeCall(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback _callback) throws ApiException { + return getMovieRecommendationsCall(userId, parentId, fields, categoryLimit, itemLimit, _callback); + + } + + /** + * Gets movie recommendations. + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @return List<RecommendationDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getMovieRecommendations(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit) throws ApiException { + ApiResponse> localVarResp = getMovieRecommendationsWithHttpInfo(userId, parentId, fields, categoryLimit, itemLimit); + return localVarResp.getData(); + } + + /** + * Gets movie recommendations. + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @return ApiResponse<List<RecommendationDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getMovieRecommendationsWithHttpInfo(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit) throws ApiException { + okhttp3.Call localVarCall = getMovieRecommendationsValidateBeforeCall(userId, parentId, fields, categoryLimit, itemLimit, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets movie recommendations. (asynchronously) + * + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. The fields to return. (optional) + * @param categoryLimit The max number of categories to return. (optional, default to 5) + * @param itemLimit The max number of items to return per category. (optional, default to 8) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Movie recommendations returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMovieRecommendationsAsync(UUID userId, UUID parentId, List fields, Integer categoryLimit, Integer itemLimit, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getMovieRecommendationsValidateBeforeCall(userId, parentId, fields, categoryLimit, itemLimit, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MusicGenresApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MusicGenresApi.java new file mode 100644 index 0000000000000..fd0ab0d4b096c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/MusicGenresApi.java @@ -0,0 +1,506 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MusicGenresApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public MusicGenresApi() { + this(Configuration.getDefaultApiClient()); + } + + public MusicGenresApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getMusicGenre + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicGenreCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres/{genreName}" + .replace("{" + "genreName" + "}", localVarApiClient.escapeString(genreName.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenreValidateBeforeCall(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'genreName' is set + if (genreName == null) { + throw new ApiException("Missing the required parameter 'genreName' when calling getMusicGenre(Async)"); + } + + return getMusicGenreCall(genreName, userId, _callback); + + } + + /** + * Gets a music genre, by name. + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getMusicGenre(String genreName, UUID userId) throws ApiException { + ApiResponse localVarResp = getMusicGenreWithHttpInfo(genreName, userId); + return localVarResp.getData(); + } + + /** + * Gets a music genre, by name. + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getMusicGenreWithHttpInfo(String genreName, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getMusicGenreValidateBeforeCall(genreName, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a music genre, by name. (asynchronously) + * + * @param genreName The genre name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getMusicGenreAsync(String genreName, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenreValidateBeforeCall(genreName, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getMusicGenres + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getMusicGenresCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/MusicGenres"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getMusicGenresValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getMusicGenresCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all music genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public BaseItemDtoQueryResult getMusicGenres(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getMusicGenresWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all music genres from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse getMusicGenresWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getMusicGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all music genres from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Optional. Include total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Music genres returned. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getMusicGenresAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List sortBy, List sortOrder, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getMusicGenresValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, sortBy, sortOrder, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/NotificationsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/NotificationsApi.java new file mode 100644 index 0000000000000..d8df8d3d5195a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/NotificationsApi.java @@ -0,0 +1,999 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AdminNotificationDto; +import org.openapitools.client.model.NameIdPair; +import org.openapitools.client.model.NotificationResultDto; +import org.openapitools.client.model.NotificationTypeInfo; +import org.openapitools.client.model.NotificationsSummaryDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class NotificationsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public NotificationsApi() { + this(Configuration.getDefaultApiClient()); + } + + public NotificationsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createAdminNotification + * @param adminNotificationDto The notification request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notification sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createAdminNotificationCall(AdminNotificationDto adminNotificationDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = adminNotificationDto; + + // create path and map variables + String localVarPath = "/Notifications/Admin"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createAdminNotificationValidateBeforeCall(AdminNotificationDto adminNotificationDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'adminNotificationDto' is set + if (adminNotificationDto == null) { + throw new ApiException("Missing the required parameter 'adminNotificationDto' when calling createAdminNotification(Async)"); + } + + return createAdminNotificationCall(adminNotificationDto, _callback); + + } + + /** + * Sends a notification to all admins. + * + * @param adminNotificationDto The notification request. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notification sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public void createAdminNotification(AdminNotificationDto adminNotificationDto) throws ApiException { + createAdminNotificationWithHttpInfo(adminNotificationDto); + } + + /** + * Sends a notification to all admins. + * + * @param adminNotificationDto The notification request. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notification sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createAdminNotificationWithHttpInfo(AdminNotificationDto adminNotificationDto) throws ApiException { + okhttp3.Call localVarCall = createAdminNotificationValidateBeforeCall(adminNotificationDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sends a notification to all admins. (asynchronously) + * + * @param adminNotificationDto The notification request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notification sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createAdminNotificationAsync(AdminNotificationDto adminNotificationDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createAdminNotificationValidateBeforeCall(adminNotificationDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getNotificationServices + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationServicesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/Services"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNotificationServicesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getNotificationServicesCall(_callback); + + } + + /** + * Gets notification services. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getNotificationServices() throws ApiException { + ApiResponse> localVarResp = getNotificationServicesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets notification services. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getNotificationServicesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getNotificationServicesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets notification services. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification services returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationServicesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getNotificationServicesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNotificationTypes + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationTypesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/Types"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNotificationTypesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getNotificationTypesCall(_callback); + + } + + /** + * Gets notification types. + * + * @return List<NotificationTypeInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getNotificationTypes() throws ApiException { + ApiResponse> localVarResp = getNotificationTypesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets notification types. + * + * @return ApiResponse<List<NotificationTypeInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getNotificationTypesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getNotificationTypesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets notification types. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 All notification types returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationTypesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getNotificationTypesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNotifications + * @param userId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationsCall(String userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNotificationsValidateBeforeCall(String userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getNotifications(Async)"); + } + + return getNotificationsCall(userId, _callback); + + } + + /** + * Gets a user's notifications. + * + * @param userId (required) + * @return NotificationResultDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public NotificationResultDto getNotifications(String userId) throws ApiException { + ApiResponse localVarResp = getNotificationsWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets a user's notifications. + * + * @param userId (required) + * @return ApiResponse<NotificationResultDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNotificationsWithHttpInfo(String userId) throws ApiException { + okhttp3.Call localVarCall = getNotificationsValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a user's notifications. (asynchronously) + * + * @param userId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationsAsync(String userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNotificationsValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNotificationsSummary + * @param userId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Summary of user's notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationsSummaryCall(String userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/{userId}/Summary" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNotificationsSummaryValidateBeforeCall(String userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getNotificationsSummary(Async)"); + } + + return getNotificationsSummaryCall(userId, _callback); + + } + + /** + * Gets a user's notification summary. + * + * @param userId (required) + * @return NotificationsSummaryDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Summary of user's notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public NotificationsSummaryDto getNotificationsSummary(String userId) throws ApiException { + ApiResponse localVarResp = getNotificationsSummaryWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets a user's notification summary. + * + * @param userId (required) + * @return ApiResponse<NotificationsSummaryDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Summary of user's notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNotificationsSummaryWithHttpInfo(String userId) throws ApiException { + okhttp3.Call localVarCall = getNotificationsSummaryValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a user's notification summary. (asynchronously) + * + * @param userId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Summary of user's notifications returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNotificationsSummaryAsync(String userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNotificationsSummaryValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for setRead + * @param userId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as read. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setReadCall(String userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/{userId}/Read" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setReadValidateBeforeCall(String userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling setRead(Async)"); + } + + return setReadCall(userId, _callback); + + } + + /** + * Sets notifications as read. + * + * @param userId (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as read. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setRead(String userId) throws ApiException { + setReadWithHttpInfo(userId); + } + + /** + * Sets notifications as read. + * + * @param userId (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as read. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setReadWithHttpInfo(String userId) throws ApiException { + okhttp3.Call localVarCall = setReadValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets notifications as read. (asynchronously) + * + * @param userId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as read. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setReadAsync(String userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setReadValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setUnread + * @param userId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as unread. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setUnreadCall(String userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Notifications/{userId}/Unread" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setUnreadValidateBeforeCall(String userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling setUnread(Async)"); + } + + return setUnreadCall(userId, _callback); + + } + + /** + * Sets notifications as unread. + * + * @param userId (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as unread. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setUnread(String userId) throws ApiException { + setUnreadWithHttpInfo(userId); + } + + /** + * Sets notifications as unread. + * + * @param userId (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as unread. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setUnreadWithHttpInfo(String userId) throws ApiException { + okhttp3.Call localVarCall = setUnreadValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets notifications as unread. (asynchronously) + * + * @param userId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Notifications set as unread. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setUnreadAsync(String userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setUnreadValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PackageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PackageApi.java new file mode 100644 index 0000000000000..d2f10e72c419c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PackageApi.java @@ -0,0 +1,900 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.PackageInfo; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RepositoryInfo; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PackageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PackageApi() { + this(Configuration.getDefaultApiClient()); + } + + public PackageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for cancelPackageInstallation + * @param packageId Installation Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelPackageInstallationCall(UUID packageId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/Installing/{packageId}" + .replace("{" + "packageId" + "}", localVarApiClient.escapeString(packageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call cancelPackageInstallationValidateBeforeCall(UUID packageId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'packageId' is set + if (packageId == null) { + throw new ApiException("Missing the required parameter 'packageId' when calling cancelPackageInstallation(Async)"); + } + + return cancelPackageInstallationCall(packageId, _callback); + + } + + /** + * Cancels a package installation. + * + * @param packageId Installation Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public void cancelPackageInstallation(UUID packageId) throws ApiException { + cancelPackageInstallationWithHttpInfo(packageId); + } + + /** + * Cancels a package installation. + * + * @param packageId Installation Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse cancelPackageInstallationWithHttpInfo(UUID packageId) throws ApiException { + okhttp3.Call localVarCall = cancelPackageInstallationValidateBeforeCall(packageId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Cancels a package installation. (asynchronously) + * + * @param packageId Installation Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Installation cancelled. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call cancelPackageInstallationAsync(UUID packageId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = cancelPackageInstallationValidateBeforeCall(packageId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPackageInfo + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackageInfoCall(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (assemblyGuid != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("assemblyGuid", assemblyGuid)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPackageInfoValidateBeforeCall(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPackageInfo(Async)"); + } + + return getPackageInfoCall(name, assemblyGuid, _callback); + + } + + /** + * Gets a package by name or assembly GUID. + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @return PackageInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public PackageInfo getPackageInfo(String name, UUID assemblyGuid) throws ApiException { + ApiResponse localVarResp = getPackageInfoWithHttpInfo(name, assemblyGuid); + return localVarResp.getData(); + } + + /** + * Gets a package by name or assembly GUID. + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @return ApiResponse<PackageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPackageInfoWithHttpInfo(String name, UUID assemblyGuid) throws ApiException { + okhttp3.Call localVarCall = getPackageInfoValidateBeforeCall(name, assemblyGuid, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a package by name or assembly GUID. (asynchronously) + * + * @param name The name of the package. (required) + * @param assemblyGuid The GUID of the associated assembly. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackageInfoAsync(String name, UUID assemblyGuid, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPackageInfoValidateBeforeCall(name, assemblyGuid, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPackages + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackagesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPackagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPackagesCall(_callback); + + } + + /** + * Gets available packages. + * + * @return List<PackageInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPackages() throws ApiException { + ApiResponse> localVarResp = getPackagesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets available packages. + * + * @return ApiResponse<List<PackageInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPackagesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPackagesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available packages. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Available packages returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPackagesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPackagesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRepositories + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRepositoriesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Repositories"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRepositoriesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getRepositoriesCall(_callback); + + } + + /** + * Gets all package repositories. + * + * @return List<RepositoryInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getRepositories() throws ApiException { + ApiResponse> localVarResp = getRepositoriesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all package repositories. + * + * @return ApiResponse<List<RepositoryInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getRepositoriesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getRepositoriesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all package repositories. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Package repositories returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRepositoriesAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getRepositoriesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for installPackage + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call installPackageCall(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Packages/Installed/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (assemblyGuid != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("assemblyGuid", assemblyGuid)); + } + + if (version != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("version", version)); + } + + if (repositoryUrl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("repositoryUrl", repositoryUrl)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call installPackageValidateBeforeCall(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling installPackage(Async)"); + } + + return installPackageCall(name, assemblyGuid, version, repositoryUrl, _callback); + + } + + /** + * Installs a package. + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void installPackage(String name, UUID assemblyGuid, String version, String repositoryUrl) throws ApiException { + installPackageWithHttpInfo(name, assemblyGuid, version, repositoryUrl); + } + + /** + * Installs a package. + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse installPackageWithHttpInfo(String name, UUID assemblyGuid, String version, String repositoryUrl) throws ApiException { + okhttp3.Call localVarCall = installPackageValidateBeforeCall(name, assemblyGuid, version, repositoryUrl, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Installs a package. (asynchronously) + * + * @param name Package name. (required) + * @param assemblyGuid GUID of the associated assembly. (optional) + * @param version Optional version. Defaults to latest version. (optional) + * @param repositoryUrl Optional. Specify the repository to install from. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Package found. -
404 Package not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call installPackageAsync(String name, UUID assemblyGuid, String version, String repositoryUrl, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = installPackageValidateBeforeCall(name, assemblyGuid, version, repositoryUrl, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for setRepositories + * @param repositoryInfo The list of package repositories. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRepositoriesCall(List repositoryInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = repositoryInfo; + + // create path and map variables + String localVarPath = "/Repositories"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setRepositoriesValidateBeforeCall(List repositoryInfo, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'repositoryInfo' is set + if (repositoryInfo == null) { + throw new ApiException("Missing the required parameter 'repositoryInfo' when calling setRepositories(Async)"); + } + + return setRepositoriesCall(repositoryInfo, _callback); + + } + + /** + * Sets the enabled and existing package repositories. + * + * @param repositoryInfo The list of package repositories. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setRepositories(List repositoryInfo) throws ApiException { + setRepositoriesWithHttpInfo(repositoryInfo); + } + + /** + * Sets the enabled and existing package repositories. + * + * @param repositoryInfo The list of package repositories. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setRepositoriesWithHttpInfo(List repositoryInfo) throws ApiException { + okhttp3.Call localVarCall = setRepositoriesValidateBeforeCall(repositoryInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the enabled and existing package repositories. (asynchronously) + * + * @param repositoryInfo The list of package repositories. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Package repositories saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRepositoriesAsync(List repositoryInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setRepositoriesValidateBeforeCall(repositoryInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PersonsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PersonsApi.java new file mode 100644 index 0000000000000..b714f1c84f5ab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PersonsApi.java @@ -0,0 +1,461 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PersonsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PersonsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PersonsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getPerson + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getPerson(Async)"); + } + + return getPersonCall(name, userId, _callback); + + } + + /** + * Get person by name. + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getPerson(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getPersonWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Get person by name. + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPersonWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getPersonValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get person by name. (asynchronously) + * + * @param name Person name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Person returned. -
404 Person not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPersons + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonsCall(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Persons"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (excludePersonTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludePersonTypes", excludePersonTypes)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (appearsInItemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("appearsInItemId", appearsInItemId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPersonsValidateBeforeCall(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getPersonsCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, _callback); + + } + + /** + * Gets all persons. + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getPersons(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getPersonsWithHttpInfo(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages); + return localVarResp.getData(); + } + + /** + * Gets all persons. + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPersonsWithHttpInfo(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getPersonsValidateBeforeCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all persons. (asynchronously) + * + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm The search term. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param filters Optional. Specify additional filters to apply. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. userId is required. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param excludePersonTypes Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param personTypes Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. (optional) + * @param appearsInItemId Optional. If specified, person results will be filtered on items related to said persons. (optional) + * @param userId User id. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Persons returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPersonsAsync(Integer limit, String searchTerm, List fields, List filters, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, List excludePersonTypes, List personTypes, UUID appearsInItemId, UUID userId, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPersonsValidateBeforeCall(limit, searchTerm, fields, filters, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, excludePersonTypes, personTypes, appearsInItemId, userId, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaylistsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaylistsApi.java new file mode 100644 index 0000000000000..1a80f83f2458b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaylistsApi.java @@ -0,0 +1,890 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.CreatePlaylistDto; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.PlaylistCreationResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PlaylistsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PlaylistsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PlaylistsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addToPlaylist + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToPlaylistCall(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addToPlaylistValidateBeforeCall(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling addToPlaylist(Async)"); + } + + return addToPlaylistCall(playlistId, ids, userId, _callback); + + } + + /** + * Adds items to a playlist. + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addToPlaylist(UUID playlistId, List ids, UUID userId) throws ApiException { + addToPlaylistWithHttpInfo(playlistId, ids, userId); + } + + /** + * Adds items to a playlist. + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addToPlaylistWithHttpInfo(UUID playlistId, List ids, UUID userId) throws ApiException { + okhttp3.Call localVarCall = addToPlaylistValidateBeforeCall(playlistId, ids, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds items to a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param ids Item id, comma delimited. (optional) + * @param userId The userId. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items added to playlist. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addToPlaylistAsync(UUID playlistId, List ids, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addToPlaylistValidateBeforeCall(playlistId, ids, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for createPlaylist + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createPlaylistCall(String name, List ids, UUID userId, String mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = createPlaylistDto; + + // create path and map variables + String localVarPath = "/Playlists"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (mediaType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaType", mediaType)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createPlaylistValidateBeforeCall(String name, List ids, UUID userId, String mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + return createPlaylistCall(name, ids, userId, mediaType, createPlaylistDto, _callback); + + } + + /** + * Creates a new playlist. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @return PlaylistCreationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public PlaylistCreationResult createPlaylist(String name, List ids, UUID userId, String mediaType, CreatePlaylistDto createPlaylistDto) throws ApiException { + ApiResponse localVarResp = createPlaylistWithHttpInfo(name, ids, userId, mediaType, createPlaylistDto); + return localVarResp.getData(); + } + + /** + * Creates a new playlist. + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @return ApiResponse<PlaylistCreationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createPlaylistWithHttpInfo(String name, List ids, UUID userId, String mediaType, CreatePlaylistDto createPlaylistDto) throws ApiException { + okhttp3.Call localVarCall = createPlaylistValidateBeforeCall(name, ids, userId, mediaType, createPlaylistDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a new playlist. (asynchronously) + * For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence. Query parameters are obsolete. + * @param name The playlist name. (optional) + * @param ids The item ids. (optional) + * @param userId The user id. (optional) + * @param mediaType The media type. (optional) + * @param createPlaylistDto The create playlist payload. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createPlaylistAsync(String name, List ids, UUID userId, String mediaType, CreatePlaylistDto createPlaylistDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createPlaylistValidateBeforeCall(name, ids, userId, mediaType, createPlaylistDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPlaylistItems + * @param playlistId The playlist id. (required) + * @param userId User id. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaylistItemsCall(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPlaylistItemsValidateBeforeCall(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling getPlaylistItems(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getPlaylistItems(Async)"); + } + + return getPlaylistItemsCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + + } + + /** + * Gets the original items of a playlist. + * + * @param playlistId The playlist id. (required) + * @param userId User id. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getPlaylistItems(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + ApiResponse localVarResp = getPlaylistItemsWithHttpInfo(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes); + return localVarResp.getData(); + } + + /** + * Gets the original items of a playlist. + * + * @param playlistId The playlist id. (required) + * @param userId User id. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPlaylistItemsWithHttpInfo(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes) throws ApiException { + okhttp3.Call localVarCall = getPlaylistItemsValidateBeforeCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the original items of a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param userId User id. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Original playlist returned. -
404 Playlist not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPlaylistItemsAsync(UUID playlistId, UUID userId, Integer startIndex, Integer limit, List fields, Boolean enableImages, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPlaylistItemsValidateBeforeCall(playlistId, userId, startIndex, limit, fields, enableImages, enableUserData, imageTypeLimit, enableImageTypes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for moveItem + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call moveItemCall(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "newIndex" + "}", localVarApiClient.escapeString(newIndex.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call moveItemValidateBeforeCall(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling moveItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling moveItem(Async)"); + } + + // verify the required parameter 'newIndex' is set + if (newIndex == null) { + throw new ApiException("Missing the required parameter 'newIndex' when calling moveItem(Async)"); + } + + return moveItemCall(playlistId, itemId, newIndex, _callback); + + } + + /** + * Moves a playlist item. + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
401 Unauthorized -
403 Forbidden -
+ */ + public void moveItem(String playlistId, String itemId, Integer newIndex) throws ApiException { + moveItemWithHttpInfo(playlistId, itemId, newIndex); + } + + /** + * Moves a playlist item. + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse moveItemWithHttpInfo(String playlistId, String itemId, Integer newIndex) throws ApiException { + okhttp3.Call localVarCall = moveItemValidateBeforeCall(playlistId, itemId, newIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Moves a playlist item. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param itemId The item id. (required) + * @param newIndex The new index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Item moved to new index. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call moveItemAsync(String playlistId, String itemId, Integer newIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = moveItemValidateBeforeCall(playlistId, itemId, newIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeFromPlaylist + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromPlaylistCall(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Playlists/{playlistId}/Items" + .replace("{" + "playlistId" + "}", localVarApiClient.escapeString(playlistId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (entryIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "entryIds", entryIds)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeFromPlaylistValidateBeforeCall(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playlistId' is set + if (playlistId == null) { + throw new ApiException("Missing the required parameter 'playlistId' when calling removeFromPlaylist(Async)"); + } + + return removeFromPlaylistCall(playlistId, entryIds, _callback); + + } + + /** + * Removes items from a playlist. + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeFromPlaylist(String playlistId, List entryIds) throws ApiException { + removeFromPlaylistWithHttpInfo(playlistId, entryIds); + } + + /** + * Removes items from a playlist. + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeFromPlaylistWithHttpInfo(String playlistId, List entryIds) throws ApiException { + okhttp3.Call localVarCall = removeFromPlaylistValidateBeforeCall(playlistId, entryIds, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes items from a playlist. (asynchronously) + * + * @param playlistId The playlist id. (required) + * @param entryIds The item ids, comma delimited. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Items removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeFromPlaylistAsync(String playlistId, List entryIds, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeFromPlaylistValidateBeforeCall(playlistId, entryIds, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaystateApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaystateApi.java new file mode 100644 index 0000000000000..bb161d0aea1da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PlaystateApi.java @@ -0,0 +1,1502 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.time.OffsetDateTime; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.PlaybackProgressInfo; +import org.openapitools.client.model.PlaybackStartInfo; +import org.openapitools.client.model.PlaybackStopInfo; +import org.openapitools.client.model.RepeatMode; +import java.util.UUID; +import org.openapitools.client.model.UserItemDataDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PlaystateApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PlaystateApi() { + this(Configuration.getDefaultApiClient()); + } + + public PlaystateApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for markPlayedItem + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param datePlayed Optional. The date the item was played. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markPlayedItemCall(UUID userId, UUID itemId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/PlayedItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (datePlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("datePlayed", datePlayed)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markPlayedItemValidateBeforeCall(UUID userId, UUID itemId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling markPlayedItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markPlayedItem(Async)"); + } + + return markPlayedItemCall(userId, itemId, datePlayed, _callback); + + } + + /** + * Marks an item as played for user. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param datePlayed Optional. The date the item was played. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markPlayedItem(UUID userId, UUID itemId, OffsetDateTime datePlayed) throws ApiException { + ApiResponse localVarResp = markPlayedItemWithHttpInfo(userId, itemId, datePlayed); + return localVarResp.getData(); + } + + /** + * Marks an item as played for user. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param datePlayed Optional. The date the item was played. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markPlayedItemWithHttpInfo(UUID userId, UUID itemId, OffsetDateTime datePlayed) throws ApiException { + okhttp3.Call localVarCall = markPlayedItemValidateBeforeCall(userId, itemId, datePlayed, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as played for user. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param datePlayed Optional. The date the item was played. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as played. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markPlayedItemAsync(UUID userId, UUID itemId, OffsetDateTime datePlayed, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markPlayedItemValidateBeforeCall(userId, itemId, datePlayed, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for markUnplayedItem + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markUnplayedItemCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/PlayedItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markUnplayedItemValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling markUnplayedItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markUnplayedItem(Async)"); + } + + return markUnplayedItemCall(userId, itemId, _callback); + + } + + /** + * Marks an item as unplayed for user. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markUnplayedItem(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = markUnplayedItemWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Marks an item as unplayed for user. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markUnplayedItemWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = markUnplayedItemValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as unplayed for user. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as unplayed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markUnplayedItemAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markUnplayedItemValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackProgress + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackProgressCall(UUID userId, UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/PlayingItems/{itemId}/Progress" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (positionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("positionTicks", positionTicks)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (volumeLevel != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("volumeLevel", volumeLevel)); + } + + if (playMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playMethod", playMethod)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (repeatMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("repeatMode", repeatMode)); + } + + if (isPaused != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPaused", isPaused)); + } + + if (isMuted != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMuted", isMuted)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackProgressValidateBeforeCall(UUID userId, UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling onPlaybackProgress(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackProgress(Async)"); + } + + return onPlaybackProgressCall(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, _callback); + + } + + /** + * Reports a user's playback progress. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackProgress(UUID userId, UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted) throws ApiException { + onPlaybackProgressWithHttpInfo(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted); + } + + /** + * Reports a user's playback progress. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackProgressWithHttpInfo(UUID userId, UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted) throws ApiException { + okhttp3.Call localVarCall = onPlaybackProgressValidateBeforeCall(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports a user's playback progress. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param positionTicks Optional. The current position, in ticks. 1 tick = 10000 ms. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param volumeLevel Scale of 0-100. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param repeatMode The repeat mode. (optional) + * @param isPaused Indicates if the player is paused. (optional, default to false) + * @param isMuted Indicates if the player is muted. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackProgressAsync(UUID userId, UUID itemId, String mediaSourceId, Long positionTicks, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer volumeLevel, PlayMethod playMethod, String liveStreamId, String playSessionId, RepeatMode repeatMode, Boolean isPaused, Boolean isMuted, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackProgressValidateBeforeCall(userId, itemId, mediaSourceId, positionTicks, audioStreamIndex, subtitleStreamIndex, volumeLevel, playMethod, liveStreamId, playSessionId, repeatMode, isPaused, isMuted, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackStart + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStartCall(UUID userId, UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/PlayingItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (playMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playMethod", playMethod)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (canSeek != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("canSeek", canSeek)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackStartValidateBeforeCall(UUID userId, UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling onPlaybackStart(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackStart(Async)"); + } + + return onPlaybackStartCall(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, _callback); + + } + + /** + * Reports that a user has begun playing an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackStart(UUID userId, UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek) throws ApiException { + onPlaybackStartWithHttpInfo(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek); + } + + /** + * Reports that a user has begun playing an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackStartWithHttpInfo(UUID userId, UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek) throws ApiException { + okhttp3.Call localVarCall = onPlaybackStartValidateBeforeCall(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a user has begun playing an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param audioStreamIndex The audio stream index. (optional) + * @param subtitleStreamIndex The subtitle stream index. (optional) + * @param playMethod The play method. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param canSeek Indicates if the client can seek. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStartAsync(UUID userId, UUID itemId, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, PlayMethod playMethod, String liveStreamId, String playSessionId, Boolean canSeek, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackStartValidateBeforeCall(userId, itemId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, playMethod, liveStreamId, playSessionId, canSeek, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for onPlaybackStopped + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStoppedCall(UUID userId, UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/PlayingItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (nextMediaType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nextMediaType", nextMediaType)); + } + + if (positionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("positionTicks", positionTicks)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call onPlaybackStoppedValidateBeforeCall(UUID userId, UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling onPlaybackStopped(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling onPlaybackStopped(Async)"); + } + + return onPlaybackStoppedCall(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, _callback); + + } + + /** + * Reports that a user has stopped playing an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void onPlaybackStopped(UUID userId, UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId) throws ApiException { + onPlaybackStoppedWithHttpInfo(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId); + } + + /** + * Reports that a user has stopped playing an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse onPlaybackStoppedWithHttpInfo(UUID userId, UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId) throws ApiException { + okhttp3.Call localVarCall = onPlaybackStoppedValidateBeforeCall(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a user has stopped playing an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param mediaSourceId The id of the MediaSource. (optional) + * @param nextMediaType The next media type that will play. (optional) + * @param positionTicks Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. (optional) + * @param liveStreamId The live stream id. (optional) + * @param playSessionId The play session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call onPlaybackStoppedAsync(UUID userId, UUID itemId, String mediaSourceId, String nextMediaType, Long positionTicks, String liveStreamId, String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = onPlaybackStoppedValidateBeforeCall(userId, itemId, mediaSourceId, nextMediaType, positionTicks, liveStreamId, playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for pingPlaybackSession + * @param playSessionId Playback session id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call pingPlaybackSessionCall(String playSessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call pingPlaybackSessionValidateBeforeCall(String playSessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playSessionId' is set + if (playSessionId == null) { + throw new ApiException("Missing the required parameter 'playSessionId' when calling pingPlaybackSession(Async)"); + } + + return pingPlaybackSessionCall(playSessionId, _callback); + + } + + /** + * Pings a playback session. + * + * @param playSessionId Playback session id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public void pingPlaybackSession(String playSessionId) throws ApiException { + pingPlaybackSessionWithHttpInfo(playSessionId); + } + + /** + * Pings a playback session. + * + * @param playSessionId Playback session id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse pingPlaybackSessionWithHttpInfo(String playSessionId) throws ApiException { + okhttp3.Call localVarCall = pingPlaybackSessionValidateBeforeCall(playSessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Pings a playback session. (asynchronously) + * + * @param playSessionId Playback session id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback session pinged. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call pingPlaybackSessionAsync(String playSessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = pingPlaybackSessionValidateBeforeCall(playSessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackProgress + * @param playbackProgressInfo The playback progress info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackProgressCall(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackProgressInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Progress"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackProgressValidateBeforeCall(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackProgressCall(playbackProgressInfo, _callback); + + } + + /** + * Reports playback progress within a session. + * + * @param playbackProgressInfo The playback progress info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo) throws ApiException { + reportPlaybackProgressWithHttpInfo(playbackProgressInfo); + } + + /** + * Reports playback progress within a session. + * + * @param playbackProgressInfo The playback progress info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackProgressWithHttpInfo(PlaybackProgressInfo playbackProgressInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackProgressValidateBeforeCall(playbackProgressInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback progress within a session. (asynchronously) + * + * @param playbackProgressInfo The playback progress info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback progress recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackProgressAsync(PlaybackProgressInfo playbackProgressInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackProgressValidateBeforeCall(playbackProgressInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackStart + * @param playbackStartInfo The playback start info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStartCall(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackStartInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackStartValidateBeforeCall(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackStartCall(playbackStartInfo, _callback); + + } + + /** + * Reports playback has started within a session. + * + * @param playbackStartInfo The playback start info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackStart(PlaybackStartInfo playbackStartInfo) throws ApiException { + reportPlaybackStartWithHttpInfo(playbackStartInfo); + } + + /** + * Reports playback has started within a session. + * + * @param playbackStartInfo The playback start info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackStartWithHttpInfo(PlaybackStartInfo playbackStartInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackStartValidateBeforeCall(playbackStartInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback has started within a session. (asynchronously) + * + * @param playbackStartInfo The playback start info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback start recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStartAsync(PlaybackStartInfo playbackStartInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackStartValidateBeforeCall(playbackStartInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportPlaybackStopped + * @param playbackStopInfo The playback stop info. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStoppedCall(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playbackStopInfo; + + // create path and map variables + String localVarPath = "/Sessions/Playing/Stopped"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportPlaybackStoppedValidateBeforeCall(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + return reportPlaybackStoppedCall(playbackStopInfo, _callback); + + } + + /** + * Reports playback has stopped within a session. + * + * @param playbackStopInfo The playback stop info. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportPlaybackStopped(PlaybackStopInfo playbackStopInfo) throws ApiException { + reportPlaybackStoppedWithHttpInfo(playbackStopInfo); + } + + /** + * Reports playback has stopped within a session. + * + * @param playbackStopInfo The playback stop info. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportPlaybackStoppedWithHttpInfo(PlaybackStopInfo playbackStopInfo) throws ApiException { + okhttp3.Call localVarCall = reportPlaybackStoppedValidateBeforeCall(playbackStopInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports playback has stopped within a session. (asynchronously) + * + * @param playbackStopInfo The playback stop info. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playback stop recorded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportPlaybackStoppedAsync(PlaybackStopInfo playbackStopInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportPlaybackStoppedValidateBeforeCall(playbackStopInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PluginsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PluginsApi.java new file mode 100644 index 0000000000000..b3901e178cf35 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/PluginsApi.java @@ -0,0 +1,1359 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.PluginInfo; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PluginsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public PluginsApi() { + this(Configuration.getDefaultApiClient()); + } + + public PluginsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for disablePlugin + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call disablePluginCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Disable" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call disablePluginValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling disablePlugin(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling disablePlugin(Async)"); + } + + return disablePluginCall(pluginId, version, _callback); + + } + + /** + * Disable a plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void disablePlugin(UUID pluginId, String version) throws ApiException { + disablePluginWithHttpInfo(pluginId, version); + } + + /** + * Disable a plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse disablePluginWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = disablePluginValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Disable a plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin disabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call disablePluginAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = disablePluginValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for enablePlugin + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call enablePluginCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Enable" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call enablePluginValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling enablePlugin(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling enablePlugin(Async)"); + } + + return enablePluginCall(pluginId, version, _callback); + + } + + /** + * Enables a disabled plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void enablePlugin(UUID pluginId, String version) throws ApiException { + enablePluginWithHttpInfo(pluginId, version); + } + + /** + * Enables a disabled plugin. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse enablePluginWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = enablePluginValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Enables a disabled plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin enabled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call enablePluginAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = enablePluginValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPluginConfiguration + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginConfigurationCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Configuration" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginConfigurationValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginConfiguration(Async)"); + } + + return getPluginConfigurationCall(pluginId, _callback); + + } + + /** + * Gets plugin configuration. + * + * @param pluginId Plugin id. (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public Object getPluginConfiguration(UUID pluginId) throws ApiException { + ApiResponse localVarResp = getPluginConfigurationWithHttpInfo(pluginId); + return localVarResp.getData(); + } + + /** + * Gets plugin configuration. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginConfigurationWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = getPluginConfigurationValidateBeforeCall(pluginId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets plugin configuration. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin configuration returned. -
404 Plugin not found or plugin configuration not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginConfigurationAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginConfigurationValidateBeforeCall(pluginId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPluginImage + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginImageCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}/Image" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "image/*", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginImageValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginImage(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling getPluginImage(Async)"); + } + + return getPluginImageCall(pluginId, version, _callback); + + } + + /** + * Gets a plugin's image. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public File getPluginImage(UUID pluginId, String version) throws ApiException { + ApiResponse localVarResp = getPluginImageWithHttpInfo(pluginId, version); + return localVarResp.getData(); + } + + /** + * Gets a plugin's image. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginImageWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = getPluginImageValidateBeforeCall(pluginId, version, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a plugin's image. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Plugin image returned. -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginImageAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginImageValidateBeforeCall(pluginId, version, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPluginManifest + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginManifestCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Manifest" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginManifestValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling getPluginManifest(Async)"); + } + + return getPluginManifestCall(pluginId, _callback); + + } + + /** + * Gets a plugin's manifest. + * + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void getPluginManifest(UUID pluginId) throws ApiException { + getPluginManifestWithHttpInfo(pluginId); + } + + /** + * Gets a plugin's manifest. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getPluginManifestWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = getPluginManifestValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Gets a plugin's manifest. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin manifest returned. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginManifestAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginManifestValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getPlugins + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPluginsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPluginsCall(_callback); + + } + + /** + * Gets a list of currently installed plugins. + * + * @return List<PluginInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPlugins() throws ApiException { + ApiResponse> localVarResp = getPluginsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of currently installed plugins. + * + * @return ApiResponse<List<PluginInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPluginsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPluginsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of currently installed plugins. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Installed plugins returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPluginsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPluginsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for uninstallPlugin + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call uninstallPluginCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call uninstallPluginValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling uninstallPlugin(Async)"); + } + + return uninstallPluginCall(pluginId, _callback); + + } + + /** + * Uninstalls a plugin. + * + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public void uninstallPlugin(UUID pluginId) throws ApiException { + uninstallPluginWithHttpInfo(pluginId); + } + + /** + * Uninstalls a plugin. + * + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse uninstallPluginWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = uninstallPluginValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uninstalls a plugin. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call uninstallPluginAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uninstallPluginValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for uninstallPluginByVersion + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uninstallPluginByVersionCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/{version}" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())) + .replace("{" + "version" + "}", localVarApiClient.escapeString(version.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uninstallPluginByVersionValidateBeforeCall(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling uninstallPluginByVersion(Async)"); + } + + // verify the required parameter 'version' is set + if (version == null) { + throw new ApiException("Missing the required parameter 'version' when calling uninstallPluginByVersion(Async)"); + } + + return uninstallPluginByVersionCall(pluginId, version, _callback); + + } + + /** + * Uninstalls a plugin by version. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void uninstallPluginByVersion(UUID pluginId, String version) throws ApiException { + uninstallPluginByVersionWithHttpInfo(pluginId, version); + } + + /** + * Uninstalls a plugin by version. + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse uninstallPluginByVersionWithHttpInfo(UUID pluginId, String version) throws ApiException { + okhttp3.Call localVarCall = uninstallPluginByVersionValidateBeforeCall(pluginId, version, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Uninstalls a plugin by version. (asynchronously) + * + * @param pluginId Plugin id. (required) + * @param version Plugin version. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin uninstalled. -
404 Plugin not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uninstallPluginByVersionAsync(UUID pluginId, String version, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uninstallPluginByVersionValidateBeforeCall(pluginId, version, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updatePluginConfiguration + * @param pluginId Plugin id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updatePluginConfigurationCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Plugins/{pluginId}/Configuration" + .replace("{" + "pluginId" + "}", localVarApiClient.escapeString(pluginId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updatePluginConfigurationValidateBeforeCall(UUID pluginId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pluginId' is set + if (pluginId == null) { + throw new ApiException("Missing the required parameter 'pluginId' when calling updatePluginConfiguration(Async)"); + } + + return updatePluginConfigurationCall(pluginId, _callback); + + } + + /** + * Updates plugin configuration. + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updatePluginConfiguration(UUID pluginId) throws ApiException { + updatePluginConfigurationWithHttpInfo(pluginId); + } + + /** + * Updates plugin configuration. + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updatePluginConfigurationWithHttpInfo(UUID pluginId) throws ApiException { + okhttp3.Call localVarCall = updatePluginConfigurationValidateBeforeCall(pluginId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates plugin configuration. (asynchronously) + * Accepts plugin configuration as JSON body. + * @param pluginId Plugin id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Plugin configuration updated. -
404 Plugin not found or plugin does not have configuration. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updatePluginConfigurationAsync(UUID pluginId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updatePluginConfigurationValidateBeforeCall(pluginId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/QuickConnectApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/QuickConnectApi.java new file mode 100644 index 0000000000000..fd667f908adcc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/QuickConnectApi.java @@ -0,0 +1,594 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.QuickConnectResult; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class QuickConnectApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public QuickConnectApi() { + this(Configuration.getDefaultApiClient()); + } + + public QuickConnectApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for authorize + * @param code Quick connect code to authorize. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public okhttp3.Call authorizeCall(String code, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Authorize"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (code != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("code", code)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authorizeValidateBeforeCall(String code, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'code' is set + if (code == null) { + throw new ApiException("Missing the required parameter 'code' when calling authorize(Async)"); + } + + return authorizeCall(code, _callback); + + } + + /** + * Authorizes a pending quick connect request. + * + * @param code Quick connect code to authorize. (required) + * @return Boolean + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public Boolean authorize(String code) throws ApiException { + ApiResponse localVarResp = authorizeWithHttpInfo(code); + return localVarResp.getData(); + } + + /** + * Authorizes a pending quick connect request. + * + * @param code Quick connect code to authorize. (required) + * @return ApiResponse<Boolean> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public ApiResponse authorizeWithHttpInfo(String code) throws ApiException { + okhttp3.Call localVarCall = authorizeValidateBeforeCall(code, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authorizes a pending quick connect request. (asynchronously) + * + * @param code Quick connect code to authorize. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result authorized successfully. -
403 Unknown user id. -
401 Unauthorized -
+ */ + public okhttp3.Call authorizeAsync(String code, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authorizeValidateBeforeCall(code, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for connect + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public okhttp3.Call connectCall(String secret, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Connect"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (secret != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("secret", secret)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call connectValidateBeforeCall(String secret, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'secret' is set + if (secret == null) { + throw new ApiException("Missing the required parameter 'secret' when calling connect(Async)"); + } + + return connectCall(secret, _callback); + + } + + /** + * Attempts to retrieve authentication information. + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @return QuickConnectResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public QuickConnectResult connect(String secret) throws ApiException { + ApiResponse localVarResp = connectWithHttpInfo(secret); + return localVarResp.getData(); + } + + /** + * Attempts to retrieve authentication information. + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @return ApiResponse<QuickConnectResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public ApiResponse connectWithHttpInfo(String secret) throws ApiException { + okhttp3.Call localVarCall = connectValidateBeforeCall(secret, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Attempts to retrieve authentication information. (asynchronously) + * + * @param secret Secret previously returned from the Initiate endpoint. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect result returned. -
404 Unknown quick connect secret. -
+ */ + public okhttp3.Call connectAsync(String secret, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = connectValidateBeforeCall(secret, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getEnabled + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public okhttp3.Call getEnabledCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Enabled"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getEnabledValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getEnabledCall(_callback); + + } + + /** + * Gets the current quick connect state. + * + * @return Boolean + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public Boolean getEnabled() throws ApiException { + ApiResponse localVarResp = getEnabledWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the current quick connect state. + * + * @return ApiResponse<Boolean> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public ApiResponse getEnabledWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getEnabledValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the current quick connect state. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect state returned. -
+ */ + public okhttp3.Call getEnabledAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getEnabledValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for initiate + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public okhttp3.Call initiateCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/QuickConnect/Initiate"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call initiateValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return initiateCall(_callback); + + } + + /** + * Initiate a new quick connect request. + * + * @return QuickConnectResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public QuickConnectResult initiate() throws ApiException { + ApiResponse localVarResp = initiateWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Initiate a new quick connect request. + * + * @return ApiResponse<QuickConnectResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public ApiResponse initiateWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = initiateValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Initiate a new quick connect request. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Quick connect request successfully created. -
401 Quick connect is not active on this server. -
+ */ + public okhttp3.Call initiateAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = initiateValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/RemoteImageApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/RemoteImageApi.java new file mode 100644 index 0000000000000..4628254d48513 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/RemoteImageApi.java @@ -0,0 +1,559 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ImageProviderInfo; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteImageResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class RemoteImageApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RemoteImageApi() { + this(Configuration.getDefaultApiClient()); + } + + public RemoteImageApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for downloadRemoteImage + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteImageCall(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages/Download" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (imageUrl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageUrl", imageUrl)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call downloadRemoteImageValidateBeforeCall(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling downloadRemoteImage(Async)"); + } + + // verify the required parameter 'type' is set + if (type == null) { + throw new ApiException("Missing the required parameter 'type' when calling downloadRemoteImage(Async)"); + } + + return downloadRemoteImageCall(itemId, type, imageUrl, _callback); + + } + + /** + * Downloads a remote image for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void downloadRemoteImage(UUID itemId, ImageType type, String imageUrl) throws ApiException { + downloadRemoteImageWithHttpInfo(itemId, type, imageUrl); + } + + /** + * Downloads a remote image for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse downloadRemoteImageWithHttpInfo(UUID itemId, ImageType type, String imageUrl) throws ApiException { + okhttp3.Call localVarCall = downloadRemoteImageValidateBeforeCall(itemId, type, imageUrl, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Downloads a remote image for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param type The image type. (required) + * @param imageUrl The image url. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Remote image downloaded. -
404 Remote image not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteImageAsync(UUID itemId, ImageType type, String imageUrl, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = downloadRemoteImageValidateBeforeCall(itemId, type, imageUrl, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getRemoteImageProviders + * @param itemId Item Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImageProvidersCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages/Providers" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteImageProvidersValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getRemoteImageProviders(Async)"); + } + + return getRemoteImageProvidersCall(itemId, _callback); + + } + + /** + * Gets available remote image providers for an item. + * + * @param itemId Item Id. (required) + * @return List<ImageProviderInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getRemoteImageProviders(UUID itemId) throws ApiException { + ApiResponse> localVarResp = getRemoteImageProvidersWithHttpInfo(itemId); + return localVarResp.getData(); + } + + /** + * Gets available remote image providers for an item. + * + * @param itemId Item Id. (required) + * @return ApiResponse<List<ImageProviderInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getRemoteImageProvidersWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getRemoteImageProvidersValidateBeforeCall(itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available remote image providers for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Returned remote image providers. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImageProvidersAsync(UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteImageProvidersValidateBeforeCall(itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRemoteImages + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImagesCall(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteImages" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (providerName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("providerName", providerName)); + } + + if (includeAllLanguages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeAllLanguages", includeAllLanguages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteImagesValidateBeforeCall(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getRemoteImages(Async)"); + } + + return getRemoteImagesCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, _callback); + + } + + /** + * Gets available remote images for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @return RemoteImageResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public RemoteImageResult getRemoteImages(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages) throws ApiException { + ApiResponse localVarResp = getRemoteImagesWithHttpInfo(itemId, type, startIndex, limit, providerName, includeAllLanguages); + return localVarResp.getData(); + } + + /** + * Gets available remote images for an item. + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @return ApiResponse<RemoteImageResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRemoteImagesWithHttpInfo(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages) throws ApiException { + okhttp3.Call localVarCall = getRemoteImagesValidateBeforeCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets available remote images for an item. (asynchronously) + * + * @param itemId Item Id. (required) + * @param type The image type. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param providerName Optional. The image provider to use. (optional) + * @param includeAllLanguages Optional. Include all languages. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Remote Images returned. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteImagesAsync(UUID itemId, ImageType type, Integer startIndex, Integer limit, String providerName, Boolean includeAllLanguages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteImagesValidateBeforeCall(itemId, type, startIndex, limit, providerName, includeAllLanguages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java new file mode 100644 index 0000000000000..e7a922a598392 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/ScheduledTasksApi.java @@ -0,0 +1,784 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.TaskInfo; +import org.openapitools.client.model.TaskTriggerInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ScheduledTasksApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ScheduledTasksApi() { + this(Configuration.getDefaultApiClient()); + } + + public ScheduledTasksApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling getTask(Async)"); + } + + return getTaskCall(taskId, _callback); + + } + + /** + * Get task by id. + * + * @param taskId Task Id. (required) + * @return TaskInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public TaskInfo getTask(String taskId) throws ApiException { + ApiResponse localVarResp = getTaskWithHttpInfo(taskId); + return localVarResp.getData(); + } + + /** + * Get task by id. + * + * @param taskId Task Id. (required) + * @return ApiResponse<TaskInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = getTaskValidateBeforeCall(taskId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get task by id. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Task retrieved. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTaskValidateBeforeCall(taskId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getTasks + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTasksCall(Boolean isHidden, Boolean isEnabled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + if (isEnabled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isEnabled", isEnabled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTasksValidateBeforeCall(Boolean isHidden, Boolean isEnabled, final ApiCallback _callback) throws ApiException { + return getTasksCall(isHidden, isEnabled, _callback); + + } + + /** + * Get tasks. + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @return List<TaskInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getTasks(Boolean isHidden, Boolean isEnabled) throws ApiException { + ApiResponse> localVarResp = getTasksWithHttpInfo(isHidden, isEnabled); + return localVarResp.getData(); + } + + /** + * Get tasks. + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @return ApiResponse<List<TaskInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getTasksWithHttpInfo(Boolean isHidden, Boolean isEnabled) throws ApiException { + okhttp3.Call localVarCall = getTasksValidateBeforeCall(isHidden, isEnabled, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get tasks. (asynchronously) + * + * @param isHidden Optional filter tasks that are hidden, or not. (optional) + * @param isEnabled Optional filter tasks that are enabled, or not. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Scheduled tasks retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTasksAsync(Boolean isHidden, Boolean isEnabled, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getTasksValidateBeforeCall(isHidden, isEnabled, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for startTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call startTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/Running/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call startTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling startTask(Async)"); + } + + return startTaskCall(taskId, _callback); + + } + + /** + * Start specified task. + * + * @param taskId Task Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void startTask(String taskId) throws ApiException { + startTaskWithHttpInfo(taskId); + } + + /** + * Start specified task. + * + * @param taskId Task Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse startTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = startTaskValidateBeforeCall(taskId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Start specified task. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task started. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call startTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = startTaskValidateBeforeCall(taskId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for stopTask + * @param taskId Task Id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopTaskCall(String taskId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/ScheduledTasks/Running/{taskId}" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call stopTaskValidateBeforeCall(String taskId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling stopTask(Async)"); + } + + return stopTaskCall(taskId, _callback); + + } + + /** + * Stop specified task. + * + * @param taskId Task Id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void stopTask(String taskId) throws ApiException { + stopTaskWithHttpInfo(taskId); + } + + /** + * Stop specified task. + * + * @param taskId Task Id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse stopTaskWithHttpInfo(String taskId) throws ApiException { + okhttp3.Call localVarCall = stopTaskValidateBeforeCall(taskId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Stop specified task. (asynchronously) + * + * @param taskId Task Id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task stopped. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call stopTaskAsync(String taskId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = stopTaskValidateBeforeCall(taskId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateTask + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTaskCall(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = taskTriggerInfo; + + // create path and map variables + String localVarPath = "/ScheduledTasks/{taskId}/Triggers" + .replace("{" + "taskId" + "}", localVarApiClient.escapeString(taskId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateTaskValidateBeforeCall(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'taskId' is set + if (taskId == null) { + throw new ApiException("Missing the required parameter 'taskId' when calling updateTask(Async)"); + } + + // verify the required parameter 'taskTriggerInfo' is set + if (taskTriggerInfo == null) { + throw new ApiException("Missing the required parameter 'taskTriggerInfo' when calling updateTask(Async)"); + } + + return updateTaskCall(taskId, taskTriggerInfo, _callback); + + } + + /** + * Update specified task triggers. + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateTask(String taskId, List taskTriggerInfo) throws ApiException { + updateTaskWithHttpInfo(taskId, taskTriggerInfo); + } + + /** + * Update specified task triggers. + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateTaskWithHttpInfo(String taskId, List taskTriggerInfo) throws ApiException { + okhttp3.Call localVarCall = updateTaskValidateBeforeCall(taskId, taskTriggerInfo, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update specified task triggers. (asynchronously) + * + * @param taskId Task Id. (required) + * @param taskTriggerInfo Triggers. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Task triggers updated. -
404 Task not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateTaskAsync(String taskId, List taskTriggerInfo, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateTaskValidateBeforeCall(taskId, taskTriggerInfo, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SearchApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SearchApi.java new file mode 100644 index 0000000000000..022c3de34a538 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SearchApi.java @@ -0,0 +1,353 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.SearchHintResult; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SearchApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SearchApi() { + this(Configuration.getDefaultApiClient()); + } + + public SearchApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for get + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimeted. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCall(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Search/Hints"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (includePeople != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includePeople", includePeople)); + } + + if (includeMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeMedia", includeMedia)); + } + + if (includeGenres != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeGenres", includeGenres)); + } + + if (includeStudios != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeStudios", includeStudios)); + } + + if (includeArtists != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeArtists", includeArtists)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getValidateBeforeCall(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'searchTerm' is set + if (searchTerm == null) { + throw new ApiException("Missing the required parameter 'searchTerm' when calling get(Async)"); + } + + return getCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, _callback); + + } + + /** + * Gets the search hint result. + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimeted. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @return SearchHintResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public SearchHintResult get(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists) throws ApiException { + ApiResponse localVarResp = getWithHttpInfo(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists); + return localVarResp.getData(); + } + + /** + * Gets the search hint result. + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimeted. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @return ApiResponse<SearchHintResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getWithHttpInfo(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists) throws ApiException { + okhttp3.Call localVarCall = getValidateBeforeCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the search hint result. (asynchronously) + * + * @param searchTerm The search term to filter on. (required) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param userId Optional. Supply a user id to search within a user's library or omit to search all. (optional) + * @param includeItemTypes If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. (optional) + * @param excludeItemTypes If specified, results with these item types are filtered out. This allows multiple, comma delimeted. (optional) + * @param mediaTypes If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. (optional) + * @param parentId If specified, only children of the parent are returned. (optional) + * @param isMovie Optional filter for movies. (optional) + * @param isSeries Optional filter for series. (optional) + * @param isNews Optional filter for news. (optional) + * @param isKids Optional filter for kids. (optional) + * @param isSports Optional filter for sports. (optional) + * @param includePeople Optional filter whether to include people. (optional, default to true) + * @param includeMedia Optional filter whether to include media. (optional, default to true) + * @param includeGenres Optional filter whether to include genres. (optional, default to true) + * @param includeStudios Optional filter whether to include studios. (optional, default to true) + * @param includeArtists Optional filter whether to include artists. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Search hint returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAsync(String searchTerm, Integer startIndex, Integer limit, UUID userId, List includeItemTypes, List excludeItemTypes, List mediaTypes, UUID parentId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, Boolean includePeople, Boolean includeMedia, Boolean includeGenres, Boolean includeStudios, Boolean includeArtists, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getValidateBeforeCall(searchTerm, startIndex, limit, userId, includeItemTypes, excludeItemTypes, mediaTypes, parentId, isMovie, isSeries, isNews, isKids, isSports, includePeople, includeMedia, includeGenres, includeStudios, includeArtists, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SessionApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SessionApi.java new file mode 100644 index 0000000000000..f580d3350ca0a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SessionApi.java @@ -0,0 +1,2423 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ClientCapabilitiesDto; +import org.openapitools.client.model.GeneralCommand; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.client.model.MessageCommand; +import org.openapitools.client.model.NameIdPair; +import org.openapitools.client.model.PlayCommand; +import org.openapitools.client.model.PlaystateCommand; +import org.openapitools.client.model.SessionInfo; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SessionApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SessionApi() { + this(Configuration.getDefaultApiClient()); + } + + public SessionApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for addUserToSession + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addUserToSessionCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/User/{userId}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call addUserToSessionValidateBeforeCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling addUserToSession(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling addUserToSession(Async)"); + } + + return addUserToSessionCall(sessionId, userId, _callback); + + } + + /** + * Adds an additional user to a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void addUserToSession(String sessionId, UUID userId) throws ApiException { + addUserToSessionWithHttpInfo(sessionId, userId); + } + + /** + * Adds an additional user to a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse addUserToSessionWithHttpInfo(String sessionId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = addUserToSessionValidateBeforeCall(sessionId, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Adds an additional user to a session. (asynchronously) + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User added to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call addUserToSessionAsync(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = addUserToSessionValidateBeforeCall(sessionId, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for displayContent + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call displayContentCall(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Viewing" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemType", itemType)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (itemName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemName", itemName)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call displayContentValidateBeforeCall(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemType' is set + if (itemType == null) { + throw new ApiException("Missing the required parameter 'itemType' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling displayContent(Async)"); + } + + // verify the required parameter 'itemName' is set + if (itemName == null) { + throw new ApiException("Missing the required parameter 'itemName' when calling displayContent(Async)"); + } + + return displayContentCall(sessionId, itemType, itemId, itemName, _callback); + + } + + /** + * Instructs a session to browse to an item or view. + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void displayContent(String sessionId, BaseItemKind itemType, String itemId, String itemName) throws ApiException { + displayContentWithHttpInfo(sessionId, itemType, itemId, itemName); + } + + /** + * Instructs a session to browse to an item or view. + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse displayContentWithHttpInfo(String sessionId, BaseItemKind itemType, String itemId, String itemName) throws ApiException { + okhttp3.Call localVarCall = displayContentValidateBeforeCall(sessionId, itemType, itemId, itemName, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Instructs a session to browse to an item or view. (asynchronously) + * + * @param sessionId The session Id. (required) + * @param itemType The type of item to browse to. (required) + * @param itemId The Id of the item. (required) + * @param itemName The name of the item. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call displayContentAsync(String sessionId, BaseItemKind itemType, String itemId, String itemName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = displayContentValidateBeforeCall(sessionId, itemType, itemId, itemName, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAuthProviders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAuthProvidersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/Providers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAuthProvidersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getAuthProvidersCall(_callback); + + } + + /** + * Get all auth providers. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getAuthProviders() throws ApiException { + ApiResponse> localVarResp = getAuthProvidersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all auth providers. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getAuthProvidersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getAuthProvidersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all auth providers. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Auth providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAuthProvidersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAuthProvidersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPasswordResetProviders + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPasswordResetProvidersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Auth/PasswordResetProviders"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPasswordResetProvidersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPasswordResetProvidersCall(_callback); + + } + + /** + * Get all password reset providers. + * + * @return List<NameIdPair> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getPasswordResetProviders() throws ApiException { + ApiResponse> localVarResp = getPasswordResetProvidersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get all password reset providers. + * + * @return ApiResponse<List<NameIdPair>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getPasswordResetProvidersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPasswordResetProvidersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get all password reset providers. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Password reset providers retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getPasswordResetProvidersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPasswordResetProvidersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSessions + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSessionsCall(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (controllableByUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("controllableByUserId", controllableByUserId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (activeWithinSeconds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("activeWithinSeconds", activeWithinSeconds)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSessionsValidateBeforeCall(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback _callback) throws ApiException { + return getSessionsCall(controllableByUserId, deviceId, activeWithinSeconds, _callback); + + } + + /** + * Gets a list of sessions. + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @return List<SessionInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSessions(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds) throws ApiException { + ApiResponse> localVarResp = getSessionsWithHttpInfo(controllableByUserId, deviceId, activeWithinSeconds); + return localVarResp.getData(); + } + + /** + * Gets a list of sessions. + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @return ApiResponse<List<SessionInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSessionsWithHttpInfo(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds) throws ApiException { + okhttp3.Call localVarCall = getSessionsValidateBeforeCall(controllableByUserId, deviceId, activeWithinSeconds, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of sessions. (asynchronously) + * + * @param controllableByUserId Filter by sessions that a given user is allowed to remote control. (optional) + * @param deviceId Filter by device Id. (optional) + * @param activeWithinSeconds Optional. Filter by sessions that were active in the last n seconds. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 List of sessions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSessionsAsync(UUID controllableByUserId, String deviceId, Integer activeWithinSeconds, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSessionsValidateBeforeCall(controllableByUserId, deviceId, activeWithinSeconds, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for play + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call playCall(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Playing" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (playCommand != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playCommand", playCommand)); + } + + if (itemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "itemIds", itemIds)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call playValidateBeforeCall(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling play(Async)"); + } + + // verify the required parameter 'playCommand' is set + if (playCommand == null) { + throw new ApiException("Missing the required parameter 'playCommand' when calling play(Async)"); + } + + // verify the required parameter 'itemIds' is set + if (itemIds == null) { + throw new ApiException("Missing the required parameter 'itemIds' when calling play(Async)"); + } + + return playCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, _callback); + + } + + /** + * Instructs a session to play an item. + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void play(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex) throws ApiException { + playWithHttpInfo(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex); + } + + /** + * Instructs a session to play an item. + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse playWithHttpInfo(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex) throws ApiException { + okhttp3.Call localVarCall = playValidateBeforeCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Instructs a session to play an item. (asynchronously) + * + * @param sessionId The session id. (required) + * @param playCommand The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. (required) + * @param itemIds The ids of the items to play, comma delimited. (required) + * @param startPositionTicks The starting position of the first item. (optional) + * @param mediaSourceId Optional. The media source id. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to play. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to play. (optional) + * @param startIndex Optional. The start index. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Instruction sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call playAsync(String sessionId, PlayCommand playCommand, List itemIds, Long startPositionTicks, String mediaSourceId, Integer audioStreamIndex, Integer subtitleStreamIndex, Integer startIndex, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = playValidateBeforeCall(sessionId, playCommand, itemIds, startPositionTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, startIndex, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postCapabilities + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsSync Determines whether sync is supported. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postCapabilitiesCall(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsSync, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Capabilities"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + if (playableMediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "playableMediaTypes", playableMediaTypes)); + } + + if (supportedCommands != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "supportedCommands", supportedCommands)); + } + + if (supportsMediaControl != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsMediaControl", supportsMediaControl)); + } + + if (supportsSync != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsSync", supportsSync)); + } + + if (supportsPersistentIdentifier != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("supportsPersistentIdentifier", supportsPersistentIdentifier)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postCapabilitiesValidateBeforeCall(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsSync, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + return postCapabilitiesCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier, _callback); + + } + + /** + * Updates capabilities for a device. + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsSync Determines whether sync is supported. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postCapabilities(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsSync, Boolean supportsPersistentIdentifier) throws ApiException { + postCapabilitiesWithHttpInfo(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier); + } + + /** + * Updates capabilities for a device. + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsSync Determines whether sync is supported. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postCapabilitiesWithHttpInfo(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsSync, Boolean supportsPersistentIdentifier) throws ApiException { + okhttp3.Call localVarCall = postCapabilitiesValidateBeforeCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates capabilities for a device. (asynchronously) + * + * @param id The session id. (optional) + * @param playableMediaTypes A list of playable media types, comma delimited. Audio, Video, Book, Photo. (optional) + * @param supportedCommands A list of supported remote control commands, comma delimited. (optional) + * @param supportsMediaControl Determines whether media can be played remotely.. (optional, default to false) + * @param supportsSync Determines whether sync is supported. (optional, default to false) + * @param supportsPersistentIdentifier Determines whether the device supports a unique identifier. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities posted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postCapabilitiesAsync(String id, List playableMediaTypes, List supportedCommands, Boolean supportsMediaControl, Boolean supportsSync, Boolean supportsPersistentIdentifier, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postCapabilitiesValidateBeforeCall(id, playableMediaTypes, supportedCommands, supportsMediaControl, supportsSync, supportsPersistentIdentifier, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for postFullCapabilities + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postFullCapabilitiesCall(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = clientCapabilitiesDto; + + // create path and map variables + String localVarPath = "/Sessions/Capabilities/Full"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (id != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("id", id)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postFullCapabilitiesValidateBeforeCall(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'clientCapabilitiesDto' is set + if (clientCapabilitiesDto == null) { + throw new ApiException("Missing the required parameter 'clientCapabilitiesDto' when calling postFullCapabilities(Async)"); + } + + return postFullCapabilitiesCall(clientCapabilitiesDto, id, _callback); + + } + + /** + * Updates capabilities for a device. + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void postFullCapabilities(ClientCapabilitiesDto clientCapabilitiesDto, String id) throws ApiException { + postFullCapabilitiesWithHttpInfo(clientCapabilitiesDto, id); + } + + /** + * Updates capabilities for a device. + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse postFullCapabilitiesWithHttpInfo(ClientCapabilitiesDto clientCapabilitiesDto, String id) throws ApiException { + okhttp3.Call localVarCall = postFullCapabilitiesValidateBeforeCall(clientCapabilitiesDto, id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates capabilities for a device. (asynchronously) + * + * @param clientCapabilitiesDto The MediaBrowser.Model.Session.ClientCapabilities. (required) + * @param id The session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Capabilities updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call postFullCapabilitiesAsync(ClientCapabilitiesDto clientCapabilitiesDto, String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postFullCapabilitiesValidateBeforeCall(clientCapabilitiesDto, id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for removeUserFromSession + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeUserFromSessionCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/User/{userId}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call removeUserFromSessionValidateBeforeCall(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling removeUserFromSession(Async)"); + } + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling removeUserFromSession(Async)"); + } + + return removeUserFromSessionCall(sessionId, userId, _callback); + + } + + /** + * Removes an additional user from a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void removeUserFromSession(String sessionId, UUID userId) throws ApiException { + removeUserFromSessionWithHttpInfo(sessionId, userId); + } + + /** + * Removes an additional user from a session. + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse removeUserFromSessionWithHttpInfo(String sessionId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = removeUserFromSessionValidateBeforeCall(sessionId, userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes an additional user from a session. (asynchronously) + * + * @param sessionId The session id. (required) + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User removed from session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call removeUserFromSessionAsync(String sessionId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = removeUserFromSessionValidateBeforeCall(sessionId, userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportSessionEnded + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportSessionEndedCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Logout"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportSessionEndedValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return reportSessionEndedCall(_callback); + + } + + /** + * Reports that a session has ended. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportSessionEnded() throws ApiException { + reportSessionEndedWithHttpInfo(); + } + + /** + * Reports that a session has ended. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportSessionEndedWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = reportSessionEndedValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session has ended. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session end reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportSessionEndedAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportSessionEndedValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for reportViewing + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportViewingCall(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/Viewing"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (sessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sessionId", sessionId)); + } + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call reportViewingValidateBeforeCall(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling reportViewing(Async)"); + } + + return reportViewingCall(itemId, sessionId, _callback); + + } + + /** + * Reports that a session is viewing an item. + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public void reportViewing(String itemId, String sessionId) throws ApiException { + reportViewingWithHttpInfo(itemId, sessionId); + } + + /** + * Reports that a session is viewing an item. + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse reportViewingWithHttpInfo(String itemId, String sessionId) throws ApiException { + okhttp3.Call localVarCall = reportViewingValidateBeforeCall(itemId, sessionId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Reports that a session is viewing an item. (asynchronously) + * + * @param itemId The item id. (required) + * @param sessionId The session id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Session reported to server. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call reportViewingAsync(String itemId, String sessionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = reportViewingValidateBeforeCall(itemId, sessionId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendFullGeneralCommand + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendFullGeneralCommandCall(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = generalCommand; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Command" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendFullGeneralCommandValidateBeforeCall(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendFullGeneralCommand(Async)"); + } + + // verify the required parameter 'generalCommand' is set + if (generalCommand == null) { + throw new ApiException("Missing the required parameter 'generalCommand' when calling sendFullGeneralCommand(Async)"); + } + + return sendFullGeneralCommandCall(sessionId, generalCommand, _callback); + + } + + /** + * Issues a full general command to a client. + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendFullGeneralCommand(String sessionId, GeneralCommand generalCommand) throws ApiException { + sendFullGeneralCommandWithHttpInfo(sessionId, generalCommand); + } + + /** + * Issues a full general command to a client. + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendFullGeneralCommandWithHttpInfo(String sessionId, GeneralCommand generalCommand) throws ApiException { + okhttp3.Call localVarCall = sendFullGeneralCommandValidateBeforeCall(sessionId, generalCommand, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a full general command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param generalCommand The MediaBrowser.Model.Session.GeneralCommand. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Full general command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendFullGeneralCommandAsync(String sessionId, GeneralCommand generalCommand, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendFullGeneralCommandValidateBeforeCall(sessionId, generalCommand, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendGeneralCommand + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendGeneralCommandCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Command/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendGeneralCommandValidateBeforeCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendGeneralCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendGeneralCommand(Async)"); + } + + return sendGeneralCommandCall(sessionId, command, _callback); + + } + + /** + * Issues a general command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendGeneralCommand(String sessionId, GeneralCommandType command) throws ApiException { + sendGeneralCommandWithHttpInfo(sessionId, command); + } + + /** + * Issues a general command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendGeneralCommandWithHttpInfo(String sessionId, GeneralCommandType command) throws ApiException { + okhttp3.Call localVarCall = sendGeneralCommandValidateBeforeCall(sessionId, command, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a general command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 General command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendGeneralCommandAsync(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendGeneralCommandValidateBeforeCall(sessionId, command, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendMessageCommand + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendMessageCommandCall(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = messageCommand; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Message" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendMessageCommandValidateBeforeCall(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendMessageCommand(Async)"); + } + + // verify the required parameter 'messageCommand' is set + if (messageCommand == null) { + throw new ApiException("Missing the required parameter 'messageCommand' when calling sendMessageCommand(Async)"); + } + + return sendMessageCommandCall(sessionId, messageCommand, _callback); + + } + + /** + * Issues a command to a client to display a message to the user. + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendMessageCommand(String sessionId, MessageCommand messageCommand) throws ApiException { + sendMessageCommandWithHttpInfo(sessionId, messageCommand); + } + + /** + * Issues a command to a client to display a message to the user. + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendMessageCommandWithHttpInfo(String sessionId, MessageCommand messageCommand) throws ApiException { + okhttp3.Call localVarCall = sendMessageCommandValidateBeforeCall(sessionId, messageCommand, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a command to a client to display a message to the user. (asynchronously) + * + * @param sessionId The session id. (required) + * @param messageCommand The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Message sent. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendMessageCommandAsync(String sessionId, MessageCommand messageCommand, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendMessageCommandValidateBeforeCall(sessionId, messageCommand, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendPlaystateCommand + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendPlaystateCommandCall(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/Playing/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (seekPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seekPositionTicks", seekPositionTicks)); + } + + if (controllingUserId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("controllingUserId", controllingUserId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendPlaystateCommandValidateBeforeCall(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendPlaystateCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendPlaystateCommand(Async)"); + } + + return sendPlaystateCommandCall(sessionId, command, seekPositionTicks, controllingUserId, _callback); + + } + + /** + * Issues a playstate command to a client. + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendPlaystateCommand(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId) throws ApiException { + sendPlaystateCommandWithHttpInfo(sessionId, command, seekPositionTicks, controllingUserId); + } + + /** + * Issues a playstate command to a client. + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendPlaystateCommandWithHttpInfo(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId) throws ApiException { + okhttp3.Call localVarCall = sendPlaystateCommandValidateBeforeCall(sessionId, command, seekPositionTicks, controllingUserId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a playstate command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The MediaBrowser.Model.Session.PlaystateCommand. (required) + * @param seekPositionTicks The optional position ticks. (optional) + * @param controllingUserId The optional controlling user id. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Playstate command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendPlaystateCommandAsync(String sessionId, PlaystateCommand command, Long seekPositionTicks, String controllingUserId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendPlaystateCommandValidateBeforeCall(sessionId, command, seekPositionTicks, controllingUserId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for sendSystemCommand + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendSystemCommandCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Sessions/{sessionId}/System/{command}" + .replace("{" + "sessionId" + "}", localVarApiClient.escapeString(sessionId.toString())) + .replace("{" + "command" + "}", localVarApiClient.escapeString(command.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call sendSystemCommandValidateBeforeCall(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling sendSystemCommand(Async)"); + } + + // verify the required parameter 'command' is set + if (command == null) { + throw new ApiException("Missing the required parameter 'command' when calling sendSystemCommand(Async)"); + } + + return sendSystemCommandCall(sessionId, command, _callback); + + } + + /** + * Issues a system command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public void sendSystemCommand(String sessionId, GeneralCommandType command) throws ApiException { + sendSystemCommandWithHttpInfo(sessionId, command); + } + + /** + * Issues a system command to a client. + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse sendSystemCommandWithHttpInfo(String sessionId, GeneralCommandType command) throws ApiException { + okhttp3.Call localVarCall = sendSystemCommandValidateBeforeCall(sessionId, command, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Issues a system command to a client. (asynchronously) + * + * @param sessionId The session id. (required) + * @param command The command to send. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 System command sent to session. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call sendSystemCommandAsync(String sessionId, GeneralCommandType command, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = sendSystemCommandValidateBeforeCall(sessionId, command, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StartupApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StartupApi.java new file mode 100644 index 0000000000000..5efbe64f91cee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StartupApi.java @@ -0,0 +1,969 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.StartupConfigurationDto; +import org.openapitools.client.model.StartupRemoteAccessDto; +import org.openapitools.client.model.StartupUserDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StartupApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StartupApi() { + this(Configuration.getDefaultApiClient()); + } + + public StartupApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for completeWizard + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call completeWizardCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/Complete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call completeWizardValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return completeWizardCall(_callback); + + } + + /** + * Completes the startup wizard. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public void completeWizard() throws ApiException { + completeWizardWithHttpInfo(); + } + + /** + * Completes the startup wizard. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse completeWizardWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = completeWizardValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Completes the startup wizard. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Startup wizard completed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call completeWizardAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = completeWizardValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getFirstUser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/User"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFirstUserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFirstUserCall(_callback); + + } + + /** + * Gets the first user. + * + * @return StartupUserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupUserDto getFirstUser() throws ApiException { + ApiResponse localVarResp = getFirstUserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the first user. + * + * @return ApiResponse<StartupUserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFirstUserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFirstUserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the first user. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFirstUserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFirstUser2 + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUser2Call(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/FirstUser"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFirstUser2ValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFirstUser2Call(_callback); + + } + + /** + * Gets the first user. + * + * @return StartupUserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupUserDto getFirstUser2() throws ApiException { + ApiResponse localVarResp = getFirstUser2WithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the first user. + * + * @return ApiResponse<StartupUserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFirstUser2WithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFirstUser2ValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the first user. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial user retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFirstUser2Async(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFirstUser2ValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStartupConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStartupConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Startup/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStartupConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getStartupConfigurationCall(_callback); + + } + + /** + * Gets the initial startup wizard configuration. + * + * @return StartupConfigurationDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public StartupConfigurationDto getStartupConfiguration() throws ApiException { + ApiResponse localVarResp = getStartupConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the initial startup wizard configuration. + * + * @return ApiResponse<StartupConfigurationDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStartupConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getStartupConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the initial startup wizard configuration. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Initial startup wizard configuration retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStartupConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStartupConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for setRemoteAccess + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRemoteAccessCall(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupRemoteAccessDto; + + // create path and map variables + String localVarPath = "/Startup/RemoteAccess"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call setRemoteAccessValidateBeforeCall(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'startupRemoteAccessDto' is set + if (startupRemoteAccessDto == null) { + throw new ApiException("Missing the required parameter 'startupRemoteAccessDto' when calling setRemoteAccess(Async)"); + } + + return setRemoteAccessCall(startupRemoteAccessDto, _callback); + + } + + /** + * Sets remote access and UPnP. + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void setRemoteAccess(StartupRemoteAccessDto startupRemoteAccessDto) throws ApiException { + setRemoteAccessWithHttpInfo(startupRemoteAccessDto); + } + + /** + * Sets remote access and UPnP. + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse setRemoteAccessWithHttpInfo(StartupRemoteAccessDto startupRemoteAccessDto) throws ApiException { + okhttp3.Call localVarCall = setRemoteAccessValidateBeforeCall(startupRemoteAccessDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets remote access and UPnP. (asynchronously) + * + * @param startupRemoteAccessDto The startup remote access dto. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call setRemoteAccessAsync(StartupRemoteAccessDto startupRemoteAccessDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = setRemoteAccessValidateBeforeCall(startupRemoteAccessDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateInitialConfiguration + * @param startupConfigurationDto The updated startup configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateInitialConfigurationCall(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupConfigurationDto; + + // create path and map variables + String localVarPath = "/Startup/Configuration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateInitialConfigurationValidateBeforeCall(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'startupConfigurationDto' is set + if (startupConfigurationDto == null) { + throw new ApiException("Missing the required parameter 'startupConfigurationDto' when calling updateInitialConfiguration(Async)"); + } + + return updateInitialConfigurationCall(startupConfigurationDto, _callback); + + } + + /** + * Sets the initial startup wizard configuration. + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateInitialConfiguration(StartupConfigurationDto startupConfigurationDto) throws ApiException { + updateInitialConfigurationWithHttpInfo(startupConfigurationDto); + } + + /** + * Sets the initial startup wizard configuration. + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateInitialConfigurationWithHttpInfo(StartupConfigurationDto startupConfigurationDto) throws ApiException { + okhttp3.Call localVarCall = updateInitialConfigurationValidateBeforeCall(startupConfigurationDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the initial startup wizard configuration. (asynchronously) + * + * @param startupConfigurationDto The updated startup configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Configuration saved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateInitialConfigurationAsync(StartupConfigurationDto startupConfigurationDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateInitialConfigurationValidateBeforeCall(startupConfigurationDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateStartupUser + * @param startupUserDto The DTO containing username and password. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateStartupUserCall(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startupUserDto; + + // create path and map variables + String localVarPath = "/Startup/User"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateStartupUserValidateBeforeCall(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + return updateStartupUserCall(startupUserDto, _callback); + + } + + /** + * Sets the user name and password. + * + * @param startupUserDto The DTO containing username and password. (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public void updateStartupUser(StartupUserDto startupUserDto) throws ApiException { + updateStartupUserWithHttpInfo(startupUserDto); + } + + /** + * Sets the user name and password. + * + * @param startupUserDto The DTO containing username and password. (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateStartupUserWithHttpInfo(StartupUserDto startupUserDto) throws ApiException { + okhttp3.Call localVarCall = updateStartupUserValidateBeforeCall(startupUserDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Sets the user name and password. (asynchronously) + * + * @param startupUserDto The DTO containing username and password. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Updated user name and password. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateStartupUserAsync(StartupUserDto startupUserDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateStartupUserValidateBeforeCall(startupUserDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StudiosApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StudiosApi.java new file mode 100644 index 0000000000000..ef76f8c240754 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/StudiosApi.java @@ -0,0 +1,488 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StudiosApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StudiosApi() { + this(Configuration.getDefaultApiClient()); + } + + public StudiosApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getStudio + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudioCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudioValidateBeforeCall(String name, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getStudio(Async)"); + } + + return getStudioCall(name, userId, _callback); + + } + + /** + * Gets a studio by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getStudio(String name, UUID userId) throws ApiException { + ApiResponse localVarResp = getStudioWithHttpInfo(name, userId); + return localVarResp.getData(); + } + + /** + * Gets a studio by name. + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStudioWithHttpInfo(String name, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getStudioValidateBeforeCall(name, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a studio by name. (asynchronously) + * + * @param name Studio name. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studio returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudioAsync(String name, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudioValidateBeforeCall(name, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStudios + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudiosCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Studios"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStudiosValidateBeforeCall(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + return getStudiosCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, _callback); + + } + + /** + * Gets all studios from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getStudios(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getStudiosWithHttpInfo(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets all studios from a given item, folder, or the entire library. + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getStudiosWithHttpInfo(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getStudiosValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all studios from a given item, folder, or the entire library. (asynchronously) + * + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param searchTerm Optional. Search term. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User id. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param enableTotalRecordCount Total record count. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Studios returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getStudiosAsync(Integer startIndex, Integer limit, String searchTerm, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, Boolean isFavorite, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Boolean enableImages, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStudiosValidateBeforeCall(startIndex, limit, searchTerm, parentId, fields, excludeItemTypes, includeItemTypes, isFavorite, enableUserData, imageTypeLimit, enableImageTypes, userId, nameStartsWithOrGreater, nameStartsWith, nameLessThan, enableImages, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SubtitleApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SubtitleApi.java new file mode 100644 index 0000000000000..cbab4999b1744 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SubtitleApi.java @@ -0,0 +1,1681 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.FontFile; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.RemoteSubtitleInfo; +import java.util.UUID; +import org.openapitools.client.model.UploadSubtitleDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SubtitleApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SubtitleApi() { + this(Configuration.getDefaultApiClient()); + } + + public SubtitleApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteSubtitle + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteSubtitleCall(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Subtitles/{index}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteSubtitleValidateBeforeCall(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteSubtitle(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling deleteSubtitle(Async)"); + } + + return deleteSubtitleCall(itemId, index, _callback); + + } + + /** + * Deletes an external subtitle file. + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteSubtitle(UUID itemId, Integer index) throws ApiException { + deleteSubtitleWithHttpInfo(itemId, index); + } + + /** + * Deletes an external subtitle file. + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteSubtitleWithHttpInfo(UUID itemId, Integer index) throws ApiException { + okhttp3.Call localVarCall = deleteSubtitleValidateBeforeCall(itemId, index, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an external subtitle file. (asynchronously) + * + * @param itemId The item id. (required) + * @param index The index of the subtitle file. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle deleted. -
404 Item not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteSubtitleAsync(UUID itemId, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteSubtitleValidateBeforeCall(itemId, index, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for downloadRemoteSubtitles + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteSubtitlesCall(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "subtitleId" + "}", localVarApiClient.escapeString(subtitleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call downloadRemoteSubtitlesValidateBeforeCall(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling downloadRemoteSubtitles(Async)"); + } + + // verify the required parameter 'subtitleId' is set + if (subtitleId == null) { + throw new ApiException("Missing the required parameter 'subtitleId' when calling downloadRemoteSubtitles(Async)"); + } + + return downloadRemoteSubtitlesCall(itemId, subtitleId, _callback); + + } + + /** + * Downloads a remote subtitle. + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void downloadRemoteSubtitles(UUID itemId, String subtitleId) throws ApiException { + downloadRemoteSubtitlesWithHttpInfo(itemId, subtitleId); + } + + /** + * Downloads a remote subtitle. + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse downloadRemoteSubtitlesWithHttpInfo(UUID itemId, String subtitleId) throws ApiException { + okhttp3.Call localVarCall = downloadRemoteSubtitlesValidateBeforeCall(itemId, subtitleId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Downloads a remote subtitle. (asynchronously) + * + * @param itemId The item id. (required) + * @param subtitleId The subtitle id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle downloaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call downloadRemoteSubtitlesAsync(UUID itemId, String subtitleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = downloadRemoteSubtitlesValidateBeforeCall(itemId, subtitleId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getFallbackFont + * @param name The name of the fallback font file to get. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/FallbackFont/Fonts/{name}" + .replace("{" + "name" + "}", localVarApiClient.escapeString(name.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "font/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFallbackFontValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getFallbackFont(Async)"); + } + + return getFallbackFontCall(name, _callback); + + } + + /** + * Gets a fallback font file. + * + * @param name The name of the fallback font file to get. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getFallbackFont(String name) throws ApiException { + ApiResponse localVarResp = getFallbackFontWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a fallback font file. + * + * @param name The name of the fallback font file to get. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getFallbackFontWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getFallbackFontValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a fallback font file. (asynchronously) + * + * @param name The name of the fallback font file to get. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Fallback font file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getFallbackFontValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getFallbackFontList + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontListCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/FallbackFont/Fonts"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getFallbackFontListValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getFallbackFontListCall(_callback); + + } + + /** + * Gets a list of available fallback font files. + * + * @return List<FontFile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getFallbackFontList() throws ApiException { + ApiResponse> localVarResp = getFallbackFontListWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of available fallback font files. + * + * @return ApiResponse<List<FontFile>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getFallbackFontListWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getFallbackFontListValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of available fallback font files. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getFallbackFontListAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getFallbackFontListValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRemoteSubtitles + * @param id The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteSubtitlesCall(String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Providers/Subtitles/Subtitles/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRemoteSubtitlesValidateBeforeCall(String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getRemoteSubtitles(Async)"); + } + + return getRemoteSubtitlesCall(id, _callback); + + } + + /** + * Gets the remote subtitles. + * + * @param id The item id. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getRemoteSubtitles(String id) throws ApiException { + ApiResponse localVarResp = getRemoteSubtitlesWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Gets the remote subtitles. + * + * @param id The item id. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRemoteSubtitlesWithHttpInfo(String id) throws ApiException { + okhttp3.Call localVarCall = getRemoteSubtitlesValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the remote subtitles. (asynchronously) + * + * @param id The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRemoteSubtitlesAsync(String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRemoteSubtitlesValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitle + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}" + .replace("{" + "routeItemId" + "}", localVarApiClient.escapeString(routeItemId.toString())) + .replace("{" + "routeMediaSourceId" + "}", localVarApiClient.escapeString(routeMediaSourceId.toString())) + .replace("{" + "routeIndex" + "}", localVarApiClient.escapeString(routeIndex.toString())) + .replace("{" + "routeFormat" + "}", localVarApiClient.escapeString(routeFormat.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (endPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endPositionTicks", endPositionTicks)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (addVttTimeMap != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addVttTimeMap", addVttTimeMap)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitleValidateBeforeCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeItemId' is set + if (routeItemId == null) { + throw new ApiException("Missing the required parameter 'routeItemId' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeMediaSourceId' is set + if (routeMediaSourceId == null) { + throw new ApiException("Missing the required parameter 'routeMediaSourceId' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeIndex' is set + if (routeIndex == null) { + throw new ApiException("Missing the required parameter 'routeIndex' when calling getSubtitle(Async)"); + } + + // verify the required parameter 'routeFormat' is set + if (routeFormat == null) { + throw new ApiException("Missing the required parameter 'routeFormat' when calling getSubtitle(Async)"); + } + + return getSubtitleCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, _callback); + + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public File getSubtitle(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks) throws ApiException { + ApiResponse localVarResp = getSubtitleWithHttpInfo(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks); + return localVarResp.getData(); + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public ApiResponse getSubtitleWithHttpInfo(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks) throws ApiException { + okhttp3.Call localVarCall = getSubtitleValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets subtitles in a specified format. (asynchronously) + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param startPositionTicks The start position of the subtitle in ticks. (optional, default to 0) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleAsync(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, String routeFormat, UUID itemId, String mediaSourceId, Integer index, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, Long startPositionTicks, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitleValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeFormat, itemId, mediaSourceId, index, format, endPositionTicks, copyTimestamps, addVttTimeMap, startPositionTicks, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitlePlaylist + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSubtitlePlaylistCall(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())) + .replace("{" + "mediaSourceId" + "}", localVarApiClient.escapeString(mediaSourceId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + final String[] localVarAccepts = { + "application/x-mpegURL" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitlePlaylistValidateBeforeCall(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getSubtitlePlaylist(Async)"); + } + + // verify the required parameter 'segmentLength' is set + if (segmentLength == null) { + throw new ApiException("Missing the required parameter 'segmentLength' when calling getSubtitlePlaylist(Async)"); + } + + return getSubtitlePlaylistCall(itemId, index, mediaSourceId, segmentLength, _callback); + + } + + /** + * Gets an HLS subtitle playlist. + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getSubtitlePlaylist(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength) throws ApiException { + ApiResponse localVarResp = getSubtitlePlaylistWithHttpInfo(itemId, index, mediaSourceId, segmentLength); + return localVarResp.getData(); + } + + /** + * Gets an HLS subtitle playlist. + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSubtitlePlaylistWithHttpInfo(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength) throws ApiException { + okhttp3.Call localVarCall = getSubtitlePlaylistValidateBeforeCall(itemId, index, mediaSourceId, segmentLength, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an HLS subtitle playlist. (asynchronously) + * + * @param itemId The item id. (required) + * @param index The subtitle stream index. (required) + * @param mediaSourceId The media source id. (required) + * @param segmentLength The subtitle segment length. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitle playlist retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSubtitlePlaylistAsync(UUID itemId, Integer index, String mediaSourceId, Integer segmentLength, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitlePlaylistValidateBeforeCall(itemId, index, mediaSourceId, segmentLength, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSubtitleWithTicks + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleWithTicksCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}" + .replace("{" + "routeItemId" + "}", localVarApiClient.escapeString(routeItemId.toString())) + .replace("{" + "routeMediaSourceId" + "}", localVarApiClient.escapeString(routeMediaSourceId.toString())) + .replace("{" + "routeIndex" + "}", localVarApiClient.escapeString(routeIndex.toString())) + .replace("{" + "routeStartPositionTicks" + "}", localVarApiClient.escapeString(routeStartPositionTicks.toString())) + .replace("{" + "routeFormat" + "}", localVarApiClient.escapeString(routeFormat.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (itemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("itemId", itemId)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (index != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("index", index)); + } + + if (startPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startPositionTicks", startPositionTicks)); + } + + if (format != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("format", format)); + } + + if (endPositionTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endPositionTicks", endPositionTicks)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (addVttTimeMap != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("addVttTimeMap", addVttTimeMap)); + } + + final String[] localVarAccepts = { + "text/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSubtitleWithTicksValidateBeforeCall(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeItemId' is set + if (routeItemId == null) { + throw new ApiException("Missing the required parameter 'routeItemId' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeMediaSourceId' is set + if (routeMediaSourceId == null) { + throw new ApiException("Missing the required parameter 'routeMediaSourceId' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeIndex' is set + if (routeIndex == null) { + throw new ApiException("Missing the required parameter 'routeIndex' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeStartPositionTicks' is set + if (routeStartPositionTicks == null) { + throw new ApiException("Missing the required parameter 'routeStartPositionTicks' when calling getSubtitleWithTicks(Async)"); + } + + // verify the required parameter 'routeFormat' is set + if (routeFormat == null) { + throw new ApiException("Missing the required parameter 'routeFormat' when calling getSubtitleWithTicks(Async)"); + } + + return getSubtitleWithTicksCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, _callback); + + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public File getSubtitleWithTicks(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap) throws ApiException { + ApiResponse localVarResp = getSubtitleWithTicksWithHttpInfo(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap); + return localVarResp.getData(); + } + + /** + * Gets subtitles in a specified format. + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public ApiResponse getSubtitleWithTicksWithHttpInfo(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap) throws ApiException { + okhttp3.Call localVarCall = getSubtitleWithTicksValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets subtitles in a specified format. (asynchronously) + * + * @param routeItemId The (route) item id. (required) + * @param routeMediaSourceId The (route) media source id. (required) + * @param routeIndex The (route) subtitle stream index. (required) + * @param routeStartPositionTicks The (route) start position of the subtitle in ticks. (required) + * @param routeFormat The (route) format of the returned subtitle. (required) + * @param itemId The item id. (optional) + * @param mediaSourceId The media source id. (optional) + * @param index The subtitle stream index. (optional) + * @param startPositionTicks The start position of the subtitle in ticks. (optional) + * @param format The format of the returned subtitle. (optional) + * @param endPositionTicks Optional. The end position of the subtitle in ticks. (optional) + * @param copyTimestamps Optional. Whether to copy the timestamps. (optional, default to false) + * @param addVttTimeMap Optional. Whether to add a VTT time map. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 File returned. -
+ */ + public okhttp3.Call getSubtitleWithTicksAsync(UUID routeItemId, String routeMediaSourceId, Integer routeIndex, Long routeStartPositionTicks, String routeFormat, UUID itemId, String mediaSourceId, Integer index, Long startPositionTicks, String format, Long endPositionTicks, Boolean copyTimestamps, Boolean addVttTimeMap, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSubtitleWithTicksValidateBeforeCall(routeItemId, routeMediaSourceId, routeIndex, routeStartPositionTicks, routeFormat, itemId, mediaSourceId, index, startPositionTicks, format, endPositionTicks, copyTimestamps, addVttTimeMap, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for searchRemoteSubtitles + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteSubtitlesCall(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Items/{itemId}/RemoteSearch/Subtitles/{language}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "language" + "}", localVarApiClient.escapeString(language.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isPerfectMatch != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPerfectMatch", isPerfectMatch)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call searchRemoteSubtitlesValidateBeforeCall(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling searchRemoteSubtitles(Async)"); + } + + // verify the required parameter 'language' is set + if (language == null) { + throw new ApiException("Missing the required parameter 'language' when calling searchRemoteSubtitles(Async)"); + } + + return searchRemoteSubtitlesCall(itemId, language, isPerfectMatch, _callback); + + } + + /** + * Search remote subtitles. + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @return List<RemoteSubtitleInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List searchRemoteSubtitles(UUID itemId, String language, Boolean isPerfectMatch) throws ApiException { + ApiResponse> localVarResp = searchRemoteSubtitlesWithHttpInfo(itemId, language, isPerfectMatch); + return localVarResp.getData(); + } + + /** + * Search remote subtitles. + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @return ApiResponse<List<RemoteSubtitleInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> searchRemoteSubtitlesWithHttpInfo(UUID itemId, String language, Boolean isPerfectMatch) throws ApiException { + okhttp3.Call localVarCall = searchRemoteSubtitlesValidateBeforeCall(itemId, language, isPerfectMatch, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search remote subtitles. (asynchronously) + * + * @param itemId The item id. (required) + * @param language The language of the subtitles. (required) + * @param isPerfectMatch Optional. Only show subtitles which are a perfect match. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Subtitles retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call searchRemoteSubtitlesAsync(UUID itemId, String language, Boolean isPerfectMatch, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRemoteSubtitlesValidateBeforeCall(itemId, language, isPerfectMatch, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for uploadSubtitle + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadSubtitleCall(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = uploadSubtitleDto; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/Subtitles" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call uploadSubtitleValidateBeforeCall(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling uploadSubtitle(Async)"); + } + + // verify the required parameter 'uploadSubtitleDto' is set + if (uploadSubtitleDto == null) { + throw new ApiException("Missing the required parameter 'uploadSubtitleDto' when calling uploadSubtitle(Async)"); + } + + return uploadSubtitleCall(itemId, uploadSubtitleDto, _callback); + + } + + /** + * Upload an external subtitle file. + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public void uploadSubtitle(UUID itemId, UploadSubtitleDto uploadSubtitleDto) throws ApiException { + uploadSubtitleWithHttpInfo(itemId, uploadSubtitleDto); + } + + /** + * Upload an external subtitle file. + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse uploadSubtitleWithHttpInfo(UUID itemId, UploadSubtitleDto uploadSubtitleDto) throws ApiException { + okhttp3.Call localVarCall = uploadSubtitleValidateBeforeCall(itemId, uploadSubtitleDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Upload an external subtitle file. (asynchronously) + * + * @param itemId The item the subtitle belongs to. (required) + * @param uploadSubtitleDto The request body. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Subtitle uploaded. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call uploadSubtitleAsync(UUID itemId, UploadSubtitleDto uploadSubtitleDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = uploadSubtitleValidateBeforeCall(itemId, uploadSubtitleDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SuggestionsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SuggestionsApi.java new file mode 100644 index 0000000000000..811a60b0d7301 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SuggestionsApi.java @@ -0,0 +1,254 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SuggestionsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SuggestionsApi() { + this(Configuration.getDefaultApiClient()); + } + + public SuggestionsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getSuggestions + * @param userId The user id. (required) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSuggestionsCall(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Suggestions" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (mediaType != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaType", mediaType)); + } + + if (type != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "type", type)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSuggestionsValidateBeforeCall(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getSuggestions(Async)"); + } + + return getSuggestionsCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, _callback); + + } + + /** + * Gets suggestions. + * + * @param userId The user id. (required) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSuggestions(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount) throws ApiException { + ApiResponse localVarResp = getSuggestionsWithHttpInfo(userId, mediaType, type, startIndex, limit, enableTotalRecordCount); + return localVarResp.getData(); + } + + /** + * Gets suggestions. + * + * @param userId The user id. (required) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSuggestionsWithHttpInfo(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount) throws ApiException { + okhttp3.Call localVarCall = getSuggestionsValidateBeforeCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets suggestions. (asynchronously) + * + * @param userId The user id. (required) + * @param mediaType The media types. (optional) + * @param type The type. (optional) + * @param startIndex Optional. The start index. (optional) + * @param limit Optional. The limit. (optional) + * @param enableTotalRecordCount Whether to enable the total record count. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Suggestions returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSuggestionsAsync(UUID userId, List mediaType, List type, Integer startIndex, Integer limit, Boolean enableTotalRecordCount, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSuggestionsValidateBeforeCall(userId, mediaType, type, startIndex, limit, enableTotalRecordCount, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SyncPlayApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SyncPlayApi.java new file mode 100644 index 0000000000000..910ac97c9e41d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SyncPlayApi.java @@ -0,0 +1,2810 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BufferRequestDto; +import org.openapitools.client.model.GroupInfoDto; +import org.openapitools.client.model.IgnoreWaitRequestDto; +import org.openapitools.client.model.JoinGroupRequestDto; +import org.openapitools.client.model.MovePlaylistItemRequestDto; +import org.openapitools.client.model.NewGroupRequestDto; +import org.openapitools.client.model.NextItemRequestDto; +import org.openapitools.client.model.PingRequestDto; +import org.openapitools.client.model.PlayRequestDto; +import org.openapitools.client.model.PreviousItemRequestDto; +import org.openapitools.client.model.QueueRequestDto; +import org.openapitools.client.model.ReadyRequestDto; +import org.openapitools.client.model.RemoveFromPlaylistRequestDto; +import org.openapitools.client.model.SeekRequestDto; +import org.openapitools.client.model.SetPlaylistItemRequestDto; +import org.openapitools.client.model.SetRepeatModeRequestDto; +import org.openapitools.client.model.SetShuffleModeRequestDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SyncPlayApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SyncPlayApi() { + this(Configuration.getDefaultApiClient()); + } + + public SyncPlayApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for syncPlayBuffering + * @param bufferRequestDto The player status. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayBufferingCall(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bufferRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Buffering"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayBufferingValidateBeforeCall(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bufferRequestDto' is set + if (bufferRequestDto == null) { + throw new ApiException("Missing the required parameter 'bufferRequestDto' when calling syncPlayBuffering(Async)"); + } + + return syncPlayBufferingCall(bufferRequestDto, _callback); + + } + + /** + * Notify SyncPlay group that member is buffering. + * + * @param bufferRequestDto The player status. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayBuffering(BufferRequestDto bufferRequestDto) throws ApiException { + syncPlayBufferingWithHttpInfo(bufferRequestDto); + } + + /** + * Notify SyncPlay group that member is buffering. + * + * @param bufferRequestDto The player status. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayBufferingWithHttpInfo(BufferRequestDto bufferRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayBufferingValidateBeforeCall(bufferRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Notify SyncPlay group that member is buffering. (asynchronously) + * + * @param bufferRequestDto The player status. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayBufferingAsync(BufferRequestDto bufferRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayBufferingValidateBeforeCall(bufferRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayCreateGroup + * @param newGroupRequestDto The settings of the new group. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayCreateGroupCall(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newGroupRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/New"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayCreateGroupValidateBeforeCall(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newGroupRequestDto' is set + if (newGroupRequestDto == null) { + throw new ApiException("Missing the required parameter 'newGroupRequestDto' when calling syncPlayCreateGroup(Async)"); + } + + return syncPlayCreateGroupCall(newGroupRequestDto, _callback); + + } + + /** + * Create a new SyncPlay group. + * + * @param newGroupRequestDto The settings of the new group. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayCreateGroup(NewGroupRequestDto newGroupRequestDto) throws ApiException { + syncPlayCreateGroupWithHttpInfo(newGroupRequestDto); + } + + /** + * Create a new SyncPlay group. + * + * @param newGroupRequestDto The settings of the new group. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayCreateGroupWithHttpInfo(NewGroupRequestDto newGroupRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayCreateGroupValidateBeforeCall(newGroupRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Create a new SyncPlay group. (asynchronously) + * + * @param newGroupRequestDto The settings of the new group. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 New group created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayCreateGroupAsync(NewGroupRequestDto newGroupRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayCreateGroupValidateBeforeCall(newGroupRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayGetGroups + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayGetGroupsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/List"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayGetGroupsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayGetGroupsCall(_callback); + + } + + /** + * Gets all SyncPlay groups. + * + * @return List<GroupInfoDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List syncPlayGetGroups() throws ApiException { + ApiResponse> localVarResp = syncPlayGetGroupsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets all SyncPlay groups. + * + * @return ApiResponse<List<GroupInfoDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> syncPlayGetGroupsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayGetGroupsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets all SyncPlay groups. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Groups returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayGetGroupsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayGetGroupsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for syncPlayJoinGroup + * @param joinGroupRequestDto The group to join. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayJoinGroupCall(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = joinGroupRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Join"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayJoinGroupValidateBeforeCall(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'joinGroupRequestDto' is set + if (joinGroupRequestDto == null) { + throw new ApiException("Missing the required parameter 'joinGroupRequestDto' when calling syncPlayJoinGroup(Async)"); + } + + return syncPlayJoinGroupCall(joinGroupRequestDto, _callback); + + } + + /** + * Join an existing SyncPlay group. + * + * @param joinGroupRequestDto The group to join. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayJoinGroup(JoinGroupRequestDto joinGroupRequestDto) throws ApiException { + syncPlayJoinGroupWithHttpInfo(joinGroupRequestDto); + } + + /** + * Join an existing SyncPlay group. + * + * @param joinGroupRequestDto The group to join. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayJoinGroupWithHttpInfo(JoinGroupRequestDto joinGroupRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayJoinGroupValidateBeforeCall(joinGroupRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Join an existing SyncPlay group. (asynchronously) + * + * @param joinGroupRequestDto The group to join. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group join successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayJoinGroupAsync(JoinGroupRequestDto joinGroupRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayJoinGroupValidateBeforeCall(joinGroupRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayLeaveGroup + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayLeaveGroupCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Leave"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayLeaveGroupValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayLeaveGroupCall(_callback); + + } + + /** + * Leave the joined SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayLeaveGroup() throws ApiException { + syncPlayLeaveGroupWithHttpInfo(); + } + + /** + * Leave the joined SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayLeaveGroupWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayLeaveGroupValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Leave the joined SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group leave successful. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayLeaveGroupAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayLeaveGroupValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayMovePlaylistItem + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayMovePlaylistItemCall(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = movePlaylistItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/MovePlaylistItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayMovePlaylistItemValidateBeforeCall(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'movePlaylistItemRequestDto' is set + if (movePlaylistItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'movePlaylistItemRequestDto' when calling syncPlayMovePlaylistItem(Async)"); + } + + return syncPlayMovePlaylistItemCall(movePlaylistItemRequestDto, _callback); + + } + + /** + * Request to move an item in the playlist in SyncPlay group. + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayMovePlaylistItem(MovePlaylistItemRequestDto movePlaylistItemRequestDto) throws ApiException { + syncPlayMovePlaylistItemWithHttpInfo(movePlaylistItemRequestDto); + } + + /** + * Request to move an item in the playlist in SyncPlay group. + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayMovePlaylistItemWithHttpInfo(MovePlaylistItemRequestDto movePlaylistItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayMovePlaylistItemValidateBeforeCall(movePlaylistItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to move an item in the playlist in SyncPlay group. (asynchronously) + * + * @param movePlaylistItemRequestDto The new position for the item. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayMovePlaylistItemAsync(MovePlaylistItemRequestDto movePlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayMovePlaylistItemValidateBeforeCall(movePlaylistItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayNextItem + * @param nextItemRequestDto The current item information. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayNextItemCall(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = nextItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/NextItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayNextItemValidateBeforeCall(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'nextItemRequestDto' is set + if (nextItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'nextItemRequestDto' when calling syncPlayNextItem(Async)"); + } + + return syncPlayNextItemCall(nextItemRequestDto, _callback); + + } + + /** + * Request next item in SyncPlay group. + * + * @param nextItemRequestDto The current item information. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayNextItem(NextItemRequestDto nextItemRequestDto) throws ApiException { + syncPlayNextItemWithHttpInfo(nextItemRequestDto); + } + + /** + * Request next item in SyncPlay group. + * + * @param nextItemRequestDto The current item information. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayNextItemWithHttpInfo(NextItemRequestDto nextItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayNextItemValidateBeforeCall(nextItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request next item in SyncPlay group. (asynchronously) + * + * @param nextItemRequestDto The current item information. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Next item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayNextItemAsync(NextItemRequestDto nextItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayNextItemValidateBeforeCall(nextItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPause + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPauseCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Pause"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPauseValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayPauseCall(_callback); + + } + + /** + * Request pause in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPause() throws ApiException { + syncPlayPauseWithHttpInfo(); + } + + /** + * Request pause in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPauseWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayPauseValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request pause in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Pause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPauseAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPauseValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPing + * @param pingRequestDto The new ping. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPingCall(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = pingRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPingValidateBeforeCall(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'pingRequestDto' is set + if (pingRequestDto == null) { + throw new ApiException("Missing the required parameter 'pingRequestDto' when calling syncPlayPing(Async)"); + } + + return syncPlayPingCall(pingRequestDto, _callback); + + } + + /** + * Update session ping. + * + * @param pingRequestDto The new ping. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPing(PingRequestDto pingRequestDto) throws ApiException { + syncPlayPingWithHttpInfo(pingRequestDto); + } + + /** + * Update session ping. + * + * @param pingRequestDto The new ping. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPingWithHttpInfo(PingRequestDto pingRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayPingValidateBeforeCall(pingRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Update session ping. (asynchronously) + * + * @param pingRequestDto The new ping. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Ping updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPingAsync(PingRequestDto pingRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPingValidateBeforeCall(pingRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayPreviousItem + * @param previousItemRequestDto The current item information. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPreviousItemCall(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = previousItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/PreviousItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayPreviousItemValidateBeforeCall(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'previousItemRequestDto' is set + if (previousItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'previousItemRequestDto' when calling syncPlayPreviousItem(Async)"); + } + + return syncPlayPreviousItemCall(previousItemRequestDto, _callback); + + } + + /** + * Request previous item in SyncPlay group. + * + * @param previousItemRequestDto The current item information. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayPreviousItem(PreviousItemRequestDto previousItemRequestDto) throws ApiException { + syncPlayPreviousItemWithHttpInfo(previousItemRequestDto); + } + + /** + * Request previous item in SyncPlay group. + * + * @param previousItemRequestDto The current item information. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayPreviousItemWithHttpInfo(PreviousItemRequestDto previousItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayPreviousItemValidateBeforeCall(previousItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request previous item in SyncPlay group. (asynchronously) + * + * @param previousItemRequestDto The current item information. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Previous item update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayPreviousItemAsync(PreviousItemRequestDto previousItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayPreviousItemValidateBeforeCall(previousItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayQueue + * @param queueRequestDto The items to add. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayQueueCall(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = queueRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Queue"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayQueueValidateBeforeCall(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'queueRequestDto' is set + if (queueRequestDto == null) { + throw new ApiException("Missing the required parameter 'queueRequestDto' when calling syncPlayQueue(Async)"); + } + + return syncPlayQueueCall(queueRequestDto, _callback); + + } + + /** + * Request to queue items to the playlist of a SyncPlay group. + * + * @param queueRequestDto The items to add. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayQueue(QueueRequestDto queueRequestDto) throws ApiException { + syncPlayQueueWithHttpInfo(queueRequestDto); + } + + /** + * Request to queue items to the playlist of a SyncPlay group. + * + * @param queueRequestDto The items to add. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayQueueWithHttpInfo(QueueRequestDto queueRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayQueueValidateBeforeCall(queueRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to queue items to the playlist of a SyncPlay group. (asynchronously) + * + * @param queueRequestDto The items to add. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayQueueAsync(QueueRequestDto queueRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayQueueValidateBeforeCall(queueRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayReady + * @param readyRequestDto The player status. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayReadyCall(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = readyRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Ready"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayReadyValidateBeforeCall(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'readyRequestDto' is set + if (readyRequestDto == null) { + throw new ApiException("Missing the required parameter 'readyRequestDto' when calling syncPlayReady(Async)"); + } + + return syncPlayReadyCall(readyRequestDto, _callback); + + } + + /** + * Notify SyncPlay group that member is ready for playback. + * + * @param readyRequestDto The player status. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayReady(ReadyRequestDto readyRequestDto) throws ApiException { + syncPlayReadyWithHttpInfo(readyRequestDto); + } + + /** + * Notify SyncPlay group that member is ready for playback. + * + * @param readyRequestDto The player status. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayReadyWithHttpInfo(ReadyRequestDto readyRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayReadyValidateBeforeCall(readyRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Notify SyncPlay group that member is ready for playback. (asynchronously) + * + * @param readyRequestDto The player status. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Group state update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayReadyAsync(ReadyRequestDto readyRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayReadyValidateBeforeCall(readyRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayRemoveFromPlaylist + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayRemoveFromPlaylistCall(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = removeFromPlaylistRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/RemoveFromPlaylist"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayRemoveFromPlaylistValidateBeforeCall(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'removeFromPlaylistRequestDto' is set + if (removeFromPlaylistRequestDto == null) { + throw new ApiException("Missing the required parameter 'removeFromPlaylistRequestDto' when calling syncPlayRemoveFromPlaylist(Async)"); + } + + return syncPlayRemoveFromPlaylistCall(removeFromPlaylistRequestDto, _callback); + + } + + /** + * Request to remove items from the playlist in SyncPlay group. + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayRemoveFromPlaylist(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto) throws ApiException { + syncPlayRemoveFromPlaylistWithHttpInfo(removeFromPlaylistRequestDto); + } + + /** + * Request to remove items from the playlist in SyncPlay group. + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayRemoveFromPlaylistWithHttpInfo(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlayRemoveFromPlaylistValidateBeforeCall(removeFromPlaylistRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to remove items from the playlist in SyncPlay group. (asynchronously) + * + * @param removeFromPlaylistRequestDto The items to remove. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayRemoveFromPlaylistAsync(RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayRemoveFromPlaylistValidateBeforeCall(removeFromPlaylistRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySeek + * @param seekRequestDto The new playback position. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySeekCall(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = seekRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/Seek"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySeekValidateBeforeCall(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seekRequestDto' is set + if (seekRequestDto == null) { + throw new ApiException("Missing the required parameter 'seekRequestDto' when calling syncPlaySeek(Async)"); + } + + return syncPlaySeekCall(seekRequestDto, _callback); + + } + + /** + * Request seek in SyncPlay group. + * + * @param seekRequestDto The new playback position. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySeek(SeekRequestDto seekRequestDto) throws ApiException { + syncPlaySeekWithHttpInfo(seekRequestDto); + } + + /** + * Request seek in SyncPlay group. + * + * @param seekRequestDto The new playback position. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySeekWithHttpInfo(SeekRequestDto seekRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySeekValidateBeforeCall(seekRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request seek in SyncPlay group. (asynchronously) + * + * @param seekRequestDto The new playback position. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Seek update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySeekAsync(SeekRequestDto seekRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySeekValidateBeforeCall(seekRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetIgnoreWait + * @param ignoreWaitRequestDto The settings to set. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetIgnoreWaitCall(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = ignoreWaitRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetIgnoreWait"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetIgnoreWaitValidateBeforeCall(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'ignoreWaitRequestDto' is set + if (ignoreWaitRequestDto == null) { + throw new ApiException("Missing the required parameter 'ignoreWaitRequestDto' when calling syncPlaySetIgnoreWait(Async)"); + } + + return syncPlaySetIgnoreWaitCall(ignoreWaitRequestDto, _callback); + + } + + /** + * Request SyncPlay group to ignore member during group-wait. + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetIgnoreWait(IgnoreWaitRequestDto ignoreWaitRequestDto) throws ApiException { + syncPlaySetIgnoreWaitWithHttpInfo(ignoreWaitRequestDto); + } + + /** + * Request SyncPlay group to ignore member during group-wait. + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetIgnoreWaitWithHttpInfo(IgnoreWaitRequestDto ignoreWaitRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetIgnoreWaitValidateBeforeCall(ignoreWaitRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request SyncPlay group to ignore member during group-wait. (asynchronously) + * + * @param ignoreWaitRequestDto The settings to set. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Member state updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetIgnoreWaitAsync(IgnoreWaitRequestDto ignoreWaitRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetIgnoreWaitValidateBeforeCall(ignoreWaitRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetNewQueue + * @param playRequestDto The new playlist to play in the group. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetNewQueueCall(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = playRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetNewQueue"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetNewQueueValidateBeforeCall(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'playRequestDto' is set + if (playRequestDto == null) { + throw new ApiException("Missing the required parameter 'playRequestDto' when calling syncPlaySetNewQueue(Async)"); + } + + return syncPlaySetNewQueueCall(playRequestDto, _callback); + + } + + /** + * Request to set new playlist in SyncPlay group. + * + * @param playRequestDto The new playlist to play in the group. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetNewQueue(PlayRequestDto playRequestDto) throws ApiException { + syncPlaySetNewQueueWithHttpInfo(playRequestDto); + } + + /** + * Request to set new playlist in SyncPlay group. + * + * @param playRequestDto The new playlist to play in the group. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetNewQueueWithHttpInfo(PlayRequestDto playRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetNewQueueValidateBeforeCall(playRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set new playlist in SyncPlay group. (asynchronously) + * + * @param playRequestDto The new playlist to play in the group. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetNewQueueAsync(PlayRequestDto playRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetNewQueueValidateBeforeCall(playRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetPlaylistItem + * @param setPlaylistItemRequestDto The new item to play. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetPlaylistItemCall(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setPlaylistItemRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetPlaylistItem"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetPlaylistItemValidateBeforeCall(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setPlaylistItemRequestDto' is set + if (setPlaylistItemRequestDto == null) { + throw new ApiException("Missing the required parameter 'setPlaylistItemRequestDto' when calling syncPlaySetPlaylistItem(Async)"); + } + + return syncPlaySetPlaylistItemCall(setPlaylistItemRequestDto, _callback); + + } + + /** + * Request to change playlist item in SyncPlay group. + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetPlaylistItem(SetPlaylistItemRequestDto setPlaylistItemRequestDto) throws ApiException { + syncPlaySetPlaylistItemWithHttpInfo(setPlaylistItemRequestDto); + } + + /** + * Request to change playlist item in SyncPlay group. + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetPlaylistItemWithHttpInfo(SetPlaylistItemRequestDto setPlaylistItemRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetPlaylistItemValidateBeforeCall(setPlaylistItemRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to change playlist item in SyncPlay group. (asynchronously) + * + * @param setPlaylistItemRequestDto The new item to play. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetPlaylistItemAsync(SetPlaylistItemRequestDto setPlaylistItemRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetPlaylistItemValidateBeforeCall(setPlaylistItemRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetRepeatMode + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetRepeatModeCall(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setRepeatModeRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetRepeatMode"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetRepeatModeValidateBeforeCall(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setRepeatModeRequestDto' is set + if (setRepeatModeRequestDto == null) { + throw new ApiException("Missing the required parameter 'setRepeatModeRequestDto' when calling syncPlaySetRepeatMode(Async)"); + } + + return syncPlaySetRepeatModeCall(setRepeatModeRequestDto, _callback); + + } + + /** + * Request to set repeat mode in SyncPlay group. + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetRepeatMode(SetRepeatModeRequestDto setRepeatModeRequestDto) throws ApiException { + syncPlaySetRepeatModeWithHttpInfo(setRepeatModeRequestDto); + } + + /** + * Request to set repeat mode in SyncPlay group. + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetRepeatModeWithHttpInfo(SetRepeatModeRequestDto setRepeatModeRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetRepeatModeValidateBeforeCall(setRepeatModeRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set repeat mode in SyncPlay group. (asynchronously) + * + * @param setRepeatModeRequestDto The new repeat mode. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetRepeatModeAsync(SetRepeatModeRequestDto setRepeatModeRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetRepeatModeValidateBeforeCall(setRepeatModeRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlaySetShuffleMode + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetShuffleModeCall(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = setShuffleModeRequestDto; + + // create path and map variables + String localVarPath = "/SyncPlay/SetShuffleMode"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlaySetShuffleModeValidateBeforeCall(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'setShuffleModeRequestDto' is set + if (setShuffleModeRequestDto == null) { + throw new ApiException("Missing the required parameter 'setShuffleModeRequestDto' when calling syncPlaySetShuffleMode(Async)"); + } + + return syncPlaySetShuffleModeCall(setShuffleModeRequestDto, _callback); + + } + + /** + * Request to set shuffle mode in SyncPlay group. + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlaySetShuffleMode(SetShuffleModeRequestDto setShuffleModeRequestDto) throws ApiException { + syncPlaySetShuffleModeWithHttpInfo(setShuffleModeRequestDto); + } + + /** + * Request to set shuffle mode in SyncPlay group. + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlaySetShuffleModeWithHttpInfo(SetShuffleModeRequestDto setShuffleModeRequestDto) throws ApiException { + okhttp3.Call localVarCall = syncPlaySetShuffleModeValidateBeforeCall(setShuffleModeRequestDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request to set shuffle mode in SyncPlay group. (asynchronously) + * + * @param setShuffleModeRequestDto The new shuffle mode. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Play queue update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlaySetShuffleModeAsync(SetShuffleModeRequestDto setShuffleModeRequestDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlaySetShuffleModeValidateBeforeCall(setShuffleModeRequestDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayStop + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayStopCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Stop"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayStopValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayStopCall(_callback); + + } + + /** + * Request stop in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayStop() throws ApiException { + syncPlayStopWithHttpInfo(); + } + + /** + * Request stop in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayStopWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayStopValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request stop in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Stop update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayStopAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayStopValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for syncPlayUnpause + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayUnpauseCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/SyncPlay/Unpause"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call syncPlayUnpauseValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return syncPlayUnpauseCall(_callback); + + } + + /** + * Request unpause in SyncPlay group. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public void syncPlayUnpause() throws ApiException { + syncPlayUnpauseWithHttpInfo(); + } + + /** + * Request unpause in SyncPlay group. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse syncPlayUnpauseWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = syncPlayUnpauseValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Request unpause in SyncPlay group. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Unpause update sent to all group members. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call syncPlayUnpauseAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = syncPlayUnpauseValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SystemApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SystemApi.java new file mode 100644 index 0000000000000..948ae8395b863 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/SystemApi.java @@ -0,0 +1,1332 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.EndPointInfo; +import java.io.File; +import org.openapitools.client.model.LogFile; +import org.openapitools.client.model.PublicSystemInfo; +import org.openapitools.client.model.SystemInfo; +import org.openapitools.client.model.WakeOnLanInfo; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SystemApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public SystemApi() { + this(Configuration.getDefaultApiClient()); + } + + public SystemApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getEndpointInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEndpointInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Endpoint"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getEndpointInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getEndpointInfoCall(_callback); + + } + + /** + * Gets information about the request endpoint. + * + * @return EndPointInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public EndPointInfo getEndpointInfo() throws ApiException { + ApiResponse localVarResp = getEndpointInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets information about the request endpoint. + * + * @return ApiResponse<EndPointInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getEndpointInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getEndpointInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets information about the request endpoint. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEndpointInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getEndpointInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLogFile + * @param name The name of the log file to get. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogFileCall(String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Logs/Log"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + + final String[] localVarAccepts = { + "text/plain" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLogFileValidateBeforeCall(String name, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'name' is set + if (name == null) { + throw new ApiException("Missing the required parameter 'name' when calling getLogFile(Async)"); + } + + return getLogFileCall(name, _callback); + + } + + /** + * Gets a log file. + * + * @param name The name of the log file to get. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getLogFile(String name) throws ApiException { + ApiResponse localVarResp = getLogFileWithHttpInfo(name); + return localVarResp.getData(); + } + + /** + * Gets a log file. + * + * @param name The name of the log file to get. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getLogFileWithHttpInfo(String name) throws ApiException { + okhttp3.Call localVarCall = getLogFileValidateBeforeCall(name, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a log file. (asynchronously) + * + * @param name The name of the log file to get. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Log file retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLogFileAsync(String name, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLogFileValidateBeforeCall(name, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPingSystem + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPingSystemCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPingSystemValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPingSystemCall(_callback); + + } + + /** + * Pings the system. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public String getPingSystem() throws ApiException { + ApiResponse localVarResp = getPingSystemWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Pings the system. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse getPingSystemWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPingSystemValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Pings the system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPingSystemAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPingSystemValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPublicSystemInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPublicSystemInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Info/Public"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPublicSystemInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPublicSystemInfoCall(_callback); + + } + + /** + * Gets public information about the server. + * + * @return PublicSystemInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public PublicSystemInfo getPublicSystemInfo() throws ApiException { + ApiResponse localVarResp = getPublicSystemInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets public information about the server. + * + * @return ApiResponse<PublicSystemInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse getPublicSystemInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPublicSystemInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets public information about the server. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call getPublicSystemInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getPublicSystemInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getServerLogs + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getServerLogsCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Logs"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getServerLogsValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getServerLogsCall(_callback); + + } + + /** + * Gets a list of available server log files. + * + * @return List<LogFile> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getServerLogs() throws ApiException { + ApiResponse> localVarResp = getServerLogsWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of available server log files. + * + * @return ApiResponse<List<LogFile>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getServerLogsWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getServerLogsValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of available server log files. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getServerLogsAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getServerLogsValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSystemInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSystemInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Info"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSystemInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getSystemInfoCall(_callback); + + } + + /** + * Gets information about the server. + * + * @return SystemInfo + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public SystemInfo getSystemInfo() throws ApiException { + ApiResponse localVarResp = getSystemInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets information about the server. + * + * @return ApiResponse<SystemInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSystemInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getSystemInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets information about the server. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSystemInfoAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSystemInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getWakeOnLanInfo + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getWakeOnLanInfoCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/WakeOnLanInfo"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @Deprecated + @SuppressWarnings("rawtypes") + private okhttp3.Call getWakeOnLanInfoValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getWakeOnLanInfoCall(_callback); + + } + + /** + * Gets wake on lan information. + * + * @return List<WakeOnLanInfo> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public List getWakeOnLanInfo() throws ApiException { + ApiResponse> localVarResp = getWakeOnLanInfoWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets wake on lan information. + * + * @return ApiResponse<List<WakeOnLanInfo>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public ApiResponse> getWakeOnLanInfoWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getWakeOnLanInfoValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets wake on lan information. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
401 Unauthorized -
403 Forbidden -
+ * @deprecated + */ + @Deprecated + public okhttp3.Call getWakeOnLanInfoAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getWakeOnLanInfoValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for postPingSystem + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call postPingSystemCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Ping"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postPingSystemValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return postPingSystemCall(_callback); + + } + + /** + * Pings the system. + * + * @return String + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public String postPingSystem() throws ApiException { + ApiResponse localVarResp = postPingSystemWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Pings the system. + * + * @return ApiResponse<String> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public ApiResponse postPingSystemWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = postPingSystemValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Pings the system. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Information retrieved. -
+ */ + public okhttp3.Call postPingSystemAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postPingSystemValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for restartApplication + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call restartApplicationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Restart"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call restartApplicationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return restartApplicationCall(_callback); + + } + + /** + * Restarts the application. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
401 Unauthorized -
403 Forbidden -
+ */ + public void restartApplication() throws ApiException { + restartApplicationWithHttpInfo(); + } + + /** + * Restarts the application. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse restartApplicationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = restartApplicationValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Restarts the application. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server restarted. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call restartApplicationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = restartApplicationValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for shutdownApplication + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call shutdownApplicationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/System/Shutdown"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call shutdownApplicationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return shutdownApplicationCall(_callback); + + } + + /** + * Shuts down the application. + * + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
401 Unauthorized -
403 Forbidden -
+ */ + public void shutdownApplication() throws ApiException { + shutdownApplicationWithHttpInfo(); + } + + /** + * Shuts down the application. + * + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse shutdownApplicationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = shutdownApplicationValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Shuts down the application. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 Server shut down. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call shutdownApplicationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = shutdownApplicationValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TimeSyncApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TimeSyncApi.java new file mode 100644 index 0000000000000..01eda09a08208 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TimeSyncApi.java @@ -0,0 +1,194 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.UtcTimeResponse; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TimeSyncApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TimeSyncApi() { + this(Configuration.getDefaultApiClient()); + } + + public TimeSyncApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getUtcTime + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public okhttp3.Call getUtcTimeCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/GetUtcTime"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUtcTimeValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getUtcTimeCall(_callback); + + } + + /** + * Gets the current UTC time. + * + * @return UtcTimeResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public UtcTimeResponse getUtcTime() throws ApiException { + ApiResponse localVarResp = getUtcTimeWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the current UTC time. + * + * @return ApiResponse<UtcTimeResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public ApiResponse getUtcTimeWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getUtcTimeValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the current UTC time. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Time returned. -
+ */ + public okhttp3.Call getUtcTimeAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUtcTimeValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TmdbApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TmdbApi.java new file mode 100644 index 0000000000000..b27971d61a6fc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TmdbApi.java @@ -0,0 +1,200 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.ConfigImageTypes; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TmdbApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TmdbApi() { + this(Configuration.getDefaultApiClient()); + } + + public TmdbApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for tmdbClientConfiguration + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call tmdbClientConfigurationCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Tmdb/ClientConfiguration"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call tmdbClientConfigurationValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return tmdbClientConfigurationCall(_callback); + + } + + /** + * Gets the TMDb image configuration options. + * + * @return ConfigImageTypes + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ConfigImageTypes tmdbClientConfiguration() throws ApiException { + ApiResponse localVarResp = tmdbClientConfigurationWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the TMDb image configuration options. + * + * @return ApiResponse<ConfigImageTypes> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse tmdbClientConfigurationWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = tmdbClientConfigurationValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the TMDb image configuration options. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call tmdbClientConfigurationAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = tmdbClientConfigurationValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TrailersApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TrailersApi.java new file mode 100644 index 0000000000000..05999bebb7549 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TrailersApi.java @@ -0,0 +1,884 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ItemFilter; +import org.openapitools.client.model.LocationType; +import java.time.OffsetDateTime; +import org.openapitools.client.model.SeriesStatus; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; +import org.openapitools.client.model.VideoType; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TrailersApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TrailersApi() { + this(Configuration.getDefaultApiClient()); + } + + public TrailersApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getTrailers + * @param userId The user id. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailersCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Trailers"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (maxOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxOfficialRating", maxOfficialRating)); + } + + if (hasThemeSong != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeSong", hasThemeSong)); + } + + if (hasThemeVideo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasThemeVideo", hasThemeVideo)); + } + + if (hasSubtitles != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSubtitles", hasSubtitles)); + } + + if (hasSpecialFeature != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasSpecialFeature", hasSpecialFeature)); + } + + if (hasTrailer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTrailer", hasTrailer)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (parentIndexNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentIndexNumber", parentIndexNumber)); + } + + if (hasParentalRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasParentalRating", hasParentalRating)); + } + + if (isHd != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHd", isHd)); + } + + if (is4K != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is4K", is4K)); + } + + if (locationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "locationTypes", locationTypes)); + } + + if (excludeLocationTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeLocationTypes", excludeLocationTypes)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (isUnaired != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isUnaired", isUnaired)); + } + + if (minCommunityRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCommunityRating", minCommunityRating)); + } + + if (minCriticRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minCriticRating", minCriticRating)); + } + + if (minPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minPremiereDate", minPremiereDate)); + } + + if (minDateLastSaved != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSaved", minDateLastSaved)); + } + + if (minDateLastSavedForUser != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minDateLastSavedForUser", minDateLastSavedForUser)); + } + + if (maxPremiereDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxPremiereDate", maxPremiereDate)); + } + + if (hasOverview != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOverview", hasOverview)); + } + + if (hasImdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasImdbId", hasImdbId)); + } + + if (hasTmdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTmdbId", hasTmdbId)); + } + + if (hasTvdbId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasTvdbId", hasTvdbId)); + } + + if (isMovie != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMovie", isMovie)); + } + + if (isSeries != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSeries", isSeries)); + } + + if (isNews != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isNews", isNews)); + } + + if (isKids != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isKids", isKids)); + } + + if (isSports != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSports", isSports)); + } + + if (excludeItemIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemIds", excludeItemIds)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (searchTerm != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("searchTerm", searchTerm)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (filters != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "filters", filters)); + } + + if (isFavorite != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isFavorite", isFavorite)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (imageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "imageTypes", imageTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (genres != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genres", genres)); + } + + if (officialRatings != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "officialRatings", officialRatings)); + } + + if (tags != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "tags", tags)); + } + + if (years != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "years", years)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (person != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("person", person)); + } + + if (personIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personIds", personIds)); + } + + if (personTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "personTypes", personTypes)); + } + + if (studios != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studios", studios)); + } + + if (artists != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artists", artists)); + } + + if (excludeArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeArtistIds", excludeArtistIds)); + } + + if (artistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "artistIds", artistIds)); + } + + if (albumArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumArtistIds", albumArtistIds)); + } + + if (contributingArtistIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "contributingArtistIds", contributingArtistIds)); + } + + if (albums != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albums", albums)); + } + + if (albumIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "albumIds", albumIds)); + } + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + if (videoTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "videoTypes", videoTypes)); + } + + if (minOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minOfficialRating", minOfficialRating)); + } + + if (isLocked != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isLocked", isLocked)); + } + + if (isPlaceHolder != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlaceHolder", isPlaceHolder)); + } + + if (hasOfficialRating != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("hasOfficialRating", hasOfficialRating)); + } + + if (collapseBoxSetItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("collapseBoxSetItems", collapseBoxSetItems)); + } + + if (minWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minWidth", minWidth)); + } + + if (minHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minHeight", minHeight)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (is3D != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("is3D", is3D)); + } + + if (seriesStatus != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "seriesStatus", seriesStatus)); + } + + if (nameStartsWithOrGreater != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWithOrGreater", nameStartsWithOrGreater)); + } + + if (nameStartsWith != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameStartsWith", nameStartsWith)); + } + + if (nameLessThan != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nameLessThan", nameLessThan)); + } + + if (studioIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "studioIds", studioIds)); + } + + if (genreIds != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "genreIds", genreIds)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getTrailersValidateBeforeCall(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getTrailersCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + + } + + /** + * Finds movies and trailers similar to a given trailer. + * + * @param userId The user id. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getTrailers(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getTrailersWithHttpInfo(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages); + return localVarResp.getData(); + } + + /** + * Finds movies and trailers similar to a given trailer. + * + * @param userId The user id. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getTrailersWithHttpInfo(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getTrailersValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Finds movies and trailers similar to a given trailer. (asynchronously) + * + * @param userId The user id. (optional) + * @param maxOfficialRating Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param hasThemeSong Optional filter by items with theme songs. (optional) + * @param hasThemeVideo Optional filter by items with theme videos. (optional) + * @param hasSubtitles Optional filter by items with subtitles. (optional) + * @param hasSpecialFeature Optional filter by items with special features. (optional) + * @param hasTrailer Optional filter by items with trailers. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param parentIndexNumber Optional filter by parent index number. (optional) + * @param hasParentalRating Optional filter by items that have or do not have a parental rating. (optional) + * @param isHd Optional filter by items that are HD or not. (optional) + * @param is4K Optional filter by items that are 4K or not. (optional) + * @param locationTypes Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. (optional) + * @param excludeLocationTypes Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. (optional) + * @param isMissing Optional filter by items that are missing episodes or not. (optional) + * @param isUnaired Optional filter by items that are unaired episodes or not. (optional) + * @param minCommunityRating Optional filter by minimum community rating. (optional) + * @param minCriticRating Optional filter by minimum critic rating. (optional) + * @param minPremiereDate Optional. The minimum premiere date. Format = ISO. (optional) + * @param minDateLastSaved Optional. The minimum last saved date. Format = ISO. (optional) + * @param minDateLastSavedForUser Optional. The minimum last saved date for the current user. Format = ISO. (optional) + * @param maxPremiereDate Optional. The maximum premiere date. Format = ISO. (optional) + * @param hasOverview Optional filter by items that have an overview or not. (optional) + * @param hasImdbId Optional filter by items that have an imdb id or not. (optional) + * @param hasTmdbId Optional filter by items that have a tmdb id or not. (optional) + * @param hasTvdbId Optional filter by items that have a tvdb id or not. (optional) + * @param isMovie Optional filter for live tv movies. (optional) + * @param isSeries Optional filter for live tv series. (optional) + * @param isNews Optional filter for live tv news. (optional) + * @param isKids Optional filter for live tv kids. (optional) + * @param isSports Optional filter for live tv sports. (optional) + * @param excludeItemIds Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param recursive When searching within folders, this determines whether or not the search will be recursive. true/false. (optional) + * @param searchTerm Optional. Filter based on a search term. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. (optional) + * @param excludeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param filters Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes. (optional) + * @param isFavorite Optional filter by items that are marked as favorite, or not. (optional) + * @param mediaTypes Optional filter by MediaType. Allows multiple, comma delimited. (optional) + * @param imageTypes Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param isPlayed Optional filter by items that are played, or not. (optional) + * @param genres Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. (optional) + * @param officialRatings Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. (optional) + * @param tags Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. (optional) + * @param years Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. (optional) + * @param enableUserData Optional, include user data. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param person Optional. If specified, results will be filtered to include only those containing the specified person. (optional) + * @param personIds Optional. If specified, results will be filtered to include only those containing the specified person id. (optional) + * @param personTypes Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. (optional) + * @param studios Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. (optional) + * @param artists Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. (optional) + * @param excludeArtistIds Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. (optional) + * @param artistIds Optional. If specified, results will be filtered to include only those containing the specified artist id. (optional) + * @param albumArtistIds Optional. If specified, results will be filtered to include only those containing the specified album artist id. (optional) + * @param contributingArtistIds Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. (optional) + * @param albums Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. (optional) + * @param albumIds Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. (optional) + * @param ids Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. (optional) + * @param videoTypes Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. (optional) + * @param minOfficialRating Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). (optional) + * @param isLocked Optional filter by items that are locked. (optional) + * @param isPlaceHolder Optional filter by items that are placeholders. (optional) + * @param hasOfficialRating Optional filter by items that have official ratings. (optional) + * @param collapseBoxSetItems Whether or not to hide items behind their boxsets. (optional) + * @param minWidth Optional. Filter by the minimum width of the item. (optional) + * @param minHeight Optional. Filter by the minimum height of the item. (optional) + * @param maxWidth Optional. Filter by the maximum width of the item. (optional) + * @param maxHeight Optional. Filter by the maximum height of the item. (optional) + * @param is3D Optional filter by items that are 3D, or not. (optional) + * @param seriesStatus Optional filter by Series Status. Allows multiple, comma delimited. (optional) + * @param nameStartsWithOrGreater Optional filter by items whose name is sorted equally or greater than a given input string. (optional) + * @param nameStartsWith Optional filter by items whose name is sorted equally than a given input string. (optional) + * @param nameLessThan Optional filter by items whose name is equally or lesser than a given input string. (optional) + * @param studioIds Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. (optional) + * @param genreIds Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. (optional) + * @param enableTotalRecordCount Optional. Enable the total record count. (optional, default to true) + * @param enableImages Optional, include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getTrailersAsync(UUID userId, String maxOfficialRating, Boolean hasThemeSong, Boolean hasThemeVideo, Boolean hasSubtitles, Boolean hasSpecialFeature, Boolean hasTrailer, String adjacentTo, Integer parentIndexNumber, Boolean hasParentalRating, Boolean isHd, Boolean is4K, List locationTypes, List excludeLocationTypes, Boolean isMissing, Boolean isUnaired, Double minCommunityRating, Double minCriticRating, OffsetDateTime minPremiereDate, OffsetDateTime minDateLastSaved, OffsetDateTime minDateLastSavedForUser, OffsetDateTime maxPremiereDate, Boolean hasOverview, Boolean hasImdbId, Boolean hasTmdbId, Boolean hasTvdbId, Boolean isMovie, Boolean isSeries, Boolean isNews, Boolean isKids, Boolean isSports, List excludeItemIds, Integer startIndex, Integer limit, Boolean recursive, String searchTerm, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List filters, Boolean isFavorite, List mediaTypes, List imageTypes, List sortBy, Boolean isPlayed, List genres, List officialRatings, List tags, List years, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, String person, List personIds, List personTypes, List studios, List artists, List excludeArtistIds, List artistIds, List albumArtistIds, List contributingArtistIds, List albums, List albumIds, List ids, List videoTypes, String minOfficialRating, Boolean isLocked, Boolean isPlaceHolder, Boolean hasOfficialRating, Boolean collapseBoxSetItems, Integer minWidth, Integer minHeight, Integer maxWidth, Integer maxHeight, Boolean is3D, List seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, List studioIds, List genreIds, Boolean enableTotalRecordCount, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getTrailersValidateBeforeCall(userId, maxOfficialRating, hasThemeSong, hasThemeVideo, hasSubtitles, hasSpecialFeature, hasTrailer, adjacentTo, parentIndexNumber, hasParentalRating, isHd, is4K, locationTypes, excludeLocationTypes, isMissing, isUnaired, minCommunityRating, minCriticRating, minPremiereDate, minDateLastSaved, minDateLastSavedForUser, maxPremiereDate, hasOverview, hasImdbId, hasTmdbId, hasTvdbId, isMovie, isSeries, isNews, isKids, isSports, excludeItemIds, startIndex, limit, recursive, searchTerm, sortOrder, parentId, fields, excludeItemTypes, filters, isFavorite, mediaTypes, imageTypes, sortBy, isPlayed, genres, officialRatings, tags, years, enableUserData, imageTypeLimit, enableImageTypes, person, personIds, personTypes, studios, artists, excludeArtistIds, artistIds, albumArtistIds, contributingArtistIds, albums, albumIds, ids, videoTypes, minOfficialRating, isLocked, isPlaceHolder, hasOfficialRating, collapseBoxSetItems, minWidth, minHeight, maxWidth, maxHeight, is3D, seriesStatus, nameStartsWithOrGreater, nameStartsWith, nameLessThan, studioIds, genreIds, enableTotalRecordCount, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TvShowsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TvShowsApi.java new file mode 100644 index 0000000000000..12c1585e1813b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/TvShowsApi.java @@ -0,0 +1,984 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.time.OffsetDateTime; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TvShowsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public TvShowsApi() { + this(Configuration.getDefaultApiClient()); + } + + public TvShowsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getEpisodes + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEpisodesCall(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, String adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String sortBy, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{seriesId}/Episodes" + .replace("{" + "seriesId" + "}", localVarApiClient.escapeString(seriesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (season != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("season", season)); + } + + if (seasonId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seasonId", seasonId)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (startItemId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startItemId", startItemId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (sortBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sortBy", sortBy)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getEpisodesValidateBeforeCall(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, String adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String sortBy, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesId' is set + if (seriesId == null) { + throw new ApiException("Missing the required parameter 'seriesId' when calling getEpisodes(Async)"); + } + + return getEpisodesCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, _callback); + + } + + /** + * Gets episodes for a tv season. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getEpisodes(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, String adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String sortBy) throws ApiException { + ApiResponse localVarResp = getEpisodesWithHttpInfo(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy); + return localVarResp.getData(); + } + + /** + * Gets episodes for a tv season. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getEpisodesWithHttpInfo(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, String adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String sortBy) throws ApiException { + okhttp3.Call localVarCall = getEpisodesValidateBeforeCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets episodes for a tv season. (asynchronously) + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param season Optional filter by season number. (optional) + * @param seasonId Optional. Filter by season id. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param startItemId Optional. Skip through the list until a given item is found. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param enableImages Optional, include image information in output. (optional) + * @param imageTypeLimit Optional, the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getEpisodesAsync(UUID seriesId, UUID userId, List fields, Integer season, UUID seasonId, Boolean isMissing, String adjacentTo, UUID startItemId, Integer startIndex, Integer limit, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, String sortBy, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getEpisodesValidateBeforeCall(seriesId, userId, fields, season, seasonId, isMissing, adjacentTo, startItemId, startIndex, limit, enableImages, imageTypeLimit, enableImageTypes, enableUserData, sortBy, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getNextUp + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableRewatching Whether to include watched episode in next up results. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNextUpCall(UUID userId, Integer startIndex, Integer limit, List fields, String seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/NextUp"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (seriesId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("seriesId", seriesId)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (nextUpDateCutoff != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("nextUpDateCutoff", nextUpDateCutoff)); + } + + if (enableTotalRecordCount != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableTotalRecordCount", enableTotalRecordCount)); + } + + if (disableFirstEpisode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("disableFirstEpisode", disableFirstEpisode)); + } + + if (enableRewatching != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRewatching", enableRewatching)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getNextUpValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List fields, String seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + return getNextUpCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching, _callback); + + } + + /** + * Gets a list of next up episodes. + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableRewatching Whether to include watched episode in next up results. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getNextUp(UUID userId, Integer startIndex, Integer limit, List fields, String seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableRewatching) throws ApiException { + ApiResponse localVarResp = getNextUpWithHttpInfo(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching); + return localVarResp.getData(); + } + + /** + * Gets a list of next up episodes. + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableRewatching Whether to include watched episode in next up results. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getNextUpWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List fields, String seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableRewatching) throws ApiException { + okhttp3.Call localVarCall = getNextUpValidateBeforeCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of next up episodes. (asynchronously) + * + * @param userId The user id of the user to get the next up episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param seriesId Optional. Filter by series id. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param nextUpDateCutoff Optional. Starting date of shows to show in Next Up section. (optional) + * @param enableTotalRecordCount Whether to enable the total records count. Defaults to true. (optional, default to true) + * @param disableFirstEpisode Whether to disable sending the first episode in a series as next up. (optional, default to false) + * @param enableRewatching Whether to include watched episode in next up results. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getNextUpAsync(UUID userId, Integer startIndex, Integer limit, List fields, String seriesId, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, OffsetDateTime nextUpDateCutoff, Boolean enableTotalRecordCount, Boolean disableFirstEpisode, Boolean enableRewatching, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getNextUpValidateBeforeCall(userId, startIndex, limit, fields, seriesId, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, nextUpDateCutoff, enableTotalRecordCount, disableFirstEpisode, enableRewatching, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSeasons + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeasonsCall(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, String adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/{seriesId}/Seasons" + .replace("{" + "seriesId" + "}", localVarApiClient.escapeString(seriesId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (isSpecialSeason != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isSpecialSeason", isSpecialSeason)); + } + + if (isMissing != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isMissing", isMissing)); + } + + if (adjacentTo != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("adjacentTo", adjacentTo)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSeasonsValidateBeforeCall(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, String adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'seriesId' is set + if (seriesId == null) { + throw new ApiException("Missing the required parameter 'seriesId' when calling getSeasons(Async)"); + } + + return getSeasonsCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + + } + + /** + * Gets seasons for a tv series. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getSeasons(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, String adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + ApiResponse localVarResp = getSeasonsWithHttpInfo(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + return localVarResp.getData(); + } + + /** + * Gets seasons for a tv series. + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getSeasonsWithHttpInfo(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, String adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + okhttp3.Call localVarCall = getSeasonsValidateBeforeCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets seasons for a tv series. (asynchronously) + * + * @param seriesId The series id. (required) + * @param userId The user id. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls. (optional) + * @param isSpecialSeason Optional. Filter by special season. (optional) + * @param isMissing Optional. Filter by items that are missing episodes or not. (optional) + * @param adjacentTo Optional. Return items that are siblings of a supplied item. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
404 Not Found -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSeasonsAsync(UUID seriesId, UUID userId, List fields, Boolean isSpecialSeason, Boolean isMissing, String adjacentTo, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getSeasonsValidateBeforeCall(seriesId, userId, fields, isSpecialSeason, isMissing, adjacentTo, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUpcomingEpisodes + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUpcomingEpisodesCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Shows/Upcoming"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUpcomingEpisodesValidateBeforeCall(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + return getUpcomingEpisodesCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + + } + + /** + * Gets a list of upcoming episodes. + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getUpcomingEpisodes(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + ApiResponse localVarResp = getUpcomingEpisodesWithHttpInfo(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData); + return localVarResp.getData(); + } + + /** + * Gets a list of upcoming episodes. + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUpcomingEpisodesWithHttpInfo(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData) throws ApiException { + okhttp3.Call localVarCall = getUpcomingEpisodesValidateBeforeCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of upcoming episodes. (asynchronously) + * + * @param userId The user id of the user to get the upcoming episodes for. (optional) + * @param startIndex Optional. The record index to start at. All items with a lower index will be dropped from the results. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param parentId Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param enableImages Optional. Include image information in output. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Success -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUpcomingEpisodesAsync(UUID userId, Integer startIndex, Integer limit, List fields, UUID parentId, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUpcomingEpisodesValidateBeforeCall(userId, startIndex, limit, fields, parentId, enableImages, imageTypeLimit, enableImageTypes, enableUserData, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UniversalAudioApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UniversalAudioApi.java new file mode 100644 index 0000000000000..9a06470f76065 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UniversalAudioApi.java @@ -0,0 +1,626 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UniversalAudioApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UniversalAudioApi() { + this(Configuration.getDefaultApiClient()); + } + + public UniversalAudioApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getUniversalAudioStream + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUniversalAudioStreamCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/universal" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "container", container)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (transcodingAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingAudioChannels", transcodingAudioChannels)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (transcodingContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingContainer", transcodingContainer)); + } + + if (transcodingProtocol != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingProtocol", transcodingProtocol)); + } + + if (maxAudioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioSampleRate", maxAudioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (enableRemoteMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRemoteMedia", enableRemoteMedia)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (enableRedirection != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRedirection", enableRedirection)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUniversalAudioStreamValidateBeforeCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getUniversalAudioStream(Async)"); + } + + return getUniversalAudioStreamCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public File getUniversalAudioStream(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + ApiResponse localVarResp = getUniversalAudioStreamWithHttpInfo(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUniversalAudioStreamWithHttpInfo(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + okhttp3.Call localVarCall = getUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUniversalAudioStreamAsync(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headUniversalAudioStream + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headUniversalAudioStreamCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Audio/{itemId}/universal" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "container", container)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (transcodingAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingAudioChannels", transcodingAudioChannels)); + } + + if (maxStreamingBitrate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxStreamingBitrate", maxStreamingBitrate)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (transcodingContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingContainer", transcodingContainer)); + } + + if (transcodingProtocol != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingProtocol", transcodingProtocol)); + } + + if (maxAudioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioSampleRate", maxAudioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (enableRemoteMedia != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRemoteMedia", enableRemoteMedia)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (enableRedirection != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableRedirection", enableRedirection)); + } + + final String[] localVarAccepts = { + "audio/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headUniversalAudioStreamValidateBeforeCall(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headUniversalAudioStream(Async)"); + } + + return headUniversalAudioStreamCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, _callback); + + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public File headUniversalAudioStream(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + ApiResponse localVarResp = headUniversalAudioStreamWithHttpInfo(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection); + return localVarResp.getData(); + } + + /** + * Gets an audio stream. + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse headUniversalAudioStreamWithHttpInfo(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection) throws ApiException { + okhttp3.Call localVarCall = headUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an audio stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container Optional. The audio container. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param userId Optional. The user id. (optional) + * @param audioCodec Optional. The audio codec to transcode to. (optional) + * @param maxAudioChannels Optional. The maximum number of audio channels. (optional) + * @param transcodingAudioChannels Optional. The number of how many audio channels to transcode to. (optional) + * @param maxStreamingBitrate Optional. The maximum streaming bitrate. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param transcodingContainer Optional. The container to transcode to. (optional) + * @param transcodingProtocol Optional. The transcoding protocol. (optional) + * @param maxAudioSampleRate Optional. The maximum audio sample rate. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param enableRemoteMedia Optional. Whether to enable remote media. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional, default to false) + * @param enableRedirection Whether to enable redirection. Defaults to true. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Audio stream returned. -
302 Redirected to remote audio stream. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call headUniversalAudioStreamAsync(UUID itemId, List container, String mediaSourceId, String deviceId, UUID userId, String audioCodec, Integer maxAudioChannels, Integer transcodingAudioChannels, Integer maxStreamingBitrate, Integer audioBitRate, Long startTimeTicks, String transcodingContainer, String transcodingProtocol, Integer maxAudioSampleRate, Integer maxAudioBitDepth, Boolean enableRemoteMedia, Boolean breakOnNonKeyFrames, Boolean enableRedirection, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headUniversalAudioStreamValidateBeforeCall(itemId, container, mediaSourceId, deviceId, userId, audioCodec, maxAudioChannels, transcodingAudioChannels, maxStreamingBitrate, audioBitRate, startTimeTicks, transcodingContainer, transcodingProtocol, maxAudioSampleRate, maxAudioBitDepth, enableRemoteMedia, breakOnNonKeyFrames, enableRedirection, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserApi.java new file mode 100644 index 0000000000000..7bceb947bdc1b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserApi.java @@ -0,0 +1,2326 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.AuthenticateUserByName; +import org.openapitools.client.model.AuthenticationResult; +import org.openapitools.client.model.CreateUserByName; +import org.openapitools.client.model.ForgotPasswordDto; +import org.openapitools.client.model.ForgotPasswordPinDto; +import org.openapitools.client.model.ForgotPasswordResult; +import org.openapitools.client.model.PinRedeemResult; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.QuickConnectDto; +import java.util.UUID; +import org.openapitools.client.model.UpdateUserEasyPassword; +import org.openapitools.client.model.UpdateUserPassword; +import org.openapitools.client.model.UserConfiguration; +import org.openapitools.client.model.UserDto; +import org.openapitools.client.model.UserPolicy; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for authenticateUser + * @param userId The user id. (required) + * @param pw The password as plain text. (required) + * @param password The password sha1-hash. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
403 Sha1-hashed password only is not allowed. -
404 User not found. -
+ */ + public okhttp3.Call authenticateUserCall(UUID userId, String pw, String password, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Authenticate" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (pw != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("pw", pw)); + } + + if (password != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("password", password)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authenticateUserValidateBeforeCall(UUID userId, String pw, String password, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling authenticateUser(Async)"); + } + + // verify the required parameter 'pw' is set + if (pw == null) { + throw new ApiException("Missing the required parameter 'pw' when calling authenticateUser(Async)"); + } + + return authenticateUserCall(userId, pw, password, _callback); + + } + + /** + * Authenticates a user. + * + * @param userId The user id. (required) + * @param pw The password as plain text. (required) + * @param password The password sha1-hash. (optional) + * @return AuthenticationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
403 Sha1-hashed password only is not allowed. -
404 User not found. -
+ */ + public AuthenticationResult authenticateUser(UUID userId, String pw, String password) throws ApiException { + ApiResponse localVarResp = authenticateUserWithHttpInfo(userId, pw, password); + return localVarResp.getData(); + } + + /** + * Authenticates a user. + * + * @param userId The user id. (required) + * @param pw The password as plain text. (required) + * @param password The password sha1-hash. (optional) + * @return ApiResponse<AuthenticationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
403 Sha1-hashed password only is not allowed. -
404 User not found. -
+ */ + public ApiResponse authenticateUserWithHttpInfo(UUID userId, String pw, String password) throws ApiException { + okhttp3.Call localVarCall = authenticateUserValidateBeforeCall(userId, pw, password, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authenticates a user. (asynchronously) + * + * @param userId The user id. (required) + * @param pw The password as plain text. (required) + * @param password The password sha1-hash. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
403 Sha1-hashed password only is not allowed. -
404 User not found. -
+ */ + public okhttp3.Call authenticateUserAsync(UUID userId, String pw, String password, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authenticateUserValidateBeforeCall(userId, pw, password, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for authenticateUserByName + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public okhttp3.Call authenticateUserByNameCall(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = authenticateUserByName; + + // create path and map variables + String localVarPath = "/Users/AuthenticateByName"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authenticateUserByNameValidateBeforeCall(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'authenticateUserByName' is set + if (authenticateUserByName == null) { + throw new ApiException("Missing the required parameter 'authenticateUserByName' when calling authenticateUserByName(Async)"); + } + + return authenticateUserByNameCall(authenticateUserByName, _callback); + + } + + /** + * Authenticates a user by name. + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @return AuthenticationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public AuthenticationResult authenticateUserByName(AuthenticateUserByName authenticateUserByName) throws ApiException { + ApiResponse localVarResp = authenticateUserByNameWithHttpInfo(authenticateUserByName); + return localVarResp.getData(); + } + + /** + * Authenticates a user by name. + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @return ApiResponse<AuthenticationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public ApiResponse authenticateUserByNameWithHttpInfo(AuthenticateUserByName authenticateUserByName) throws ApiException { + okhttp3.Call localVarCall = authenticateUserByNameValidateBeforeCall(authenticateUserByName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authenticates a user by name. (asynchronously) + * + * @param authenticateUserByName The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
+ */ + public okhttp3.Call authenticateUserByNameAsync(AuthenticateUserByName authenticateUserByName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authenticateUserByNameValidateBeforeCall(authenticateUserByName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for authenticateWithQuickConnect + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public okhttp3.Call authenticateWithQuickConnectCall(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = quickConnectDto; + + // create path and map variables + String localVarPath = "/Users/AuthenticateWithQuickConnect"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call authenticateWithQuickConnectValidateBeforeCall(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'quickConnectDto' is set + if (quickConnectDto == null) { + throw new ApiException("Missing the required parameter 'quickConnectDto' when calling authenticateWithQuickConnect(Async)"); + } + + return authenticateWithQuickConnectCall(quickConnectDto, _callback); + + } + + /** + * Authenticates a user with quick connect. + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @return AuthenticationResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public AuthenticationResult authenticateWithQuickConnect(QuickConnectDto quickConnectDto) throws ApiException { + ApiResponse localVarResp = authenticateWithQuickConnectWithHttpInfo(quickConnectDto); + return localVarResp.getData(); + } + + /** + * Authenticates a user with quick connect. + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @return ApiResponse<AuthenticationResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public ApiResponse authenticateWithQuickConnectWithHttpInfo(QuickConnectDto quickConnectDto) throws ApiException { + okhttp3.Call localVarCall = authenticateWithQuickConnectValidateBeforeCall(quickConnectDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Authenticates a user with quick connect. (asynchronously) + * + * @param quickConnectDto The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 User authenticated. -
400 Missing token. -
+ */ + public okhttp3.Call authenticateWithQuickConnectAsync(QuickConnectDto quickConnectDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = authenticateWithQuickConnectValidateBeforeCall(quickConnectDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createUserByName + * @param createUserByName The create user by name request body. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createUserByNameCall(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = createUserByName; + + // create path and map variables + String localVarPath = "/Users/New"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createUserByNameValidateBeforeCall(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'createUserByName' is set + if (createUserByName == null) { + throw new ApiException("Missing the required parameter 'createUserByName' when calling createUserByName(Async)"); + } + + return createUserByNameCall(createUserByName, _callback); + + } + + /** + * Creates a user. + * + * @param createUserByName The create user by name request body. (required) + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto createUserByName(CreateUserByName createUserByName) throws ApiException { + ApiResponse localVarResp = createUserByNameWithHttpInfo(createUserByName); + return localVarResp.getData(); + } + + /** + * Creates a user. + * + * @param createUserByName The create user by name request body. (required) + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse createUserByNameWithHttpInfo(CreateUserByName createUserByName) throws ApiException { + okhttp3.Call localVarCall = createUserByNameValidateBeforeCall(createUserByName, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a user. (asynchronously) + * + * @param createUserByName The create user by name request body. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User created. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call createUserByNameAsync(CreateUserByName createUserByName, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createUserByNameValidateBeforeCall(createUserByName, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteUser + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling deleteUser(Async)"); + } + + return deleteUserCall(userId, _callback); + + } + + /** + * Deletes a user. + * + * @param userId The user id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteUser(UUID userId) throws ApiException { + deleteUserWithHttpInfo(userId); + } + + /** + * Deletes a user. + * + * @param userId The user id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteUserWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = deleteUserValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes a user. (asynchronously) + * + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User deleted. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for forgotPassword + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public okhttp3.Call forgotPasswordCall(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = forgotPasswordDto; + + // create path and map variables + String localVarPath = "/Users/ForgotPassword"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call forgotPasswordValidateBeforeCall(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'forgotPasswordDto' is set + if (forgotPasswordDto == null) { + throw new ApiException("Missing the required parameter 'forgotPasswordDto' when calling forgotPassword(Async)"); + } + + return forgotPasswordCall(forgotPasswordDto, _callback); + + } + + /** + * Initiates the forgot password process for a local user. + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @return ForgotPasswordResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public ForgotPasswordResult forgotPassword(ForgotPasswordDto forgotPasswordDto) throws ApiException { + ApiResponse localVarResp = forgotPasswordWithHttpInfo(forgotPasswordDto); + return localVarResp.getData(); + } + + /** + * Initiates the forgot password process for a local user. + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @return ApiResponse<ForgotPasswordResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public ApiResponse forgotPasswordWithHttpInfo(ForgotPasswordDto forgotPasswordDto) throws ApiException { + okhttp3.Call localVarCall = forgotPasswordValidateBeforeCall(forgotPasswordDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Initiates the forgot password process for a local user. (asynchronously) + * + * @param forgotPasswordDto The forgot password request containing the entered username. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Password reset process started. -
+ */ + public okhttp3.Call forgotPasswordAsync(ForgotPasswordDto forgotPasswordDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = forgotPasswordValidateBeforeCall(forgotPasswordDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for forgotPasswordPin + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public okhttp3.Call forgotPasswordPinCall(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = forgotPasswordPinDto; + + // create path and map variables + String localVarPath = "/Users/ForgotPassword/Pin"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call forgotPasswordPinValidateBeforeCall(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'forgotPasswordPinDto' is set + if (forgotPasswordPinDto == null) { + throw new ApiException("Missing the required parameter 'forgotPasswordPinDto' when calling forgotPasswordPin(Async)"); + } + + return forgotPasswordPinCall(forgotPasswordPinDto, _callback); + + } + + /** + * Redeems a forgot password pin. + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @return PinRedeemResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public PinRedeemResult forgotPasswordPin(ForgotPasswordPinDto forgotPasswordPinDto) throws ApiException { + ApiResponse localVarResp = forgotPasswordPinWithHttpInfo(forgotPasswordPinDto); + return localVarResp.getData(); + } + + /** + * Redeems a forgot password pin. + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @return ApiResponse<PinRedeemResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public ApiResponse forgotPasswordPinWithHttpInfo(ForgotPasswordPinDto forgotPasswordPinDto) throws ApiException { + okhttp3.Call localVarCall = forgotPasswordPinValidateBeforeCall(forgotPasswordPinDto, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Redeems a forgot password pin. (asynchronously) + * + * @param forgotPasswordPinDto The forgot password pin request containing the entered pin. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Pin reset process started. -
+ */ + public okhttp3.Call forgotPasswordPinAsync(ForgotPasswordPinDto forgotPasswordPinDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = forgotPasswordPinValidateBeforeCall(forgotPasswordPinDto, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getCurrentUser + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCurrentUserCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/Me"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getCurrentUserValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getCurrentUserCall(_callback); + + } + + /** + * Gets the user based on auth token. + * + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto getCurrentUser() throws ApiException { + ApiResponse localVarResp = getCurrentUserWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets the user based on auth token. + * + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getCurrentUserWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getCurrentUserValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the user based on auth token. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
400 Token is not owned by a user. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getCurrentUserAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getCurrentUserValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getPublicUsers + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public okhttp3.Call getPublicUsersCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/Public"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getPublicUsersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getPublicUsersCall(_callback); + + } + + /** + * Gets a list of publicly visible users for display on a login screen. + * + * @return List<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public List getPublicUsers() throws ApiException { + ApiResponse> localVarResp = getPublicUsersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Gets a list of publicly visible users for display on a login screen. + * + * @return ApiResponse<List<UserDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public ApiResponse> getPublicUsersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getPublicUsersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of publicly visible users for display on a login screen. (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Public users returned. -
+ */ + public okhttp3.Call getPublicUsersAsync(final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getPublicUsersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserById + * @param userId The user id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserByIdCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserByIdValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getUserById(Async)"); + } + + return getUserByIdCall(userId, _callback); + + } + + /** + * Gets a user by Id. + * + * @param userId The user id. (required) + * @return UserDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserDto getUserById(UUID userId) throws ApiException { + ApiResponse localVarResp = getUserByIdWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets a user by Id. + * + * @param userId The user id. (required) + * @return ApiResponse<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUserByIdWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getUserByIdValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a user by Id. (asynchronously) + * + * @param userId The user id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserByIdAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserByIdValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUsers + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUsersCall(Boolean isHidden, Boolean isDisabled, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (isHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isHidden", isHidden)); + } + + if (isDisabled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isDisabled", isDisabled)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUsersValidateBeforeCall(Boolean isHidden, Boolean isDisabled, final ApiCallback _callback) throws ApiException { + return getUsersCall(isHidden, isDisabled, _callback); + + } + + /** + * Gets a list of users. + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @return List<UserDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getUsers(Boolean isHidden, Boolean isDisabled) throws ApiException { + ApiResponse> localVarResp = getUsersWithHttpInfo(isHidden, isDisabled); + return localVarResp.getData(); + } + + /** + * Gets a list of users. + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @return ApiResponse<List<UserDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getUsersWithHttpInfo(Boolean isHidden, Boolean isDisabled) throws ApiException { + okhttp3.Call localVarCall = getUsersValidateBeforeCall(isHidden, isDisabled, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a list of users. (asynchronously) + * + * @param isHidden Optional filter by IsHidden=true or false. (optional) + * @param isDisabled Optional filter by IsDisabled=true or false. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Users returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUsersAsync(Boolean isHidden, Boolean isDisabled, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getUsersValidateBeforeCall(isHidden, isDisabled, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateUser + * @param userId The user id. (required) + * @param userDto The updated user model. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserCall(UUID userId, UserDto userDto, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userDto; + + // create path and map variables + String localVarPath = "/Users/{userId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserValidateBeforeCall(UUID userId, UserDto userDto, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUser(Async)"); + } + + // verify the required parameter 'userDto' is set + if (userDto == null) { + throw new ApiException("Missing the required parameter 'userDto' when calling updateUser(Async)"); + } + + return updateUserCall(userId, userDto, _callback); + + } + + /** + * Updates a user. + * + * @param userId The user id. (required) + * @param userDto The updated user model. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public void updateUser(UUID userId, UserDto userDto) throws ApiException { + updateUserWithHttpInfo(userId, userDto); + } + + /** + * Updates a user. + * + * @param userId The user id. (required) + * @param userDto The updated user model. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserWithHttpInfo(UUID userId, UserDto userDto) throws ApiException { + okhttp3.Call localVarCall = updateUserValidateBeforeCall(userId, userDto, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user. (asynchronously) + * + * @param userId The user id. (required) + * @param userDto The updated user model. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User updated. -
400 User information was not supplied. -
403 User update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserAsync(UUID userId, UserDto userDto, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserValidateBeforeCall(userId, userDto, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserConfiguration + * @param userId The user id. (required) + * @param userConfiguration The new user configuration. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserConfigurationCall(UUID userId, UserConfiguration userConfiguration, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userConfiguration; + + // create path and map variables + String localVarPath = "/Users/{userId}/Configuration" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserConfigurationValidateBeforeCall(UUID userId, UserConfiguration userConfiguration, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserConfiguration(Async)"); + } + + // verify the required parameter 'userConfiguration' is set + if (userConfiguration == null) { + throw new ApiException("Missing the required parameter 'userConfiguration' when calling updateUserConfiguration(Async)"); + } + + return updateUserConfigurationCall(userId, userConfiguration, _callback); + + } + + /** + * Updates a user configuration. + * + * @param userId The user id. (required) + * @param userConfiguration The new user configuration. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public void updateUserConfiguration(UUID userId, UserConfiguration userConfiguration) throws ApiException { + updateUserConfigurationWithHttpInfo(userId, userConfiguration); + } + + /** + * Updates a user configuration. + * + * @param userId The user id. (required) + * @param userConfiguration The new user configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserConfigurationWithHttpInfo(UUID userId, UserConfiguration userConfiguration) throws ApiException { + okhttp3.Call localVarCall = updateUserConfigurationValidateBeforeCall(userId, userConfiguration, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user configuration. (asynchronously) + * + * @param userId The user id. (required) + * @param userConfiguration The new user configuration. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 User configuration updated. -
403 User configuration update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserConfigurationAsync(UUID userId, UserConfiguration userConfiguration, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserConfigurationValidateBeforeCall(userId, userConfiguration, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserEasyPassword + * @param userId The user id. (required) + * @param updateUserEasyPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserEasyPasswordCall(UUID userId, UpdateUserEasyPassword updateUserEasyPassword, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateUserEasyPassword; + + // create path and map variables + String localVarPath = "/Users/{userId}/EasyPassword" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserEasyPasswordValidateBeforeCall(UUID userId, UpdateUserEasyPassword updateUserEasyPassword, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserEasyPassword(Async)"); + } + + // verify the required parameter 'updateUserEasyPassword' is set + if (updateUserEasyPassword == null) { + throw new ApiException("Missing the required parameter 'updateUserEasyPassword' when calling updateUserEasyPassword(Async)"); + } + + return updateUserEasyPasswordCall(userId, updateUserEasyPassword, _callback); + + } + + /** + * Updates a user's easy password. + * + * @param userId The user id. (required) + * @param updateUserEasyPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public void updateUserEasyPassword(UUID userId, UpdateUserEasyPassword updateUserEasyPassword) throws ApiException { + updateUserEasyPasswordWithHttpInfo(userId, updateUserEasyPassword); + } + + /** + * Updates a user's easy password. + * + * @param userId The user id. (required) + * @param updateUserEasyPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public ApiResponse updateUserEasyPasswordWithHttpInfo(UUID userId, UpdateUserEasyPassword updateUserEasyPassword) throws ApiException { + okhttp3.Call localVarCall = updateUserEasyPasswordValidateBeforeCall(userId, updateUserEasyPassword, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user's easy password. (asynchronously) + * + * @param userId The user id. (required) + * @param updateUserEasyPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserEasyPasswordAsync(UUID userId, UpdateUserEasyPassword updateUserEasyPassword, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserEasyPasswordValidateBeforeCall(userId, updateUserEasyPassword, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserPassword + * @param userId The user id. (required) + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPasswordCall(UUID userId, UpdateUserPassword updateUserPassword, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateUserPassword; + + // create path and map variables + String localVarPath = "/Users/{userId}/Password" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserPasswordValidateBeforeCall(UUID userId, UpdateUserPassword updateUserPassword, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserPassword(Async)"); + } + + // verify the required parameter 'updateUserPassword' is set + if (updateUserPassword == null) { + throw new ApiException("Missing the required parameter 'updateUserPassword' when calling updateUserPassword(Async)"); + } + + return updateUserPasswordCall(userId, updateUserPassword, _callback); + + } + + /** + * Updates a user's password. + * + * @param userId The user id. (required) + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public void updateUserPassword(UUID userId, UpdateUserPassword updateUserPassword) throws ApiException { + updateUserPasswordWithHttpInfo(userId, updateUserPassword); + } + + /** + * Updates a user's password. + * + * @param userId The user id. (required) + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public ApiResponse updateUserPasswordWithHttpInfo(UUID userId, UpdateUserPassword updateUserPassword) throws ApiException { + okhttp3.Call localVarCall = updateUserPasswordValidateBeforeCall(userId, updateUserPassword, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user's password. (asynchronously) + * + * @param userId The user id. (required) + * @param updateUserPassword The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Password successfully reset. -
403 User is not allowed to update the password. -
404 User not found. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPasswordAsync(UUID userId, UpdateUserPassword updateUserPassword, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserPasswordValidateBeforeCall(userId, updateUserPassword, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for updateUserPolicy + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPolicyCall(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = userPolicy; + + // create path and map variables + String localVarPath = "/Users/{userId}/Policy" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json", + "text/json", + "application/*+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserPolicyValidateBeforeCall(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserPolicy(Async)"); + } + + // verify the required parameter 'userPolicy' is set + if (userPolicy == null) { + throw new ApiException("Missing the required parameter 'userPolicy' when calling updateUserPolicy(Async)"); + } + + return updateUserPolicyCall(userId, userPolicy, _callback); + + } + + /** + * Updates a user policy. + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public void updateUserPolicy(UUID userId, UserPolicy userPolicy) throws ApiException { + updateUserPolicyWithHttpInfo(userId, userPolicy); + } + + /** + * Updates a user policy. + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public ApiResponse updateUserPolicyWithHttpInfo(UUID userId, UserPolicy userPolicy) throws ApiException { + okhttp3.Call localVarCall = updateUserPolicyValidateBeforeCall(userId, userPolicy, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Updates a user policy. (asynchronously) + * + * @param userId The user id. (required) + * @param userPolicy The new user policy. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 User policy updated. -
400 User policy was not supplied. -
403 User policy update forbidden. -
401 Unauthorized -
+ */ + public okhttp3.Call updateUserPolicyAsync(UUID userId, UserPolicy userPolicy, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserPolicyValidateBeforeCall(userId, userPolicy, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserLibraryApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserLibraryApi.java new file mode 100644 index 0000000000000..5ebe0525a8762 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserLibraryApi.java @@ -0,0 +1,1619 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import java.util.UUID; +import org.openapitools.client.model.UserItemDataDto; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserLibraryApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserLibraryApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserLibraryApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteUserItemRating + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserItemRatingCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}/Rating" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteUserItemRatingValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling deleteUserItemRating(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteUserItemRating(Async)"); + } + + return deleteUserItemRatingCall(userId, itemId, _callback); + + } + + /** + * Deletes a user's saved personal rating for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto deleteUserItemRating(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = deleteUserItemRatingWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Deletes a user's saved personal rating for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteUserItemRatingWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteUserItemRatingValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Deletes a user's saved personal rating for an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Personal rating removed. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteUserItemRatingAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteUserItemRatingValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getIntros + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIntrosCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}/Intros" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getIntrosValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getIntros(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getIntros(Async)"); + } + + return getIntrosCall(userId, itemId, _callback); + + } + + /** + * Gets intros to play before the main media item plays. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getIntros(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = getIntrosWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Gets intros to play before the main media item plays. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getIntrosWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getIntrosValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets intros to play before the main media item plays. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Intros returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getIntrosAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getIntrosValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getItem + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getItemValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getItem(Async)"); + } + + return getItemCall(userId, itemId, _callback); + + } + + /** + * Gets an item from a user's library. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getItem(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = getItemWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Gets an item from a user's library. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getItemWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getItemValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets an item from a user's library. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getItemAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getItemValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLatestMedia + * @param userId User id. (required) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestMediaCall(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/Latest" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (isPlayed != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("isPlayed", isPlayed)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (groupItems != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("groupItems", groupItems)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLatestMediaValidateBeforeCall(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getLatestMedia(Async)"); + } + + return getLatestMediaCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, _callback); + + } + + /** + * Gets latest media. + * + * @param userId User id. (required) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLatestMedia(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems) throws ApiException { + ApiResponse> localVarResp = getLatestMediaWithHttpInfo(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems); + return localVarResp.getData(); + } + + /** + * Gets latest media. + * + * @param userId User id. (required) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLatestMediaWithHttpInfo(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems) throws ApiException { + okhttp3.Call localVarCall = getLatestMediaValidateBeforeCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets latest media. (asynchronously) + * + * @param userId User id. (required) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param includeItemTypes Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. (optional) + * @param isPlayed Filter by items that are played, or not. (optional) + * @param enableImages Optional. include image information in output. (optional) + * @param imageTypeLimit Optional. the max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param enableUserData Optional. include user data. (optional) + * @param limit Return item limit. (optional, default to 20) + * @param groupItems Whether or not to group items into a parent container. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Latest media returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLatestMediaAsync(UUID userId, UUID parentId, List fields, List includeItemTypes, Boolean isPlayed, Boolean enableImages, Integer imageTypeLimit, List enableImageTypes, Boolean enableUserData, Integer limit, Boolean groupItems, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLatestMediaValidateBeforeCall(userId, parentId, fields, includeItemTypes, isPlayed, enableImages, imageTypeLimit, enableImageTypes, enableUserData, limit, groupItems, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getLocalTrailers + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalTrailersCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}/LocalTrailers" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLocalTrailersValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getLocalTrailers(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getLocalTrailers(Async)"); + } + + return getLocalTrailersCall(userId, itemId, _callback); + + } + + /** + * Gets local trailers for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getLocalTrailers(UUID userId, UUID itemId) throws ApiException { + ApiResponse> localVarResp = getLocalTrailersWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Gets local trailers for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getLocalTrailersWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getLocalTrailersValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets local trailers for an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getLocalTrailersAsync(UUID userId, UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getLocalTrailersValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRootFolder + * @param userId User id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRootFolderCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/Root" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRootFolderValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getRootFolder(Async)"); + } + + return getRootFolderCall(userId, _callback); + + } + + /** + * Gets the root folder from a user's library. + * + * @param userId User id. (required) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getRootFolder(UUID userId) throws ApiException { + ApiResponse localVarResp = getRootFolderWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Gets the root folder from a user's library. + * + * @param userId User id. (required) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getRootFolderWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getRootFolderValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets the root folder from a user's library. (asynchronously) + * + * @param userId User id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Root folder returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getRootFolderAsync(UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRootFolderValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getSpecialFeatures + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSpecialFeaturesCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}/SpecialFeatures" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getSpecialFeaturesValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getSpecialFeatures(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getSpecialFeatures(Async)"); + } + + return getSpecialFeaturesCall(userId, itemId, _callback); + + } + + /** + * Gets special features for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return List<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getSpecialFeatures(UUID userId, UUID itemId) throws ApiException { + ApiResponse> localVarResp = getSpecialFeaturesWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Gets special features for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<List<BaseItemDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getSpecialFeaturesWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = getSpecialFeaturesValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets special features for an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Special features returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getSpecialFeaturesAsync(UUID userId, UUID itemId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getSpecialFeaturesValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for markFavoriteItem + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markFavoriteItemCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/FavoriteItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call markFavoriteItemValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling markFavoriteItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling markFavoriteItem(Async)"); + } + + return markFavoriteItemCall(userId, itemId, _callback); + + } + + /** + * Marks an item as a favorite. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto markFavoriteItem(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = markFavoriteItemWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Marks an item as a favorite. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse markFavoriteItemWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = markFavoriteItemValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Marks an item as a favorite. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item marked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call markFavoriteItemAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = markFavoriteItemValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for unmarkFavoriteItem + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call unmarkFavoriteItemCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/FavoriteItems/{itemId}" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call unmarkFavoriteItemValidateBeforeCall(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling unmarkFavoriteItem(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling unmarkFavoriteItem(Async)"); + } + + return unmarkFavoriteItemCall(userId, itemId, _callback); + + } + + /** + * Unmarks item as a favorite. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto unmarkFavoriteItem(UUID userId, UUID itemId) throws ApiException { + ApiResponse localVarResp = unmarkFavoriteItemWithHttpInfo(userId, itemId); + return localVarResp.getData(); + } + + /** + * Unmarks item as a favorite. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse unmarkFavoriteItemWithHttpInfo(UUID userId, UUID itemId) throws ApiException { + okhttp3.Call localVarCall = unmarkFavoriteItemValidateBeforeCall(userId, itemId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Unmarks item as a favorite. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item unmarked as favorite. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call unmarkFavoriteItemAsync(UUID userId, UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = unmarkFavoriteItemValidateBeforeCall(userId, itemId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateUserItemRating + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateUserItemRatingCall(UUID userId, UUID itemId, Boolean likes, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Items/{itemId}/Rating" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())) + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (likes != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("likes", likes)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateUserItemRatingValidateBeforeCall(UUID userId, UUID itemId, Boolean likes, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling updateUserItemRating(Async)"); + } + + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling updateUserItemRating(Async)"); + } + + return updateUserItemRatingCall(userId, itemId, likes, _callback); + + } + + /** + * Updates a user's rating for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @return UserItemDataDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public UserItemDataDto updateUserItemRating(UUID userId, UUID itemId, Boolean likes) throws ApiException { + ApiResponse localVarResp = updateUserItemRatingWithHttpInfo(userId, itemId, likes); + return localVarResp.getData(); + } + + /** + * Updates a user's rating for an item. + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @return ApiResponse<UserItemDataDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse updateUserItemRatingWithHttpInfo(UUID userId, UUID itemId, Boolean likes) throws ApiException { + okhttp3.Call localVarCall = updateUserItemRatingValidateBeforeCall(userId, itemId, likes, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Updates a user's rating for an item. (asynchronously) + * + * @param userId User id. (required) + * @param itemId Item id. (required) + * @param likes Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Item rating updated. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call updateUserItemRatingAsync(UUID userId, UUID itemId, Boolean likes, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateUserItemRatingValidateBeforeCall(userId, itemId, likes, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserViewsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserViewsApi.java new file mode 100644 index 0000000000000..8ebc4caaaecba --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/UserViewsApi.java @@ -0,0 +1,380 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SpecialViewOptionDto; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class UserViewsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public UserViewsApi() { + this(Configuration.getDefaultApiClient()); + } + + public UserViewsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getGroupingOptions + * @param userId User id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGroupingOptionsCall(UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/GroupingOptions" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getGroupingOptionsValidateBeforeCall(UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getGroupingOptions(Async)"); + } + + return getGroupingOptionsCall(userId, _callback); + + } + + /** + * Get user view grouping options. + * + * @param userId User id. (required) + * @return List<SpecialViewOptionDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public List getGroupingOptions(UUID userId) throws ApiException { + ApiResponse> localVarResp = getGroupingOptionsWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Get user view grouping options. + * + * @param userId User id. (required) + * @return ApiResponse<List<SpecialViewOptionDto>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse> getGroupingOptionsWithHttpInfo(UUID userId) throws ApiException { + okhttp3.Call localVarCall = getGroupingOptionsValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user view grouping options. (asynchronously) + * + * @param userId User id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 User view grouping options returned. -
404 User not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getGroupingOptionsAsync(UUID userId, final ApiCallback> _callback) throws ApiException { + + okhttp3.Call localVarCall = getGroupingOptionsValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getUserViews + * @param userId User id. (required) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserViewsCall(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Users/{userId}/Views" + .replace("{" + "userId" + "}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (includeExternalContent != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeExternalContent", includeExternalContent)); + } + + if (presetViews != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "presetViews", presetViews)); + } + + if (includeHidden != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeHidden", includeHidden)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getUserViewsValidateBeforeCall(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling getUserViews(Async)"); + } + + return getUserViewsCall(userId, includeExternalContent, presetViews, includeHidden, _callback); + + } + + /** + * Get user views. + * + * @param userId User id. (required) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getUserViews(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden) throws ApiException { + ApiResponse localVarResp = getUserViewsWithHttpInfo(userId, includeExternalContent, presetViews, includeHidden); + return localVarResp.getData(); + } + + /** + * Get user views. + * + * @param userId User id. (required) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getUserViewsWithHttpInfo(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden) throws ApiException { + okhttp3.Call localVarCall = getUserViewsValidateBeforeCall(userId, includeExternalContent, presetViews, includeHidden, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get user views. (asynchronously) + * + * @param userId User id. (required) + * @param includeExternalContent Whether or not to include external views such as channels or live tv. (optional) + * @param presetViews Preset views. (optional) + * @param includeHidden Whether or not to include hidden content. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 User views returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getUserViewsAsync(UUID userId, Boolean includeExternalContent, List presetViews, Boolean includeHidden, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getUserViewsValidateBeforeCall(userId, includeExternalContent, presetViews, includeHidden, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java new file mode 100644 index 0000000000000..add5012375a02 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideoAttachmentsApi.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import java.io.File; +import org.openapitools.client.model.ProblemDetails; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VideoAttachmentsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public VideoAttachmentsApi() { + this(Configuration.getDefaultApiClient()); + } + + public VideoAttachmentsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getAttachment + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public okhttp3.Call getAttachmentCall(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}" + .replace("{" + "videoId" + "}", localVarApiClient.escapeString(videoId.toString())) + .replace("{" + "mediaSourceId" + "}", localVarApiClient.escapeString(mediaSourceId.toString())) + .replace("{" + "index" + "}", localVarApiClient.escapeString(index.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/octet-stream", + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAttachmentValidateBeforeCall(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'videoId' is set + if (videoId == null) { + throw new ApiException("Missing the required parameter 'videoId' when calling getAttachment(Async)"); + } + + // verify the required parameter 'mediaSourceId' is set + if (mediaSourceId == null) { + throw new ApiException("Missing the required parameter 'mediaSourceId' when calling getAttachment(Async)"); + } + + // verify the required parameter 'index' is set + if (index == null) { + throw new ApiException("Missing the required parameter 'index' when calling getAttachment(Async)"); + } + + return getAttachmentCall(videoId, mediaSourceId, index, _callback); + + } + + /** + * Get video attachment. + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public File getAttachment(UUID videoId, String mediaSourceId, Integer index) throws ApiException { + ApiResponse localVarResp = getAttachmentWithHttpInfo(videoId, mediaSourceId, index); + return localVarResp.getData(); + } + + /** + * Get video attachment. + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public ApiResponse getAttachmentWithHttpInfo(UUID videoId, String mediaSourceId, Integer index) throws ApiException { + okhttp3.Call localVarCall = getAttachmentValidateBeforeCall(videoId, mediaSourceId, index, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get video attachment. (asynchronously) + * + * @param videoId Video ID. (required) + * @param mediaSourceId Media Source ID. (required) + * @param index Attachment Index. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 Attachment retrieved. -
404 Video or attachment not found. -
+ */ + public okhttp3.Call getAttachmentAsync(UUID videoId, String mediaSourceId, Integer index, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAttachmentValidateBeforeCall(videoId, mediaSourceId, index, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideosApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideosApi.java new file mode 100644 index 0000000000000..a5d9b07531f77 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/VideosApi.java @@ -0,0 +1,2614 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.EncodingContext; +import java.io.File; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VideosApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public VideosApi() { + this(Configuration.getDefaultApiClient()); + } + + public VideosApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for deleteAlternateSources + * @param itemId The item id. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteAlternateSourcesCall(UUID itemId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/AlternateSources" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteAlternateSourcesValidateBeforeCall(UUID itemId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling deleteAlternateSources(Async)"); + } + + return deleteAlternateSourcesCall(itemId, _callback); + + } + + /** + * Removes alternate video sources. + * + * @param itemId The item id. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public void deleteAlternateSources(UUID itemId) throws ApiException { + deleteAlternateSourcesWithHttpInfo(itemId); + } + + /** + * Removes alternate video sources. + * + * @param itemId The item id. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse deleteAlternateSourcesWithHttpInfo(UUID itemId) throws ApiException { + okhttp3.Call localVarCall = deleteAlternateSourcesValidateBeforeCall(itemId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Removes alternate video sources. (asynchronously) + * + * @param itemId The item id. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Alternate sources deleted. -
404 Video not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call deleteAlternateSourcesAsync(UUID itemId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteAlternateSourcesValidateBeforeCall(itemId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAdditionalPart + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAdditionalPartCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/AdditionalParts" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAdditionalPartValidateBeforeCall(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getAdditionalPart(Async)"); + } + + return getAdditionalPartCall(itemId, userId, _callback); + + } + + /** + * Gets additional parts for a video. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getAdditionalPart(UUID itemId, UUID userId) throws ApiException { + ApiResponse localVarResp = getAdditionalPartWithHttpInfo(itemId, userId); + return localVarResp.getData(); + } + + /** + * Gets additional parts for a video. + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getAdditionalPartWithHttpInfo(UUID itemId, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getAdditionalPartValidateBeforeCall(itemId, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets additional parts for a video. (asynchronously) + * + * @param itemId The item id. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Additional parts returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getAdditionalPartAsync(UUID itemId, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAdditionalPartValidateBeforeCall(itemId, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVideoStream + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVideoStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVideoStream(Async)"); + } + + return getVideoStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File getVideoStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getVideoStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse getVideoStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getVideoStreamByContainer + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getVideoStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling getVideoStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling getVideoStreamByContainer(Async)"); + } + + return getVideoStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File getVideoStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = getVideoStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse getVideoStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = getVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call getVideoStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headVideoStream + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (container != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("container", container)); + } + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headVideoStreamValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headVideoStream(Async)"); + } + + return headVideoStreamCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File headVideoStream(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = headVideoStreamWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse headVideoStreamWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = headVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (optional) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headVideoStreamValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for headVideoStreamByContainer + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamByContainerCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/{itemId}/stream.{container}" + .replace("{" + "itemId" + "}", localVarApiClient.escapeString(itemId.toString())) + .replace("{" + "container" + "}", localVarApiClient.escapeString(container.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (_static != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("static", _static)); + } + + if (params != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("params", params)); + } + + if (tag != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("tag", tag)); + } + + if (deviceProfileId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceProfileId", deviceProfileId)); + } + + if (playSessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("playSessionId", playSessionId)); + } + + if (segmentContainer != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentContainer", segmentContainer)); + } + + if (segmentLength != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("segmentLength", segmentLength)); + } + + if (minSegments != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("minSegments", minSegments)); + } + + if (mediaSourceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("mediaSourceId", mediaSourceId)); + } + + if (deviceId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deviceId", deviceId)); + } + + if (audioCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioCodec", audioCodec)); + } + + if (enableAutoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableAutoStreamCopy", enableAutoStreamCopy)); + } + + if (allowVideoStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowVideoStreamCopy", allowVideoStreamCopy)); + } + + if (allowAudioStreamCopy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("allowAudioStreamCopy", allowAudioStreamCopy)); + } + + if (breakOnNonKeyFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("breakOnNonKeyFrames", breakOnNonKeyFrames)); + } + + if (audioSampleRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioSampleRate", audioSampleRate)); + } + + if (maxAudioBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioBitDepth", maxAudioBitDepth)); + } + + if (audioBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioBitRate", audioBitRate)); + } + + if (audioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioChannels", audioChannels)); + } + + if (maxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxAudioChannels", maxAudioChannels)); + } + + if (profile != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("profile", profile)); + } + + if (level != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("level", level)); + } + + if (framerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("framerate", framerate)); + } + + if (maxFramerate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxFramerate", maxFramerate)); + } + + if (copyTimestamps != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("copyTimestamps", copyTimestamps)); + } + + if (startTimeTicks != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startTimeTicks", startTimeTicks)); + } + + if (width != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("width", width)); + } + + if (height != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("height", height)); + } + + if (maxWidth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxWidth", maxWidth)); + } + + if (maxHeight != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxHeight", maxHeight)); + } + + if (videoBitRate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoBitRate", videoBitRate)); + } + + if (subtitleStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleStreamIndex", subtitleStreamIndex)); + } + + if (subtitleMethod != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleMethod", subtitleMethod)); + } + + if (maxRefFrames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxRefFrames", maxRefFrames)); + } + + if (maxVideoBitDepth != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("maxVideoBitDepth", maxVideoBitDepth)); + } + + if (requireAvc != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireAvc", requireAvc)); + } + + if (deInterlace != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("deInterlace", deInterlace)); + } + + if (requireNonAnamorphic != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("requireNonAnamorphic", requireNonAnamorphic)); + } + + if (transcodingMaxAudioChannels != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodingMaxAudioChannels", transcodingMaxAudioChannels)); + } + + if (cpuCoreLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("cpuCoreLimit", cpuCoreLimit)); + } + + if (liveStreamId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("liveStreamId", liveStreamId)); + } + + if (enableMpegtsM2TsMode != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableMpegtsM2TsMode", enableMpegtsM2TsMode)); + } + + if (videoCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoCodec", videoCodec)); + } + + if (subtitleCodec != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subtitleCodec", subtitleCodec)); + } + + if (transcodeReasons != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("transcodeReasons", transcodeReasons)); + } + + if (audioStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("audioStreamIndex", audioStreamIndex)); + } + + if (videoStreamIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("videoStreamIndex", videoStreamIndex)); + } + + if (context != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("context", context)); + } + + if (streamOptions != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("streamOptions", streamOptions)); + } + + final String[] localVarAccepts = { + "video/*" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "HEAD", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call headVideoStreamByContainerValidateBeforeCall(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'itemId' is set + if (itemId == null) { + throw new ApiException("Missing the required parameter 'itemId' when calling headVideoStreamByContainer(Async)"); + } + + // verify the required parameter 'container' is set + if (container == null) { + throw new ApiException("Missing the required parameter 'container' when calling headVideoStreamByContainer(Async)"); + } + + return headVideoStreamByContainerCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return File + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public File headVideoStreamByContainer(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + ApiResponse localVarResp = headVideoStreamByContainerWithHttpInfo(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions); + return localVarResp.getData(); + } + + /** + * Gets a video stream. + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @return ApiResponse<File> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public ApiResponse headVideoStreamByContainerWithHttpInfo(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions) throws ApiException { + okhttp3.Call localVarCall = headVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a video stream. (asynchronously) + * + * @param itemId The item id. (required) + * @param container The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv. (required) + * @param _static Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. (optional) + * @param params The streaming parameters. (optional) + * @param tag The tag. (optional) + * @param deviceProfileId Optional. The dlna device profile id to utilize. (optional) + * @param playSessionId The play session id. (optional) + * @param segmentContainer The segment container. (optional) + * @param segmentLength The segment length. (optional) + * @param minSegments The minimum number of segments. (optional) + * @param mediaSourceId The media version id, if playing an alternate version. (optional) + * @param deviceId The device id of the client requesting. Used to stop encoding processes when needed. (optional) + * @param audioCodec Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma. (optional) + * @param enableAutoStreamCopy Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. (optional) + * @param allowVideoStreamCopy Whether or not to allow copying of the video stream url. (optional) + * @param allowAudioStreamCopy Whether or not to allow copying of the audio stream url. (optional) + * @param breakOnNonKeyFrames Optional. Whether to break on non key frames. (optional) + * @param audioSampleRate Optional. Specify a specific audio sample rate, e.g. 44100. (optional) + * @param maxAudioBitDepth Optional. The maximum audio bit depth. (optional) + * @param audioBitRate Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. (optional) + * @param audioChannels Optional. Specify a specific number of audio channels to encode to, e.g. 2. (optional) + * @param maxAudioChannels Optional. Specify a maximum number of audio channels to encode to, e.g. 2. (optional) + * @param profile Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. (optional) + * @param level Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. (optional) + * @param framerate Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param maxFramerate Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. (optional) + * @param copyTimestamps Whether or not to copy timestamps when transcoding with an offset. Defaults to false. (optional) + * @param startTimeTicks Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. (optional) + * @param width Optional. The fixed horizontal resolution of the encoded video. (optional) + * @param height Optional. The fixed vertical resolution of the encoded video. (optional) + * @param maxWidth Optional. The maximum horizontal resolution of the encoded video. (optional) + * @param maxHeight Optional. The maximum vertical resolution of the encoded video. (optional) + * @param videoBitRate Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. (optional) + * @param subtitleStreamIndex Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. (optional) + * @param subtitleMethod Optional. Specify the subtitle delivery method. (optional) + * @param maxRefFrames Optional. (optional) + * @param maxVideoBitDepth Optional. The maximum video bit depth. (optional) + * @param requireAvc Optional. Whether to require avc. (optional) + * @param deInterlace Optional. Whether to deinterlace the video. (optional) + * @param requireNonAnamorphic Optional. Whether to require a non anamorphic stream. (optional) + * @param transcodingMaxAudioChannels Optional. The maximum number of audio channels to transcode. (optional) + * @param cpuCoreLimit Optional. The limit of how many cpu cores to use. (optional) + * @param liveStreamId The live stream id. (optional) + * @param enableMpegtsM2TsMode Optional. Whether to enable the MpegtsM2Ts mode. (optional) + * @param videoCodec Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv. (optional) + * @param subtitleCodec Optional. Specify a subtitle codec to encode to. (optional) + * @param transcodeReasons Optional. The transcoding reason. (optional) + * @param audioStreamIndex Optional. The index of the audio stream to use. If omitted the first audio stream will be used. (optional) + * @param videoStreamIndex Optional. The index of the video stream to use. If omitted the first video stream will be used. (optional) + * @param context Optional. The MediaBrowser.Model.Dlna.EncodingContext. (optional) + * @param streamOptions Optional. The streaming options. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 Video stream returned. -
+ */ + public okhttp3.Call headVideoStreamByContainerAsync(UUID itemId, String container, Boolean _static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Integer segmentLength, Integer minSegments, String mediaSourceId, String deviceId, String audioCodec, Boolean enableAutoStreamCopy, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, Boolean breakOnNonKeyFrames, Integer audioSampleRate, Integer maxAudioBitDepth, Integer audioBitRate, Integer audioChannels, Integer maxAudioChannels, String profile, String level, Float framerate, Float maxFramerate, Boolean copyTimestamps, Long startTimeTicks, Integer width, Integer height, Integer maxWidth, Integer maxHeight, Integer videoBitRate, Integer subtitleStreamIndex, SubtitleDeliveryMethod subtitleMethod, Integer maxRefFrames, Integer maxVideoBitDepth, Boolean requireAvc, Boolean deInterlace, Boolean requireNonAnamorphic, Integer transcodingMaxAudioChannels, Integer cpuCoreLimit, String liveStreamId, Boolean enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Integer audioStreamIndex, Integer videoStreamIndex, EncodingContext context, Map streamOptions, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = headVideoStreamByContainerValidateBeforeCall(itemId, container, _static, params, tag, deviceProfileId, playSessionId, segmentContainer, segmentLength, minSegments, mediaSourceId, deviceId, audioCodec, enableAutoStreamCopy, allowVideoStreamCopy, allowAudioStreamCopy, breakOnNonKeyFrames, audioSampleRate, maxAudioBitDepth, audioBitRate, audioChannels, maxAudioChannels, profile, level, framerate, maxFramerate, copyTimestamps, startTimeTicks, width, height, maxWidth, maxHeight, videoBitRate, subtitleStreamIndex, subtitleMethod, maxRefFrames, maxVideoBitDepth, requireAvc, deInterlace, requireNonAnamorphic, transcodingMaxAudioChannels, cpuCoreLimit, liveStreamId, enableMpegtsM2TsMode, videoCodec, subtitleCodec, transcodeReasons, audioStreamIndex, videoStreamIndex, context, streamOptions, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for mergeVersions + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call mergeVersionsCall(List ids, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Videos/MergeVersions"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (ids != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "ids", ids)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call mergeVersionsValidateBeforeCall(List ids, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'ids' is set + if (ids == null) { + throw new ApiException("Missing the required parameter 'ids' when calling mergeVersions(Async)"); + } + + return mergeVersionsCall(ids, _callback); + + } + + /** + * Merges videos into a single record. + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public void mergeVersions(List ids) throws ApiException { + mergeVersionsWithHttpInfo(ids); + } + + /** + * Merges videos into a single record. + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse mergeVersionsWithHttpInfo(List ids) throws ApiException { + okhttp3.Call localVarCall = mergeVersionsValidateBeforeCall(ids, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Merges videos into a single record. (asynchronously) + * + * @param ids Item id list. This allows multiple, comma delimited. (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
204 Videos merged. -
400 Supply at least 2 video ids. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call mergeVersionsAsync(List ids, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = mergeVersionsValidateBeforeCall(ids, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/YearsApi.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/YearsApi.java new file mode 100644 index 0000000000000..ead1f34530943 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/api/YearsApi.java @@ -0,0 +1,478 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.ApiCallback; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; +import org.openapitools.client.ProgressRequestBody; +import org.openapitools.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.BaseItemDtoQueryResult; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.ProblemDetails; +import org.openapitools.client.model.SortOrder; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class YearsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public YearsApi() { + this(Configuration.getDefaultApiClient()); + } + + public YearsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for getYear + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearCall(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Years/{year}" + .replace("{" + "year" + "}", localVarApiClient.escapeString(year.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getYearValidateBeforeCall(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'year' is set + if (year == null) { + throw new ApiException("Missing the required parameter 'year' when calling getYear(Async)"); + } + + return getYearCall(year, userId, _callback); + + } + + /** + * Gets a year. + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return BaseItemDto + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDto getYear(Integer year, UUID userId) throws ApiException { + ApiResponse localVarResp = getYearWithHttpInfo(year, userId); + return localVarResp.getData(); + } + + /** + * Gets a year. + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @return ApiResponse<BaseItemDto> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getYearWithHttpInfo(Integer year, UUID userId) throws ApiException { + okhttp3.Call localVarCall = getYearValidateBeforeCall(year, userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Gets a year. (asynchronously) + * + * @param year The year. (required) + * @param userId Optional. Filter by user id, and attach user data. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 Year returned. -
404 Year not found. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearAsync(Integer year, UUID userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getYearValidateBeforeCall(year, userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getYears + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearsCall(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/Years"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (startIndex != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startIndex", startIndex)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + if (sortOrder != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortOrder", sortOrder)); + } + + if (parentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("parentId", parentId)); + } + + if (fields != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "fields", fields)); + } + + if (excludeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "excludeItemTypes", excludeItemTypes)); + } + + if (includeItemTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "includeItemTypes", includeItemTypes)); + } + + if (mediaTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "mediaTypes", mediaTypes)); + } + + if (sortBy != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "sortBy", sortBy)); + } + + if (enableUserData != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableUserData", enableUserData)); + } + + if (imageTypeLimit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("imageTypeLimit", imageTypeLimit)); + } + + if (enableImageTypes != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "enableImageTypes", enableImageTypes)); + } + + if (userId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("userId", userId)); + } + + if (recursive != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("recursive", recursive)); + } + + if (enableImages != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("enableImages", enableImages)); + } + + final String[] localVarAccepts = { + "application/json", + "application/json; profile=CamelCase", + "application/json; profile=PascalCase" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "CustomAuthentication" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getYearsValidateBeforeCall(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + return getYearsCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, _callback); + + } + + /** + * Get years. + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @return BaseItemDtoQueryResult + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public BaseItemDtoQueryResult getYears(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages) throws ApiException { + ApiResponse localVarResp = getYearsWithHttpInfo(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages); + return localVarResp.getData(); + } + + /** + * Get years. + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @return ApiResponse<BaseItemDtoQueryResult> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public ApiResponse getYearsWithHttpInfo(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages) throws ApiException { + okhttp3.Call localVarCall = getYearsValidateBeforeCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get years. (asynchronously) + * + * @param startIndex Skips over a given number of items within the results. Use for paging. (optional) + * @param limit Optional. The maximum number of records to return. (optional) + * @param sortOrder Sort Order - Ascending,Descending. (optional) + * @param parentId Specify this to localize the search to a specific item or folder. Omit to use the root. (optional) + * @param fields Optional. Specify additional fields of information to return in the output. (optional) + * @param excludeItemTypes Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. (optional) + * @param includeItemTypes Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. (optional) + * @param mediaTypes Optional. Filter by MediaType. Allows multiple, comma delimited. (optional) + * @param sortBy Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime. (optional) + * @param enableUserData Optional. Include user data. (optional) + * @param imageTypeLimit Optional. The max number of images to return, per image type. (optional) + * @param enableImageTypes Optional. The image types to include in the output. (optional) + * @param userId User Id. (optional) + * @param recursive Search recursively. (optional, default to true) + * @param enableImages Optional. Include image information in output. (optional, default to true) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 Year query returned. -
401 Unauthorized -
403 Forbidden -
+ */ + public okhttp3.Call getYearsAsync(Integer startIndex, Integer limit, List sortOrder, UUID parentId, List fields, List excludeItemTypes, List includeItemTypes, List mediaTypes, List sortBy, Boolean enableUserData, Integer imageTypeLimit, List enableImageTypes, UUID userId, Boolean recursive, Boolean enableImages, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getYearsValidateBeforeCall(startIndex, limit, sortOrder, parentId, fields, excludeItemTypes, includeItemTypes, mediaTypes, sortBy, enableUserData, imageTypeLimit, enableImageTypes, userId, recursive, enableImages, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AccessSchedule.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AccessSchedule.java new file mode 100644 index 0000000000000..74766b025ded9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AccessSchedule.java @@ -0,0 +1,319 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.DynamicDayOfWeek; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An entity representing a user's access schedule. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AccessSchedule { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Integer id; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_DAY_OF_WEEK = "DayOfWeek"; + @SerializedName(SERIALIZED_NAME_DAY_OF_WEEK) + @javax.annotation.Nullable + private DynamicDayOfWeek dayOfWeek; + + public static final String SERIALIZED_NAME_START_HOUR = "StartHour"; + @SerializedName(SERIALIZED_NAME_START_HOUR) + @javax.annotation.Nullable + private Double startHour; + + public static final String SERIALIZED_NAME_END_HOUR = "EndHour"; + @SerializedName(SERIALIZED_NAME_END_HOUR) + @javax.annotation.Nullable + private Double endHour; + + public AccessSchedule() { + } + + public AccessSchedule( + Integer id + ) { + this(); + this.id = id; + } + + /** + * Gets the id of this instance. + * @return id + */ + @javax.annotation.Nullable + public Integer getId() { + return id; + } + + + + public AccessSchedule userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets the id of the associated user. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public AccessSchedule dayOfWeek(@javax.annotation.Nullable DynamicDayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + return this; + } + + /** + * Gets or sets the day of week. + * @return dayOfWeek + */ + @javax.annotation.Nullable + public DynamicDayOfWeek getDayOfWeek() { + return dayOfWeek; + } + + public void setDayOfWeek(@javax.annotation.Nullable DynamicDayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + } + + + public AccessSchedule startHour(@javax.annotation.Nullable Double startHour) { + this.startHour = startHour; + return this; + } + + /** + * Gets or sets the start hour. + * @return startHour + */ + @javax.annotation.Nullable + public Double getStartHour() { + return startHour; + } + + public void setStartHour(@javax.annotation.Nullable Double startHour) { + this.startHour = startHour; + } + + + public AccessSchedule endHour(@javax.annotation.Nullable Double endHour) { + this.endHour = endHour; + return this; + } + + /** + * Gets or sets the end hour. + * @return endHour + */ + @javax.annotation.Nullable + public Double getEndHour() { + return endHour; + } + + public void setEndHour(@javax.annotation.Nullable Double endHour) { + this.endHour = endHour; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccessSchedule accessSchedule = (AccessSchedule) o; + return Objects.equals(this.id, accessSchedule.id) && + Objects.equals(this.userId, accessSchedule.userId) && + Objects.equals(this.dayOfWeek, accessSchedule.dayOfWeek) && + Objects.equals(this.startHour, accessSchedule.startHour) && + Objects.equals(this.endHour, accessSchedule.endHour); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId, dayOfWeek, startHour, endHour); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccessSchedule {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" dayOfWeek: ").append(toIndentedString(dayOfWeek)).append("\n"); + sb.append(" startHour: ").append(toIndentedString(startHour)).append("\n"); + sb.append(" endHour: ").append(toIndentedString(endHour)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("UserId"); + openapiFields.add("DayOfWeek"); + openapiFields.add("StartHour"); + openapiFields.add("EndHour"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AccessSchedule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AccessSchedule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AccessSchedule is not found in the empty JSON string", AccessSchedule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AccessSchedule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AccessSchedule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + // validate the optional field `DayOfWeek` + if (jsonObj.get("DayOfWeek") != null && !jsonObj.get("DayOfWeek").isJsonNull()) { + DynamicDayOfWeek.validateJsonElement(jsonObj.get("DayOfWeek")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AccessSchedule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AccessSchedule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AccessSchedule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AccessSchedule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AccessSchedule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AccessSchedule given an JSON string + * + * @param jsonString JSON string + * @return An instance of AccessSchedule + * @throws IOException if the JSON string is invalid with respect to AccessSchedule + */ + public static AccessSchedule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AccessSchedule.class); + } + + /** + * Convert an instance of AccessSchedule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntry.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntry.java new file mode 100644 index 0000000000000..538344109109f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntry.java @@ -0,0 +1,491 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.LogLevel; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An activity log entry. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntry { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Long id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_SHORT_OVERVIEW = "ShortOverview"; + @SerializedName(SERIALIZED_NAME_SHORT_OVERVIEW) + @javax.annotation.Nullable + private String shortOverview; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public static final String SERIALIZED_NAME_DATE = "Date"; + @SerializedName(SERIALIZED_NAME_DATE) + @javax.annotation.Nullable + private OffsetDateTime date; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG = "UserPrimaryImageTag"; + @Deprecated + @SerializedName(SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String userPrimaryImageTag; + + public static final String SERIALIZED_NAME_SEVERITY = "Severity"; + @SerializedName(SERIALIZED_NAME_SEVERITY) + @javax.annotation.Nullable + private LogLevel severity; + + public ActivityLogEntry() { + } + + public ActivityLogEntry id(@javax.annotation.Nullable Long id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public Long getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Long id) { + this.id = id; + } + + + public ActivityLogEntry name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ActivityLogEntry overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the overview. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public ActivityLogEntry shortOverview(@javax.annotation.Nullable String shortOverview) { + this.shortOverview = shortOverview; + return this; + } + + /** + * Gets or sets the short overview. + * @return shortOverview + */ + @javax.annotation.Nullable + public String getShortOverview() { + return shortOverview; + } + + public void setShortOverview(@javax.annotation.Nullable String shortOverview) { + this.shortOverview = shortOverview; + } + + + public ActivityLogEntry type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ActivityLogEntry itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + public ActivityLogEntry date(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + return this; + } + + /** + * Gets or sets the date. + * @return date + */ + @javax.annotation.Nullable + public OffsetDateTime getDate() { + return date; + } + + public void setDate(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + } + + + public ActivityLogEntry userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + @Deprecated + public ActivityLogEntry userPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + return this; + } + + /** + * Gets or sets the user primary image tag. + * @return userPrimaryImageTag + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getUserPrimaryImageTag() { + return userPrimaryImageTag; + } + + @Deprecated + public void setUserPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + } + + + public ActivityLogEntry severity(@javax.annotation.Nullable LogLevel severity) { + this.severity = severity; + return this; + } + + /** + * Gets or sets the log severity. + * @return severity + */ + @javax.annotation.Nullable + public LogLevel getSeverity() { + return severity; + } + + public void setSeverity(@javax.annotation.Nullable LogLevel severity) { + this.severity = severity; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntry activityLogEntry = (ActivityLogEntry) o; + return Objects.equals(this.id, activityLogEntry.id) && + Objects.equals(this.name, activityLogEntry.name) && + Objects.equals(this.overview, activityLogEntry.overview) && + Objects.equals(this.shortOverview, activityLogEntry.shortOverview) && + Objects.equals(this.type, activityLogEntry.type) && + Objects.equals(this.itemId, activityLogEntry.itemId) && + Objects.equals(this.date, activityLogEntry.date) && + Objects.equals(this.userId, activityLogEntry.userId) && + Objects.equals(this.userPrimaryImageTag, activityLogEntry.userPrimaryImageTag) && + Objects.equals(this.severity, activityLogEntry.severity); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, overview, shortOverview, type, itemId, date, userId, userPrimaryImageTag, severity); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntry {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" shortOverview: ").append(toIndentedString(shortOverview)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userPrimaryImageTag: ").append(toIndentedString(userPrimaryImageTag)).append("\n"); + sb.append(" severity: ").append(toIndentedString(severity)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("ShortOverview"); + openapiFields.add("Type"); + openapiFields.add("ItemId"); + openapiFields.add("Date"); + openapiFields.add("UserId"); + openapiFields.add("UserPrimaryImageTag"); + openapiFields.add("Severity"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntry + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntry.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntry is not found in the empty JSON string", ActivityLogEntry.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntry.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntry` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ShortOverview") != null && !jsonObj.get("ShortOverview").isJsonNull()) && !jsonObj.get("ShortOverview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ShortOverview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ShortOverview").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserPrimaryImageTag") != null && !jsonObj.get("UserPrimaryImageTag").isJsonNull()) && !jsonObj.get("UserPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserPrimaryImageTag").toString())); + } + // validate the optional field `Severity` + if (jsonObj.get("Severity") != null && !jsonObj.get("Severity").isJsonNull()) { + LogLevel.validateJsonElement(jsonObj.get("Severity")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntry.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntry' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntry.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntry value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntry read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntry given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntry + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntry + */ + public static ActivityLogEntry fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntry.class); + } + + /** + * Convert an instance of ActivityLogEntry to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java new file mode 100644 index 0000000000000..918c92d65ee50 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ActivityLogEntryQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ActivityLogEntry; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ActivityLogEntryQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ActivityLogEntryQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public ActivityLogEntryQueryResult() { + } + + public ActivityLogEntryQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public ActivityLogEntryQueryResult addItemsItem(ActivityLogEntry itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public ActivityLogEntryQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public ActivityLogEntryQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivityLogEntryQueryResult activityLogEntryQueryResult = (ActivityLogEntryQueryResult) o; + return Objects.equals(this.items, activityLogEntryQueryResult.items) && + Objects.equals(this.totalRecordCount, activityLogEntryQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, activityLogEntryQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivityLogEntryQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ActivityLogEntryQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ActivityLogEntryQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ActivityLogEntryQueryResult is not found in the empty JSON string", ActivityLogEntryQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ActivityLogEntryQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ActivityLogEntryQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + ActivityLogEntry.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ActivityLogEntryQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ActivityLogEntryQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ActivityLogEntryQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ActivityLogEntryQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ActivityLogEntryQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ActivityLogEntryQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ActivityLogEntryQueryResult + * @throws IOException if the JSON string is invalid with respect to ActivityLogEntryQueryResult + */ + public static ActivityLogEntryQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ActivityLogEntryQueryResult.class); + } + + /** + * Convert an instance of ActivityLogEntryQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java new file mode 100644 index 0000000000000..c3b0d0bdbdee5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AddVirtualFolderDto.java @@ -0,0 +1,220 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Add virtual folder dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AddVirtualFolderDto { + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public AddVirtualFolderDto() { + } + + public AddVirtualFolderDto libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Gets or sets library options. + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddVirtualFolderDto addVirtualFolderDto = (AddVirtualFolderDto) o; + return Objects.equals(this.libraryOptions, addVirtualFolderDto.libraryOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(libraryOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddVirtualFolderDto {\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LibraryOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddVirtualFolderDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AddVirtualFolderDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AddVirtualFolderDto is not found in the empty JSON string", AddVirtualFolderDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AddVirtualFolderDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddVirtualFolderDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddVirtualFolderDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddVirtualFolderDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AddVirtualFolderDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddVirtualFolderDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AddVirtualFolderDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AddVirtualFolderDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddVirtualFolderDto + * @throws IOException if the JSON string is invalid with respect to AddVirtualFolderDto + */ + public static AddVirtualFolderDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddVirtualFolderDto.class); + } + + /** + * Convert an instance of AddVirtualFolderDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AdminNotificationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AdminNotificationDto.java new file mode 100644 index 0000000000000..93817bd74f87e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AdminNotificationDto.java @@ -0,0 +1,310 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.NotificationLevel; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The admin notification dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AdminNotificationDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_NOTIFICATION_LEVEL = "NotificationLevel"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_LEVEL) + @javax.annotation.Nullable + private NotificationLevel notificationLevel; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public AdminNotificationDto() { + } + + public AdminNotificationDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the notification name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public AdminNotificationDto description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the notification description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public AdminNotificationDto notificationLevel(@javax.annotation.Nullable NotificationLevel notificationLevel) { + this.notificationLevel = notificationLevel; + return this; + } + + /** + * Gets or sets the notification level. + * @return notificationLevel + */ + @javax.annotation.Nullable + public NotificationLevel getNotificationLevel() { + return notificationLevel; + } + + public void setNotificationLevel(@javax.annotation.Nullable NotificationLevel notificationLevel) { + this.notificationLevel = notificationLevel; + } + + + public AdminNotificationDto url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the notification url. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AdminNotificationDto adminNotificationDto = (AdminNotificationDto) o; + return Objects.equals(this.name, adminNotificationDto.name) && + Objects.equals(this.description, adminNotificationDto.description) && + Objects.equals(this.notificationLevel, adminNotificationDto.notificationLevel) && + Objects.equals(this.url, adminNotificationDto.url); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, notificationLevel, url); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AdminNotificationDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" notificationLevel: ").append(toIndentedString(notificationLevel)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Description"); + openapiFields.add("NotificationLevel"); + openapiFields.add("Url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AdminNotificationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AdminNotificationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AdminNotificationDto is not found in the empty JSON string", AdminNotificationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AdminNotificationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AdminNotificationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + // validate the optional field `NotificationLevel` + if (jsonObj.get("NotificationLevel") != null && !jsonObj.get("NotificationLevel").isJsonNull()) { + NotificationLevel.validateJsonElement(jsonObj.get("NotificationLevel")); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AdminNotificationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AdminNotificationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AdminNotificationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AdminNotificationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AdminNotificationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AdminNotificationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of AdminNotificationDto + * @throws IOException if the JSON string is invalid with respect to AdminNotificationDto + */ + public static AdminNotificationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AdminNotificationDto.class); + } + + /** + * Convert an instance of AdminNotificationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfo.java new file mode 100644 index 0000000000000..69f7e3ad36cd9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfo.java @@ -0,0 +1,637 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.SongInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AlbumInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AlbumInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ARTIST_PROVIDER_IDS = "ArtistProviderIds"; + @SerializedName(SERIALIZED_NAME_ARTIST_PROVIDER_IDS) + @javax.annotation.Nullable + private Map artistProviderIds = new HashMap<>(); + + public static final String SERIALIZED_NAME_SONG_INFOS = "SongInfos"; + @SerializedName(SERIALIZED_NAME_SONG_INFOS) + @javax.annotation.Nullable + private List songInfos = new ArrayList<>(); + + public AlbumInfo() { + } + + public AlbumInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public AlbumInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public AlbumInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public AlbumInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public AlbumInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public AlbumInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public AlbumInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public AlbumInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public AlbumInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public AlbumInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public AlbumInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public AlbumInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public AlbumInfo albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public AlbumInfo addAlbumArtistsItem(String albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public AlbumInfo artistProviderIds(@javax.annotation.Nullable Map artistProviderIds) { + this.artistProviderIds = artistProviderIds; + return this; + } + + public AlbumInfo putArtistProviderIdsItem(String key, String artistProviderIdsItem) { + if (this.artistProviderIds == null) { + this.artistProviderIds = new HashMap<>(); + } + this.artistProviderIds.put(key, artistProviderIdsItem); + return this; + } + + /** + * Gets or sets the artist provider ids. + * @return artistProviderIds + */ + @javax.annotation.Nullable + public Map getArtistProviderIds() { + return artistProviderIds; + } + + public void setArtistProviderIds(@javax.annotation.Nullable Map artistProviderIds) { + this.artistProviderIds = artistProviderIds; + } + + + public AlbumInfo songInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + return this; + } + + public AlbumInfo addSongInfosItem(SongInfo songInfosItem) { + if (this.songInfos == null) { + this.songInfos = new ArrayList<>(); + } + this.songInfos.add(songInfosItem); + return this; + } + + /** + * Get songInfos + * @return songInfos + */ + @javax.annotation.Nullable + public List getSongInfos() { + return songInfos; + } + + public void setSongInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlbumInfo albumInfo = (AlbumInfo) o; + return Objects.equals(this.name, albumInfo.name) && + Objects.equals(this.originalTitle, albumInfo.originalTitle) && + Objects.equals(this.path, albumInfo.path) && + Objects.equals(this.metadataLanguage, albumInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, albumInfo.metadataCountryCode) && + Objects.equals(this.providerIds, albumInfo.providerIds) && + Objects.equals(this.year, albumInfo.year) && + Objects.equals(this.indexNumber, albumInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, albumInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, albumInfo.premiereDate) && + Objects.equals(this.isAutomated, albumInfo.isAutomated) && + Objects.equals(this.albumArtists, albumInfo.albumArtists) && + Objects.equals(this.artistProviderIds, albumInfo.artistProviderIds) && + Objects.equals(this.songInfos, albumInfo.songInfos); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, albumArtists, artistProviderIds, songInfos); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlbumInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" artistProviderIds: ").append(toIndentedString(artistProviderIds)).append("\n"); + sb.append(" songInfos: ").append(toIndentedString(songInfos)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("AlbumArtists"); + openapiFields.add("ArtistProviderIds"); + openapiFields.add("SongInfos"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlbumInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlbumInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlbumInfo is not found in the empty JSON string", AlbumInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlbumInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlbumInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull() && !jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + if (jsonObj.get("SongInfos") != null && !jsonObj.get("SongInfos").isJsonNull()) { + JsonArray jsonArraysongInfos = jsonObj.getAsJsonArray("SongInfos"); + if (jsonArraysongInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("SongInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SongInfos` to be an array in the JSON string but got `%s`", jsonObj.get("SongInfos").toString())); + } + + // validate the optional field `SongInfos` (array) + for (int i = 0; i < jsonArraysongInfos.size(); i++) { + SongInfo.validateJsonElement(jsonArraysongInfos.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlbumInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlbumInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlbumInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlbumInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlbumInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlbumInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlbumInfo + * @throws IOException if the JSON string is invalid with respect to AlbumInfo + */ + public static AlbumInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlbumInfo.class); + } + + /** + * Convert an instance of AlbumInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..26c778e4ca73b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AlbumInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.AlbumInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AlbumInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AlbumInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private AlbumInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public AlbumInfoRemoteSearchQuery() { + } + + public AlbumInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable AlbumInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public AlbumInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable AlbumInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public AlbumInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public AlbumInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public AlbumInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlbumInfoRemoteSearchQuery albumInfoRemoteSearchQuery = (AlbumInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, albumInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, albumInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, albumInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, albumInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlbumInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlbumInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlbumInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlbumInfoRemoteSearchQuery is not found in the empty JSON string", AlbumInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlbumInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlbumInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + AlbumInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlbumInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlbumInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlbumInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlbumInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlbumInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlbumInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlbumInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to AlbumInfoRemoteSearchQuery + */ + public static AlbumInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlbumInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of AlbumInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java new file mode 100644 index 0000000000000..8a99f8b6cc5e7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AllThemeMediaResult.java @@ -0,0 +1,282 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ThemeMediaResult; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AllThemeMediaResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AllThemeMediaResult { + public static final String SERIALIZED_NAME_THEME_VIDEOS_RESULT = "ThemeVideosResult"; + @SerializedName(SERIALIZED_NAME_THEME_VIDEOS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult themeVideosResult; + + public static final String SERIALIZED_NAME_THEME_SONGS_RESULT = "ThemeSongsResult"; + @SerializedName(SERIALIZED_NAME_THEME_SONGS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult themeSongsResult; + + public static final String SERIALIZED_NAME_SOUNDTRACK_SONGS_RESULT = "SoundtrackSongsResult"; + @SerializedName(SERIALIZED_NAME_SOUNDTRACK_SONGS_RESULT) + @javax.annotation.Nullable + private ThemeMediaResult soundtrackSongsResult; + + public AllThemeMediaResult() { + } + + public AllThemeMediaResult themeVideosResult(@javax.annotation.Nullable ThemeMediaResult themeVideosResult) { + this.themeVideosResult = themeVideosResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return themeVideosResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getThemeVideosResult() { + return themeVideosResult; + } + + public void setThemeVideosResult(@javax.annotation.Nullable ThemeMediaResult themeVideosResult) { + this.themeVideosResult = themeVideosResult; + } + + + public AllThemeMediaResult themeSongsResult(@javax.annotation.Nullable ThemeMediaResult themeSongsResult) { + this.themeSongsResult = themeSongsResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return themeSongsResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getThemeSongsResult() { + return themeSongsResult; + } + + public void setThemeSongsResult(@javax.annotation.Nullable ThemeMediaResult themeSongsResult) { + this.themeSongsResult = themeSongsResult; + } + + + public AllThemeMediaResult soundtrackSongsResult(@javax.annotation.Nullable ThemeMediaResult soundtrackSongsResult) { + this.soundtrackSongsResult = soundtrackSongsResult; + return this; + } + + /** + * Class ThemeMediaResult. + * @return soundtrackSongsResult + */ + @javax.annotation.Nullable + public ThemeMediaResult getSoundtrackSongsResult() { + return soundtrackSongsResult; + } + + public void setSoundtrackSongsResult(@javax.annotation.Nullable ThemeMediaResult soundtrackSongsResult) { + this.soundtrackSongsResult = soundtrackSongsResult; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AllThemeMediaResult allThemeMediaResult = (AllThemeMediaResult) o; + return Objects.equals(this.themeVideosResult, allThemeMediaResult.themeVideosResult) && + Objects.equals(this.themeSongsResult, allThemeMediaResult.themeSongsResult) && + Objects.equals(this.soundtrackSongsResult, allThemeMediaResult.soundtrackSongsResult); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(themeVideosResult, themeSongsResult, soundtrackSongsResult); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AllThemeMediaResult {\n"); + sb.append(" themeVideosResult: ").append(toIndentedString(themeVideosResult)).append("\n"); + sb.append(" themeSongsResult: ").append(toIndentedString(themeSongsResult)).append("\n"); + sb.append(" soundtrackSongsResult: ").append(toIndentedString(soundtrackSongsResult)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ThemeVideosResult"); + openapiFields.add("ThemeSongsResult"); + openapiFields.add("SoundtrackSongsResult"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AllThemeMediaResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AllThemeMediaResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AllThemeMediaResult is not found in the empty JSON string", AllThemeMediaResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AllThemeMediaResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AllThemeMediaResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ThemeVideosResult` + if (jsonObj.get("ThemeVideosResult") != null && !jsonObj.get("ThemeVideosResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("ThemeVideosResult")); + } + // validate the optional field `ThemeSongsResult` + if (jsonObj.get("ThemeSongsResult") != null && !jsonObj.get("ThemeSongsResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("ThemeSongsResult")); + } + // validate the optional field `SoundtrackSongsResult` + if (jsonObj.get("SoundtrackSongsResult") != null && !jsonObj.get("SoundtrackSongsResult").isJsonNull()) { + ThemeMediaResult.validateJsonElement(jsonObj.get("SoundtrackSongsResult")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AllThemeMediaResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AllThemeMediaResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AllThemeMediaResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AllThemeMediaResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AllThemeMediaResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AllThemeMediaResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AllThemeMediaResult + * @throws IOException if the JSON string is invalid with respect to AllThemeMediaResult + */ + public static AllThemeMediaResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AllThemeMediaResult.class); + } + + /** + * Convert an instance of AllThemeMediaResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Architecture.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Architecture.java new file mode 100644 index 0000000000000..8fca436afe0ea --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Architecture.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets Architecture + */ +@JsonAdapter(Architecture.Adapter.class) +public enum Architecture { + + X86("X86"), + + X64("X64"), + + ARM("Arm"), + + ARM64("Arm64"), + + WASM("Wasm"), + + S390X("S390x"); + + private String value; + + Architecture(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Architecture fromValue(String value) { + for (Architecture b : Architecture.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Architecture enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Architecture read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return Architecture.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + Architecture.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfo.java new file mode 100644 index 0000000000000..1589501f91f03 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfo.java @@ -0,0 +1,563 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.SongInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ArtistInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ArtistInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_SONG_INFOS = "SongInfos"; + @SerializedName(SERIALIZED_NAME_SONG_INFOS) + @javax.annotation.Nullable + private List songInfos = new ArrayList<>(); + + public ArtistInfo() { + } + + public ArtistInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ArtistInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public ArtistInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ArtistInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public ArtistInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public ArtistInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public ArtistInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public ArtistInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public ArtistInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public ArtistInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public ArtistInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public ArtistInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public ArtistInfo songInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + return this; + } + + public ArtistInfo addSongInfosItem(SongInfo songInfosItem) { + if (this.songInfos == null) { + this.songInfos = new ArrayList<>(); + } + this.songInfos.add(songInfosItem); + return this; + } + + /** + * Get songInfos + * @return songInfos + */ + @javax.annotation.Nullable + public List getSongInfos() { + return songInfos; + } + + public void setSongInfos(@javax.annotation.Nullable List songInfos) { + this.songInfos = songInfos; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArtistInfo artistInfo = (ArtistInfo) o; + return Objects.equals(this.name, artistInfo.name) && + Objects.equals(this.originalTitle, artistInfo.originalTitle) && + Objects.equals(this.path, artistInfo.path) && + Objects.equals(this.metadataLanguage, artistInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, artistInfo.metadataCountryCode) && + Objects.equals(this.providerIds, artistInfo.providerIds) && + Objects.equals(this.year, artistInfo.year) && + Objects.equals(this.indexNumber, artistInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, artistInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, artistInfo.premiereDate) && + Objects.equals(this.isAutomated, artistInfo.isAutomated) && + Objects.equals(this.songInfos, artistInfo.songInfos); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, songInfos); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArtistInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" songInfos: ").append(toIndentedString(songInfos)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("SongInfos"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ArtistInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ArtistInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ArtistInfo is not found in the empty JSON string", ArtistInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ArtistInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ArtistInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if (jsonObj.get("SongInfos") != null && !jsonObj.get("SongInfos").isJsonNull()) { + JsonArray jsonArraysongInfos = jsonObj.getAsJsonArray("SongInfos"); + if (jsonArraysongInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("SongInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SongInfos` to be an array in the JSON string but got `%s`", jsonObj.get("SongInfos").toString())); + } + + // validate the optional field `SongInfos` (array) + for (int i = 0; i < jsonArraysongInfos.size(); i++) { + SongInfo.validateJsonElement(jsonArraysongInfos.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ArtistInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ArtistInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ArtistInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ArtistInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ArtistInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ArtistInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ArtistInfo + * @throws IOException if the JSON string is invalid with respect to ArtistInfo + */ + public static ArtistInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ArtistInfo.class); + } + + /** + * Convert an instance of ArtistInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..d0a078958e90c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ArtistInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.ArtistInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ArtistInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ArtistInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private ArtistInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public ArtistInfoRemoteSearchQuery() { + } + + public ArtistInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable ArtistInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public ArtistInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable ArtistInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public ArtistInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public ArtistInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public ArtistInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArtistInfoRemoteSearchQuery artistInfoRemoteSearchQuery = (ArtistInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, artistInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, artistInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, artistInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, artistInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArtistInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ArtistInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ArtistInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ArtistInfoRemoteSearchQuery is not found in the empty JSON string", ArtistInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ArtistInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ArtistInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + ArtistInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ArtistInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ArtistInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ArtistInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ArtistInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ArtistInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ArtistInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of ArtistInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to ArtistInfoRemoteSearchQuery + */ + public static ArtistInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ArtistInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of ArtistInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java new file mode 100644 index 0000000000000..536d15e37ece7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticateUserByName.java @@ -0,0 +1,283 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The authenticate user by name request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticateUserByName { + public static final String SERIALIZED_NAME_USERNAME = "Username"; + @SerializedName(SERIALIZED_NAME_USERNAME) + @javax.annotation.Nullable + private String username; + + public static final String SERIALIZED_NAME_PW = "Pw"; + @SerializedName(SERIALIZED_NAME_PW) + @javax.annotation.Nullable + private String pw; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @Deprecated + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public AuthenticateUserByName() { + } + + public AuthenticateUserByName username(@javax.annotation.Nullable String username) { + this.username = username; + return this; + } + + /** + * Gets or sets the username. + * @return username + */ + @javax.annotation.Nullable + public String getUsername() { + return username; + } + + public void setUsername(@javax.annotation.Nullable String username) { + this.username = username; + } + + + public AuthenticateUserByName pw(@javax.annotation.Nullable String pw) { + this.pw = pw; + return this; + } + + /** + * Gets or sets the plain text password. + * @return pw + */ + @javax.annotation.Nullable + public String getPw() { + return pw; + } + + public void setPw(@javax.annotation.Nullable String pw) { + this.pw = pw; + } + + + @Deprecated + public AuthenticateUserByName password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Gets or sets the sha1-hashed password. + * @return password + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + @Deprecated + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticateUserByName authenticateUserByName = (AuthenticateUserByName) o; + return Objects.equals(this.username, authenticateUserByName.username) && + Objects.equals(this.pw, authenticateUserByName.pw) && + Objects.equals(this.password, authenticateUserByName.password); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(username, pw, password); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticateUserByName {\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" pw: ").append(toIndentedString(pw)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Username"); + openapiFields.add("Pw"); + openapiFields.add("Password"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticateUserByName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticateUserByName.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticateUserByName is not found in the empty JSON string", AuthenticateUserByName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticateUserByName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticateUserByName` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Username") != null && !jsonObj.get("Username").isJsonNull()) && !jsonObj.get("Username").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Username` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Username").toString())); + } + if ((jsonObj.get("Pw") != null && !jsonObj.get("Pw").isJsonNull()) && !jsonObj.get("Pw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Pw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Pw").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticateUserByName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticateUserByName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticateUserByName.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticateUserByName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticateUserByName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticateUserByName given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticateUserByName + * @throws IOException if the JSON string is invalid with respect to AuthenticateUserByName + */ + public static AuthenticateUserByName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticateUserByName.class); + } + + /** + * Convert an instance of AuthenticateUserByName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfo.java new file mode 100644 index 0000000000000..d39edd952e515 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfo.java @@ -0,0 +1,535 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AuthenticationInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Long id; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_IS_ACTIVE = "IsActive"; + @SerializedName(SERIALIZED_NAME_IS_ACTIVE) + @javax.annotation.Nullable + private Boolean isActive; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_REVOKED = "DateRevoked"; + @SerializedName(SERIALIZED_NAME_DATE_REVOKED) + @javax.annotation.Nullable + private OffsetDateTime dateRevoked; + + public static final String SERIALIZED_NAME_DATE_LAST_ACTIVITY = "DateLastActivity"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_ACTIVITY) + @javax.annotation.Nullable + private OffsetDateTime dateLastActivity; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public AuthenticationInfo() { + } + + public AuthenticationInfo id(@javax.annotation.Nullable Long id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public Long getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Long id) { + this.id = id; + } + + + public AuthenticationInfo accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Gets or sets the access token. + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public AuthenticationInfo deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device identifier. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public AuthenticationInfo appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets or sets the name of the application. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public AuthenticationInfo appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public AuthenticationInfo deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets or sets the name of the device. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public AuthenticationInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public AuthenticationInfo isActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is active. + * @return isActive + */ + @javax.annotation.Nullable + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(@javax.annotation.Nullable Boolean isActive) { + this.isActive = isActive; + } + + + public AuthenticationInfo dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public AuthenticationInfo dateRevoked(@javax.annotation.Nullable OffsetDateTime dateRevoked) { + this.dateRevoked = dateRevoked; + return this; + } + + /** + * Gets or sets the date revoked. + * @return dateRevoked + */ + @javax.annotation.Nullable + public OffsetDateTime getDateRevoked() { + return dateRevoked; + } + + public void setDateRevoked(@javax.annotation.Nullable OffsetDateTime dateRevoked) { + this.dateRevoked = dateRevoked; + } + + + public AuthenticationInfo dateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + return this; + } + + /** + * Get dateLastActivity + * @return dateLastActivity + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastActivity() { + return dateLastActivity; + } + + public void setDateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + } + + + public AuthenticationInfo userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Get userName + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationInfo authenticationInfo = (AuthenticationInfo) o; + return Objects.equals(this.id, authenticationInfo.id) && + Objects.equals(this.accessToken, authenticationInfo.accessToken) && + Objects.equals(this.deviceId, authenticationInfo.deviceId) && + Objects.equals(this.appName, authenticationInfo.appName) && + Objects.equals(this.appVersion, authenticationInfo.appVersion) && + Objects.equals(this.deviceName, authenticationInfo.deviceName) && + Objects.equals(this.userId, authenticationInfo.userId) && + Objects.equals(this.isActive, authenticationInfo.isActive) && + Objects.equals(this.dateCreated, authenticationInfo.dateCreated) && + Objects.equals(this.dateRevoked, authenticationInfo.dateRevoked) && + Objects.equals(this.dateLastActivity, authenticationInfo.dateLastActivity) && + Objects.equals(this.userName, authenticationInfo.userName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, accessToken, deviceId, appName, appVersion, deviceName, userId, isActive, dateCreated, dateRevoked, dateLastActivity, userName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateRevoked: ").append(toIndentedString(dateRevoked)).append("\n"); + sb.append(" dateLastActivity: ").append(toIndentedString(dateLastActivity)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("AccessToken"); + openapiFields.add("DeviceId"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("DeviceName"); + openapiFields.add("UserId"); + openapiFields.add("IsActive"); + openapiFields.add("DateCreated"); + openapiFields.add("DateRevoked"); + openapiFields.add("DateLastActivity"); + openapiFields.add("UserName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationInfo is not found in the empty JSON string", AuthenticationInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationInfo + * @throws IOException if the JSON string is invalid with respect to AuthenticationInfo + */ + public static AuthenticationInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationInfo.class); + } + + /** + * Convert an instance of AuthenticationInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java new file mode 100644 index 0000000000000..4468d41b16ca3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationInfoQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.AuthenticationInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AuthenticationInfoQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationInfoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public AuthenticationInfoQueryResult() { + } + + public AuthenticationInfoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public AuthenticationInfoQueryResult addItemsItem(AuthenticationInfo itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public AuthenticationInfoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public AuthenticationInfoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationInfoQueryResult authenticationInfoQueryResult = (AuthenticationInfoQueryResult) o; + return Objects.equals(this.items, authenticationInfoQueryResult.items) && + Objects.equals(this.totalRecordCount, authenticationInfoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, authenticationInfoQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationInfoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationInfoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationInfoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationInfoQueryResult is not found in the empty JSON string", AuthenticationInfoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationInfoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationInfoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + AuthenticationInfo.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationInfoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationInfoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationInfoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationInfoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationInfoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationInfoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationInfoQueryResult + * @throws IOException if the JSON string is invalid with respect to AuthenticationInfoQueryResult + */ + public static AuthenticationInfoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationInfoQueryResult.class); + } + + /** + * Convert an instance of AuthenticationInfoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationResult.java new file mode 100644 index 0000000000000..4e263fed4392d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/AuthenticationResult.java @@ -0,0 +1,312 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SessionInfo; +import org.openapitools.client.model.UserDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * AuthenticationResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class AuthenticationResult { + public static final String SERIALIZED_NAME_USER = "User"; + @SerializedName(SERIALIZED_NAME_USER) + @javax.annotation.Nullable + private UserDto user; + + public static final String SERIALIZED_NAME_SESSION_INFO = "SessionInfo"; + @SerializedName(SERIALIZED_NAME_SESSION_INFO) + @javax.annotation.Nullable + private SessionInfo sessionInfo; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public AuthenticationResult() { + } + + public AuthenticationResult user(@javax.annotation.Nullable UserDto user) { + this.user = user; + return this; + } + + /** + * Class UserDto. + * @return user + */ + @javax.annotation.Nullable + public UserDto getUser() { + return user; + } + + public void setUser(@javax.annotation.Nullable UserDto user) { + this.user = user; + } + + + public AuthenticationResult sessionInfo(@javax.annotation.Nullable SessionInfo sessionInfo) { + this.sessionInfo = sessionInfo; + return this; + } + + /** + * Class SessionInfo. + * @return sessionInfo + */ + @javax.annotation.Nullable + public SessionInfo getSessionInfo() { + return sessionInfo; + } + + public void setSessionInfo(@javax.annotation.Nullable SessionInfo sessionInfo) { + this.sessionInfo = sessionInfo; + } + + + public AuthenticationResult accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Get accessToken + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public AuthenticationResult serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Get serverId + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticationResult authenticationResult = (AuthenticationResult) o; + return Objects.equals(this.user, authenticationResult.user) && + Objects.equals(this.sessionInfo, authenticationResult.sessionInfo) && + Objects.equals(this.accessToken, authenticationResult.accessToken) && + Objects.equals(this.serverId, authenticationResult.serverId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(user, sessionInfo, accessToken, serverId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticationResult {\n"); + sb.append(" user: ").append(toIndentedString(user)).append("\n"); + sb.append(" sessionInfo: ").append(toIndentedString(sessionInfo)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("User"); + openapiFields.add("SessionInfo"); + openapiFields.add("AccessToken"); + openapiFields.add("ServerId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AuthenticationResult is not found in the empty JSON string", AuthenticationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AuthenticationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `User` + if (jsonObj.get("User") != null && !jsonObj.get("User").isJsonNull()) { + UserDto.validateJsonElement(jsonObj.get("User")); + } + // validate the optional field `SessionInfo` + if (jsonObj.get("SessionInfo") != null && !jsonObj.get("SessionInfo").isJsonNull()) { + SessionInfo.validateJsonElement(jsonObj.get("SessionInfo")); + } + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AuthenticationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticationResult + * @throws IOException if the JSON string is invalid with respect to AuthenticationResult + */ + public static AuthenticationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticationResult.class); + } + + /** + * Convert an instance of AuthenticationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItem.java new file mode 100644 index 0000000000000..2a3296d676beb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItem.java @@ -0,0 +1,523 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.MediaUrl; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class BaseItem. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItem { + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_IS_H_D = "IsHD"; + @SerializedName(SERIALIZED_NAME_IS_H_D) + @javax.annotation.Nullable + private Boolean isHD; + + public static final String SERIALIZED_NAME_IS_SHORTCUT = "IsShortcut"; + @SerializedName(SERIALIZED_NAME_IS_SHORTCUT) + @javax.annotation.Nullable + private Boolean isShortcut; + + public static final String SERIALIZED_NAME_SHORTCUT_PATH = "ShortcutPath"; + @SerializedName(SERIALIZED_NAME_SHORTCUT_PATH) + @javax.annotation.Nullable + private String shortcutPath; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_EXTRA_IDS = "ExtraIds"; + @SerializedName(SERIALIZED_NAME_EXTRA_IDS) + @javax.annotation.Nullable + private List extraIds; + + public static final String SERIALIZED_NAME_DATE_LAST_SAVED = "DateLastSaved"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_SAVED) + @javax.annotation.Nullable + private OffsetDateTime dateLastSaved; + + public static final String SERIALIZED_NAME_REMOTE_TRAILERS = "RemoteTrailers"; + @SerializedName(SERIALIZED_NAME_REMOTE_TRAILERS) + @javax.annotation.Nullable + private List remoteTrailers; + + public static final String SERIALIZED_NAME_SUPPORTS_EXTERNAL_TRANSFER = "SupportsExternalTransfer"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_EXTERNAL_TRANSFER) + @javax.annotation.Nullable + private Boolean supportsExternalTransfer; + + public BaseItem() { + } + + public BaseItem( + Boolean isHD, + Boolean supportsExternalTransfer + ) { + this(); + this.isHD = isHD; + this.supportsExternalTransfer = supportsExternalTransfer; + } + + public BaseItem size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Get size + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public BaseItem container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + /** + * Get isHD + * @return isHD + */ + @javax.annotation.Nullable + public Boolean getIsHD() { + return isHD; + } + + + + public BaseItem isShortcut(@javax.annotation.Nullable Boolean isShortcut) { + this.isShortcut = isShortcut; + return this; + } + + /** + * Get isShortcut + * @return isShortcut + */ + @javax.annotation.Nullable + public Boolean getIsShortcut() { + return isShortcut; + } + + public void setIsShortcut(@javax.annotation.Nullable Boolean isShortcut) { + this.isShortcut = isShortcut; + } + + + public BaseItem shortcutPath(@javax.annotation.Nullable String shortcutPath) { + this.shortcutPath = shortcutPath; + return this; + } + + /** + * Get shortcutPath + * @return shortcutPath + */ + @javax.annotation.Nullable + public String getShortcutPath() { + return shortcutPath; + } + + public void setShortcutPath(@javax.annotation.Nullable String shortcutPath) { + this.shortcutPath = shortcutPath; + } + + + public BaseItem width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Get width + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public BaseItem height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Get height + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public BaseItem extraIds(@javax.annotation.Nullable List extraIds) { + this.extraIds = extraIds; + return this; + } + + public BaseItem addExtraIdsItem(UUID extraIdsItem) { + if (this.extraIds == null) { + this.extraIds = new ArrayList<>(); + } + this.extraIds.add(extraIdsItem); + return this; + } + + /** + * Get extraIds + * @return extraIds + */ + @javax.annotation.Nullable + public List getExtraIds() { + return extraIds; + } + + public void setExtraIds(@javax.annotation.Nullable List extraIds) { + this.extraIds = extraIds; + } + + + public BaseItem dateLastSaved(@javax.annotation.Nullable OffsetDateTime dateLastSaved) { + this.dateLastSaved = dateLastSaved; + return this; + } + + /** + * Get dateLastSaved + * @return dateLastSaved + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastSaved() { + return dateLastSaved; + } + + public void setDateLastSaved(@javax.annotation.Nullable OffsetDateTime dateLastSaved) { + this.dateLastSaved = dateLastSaved; + } + + + public BaseItem remoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + return this; + } + + public BaseItem addRemoteTrailersItem(MediaUrl remoteTrailersItem) { + if (this.remoteTrailers == null) { + this.remoteTrailers = new ArrayList<>(); + } + this.remoteTrailers.add(remoteTrailersItem); + return this; + } + + /** + * Gets or sets the remote trailers. + * @return remoteTrailers + */ + @javax.annotation.Nullable + public List getRemoteTrailers() { + return remoteTrailers; + } + + public void setRemoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + } + + + /** + * Get supportsExternalTransfer + * @return supportsExternalTransfer + */ + @javax.annotation.Nullable + public Boolean getSupportsExternalTransfer() { + return supportsExternalTransfer; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItem baseItem = (BaseItem) o; + return Objects.equals(this.size, baseItem.size) && + Objects.equals(this.container, baseItem.container) && + Objects.equals(this.isHD, baseItem.isHD) && + Objects.equals(this.isShortcut, baseItem.isShortcut) && + Objects.equals(this.shortcutPath, baseItem.shortcutPath) && + Objects.equals(this.width, baseItem.width) && + Objects.equals(this.height, baseItem.height) && + Objects.equals(this.extraIds, baseItem.extraIds) && + Objects.equals(this.dateLastSaved, baseItem.dateLastSaved) && + Objects.equals(this.remoteTrailers, baseItem.remoteTrailers) && + Objects.equals(this.supportsExternalTransfer, baseItem.supportsExternalTransfer); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(size, container, isHD, isShortcut, shortcutPath, width, height, extraIds, dateLastSaved, remoteTrailers, supportsExternalTransfer); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItem {\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" isHD: ").append(toIndentedString(isHD)).append("\n"); + sb.append(" isShortcut: ").append(toIndentedString(isShortcut)).append("\n"); + sb.append(" shortcutPath: ").append(toIndentedString(shortcutPath)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" extraIds: ").append(toIndentedString(extraIds)).append("\n"); + sb.append(" dateLastSaved: ").append(toIndentedString(dateLastSaved)).append("\n"); + sb.append(" remoteTrailers: ").append(toIndentedString(remoteTrailers)).append("\n"); + sb.append(" supportsExternalTransfer: ").append(toIndentedString(supportsExternalTransfer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Size"); + openapiFields.add("Container"); + openapiFields.add("IsHD"); + openapiFields.add("IsShortcut"); + openapiFields.add("ShortcutPath"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("ExtraIds"); + openapiFields.add("DateLastSaved"); + openapiFields.add("RemoteTrailers"); + openapiFields.add("SupportsExternalTransfer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItem is not found in the empty JSON string", BaseItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItem` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("ShortcutPath") != null && !jsonObj.get("ShortcutPath").isJsonNull()) && !jsonObj.get("ShortcutPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ShortcutPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ShortcutPath").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ExtraIds") != null && !jsonObj.get("ExtraIds").isJsonNull() && !jsonObj.get("ExtraIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ExtraIds` to be an array in the JSON string but got `%s`", jsonObj.get("ExtraIds").toString())); + } + if (jsonObj.get("RemoteTrailers") != null && !jsonObj.get("RemoteTrailers").isJsonNull()) { + JsonArray jsonArrayremoteTrailers = jsonObj.getAsJsonArray("RemoteTrailers"); + if (jsonArrayremoteTrailers != null) { + // ensure the json data is an array + if (!jsonObj.get("RemoteTrailers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteTrailers` to be an array in the JSON string but got `%s`", jsonObj.get("RemoteTrailers").toString())); + } + + // validate the optional field `RemoteTrailers` (array) + for (int i = 0; i < jsonArrayremoteTrailers.size(); i++) { + MediaUrl.validateJsonElement(jsonArrayremoteTrailers.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItem + * @throws IOException if the JSON string is invalid with respect to BaseItem + */ + public static BaseItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItem.class); + } + + /** + * Convert an instance of BaseItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDto.java new file mode 100644 index 0000000000000..fc92b02dc8b3f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDto.java @@ -0,0 +1,4866 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDtoImageBlurHashes; +import org.openapitools.client.model.BaseItemKind; +import org.openapitools.client.model.BaseItemPerson; +import org.openapitools.client.model.ChannelType; +import org.openapitools.client.model.ChapterInfo; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.client.model.ExternalUrl; +import org.openapitools.client.model.ImageOrientation; +import org.openapitools.client.model.IsoType; +import org.openapitools.client.model.LocationType; +import org.openapitools.client.model.MediaSourceInfo; +import org.openapitools.client.model.MediaStream; +import org.openapitools.client.model.MediaUrl; +import org.openapitools.client.model.MetadataField; +import org.openapitools.client.model.NameGuidPair; +import org.openapitools.client.model.PlayAccess; +import org.openapitools.client.model.ProgramAudio; +import org.openapitools.client.model.UserItemDataDto; +import org.openapitools.client.model.Video3DFormat; +import org.openapitools.client.model.VideoType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_ETAG = "Etag"; + @SerializedName(SERIALIZED_NAME_ETAG) + @javax.annotation.Nullable + private String etag; + + public static final String SERIALIZED_NAME_SOURCE_TYPE = "SourceType"; + @SerializedName(SERIALIZED_NAME_SOURCE_TYPE) + @javax.annotation.Nullable + private String sourceType; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_LAST_MEDIA_ADDED = "DateLastMediaAdded"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_MEDIA_ADDED) + @javax.annotation.Nullable + private OffsetDateTime dateLastMediaAdded; + + public static final String SERIALIZED_NAME_EXTRA_TYPE = "ExtraType"; + @SerializedName(SERIALIZED_NAME_EXTRA_TYPE) + @javax.annotation.Nullable + private String extraType; + + public static final String SERIALIZED_NAME_AIRS_BEFORE_SEASON_NUMBER = "AirsBeforeSeasonNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_BEFORE_SEASON_NUMBER) + @javax.annotation.Nullable + private Integer airsBeforeSeasonNumber; + + public static final String SERIALIZED_NAME_AIRS_AFTER_SEASON_NUMBER = "AirsAfterSeasonNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_AFTER_SEASON_NUMBER) + @javax.annotation.Nullable + private Integer airsAfterSeasonNumber; + + public static final String SERIALIZED_NAME_AIRS_BEFORE_EPISODE_NUMBER = "AirsBeforeEpisodeNumber"; + @SerializedName(SERIALIZED_NAME_AIRS_BEFORE_EPISODE_NUMBER) + @javax.annotation.Nullable + private Integer airsBeforeEpisodeNumber; + + public static final String SERIALIZED_NAME_CAN_DELETE = "CanDelete"; + @SerializedName(SERIALIZED_NAME_CAN_DELETE) + @javax.annotation.Nullable + private Boolean canDelete; + + public static final String SERIALIZED_NAME_CAN_DOWNLOAD = "CanDownload"; + @SerializedName(SERIALIZED_NAME_CAN_DOWNLOAD) + @javax.annotation.Nullable + private Boolean canDownload; + + public static final String SERIALIZED_NAME_HAS_SUBTITLES = "HasSubtitles"; + @SerializedName(SERIALIZED_NAME_HAS_SUBTITLES) + @javax.annotation.Nullable + private Boolean hasSubtitles; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_COUNTRY_CODE = "PreferredMetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String preferredMetadataCountryCode; + + public static final String SERIALIZED_NAME_SUPPORTS_SYNC = "SupportsSync"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_SYNC) + @javax.annotation.Nullable + private Boolean supportsSync; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SORT_NAME = "SortName"; + @SerializedName(SERIALIZED_NAME_SORT_NAME) + @javax.annotation.Nullable + private String sortName; + + public static final String SERIALIZED_NAME_FORCED_SORT_NAME = "ForcedSortName"; + @SerializedName(SERIALIZED_NAME_FORCED_SORT_NAME) + @javax.annotation.Nullable + private String forcedSortName; + + public static final String SERIALIZED_NAME_VIDEO3_D_FORMAT = "Video3DFormat"; + @SerializedName(SERIALIZED_NAME_VIDEO3_D_FORMAT) + @javax.annotation.Nullable + private Video3DFormat video3DFormat; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_EXTERNAL_URLS = "ExternalUrls"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_URLS) + @javax.annotation.Nullable + private List externalUrls; + + public static final String SERIALIZED_NAME_MEDIA_SOURCES = "MediaSources"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCES) + @javax.annotation.Nullable + private List mediaSources; + + public static final String SERIALIZED_NAME_CRITIC_RATING = "CriticRating"; + @SerializedName(SERIALIZED_NAME_CRITIC_RATING) + @javax.annotation.Nullable + private Float criticRating; + + public static final String SERIALIZED_NAME_PRODUCTION_LOCATIONS = "ProductionLocations"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_LOCATIONS) + @javax.annotation.Nullable + private List productionLocations; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_SOURCE_DISPLAY = "EnableMediaSourceDisplay"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_SOURCE_DISPLAY) + @javax.annotation.Nullable + private Boolean enableMediaSourceDisplay; + + public static final String SERIALIZED_NAME_OFFICIAL_RATING = "OfficialRating"; + @SerializedName(SERIALIZED_NAME_OFFICIAL_RATING) + @javax.annotation.Nullable + private String officialRating; + + public static final String SERIALIZED_NAME_CUSTOM_RATING = "CustomRating"; + @SerializedName(SERIALIZED_NAME_CUSTOM_RATING) + @javax.annotation.Nullable + private String customRating; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_TAGLINES = "Taglines"; + @SerializedName(SERIALIZED_NAME_TAGLINES) + @javax.annotation.Nullable + private List taglines; + + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Float communityRating; + + public static final String SERIALIZED_NAME_CUMULATIVE_RUN_TIME_TICKS = "CumulativeRunTimeTicks"; + @SerializedName(SERIALIZED_NAME_CUMULATIVE_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long cumulativeRunTimeTicks; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_PLAY_ACCESS = "PlayAccess"; + @SerializedName(SERIALIZED_NAME_PLAY_ACCESS) + @javax.annotation.Nullable + private PlayAccess playAccess; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_IS_PLACE_HOLDER = "IsPlaceHolder"; + @SerializedName(SERIALIZED_NAME_IS_PLACE_HOLDER) + @javax.annotation.Nullable + private Boolean isPlaceHolder; + + public static final String SERIALIZED_NAME_NUMBER = "Number"; + @SerializedName(SERIALIZED_NAME_NUMBER) + @javax.annotation.Nullable + private String number; + + public static final String SERIALIZED_NAME_CHANNEL_NUMBER = "ChannelNumber"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NUMBER) + @javax.annotation.Nullable + private String channelNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER_END = "IndexNumberEnd"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER_END) + @javax.annotation.Nullable + private Integer indexNumberEnd; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_REMOTE_TRAILERS = "RemoteTrailers"; + @SerializedName(SERIALIZED_NAME_REMOTE_TRAILERS) + @javax.annotation.Nullable + private List remoteTrailers; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_IS_H_D = "IsHD"; + @SerializedName(SERIALIZED_NAME_IS_H_D) + @javax.annotation.Nullable + private Boolean isHD; + + public static final String SERIALIZED_NAME_IS_FOLDER = "IsFolder"; + @SerializedName(SERIALIZED_NAME_IS_FOLDER) + @javax.annotation.Nullable + private Boolean isFolder; + + public static final String SERIALIZED_NAME_PARENT_ID = "ParentId"; + @SerializedName(SERIALIZED_NAME_PARENT_ID) + @javax.annotation.Nullable + private UUID parentId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private BaseItemKind type; + + public static final String SERIALIZED_NAME_PEOPLE = "People"; + @SerializedName(SERIALIZED_NAME_PEOPLE) + @javax.annotation.Nullable + private List people; + + public static final String SERIALIZED_NAME_STUDIOS = "Studios"; + @SerializedName(SERIALIZED_NAME_STUDIOS) + @javax.annotation.Nullable + private List studios; + + public static final String SERIALIZED_NAME_GENRE_ITEMS = "GenreItems"; + @SerializedName(SERIALIZED_NAME_GENRE_ITEMS) + @javax.annotation.Nullable + private List genreItems; + + public static final String SERIALIZED_NAME_PARENT_LOGO_ITEM_ID = "ParentLogoItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_LOGO_ITEM_ID) + @javax.annotation.Nullable + private UUID parentLogoItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private UUID parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_LOCAL_TRAILER_COUNT = "LocalTrailerCount"; + @SerializedName(SERIALIZED_NAME_LOCAL_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer localTrailerCount; + + public static final String SERIALIZED_NAME_USER_DATA = "UserData"; + @SerializedName(SERIALIZED_NAME_USER_DATA) + @javax.annotation.Nullable + private UserItemDataDto userData; + + public static final String SERIALIZED_NAME_RECURSIVE_ITEM_COUNT = "RecursiveItemCount"; + @SerializedName(SERIALIZED_NAME_RECURSIVE_ITEM_COUNT) + @javax.annotation.Nullable + private Integer recursiveItemCount; + + public static final String SERIALIZED_NAME_CHILD_COUNT = "ChildCount"; + @SerializedName(SERIALIZED_NAME_CHILD_COUNT) + @javax.annotation.Nullable + private Integer childCount; + + public static final String SERIALIZED_NAME_SERIES_NAME = "SeriesName"; + @SerializedName(SERIALIZED_NAME_SERIES_NAME) + @javax.annotation.Nullable + private String seriesName; + + public static final String SERIALIZED_NAME_SERIES_ID = "SeriesId"; + @SerializedName(SERIALIZED_NAME_SERIES_ID) + @javax.annotation.Nullable + private UUID seriesId; + + public static final String SERIALIZED_NAME_SEASON_ID = "SeasonId"; + @SerializedName(SERIALIZED_NAME_SEASON_ID) + @javax.annotation.Nullable + private UUID seasonId; + + public static final String SERIALIZED_NAME_SPECIAL_FEATURE_COUNT = "SpecialFeatureCount"; + @SerializedName(SERIALIZED_NAME_SPECIAL_FEATURE_COUNT) + @javax.annotation.Nullable + private Integer specialFeatureCount; + + public static final String SERIALIZED_NAME_DISPLAY_PREFERENCES_ID = "DisplayPreferencesId"; + @SerializedName(SERIALIZED_NAME_DISPLAY_PREFERENCES_ID) + @javax.annotation.Nullable + private String displayPreferencesId; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_AIR_TIME = "AirTime"; + @SerializedName(SERIALIZED_NAME_AIR_TIME) + @javax.annotation.Nullable + private String airTime; + + public static final String SERIALIZED_NAME_AIR_DAYS = "AirDays"; + @SerializedName(SERIALIZED_NAME_AIR_DAYS) + @javax.annotation.Nullable + private List airDays; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public static final String SERIALIZED_NAME_ARTIST_ITEMS = "ArtistItems"; + @SerializedName(SERIALIZED_NAME_ARTIST_ITEMS) + @javax.annotation.Nullable + private List artistItems; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_COLLECTION_TYPE = "CollectionType"; + @SerializedName(SERIALIZED_NAME_COLLECTION_TYPE) + @javax.annotation.Nullable + private String collectionType; + + public static final String SERIALIZED_NAME_DISPLAY_ORDER = "DisplayOrder"; + @SerializedName(SERIALIZED_NAME_DISPLAY_ORDER) + @javax.annotation.Nullable + private String displayOrder; + + public static final String SERIALIZED_NAME_ALBUM_ID = "AlbumId"; + @SerializedName(SERIALIZED_NAME_ALBUM_ID) + @javax.annotation.Nullable + private UUID albumId; + + public static final String SERIALIZED_NAME_ALBUM_PRIMARY_IMAGE_TAG = "AlbumPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_ALBUM_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String albumPrimaryImageTag; + + public static final String SERIALIZED_NAME_SERIES_PRIMARY_IMAGE_TAG = "SeriesPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_SERIES_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String seriesPrimaryImageTag; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private String albumArtist; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists; + + public static final String SERIALIZED_NAME_SEASON_NAME = "SeasonName"; + @SerializedName(SERIALIZED_NAME_SEASON_NAME) + @javax.annotation.Nullable + private String seasonName; + + public static final String SERIALIZED_NAME_MEDIA_STREAMS = "MediaStreams"; + @SerializedName(SERIALIZED_NAME_MEDIA_STREAMS) + @javax.annotation.Nullable + private List mediaStreams; + + public static final String SERIALIZED_NAME_VIDEO_TYPE = "VideoType"; + @SerializedName(SERIALIZED_NAME_VIDEO_TYPE) + @javax.annotation.Nullable + private VideoType videoType; + + public static final String SERIALIZED_NAME_PART_COUNT = "PartCount"; + @SerializedName(SERIALIZED_NAME_PART_COUNT) + @javax.annotation.Nullable + private Integer partCount; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_COUNT = "MediaSourceCount"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_COUNT) + @javax.annotation.Nullable + private Integer mediaSourceCount; + + public static final String SERIALIZED_NAME_IMAGE_TAGS = "ImageTags"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAGS) + @javax.annotation.Nullable + private Map imageTags; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_TAGS = "BackdropImageTags"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List backdropImageTags; + + public static final String SERIALIZED_NAME_SCREENSHOT_IMAGE_TAGS = "ScreenshotImageTags"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT_IMAGE_TAGS) + @javax.annotation.Nullable + private List screenshotImageTags; + + public static final String SERIALIZED_NAME_PARENT_LOGO_IMAGE_TAG = "ParentLogoImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_LOGO_IMAGE_TAG) + @javax.annotation.Nullable + private String parentLogoImageTag; + + public static final String SERIALIZED_NAME_PARENT_ART_ITEM_ID = "ParentArtItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_ART_ITEM_ID) + @javax.annotation.Nullable + private UUID parentArtItemId; + + public static final String SERIALIZED_NAME_PARENT_ART_IMAGE_TAG = "ParentArtImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_ART_IMAGE_TAG) + @javax.annotation.Nullable + private String parentArtImageTag; + + public static final String SERIALIZED_NAME_SERIES_THUMB_IMAGE_TAG = "SeriesThumbImageTag"; + @SerializedName(SERIALIZED_NAME_SERIES_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String seriesThumbImageTag; + + public static final String SERIALIZED_NAME_IMAGE_BLUR_HASHES = "ImageBlurHashes"; + @SerializedName(SERIALIZED_NAME_IMAGE_BLUR_HASHES) + @javax.annotation.Nullable + private BaseItemDtoImageBlurHashes imageBlurHashes; + + public static final String SERIALIZED_NAME_SERIES_STUDIO = "SeriesStudio"; + @SerializedName(SERIALIZED_NAME_SERIES_STUDIO) + @javax.annotation.Nullable + private String seriesStudio; + + public static final String SERIALIZED_NAME_PARENT_THUMB_ITEM_ID = "ParentThumbItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_ITEM_ID) + @javax.annotation.Nullable + private UUID parentThumbItemId; + + public static final String SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG = "ParentThumbImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String parentThumbImageTag; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID = "ParentPrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String parentPrimaryImageItemId; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG = "ParentPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String parentPrimaryImageTag; + + public static final String SERIALIZED_NAME_CHAPTERS = "Chapters"; + @SerializedName(SERIALIZED_NAME_CHAPTERS) + @javax.annotation.Nullable + private List chapters; + + public static final String SERIALIZED_NAME_LOCATION_TYPE = "LocationType"; + @SerializedName(SERIALIZED_NAME_LOCATION_TYPE) + @javax.annotation.Nullable + private LocationType locationType; + + public static final String SERIALIZED_NAME_ISO_TYPE = "IsoType"; + @SerializedName(SERIALIZED_NAME_ISO_TYPE) + @javax.annotation.Nullable + private IsoType isoType; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private String mediaType; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_LOCKED_FIELDS = "LockedFields"; + @SerializedName(SERIALIZED_NAME_LOCKED_FIELDS) + @javax.annotation.Nullable + private List lockedFields; + + public static final String SERIALIZED_NAME_TRAILER_COUNT = "TrailerCount"; + @SerializedName(SERIALIZED_NAME_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer trailerCount; + + public static final String SERIALIZED_NAME_MOVIE_COUNT = "MovieCount"; + @SerializedName(SERIALIZED_NAME_MOVIE_COUNT) + @javax.annotation.Nullable + private Integer movieCount; + + public static final String SERIALIZED_NAME_SERIES_COUNT = "SeriesCount"; + @SerializedName(SERIALIZED_NAME_SERIES_COUNT) + @javax.annotation.Nullable + private Integer seriesCount; + + public static final String SERIALIZED_NAME_PROGRAM_COUNT = "ProgramCount"; + @SerializedName(SERIALIZED_NAME_PROGRAM_COUNT) + @javax.annotation.Nullable + private Integer programCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_ALBUM_COUNT = "AlbumCount"; + @SerializedName(SERIALIZED_NAME_ALBUM_COUNT) + @javax.annotation.Nullable + private Integer albumCount; + + public static final String SERIALIZED_NAME_ARTIST_COUNT = "ArtistCount"; + @SerializedName(SERIALIZED_NAME_ARTIST_COUNT) + @javax.annotation.Nullable + private Integer artistCount; + + public static final String SERIALIZED_NAME_MUSIC_VIDEO_COUNT = "MusicVideoCount"; + @SerializedName(SERIALIZED_NAME_MUSIC_VIDEO_COUNT) + @javax.annotation.Nullable + private Integer musicVideoCount; + + public static final String SERIALIZED_NAME_LOCK_DATA = "LockData"; + @SerializedName(SERIALIZED_NAME_LOCK_DATA) + @javax.annotation.Nullable + private Boolean lockData; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_CAMERA_MAKE = "CameraMake"; + @SerializedName(SERIALIZED_NAME_CAMERA_MAKE) + @javax.annotation.Nullable + private String cameraMake; + + public static final String SERIALIZED_NAME_CAMERA_MODEL = "CameraModel"; + @SerializedName(SERIALIZED_NAME_CAMERA_MODEL) + @javax.annotation.Nullable + private String cameraModel; + + public static final String SERIALIZED_NAME_SOFTWARE = "Software"; + @SerializedName(SERIALIZED_NAME_SOFTWARE) + @javax.annotation.Nullable + private String software; + + public static final String SERIALIZED_NAME_EXPOSURE_TIME = "ExposureTime"; + @SerializedName(SERIALIZED_NAME_EXPOSURE_TIME) + @javax.annotation.Nullable + private Double exposureTime; + + public static final String SERIALIZED_NAME_FOCAL_LENGTH = "FocalLength"; + @SerializedName(SERIALIZED_NAME_FOCAL_LENGTH) + @javax.annotation.Nullable + private Double focalLength; + + public static final String SERIALIZED_NAME_IMAGE_ORIENTATION = "ImageOrientation"; + @SerializedName(SERIALIZED_NAME_IMAGE_ORIENTATION) + @javax.annotation.Nullable + private ImageOrientation imageOrientation; + + public static final String SERIALIZED_NAME_APERTURE = "Aperture"; + @SerializedName(SERIALIZED_NAME_APERTURE) + @javax.annotation.Nullable + private Double aperture; + + public static final String SERIALIZED_NAME_SHUTTER_SPEED = "ShutterSpeed"; + @SerializedName(SERIALIZED_NAME_SHUTTER_SPEED) + @javax.annotation.Nullable + private Double shutterSpeed; + + public static final String SERIALIZED_NAME_LATITUDE = "Latitude"; + @SerializedName(SERIALIZED_NAME_LATITUDE) + @javax.annotation.Nullable + private Double latitude; + + public static final String SERIALIZED_NAME_LONGITUDE = "Longitude"; + @SerializedName(SERIALIZED_NAME_LONGITUDE) + @javax.annotation.Nullable + private Double longitude; + + public static final String SERIALIZED_NAME_ALTITUDE = "Altitude"; + @SerializedName(SERIALIZED_NAME_ALTITUDE) + @javax.annotation.Nullable + private Double altitude; + + public static final String SERIALIZED_NAME_ISO_SPEED_RATING = "IsoSpeedRating"; + @SerializedName(SERIALIZED_NAME_ISO_SPEED_RATING) + @javax.annotation.Nullable + private Integer isoSpeedRating; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_COMPLETION_PERCENTAGE = "CompletionPercentage"; + @SerializedName(SERIALIZED_NAME_COMPLETION_PERCENTAGE) + @javax.annotation.Nullable + private Double completionPercentage; + + public static final String SERIALIZED_NAME_IS_REPEAT = "IsRepeat"; + @SerializedName(SERIALIZED_NAME_IS_REPEAT) + @javax.annotation.Nullable + private Boolean isRepeat; + + public static final String SERIALIZED_NAME_EPISODE_TITLE = "EpisodeTitle"; + @SerializedName(SERIALIZED_NAME_EPISODE_TITLE) + @javax.annotation.Nullable + private String episodeTitle; + + public static final String SERIALIZED_NAME_CHANNEL_TYPE = "ChannelType"; + @SerializedName(SERIALIZED_NAME_CHANNEL_TYPE) + @javax.annotation.Nullable + private ChannelType channelType; + + public static final String SERIALIZED_NAME_AUDIO = "Audio"; + @SerializedName(SERIALIZED_NAME_AUDIO) + @javax.annotation.Nullable + private ProgramAudio audio; + + public static final String SERIALIZED_NAME_IS_MOVIE = "IsMovie"; + @SerializedName(SERIALIZED_NAME_IS_MOVIE) + @javax.annotation.Nullable + private Boolean isMovie; + + public static final String SERIALIZED_NAME_IS_SPORTS = "IsSports"; + @SerializedName(SERIALIZED_NAME_IS_SPORTS) + @javax.annotation.Nullable + private Boolean isSports; + + public static final String SERIALIZED_NAME_IS_SERIES = "IsSeries"; + @SerializedName(SERIALIZED_NAME_IS_SERIES) + @javax.annotation.Nullable + private Boolean isSeries; + + public static final String SERIALIZED_NAME_IS_LIVE = "IsLive"; + @SerializedName(SERIALIZED_NAME_IS_LIVE) + @javax.annotation.Nullable + private Boolean isLive; + + public static final String SERIALIZED_NAME_IS_NEWS = "IsNews"; + @SerializedName(SERIALIZED_NAME_IS_NEWS) + @javax.annotation.Nullable + private Boolean isNews; + + public static final String SERIALIZED_NAME_IS_KIDS = "IsKids"; + @SerializedName(SERIALIZED_NAME_IS_KIDS) + @javax.annotation.Nullable + private Boolean isKids; + + public static final String SERIALIZED_NAME_IS_PREMIERE = "IsPremiere"; + @SerializedName(SERIALIZED_NAME_IS_PREMIERE) + @javax.annotation.Nullable + private Boolean isPremiere; + + public static final String SERIALIZED_NAME_TIMER_ID = "TimerId"; + @SerializedName(SERIALIZED_NAME_TIMER_ID) + @javax.annotation.Nullable + private String timerId; + + public static final String SERIALIZED_NAME_CURRENT_PROGRAM = "CurrentProgram"; + @SerializedName(SERIALIZED_NAME_CURRENT_PROGRAM) + @javax.annotation.Nullable + private BaseItemDto currentProgram; + + public BaseItemDto() { + } + + public BaseItemDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BaseItemDto originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Get originalTitle + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BaseItemDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public BaseItemDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public BaseItemDto etag(@javax.annotation.Nullable String etag) { + this.etag = etag; + return this; + } + + /** + * Gets or sets the etag. + * @return etag + */ + @javax.annotation.Nullable + public String getEtag() { + return etag; + } + + public void setEtag(@javax.annotation.Nullable String etag) { + this.etag = etag; + } + + + public BaseItemDto sourceType(@javax.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + return this; + } + + /** + * Gets or sets the type of the source. + * @return sourceType + */ + @javax.annotation.Nullable + public String getSourceType() { + return sourceType; + } + + public void setSourceType(@javax.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + } + + + public BaseItemDto playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public BaseItemDto dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public BaseItemDto dateLastMediaAdded(@javax.annotation.Nullable OffsetDateTime dateLastMediaAdded) { + this.dateLastMediaAdded = dateLastMediaAdded; + return this; + } + + /** + * Get dateLastMediaAdded + * @return dateLastMediaAdded + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastMediaAdded() { + return dateLastMediaAdded; + } + + public void setDateLastMediaAdded(@javax.annotation.Nullable OffsetDateTime dateLastMediaAdded) { + this.dateLastMediaAdded = dateLastMediaAdded; + } + + + public BaseItemDto extraType(@javax.annotation.Nullable String extraType) { + this.extraType = extraType; + return this; + } + + /** + * Get extraType + * @return extraType + */ + @javax.annotation.Nullable + public String getExtraType() { + return extraType; + } + + public void setExtraType(@javax.annotation.Nullable String extraType) { + this.extraType = extraType; + } + + + public BaseItemDto airsBeforeSeasonNumber(@javax.annotation.Nullable Integer airsBeforeSeasonNumber) { + this.airsBeforeSeasonNumber = airsBeforeSeasonNumber; + return this; + } + + /** + * Get airsBeforeSeasonNumber + * @return airsBeforeSeasonNumber + */ + @javax.annotation.Nullable + public Integer getAirsBeforeSeasonNumber() { + return airsBeforeSeasonNumber; + } + + public void setAirsBeforeSeasonNumber(@javax.annotation.Nullable Integer airsBeforeSeasonNumber) { + this.airsBeforeSeasonNumber = airsBeforeSeasonNumber; + } + + + public BaseItemDto airsAfterSeasonNumber(@javax.annotation.Nullable Integer airsAfterSeasonNumber) { + this.airsAfterSeasonNumber = airsAfterSeasonNumber; + return this; + } + + /** + * Get airsAfterSeasonNumber + * @return airsAfterSeasonNumber + */ + @javax.annotation.Nullable + public Integer getAirsAfterSeasonNumber() { + return airsAfterSeasonNumber; + } + + public void setAirsAfterSeasonNumber(@javax.annotation.Nullable Integer airsAfterSeasonNumber) { + this.airsAfterSeasonNumber = airsAfterSeasonNumber; + } + + + public BaseItemDto airsBeforeEpisodeNumber(@javax.annotation.Nullable Integer airsBeforeEpisodeNumber) { + this.airsBeforeEpisodeNumber = airsBeforeEpisodeNumber; + return this; + } + + /** + * Get airsBeforeEpisodeNumber + * @return airsBeforeEpisodeNumber + */ + @javax.annotation.Nullable + public Integer getAirsBeforeEpisodeNumber() { + return airsBeforeEpisodeNumber; + } + + public void setAirsBeforeEpisodeNumber(@javax.annotation.Nullable Integer airsBeforeEpisodeNumber) { + this.airsBeforeEpisodeNumber = airsBeforeEpisodeNumber; + } + + + public BaseItemDto canDelete(@javax.annotation.Nullable Boolean canDelete) { + this.canDelete = canDelete; + return this; + } + + /** + * Get canDelete + * @return canDelete + */ + @javax.annotation.Nullable + public Boolean getCanDelete() { + return canDelete; + } + + public void setCanDelete(@javax.annotation.Nullable Boolean canDelete) { + this.canDelete = canDelete; + } + + + public BaseItemDto canDownload(@javax.annotation.Nullable Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + /** + * Get canDownload + * @return canDownload + */ + @javax.annotation.Nullable + public Boolean getCanDownload() { + return canDownload; + } + + public void setCanDownload(@javax.annotation.Nullable Boolean canDownload) { + this.canDownload = canDownload; + } + + + public BaseItemDto hasSubtitles(@javax.annotation.Nullable Boolean hasSubtitles) { + this.hasSubtitles = hasSubtitles; + return this; + } + + /** + * Get hasSubtitles + * @return hasSubtitles + */ + @javax.annotation.Nullable + public Boolean getHasSubtitles() { + return hasSubtitles; + } + + public void setHasSubtitles(@javax.annotation.Nullable Boolean hasSubtitles) { + this.hasSubtitles = hasSubtitles; + } + + + public BaseItemDto preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Get preferredMetadataLanguage + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public BaseItemDto preferredMetadataCountryCode(@javax.annotation.Nullable String preferredMetadataCountryCode) { + this.preferredMetadataCountryCode = preferredMetadataCountryCode; + return this; + } + + /** + * Get preferredMetadataCountryCode + * @return preferredMetadataCountryCode + */ + @javax.annotation.Nullable + public String getPreferredMetadataCountryCode() { + return preferredMetadataCountryCode; + } + + public void setPreferredMetadataCountryCode(@javax.annotation.Nullable String preferredMetadataCountryCode) { + this.preferredMetadataCountryCode = preferredMetadataCountryCode; + } + + + public BaseItemDto supportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + return this; + } + + /** + * Gets or sets a value indicating whether [supports synchronize]. + * @return supportsSync + */ + @javax.annotation.Nullable + public Boolean getSupportsSync() { + return supportsSync; + } + + public void setSupportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + } + + + public BaseItemDto container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public BaseItemDto sortName(@javax.annotation.Nullable String sortName) { + this.sortName = sortName; + return this; + } + + /** + * Gets or sets the name of the sort. + * @return sortName + */ + @javax.annotation.Nullable + public String getSortName() { + return sortName; + } + + public void setSortName(@javax.annotation.Nullable String sortName) { + this.sortName = sortName; + } + + + public BaseItemDto forcedSortName(@javax.annotation.Nullable String forcedSortName) { + this.forcedSortName = forcedSortName; + return this; + } + + /** + * Get forcedSortName + * @return forcedSortName + */ + @javax.annotation.Nullable + public String getForcedSortName() { + return forcedSortName; + } + + public void setForcedSortName(@javax.annotation.Nullable String forcedSortName) { + this.forcedSortName = forcedSortName; + } + + + public BaseItemDto video3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + return this; + } + + /** + * Gets or sets the video3 D format. + * @return video3DFormat + */ + @javax.annotation.Nullable + public Video3DFormat getVideo3DFormat() { + return video3DFormat; + } + + public void setVideo3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + } + + + public BaseItemDto premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Gets or sets the premiere date. + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BaseItemDto externalUrls(@javax.annotation.Nullable List externalUrls) { + this.externalUrls = externalUrls; + return this; + } + + public BaseItemDto addExternalUrlsItem(ExternalUrl externalUrlsItem) { + if (this.externalUrls == null) { + this.externalUrls = new ArrayList<>(); + } + this.externalUrls.add(externalUrlsItem); + return this; + } + + /** + * Gets or sets the external urls. + * @return externalUrls + */ + @javax.annotation.Nullable + public List getExternalUrls() { + return externalUrls; + } + + public void setExternalUrls(@javax.annotation.Nullable List externalUrls) { + this.externalUrls = externalUrls; + } + + + public BaseItemDto mediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + return this; + } + + public BaseItemDto addMediaSourcesItem(MediaSourceInfo mediaSourcesItem) { + if (this.mediaSources == null) { + this.mediaSources = new ArrayList<>(); + } + this.mediaSources.add(mediaSourcesItem); + return this; + } + + /** + * Gets or sets the media versions. + * @return mediaSources + */ + @javax.annotation.Nullable + public List getMediaSources() { + return mediaSources; + } + + public void setMediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + } + + + public BaseItemDto criticRating(@javax.annotation.Nullable Float criticRating) { + this.criticRating = criticRating; + return this; + } + + /** + * Gets or sets the critic rating. + * @return criticRating + */ + @javax.annotation.Nullable + public Float getCriticRating() { + return criticRating; + } + + public void setCriticRating(@javax.annotation.Nullable Float criticRating) { + this.criticRating = criticRating; + } + + + public BaseItemDto productionLocations(@javax.annotation.Nullable List productionLocations) { + this.productionLocations = productionLocations; + return this; + } + + public BaseItemDto addProductionLocationsItem(String productionLocationsItem) { + if (this.productionLocations == null) { + this.productionLocations = new ArrayList<>(); + } + this.productionLocations.add(productionLocationsItem); + return this; + } + + /** + * Get productionLocations + * @return productionLocations + */ + @javax.annotation.Nullable + public List getProductionLocations() { + return productionLocations; + } + + public void setProductionLocations(@javax.annotation.Nullable List productionLocations) { + this.productionLocations = productionLocations; + } + + + public BaseItemDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BaseItemDto enableMediaSourceDisplay(@javax.annotation.Nullable Boolean enableMediaSourceDisplay) { + this.enableMediaSourceDisplay = enableMediaSourceDisplay; + return this; + } + + /** + * Get enableMediaSourceDisplay + * @return enableMediaSourceDisplay + */ + @javax.annotation.Nullable + public Boolean getEnableMediaSourceDisplay() { + return enableMediaSourceDisplay; + } + + public void setEnableMediaSourceDisplay(@javax.annotation.Nullable Boolean enableMediaSourceDisplay) { + this.enableMediaSourceDisplay = enableMediaSourceDisplay; + } + + + public BaseItemDto officialRating(@javax.annotation.Nullable String officialRating) { + this.officialRating = officialRating; + return this; + } + + /** + * Gets or sets the official rating. + * @return officialRating + */ + @javax.annotation.Nullable + public String getOfficialRating() { + return officialRating; + } + + public void setOfficialRating(@javax.annotation.Nullable String officialRating) { + this.officialRating = officialRating; + } + + + public BaseItemDto customRating(@javax.annotation.Nullable String customRating) { + this.customRating = customRating; + return this; + } + + /** + * Gets or sets the custom rating. + * @return customRating + */ + @javax.annotation.Nullable + public String getCustomRating() { + return customRating; + } + + public void setCustomRating(@javax.annotation.Nullable String customRating) { + this.customRating = customRating; + } + + + public BaseItemDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel identifier. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public BaseItemDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Get channelName + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public BaseItemDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the overview. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public BaseItemDto taglines(@javax.annotation.Nullable List taglines) { + this.taglines = taglines; + return this; + } + + public BaseItemDto addTaglinesItem(String taglinesItem) { + if (this.taglines == null) { + this.taglines = new ArrayList<>(); + } + this.taglines.add(taglinesItem); + return this; + } + + /** + * Gets or sets the taglines. + * @return taglines + */ + @javax.annotation.Nullable + public List getTaglines() { + return taglines; + } + + public void setTaglines(@javax.annotation.Nullable List taglines) { + this.taglines = taglines; + } + + + public BaseItemDto genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public BaseItemDto addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Gets or sets the genres. + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public BaseItemDto communityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Gets or sets the community rating. + * @return communityRating + */ + @javax.annotation.Nullable + public Float getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + } + + + public BaseItemDto cumulativeRunTimeTicks(@javax.annotation.Nullable Long cumulativeRunTimeTicks) { + this.cumulativeRunTimeTicks = cumulativeRunTimeTicks; + return this; + } + + /** + * Gets or sets the cumulative run time ticks. + * @return cumulativeRunTimeTicks + */ + @javax.annotation.Nullable + public Long getCumulativeRunTimeTicks() { + return cumulativeRunTimeTicks; + } + + public void setCumulativeRunTimeTicks(@javax.annotation.Nullable Long cumulativeRunTimeTicks) { + this.cumulativeRunTimeTicks = cumulativeRunTimeTicks; + } + + + public BaseItemDto runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public BaseItemDto playAccess(@javax.annotation.Nullable PlayAccess playAccess) { + this.playAccess = playAccess; + return this; + } + + /** + * Gets or sets the play access. + * @return playAccess + */ + @javax.annotation.Nullable + public PlayAccess getPlayAccess() { + return playAccess; + } + + public void setPlayAccess(@javax.annotation.Nullable PlayAccess playAccess) { + this.playAccess = playAccess; + } + + + public BaseItemDto aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Gets or sets the aspect ratio. + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public BaseItemDto productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the production year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public BaseItemDto isPlaceHolder(@javax.annotation.Nullable Boolean isPlaceHolder) { + this.isPlaceHolder = isPlaceHolder; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is place holder. + * @return isPlaceHolder + */ + @javax.annotation.Nullable + public Boolean getIsPlaceHolder() { + return isPlaceHolder; + } + + public void setIsPlaceHolder(@javax.annotation.Nullable Boolean isPlaceHolder) { + this.isPlaceHolder = isPlaceHolder; + } + + + public BaseItemDto number(@javax.annotation.Nullable String number) { + this.number = number; + return this; + } + + /** + * Gets or sets the number. + * @return number + */ + @javax.annotation.Nullable + public String getNumber() { + return number; + } + + public void setNumber(@javax.annotation.Nullable String number) { + this.number = number; + } + + + public BaseItemDto channelNumber(@javax.annotation.Nullable String channelNumber) { + this.channelNumber = channelNumber; + return this; + } + + /** + * Get channelNumber + * @return channelNumber + */ + @javax.annotation.Nullable + public String getChannelNumber() { + return channelNumber; + } + + public void setChannelNumber(@javax.annotation.Nullable String channelNumber) { + this.channelNumber = channelNumber; + } + + + public BaseItemDto indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Gets or sets the index number. + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BaseItemDto indexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + return this; + } + + /** + * Gets or sets the index number end. + * @return indexNumberEnd + */ + @javax.annotation.Nullable + public Integer getIndexNumberEnd() { + return indexNumberEnd; + } + + public void setIndexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + } + + + public BaseItemDto parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Gets or sets the parent index number. + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BaseItemDto remoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + return this; + } + + public BaseItemDto addRemoteTrailersItem(MediaUrl remoteTrailersItem) { + if (this.remoteTrailers == null) { + this.remoteTrailers = new ArrayList<>(); + } + this.remoteTrailers.add(remoteTrailersItem); + return this; + } + + /** + * Gets or sets the trailer urls. + * @return remoteTrailers + */ + @javax.annotation.Nullable + public List getRemoteTrailers() { + return remoteTrailers; + } + + public void setRemoteTrailers(@javax.annotation.Nullable List remoteTrailers) { + this.remoteTrailers = remoteTrailers; + } + + + public BaseItemDto providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BaseItemDto putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BaseItemDto isHD(@javax.annotation.Nullable Boolean isHD) { + this.isHD = isHD; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is HD. + * @return isHD + */ + @javax.annotation.Nullable + public Boolean getIsHD() { + return isHD; + } + + public void setIsHD(@javax.annotation.Nullable Boolean isHD) { + this.isHD = isHD; + } + + + public BaseItemDto isFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is folder. + * @return isFolder + */ + @javax.annotation.Nullable + public Boolean getIsFolder() { + return isFolder; + } + + public void setIsFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + } + + + public BaseItemDto parentId(@javax.annotation.Nullable UUID parentId) { + this.parentId = parentId; + return this; + } + + /** + * Gets or sets the parent id. + * @return parentId + */ + @javax.annotation.Nullable + public UUID getParentId() { + return parentId; + } + + public void setParentId(@javax.annotation.Nullable UUID parentId) { + this.parentId = parentId; + } + + + public BaseItemDto type(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public BaseItemKind getType() { + return type; + } + + public void setType(@javax.annotation.Nullable BaseItemKind type) { + this.type = type; + } + + + public BaseItemDto people(@javax.annotation.Nullable List people) { + this.people = people; + return this; + } + + public BaseItemDto addPeopleItem(BaseItemPerson peopleItem) { + if (this.people == null) { + this.people = new ArrayList<>(); + } + this.people.add(peopleItem); + return this; + } + + /** + * Gets or sets the people. + * @return people + */ + @javax.annotation.Nullable + public List getPeople() { + return people; + } + + public void setPeople(@javax.annotation.Nullable List people) { + this.people = people; + } + + + public BaseItemDto studios(@javax.annotation.Nullable List studios) { + this.studios = studios; + return this; + } + + public BaseItemDto addStudiosItem(NameGuidPair studiosItem) { + if (this.studios == null) { + this.studios = new ArrayList<>(); + } + this.studios.add(studiosItem); + return this; + } + + /** + * Gets or sets the studios. + * @return studios + */ + @javax.annotation.Nullable + public List getStudios() { + return studios; + } + + public void setStudios(@javax.annotation.Nullable List studios) { + this.studios = studios; + } + + + public BaseItemDto genreItems(@javax.annotation.Nullable List genreItems) { + this.genreItems = genreItems; + return this; + } + + public BaseItemDto addGenreItemsItem(NameGuidPair genreItemsItem) { + if (this.genreItems == null) { + this.genreItems = new ArrayList<>(); + } + this.genreItems.add(genreItemsItem); + return this; + } + + /** + * Get genreItems + * @return genreItems + */ + @javax.annotation.Nullable + public List getGenreItems() { + return genreItems; + } + + public void setGenreItems(@javax.annotation.Nullable List genreItems) { + this.genreItems = genreItems; + } + + + public BaseItemDto parentLogoItemId(@javax.annotation.Nullable UUID parentLogoItemId) { + this.parentLogoItemId = parentLogoItemId; + return this; + } + + /** + * Gets or sets wether the item has a logo, this will hold the Id of the Parent that has one. + * @return parentLogoItemId + */ + @javax.annotation.Nullable + public UUID getParentLogoItemId() { + return parentLogoItemId; + } + + public void setParentLogoItemId(@javax.annotation.Nullable UUID parentLogoItemId) { + this.parentLogoItemId = parentLogoItemId; + } + + + public BaseItemDto parentBackdropItemId(@javax.annotation.Nullable UUID parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets wether the item has any backdrops, this will hold the Id of the Parent that has one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public UUID getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable UUID parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public BaseItemDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public BaseItemDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public BaseItemDto localTrailerCount(@javax.annotation.Nullable Integer localTrailerCount) { + this.localTrailerCount = localTrailerCount; + return this; + } + + /** + * Gets or sets the local trailer count. + * @return localTrailerCount + */ + @javax.annotation.Nullable + public Integer getLocalTrailerCount() { + return localTrailerCount; + } + + public void setLocalTrailerCount(@javax.annotation.Nullable Integer localTrailerCount) { + this.localTrailerCount = localTrailerCount; + } + + + public BaseItemDto userData(@javax.annotation.Nullable UserItemDataDto userData) { + this.userData = userData; + return this; + } + + /** + * Gets or sets the user data for this item based on the user it's being requested for. + * @return userData + */ + @javax.annotation.Nullable + public UserItemDataDto getUserData() { + return userData; + } + + public void setUserData(@javax.annotation.Nullable UserItemDataDto userData) { + this.userData = userData; + } + + + public BaseItemDto recursiveItemCount(@javax.annotation.Nullable Integer recursiveItemCount) { + this.recursiveItemCount = recursiveItemCount; + return this; + } + + /** + * Gets or sets the recursive item count. + * @return recursiveItemCount + */ + @javax.annotation.Nullable + public Integer getRecursiveItemCount() { + return recursiveItemCount; + } + + public void setRecursiveItemCount(@javax.annotation.Nullable Integer recursiveItemCount) { + this.recursiveItemCount = recursiveItemCount; + } + + + public BaseItemDto childCount(@javax.annotation.Nullable Integer childCount) { + this.childCount = childCount; + return this; + } + + /** + * Gets or sets the child count. + * @return childCount + */ + @javax.annotation.Nullable + public Integer getChildCount() { + return childCount; + } + + public void setChildCount(@javax.annotation.Nullable Integer childCount) { + this.childCount = childCount; + } + + + public BaseItemDto seriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + return this; + } + + /** + * Gets or sets the name of the series. + * @return seriesName + */ + @javax.annotation.Nullable + public String getSeriesName() { + return seriesName; + } + + public void setSeriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + } + + + public BaseItemDto seriesId(@javax.annotation.Nullable UUID seriesId) { + this.seriesId = seriesId; + return this; + } + + /** + * Gets or sets the series id. + * @return seriesId + */ + @javax.annotation.Nullable + public UUID getSeriesId() { + return seriesId; + } + + public void setSeriesId(@javax.annotation.Nullable UUID seriesId) { + this.seriesId = seriesId; + } + + + public BaseItemDto seasonId(@javax.annotation.Nullable UUID seasonId) { + this.seasonId = seasonId; + return this; + } + + /** + * Gets or sets the season identifier. + * @return seasonId + */ + @javax.annotation.Nullable + public UUID getSeasonId() { + return seasonId; + } + + public void setSeasonId(@javax.annotation.Nullable UUID seasonId) { + this.seasonId = seasonId; + } + + + public BaseItemDto specialFeatureCount(@javax.annotation.Nullable Integer specialFeatureCount) { + this.specialFeatureCount = specialFeatureCount; + return this; + } + + /** + * Gets or sets the special feature count. + * @return specialFeatureCount + */ + @javax.annotation.Nullable + public Integer getSpecialFeatureCount() { + return specialFeatureCount; + } + + public void setSpecialFeatureCount(@javax.annotation.Nullable Integer specialFeatureCount) { + this.specialFeatureCount = specialFeatureCount; + } + + + public BaseItemDto displayPreferencesId(@javax.annotation.Nullable String displayPreferencesId) { + this.displayPreferencesId = displayPreferencesId; + return this; + } + + /** + * Gets or sets the display preferences id. + * @return displayPreferencesId + */ + @javax.annotation.Nullable + public String getDisplayPreferencesId() { + return displayPreferencesId; + } + + public void setDisplayPreferencesId(@javax.annotation.Nullable String displayPreferencesId) { + this.displayPreferencesId = displayPreferencesId; + } + + + public BaseItemDto status(@javax.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable String status) { + this.status = status; + } + + + public BaseItemDto airTime(@javax.annotation.Nullable String airTime) { + this.airTime = airTime; + return this; + } + + /** + * Gets or sets the air time. + * @return airTime + */ + @javax.annotation.Nullable + public String getAirTime() { + return airTime; + } + + public void setAirTime(@javax.annotation.Nullable String airTime) { + this.airTime = airTime; + } + + + public BaseItemDto airDays(@javax.annotation.Nullable List airDays) { + this.airDays = airDays; + return this; + } + + public BaseItemDto addAirDaysItem(DayOfWeek airDaysItem) { + if (this.airDays == null) { + this.airDays = new ArrayList<>(); + } + this.airDays.add(airDaysItem); + return this; + } + + /** + * Gets or sets the air days. + * @return airDays + */ + @javax.annotation.Nullable + public List getAirDays() { + return airDays; + } + + public void setAirDays(@javax.annotation.Nullable List airDays) { + this.airDays = airDays; + } + + + public BaseItemDto tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public BaseItemDto addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Gets or sets the tags. + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + public BaseItemDto primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio, after image enhancements. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + public BaseItemDto artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public BaseItemDto addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Gets or sets the artists. + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + public BaseItemDto artistItems(@javax.annotation.Nullable List artistItems) { + this.artistItems = artistItems; + return this; + } + + public BaseItemDto addArtistItemsItem(NameGuidPair artistItemsItem) { + if (this.artistItems == null) { + this.artistItems = new ArrayList<>(); + } + this.artistItems.add(artistItemsItem); + return this; + } + + /** + * Gets or sets the artist items. + * @return artistItems + */ + @javax.annotation.Nullable + public List getArtistItems() { + return artistItems; + } + + public void setArtistItems(@javax.annotation.Nullable List artistItems) { + this.artistItems = artistItems; + } + + + public BaseItemDto album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Gets or sets the album. + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public BaseItemDto collectionType(@javax.annotation.Nullable String collectionType) { + this.collectionType = collectionType; + return this; + } + + /** + * Gets or sets the type of the collection. + * @return collectionType + */ + @javax.annotation.Nullable + public String getCollectionType() { + return collectionType; + } + + public void setCollectionType(@javax.annotation.Nullable String collectionType) { + this.collectionType = collectionType; + } + + + public BaseItemDto displayOrder(@javax.annotation.Nullable String displayOrder) { + this.displayOrder = displayOrder; + return this; + } + + /** + * Gets or sets the display order. + * @return displayOrder + */ + @javax.annotation.Nullable + public String getDisplayOrder() { + return displayOrder; + } + + public void setDisplayOrder(@javax.annotation.Nullable String displayOrder) { + this.displayOrder = displayOrder; + } + + + public BaseItemDto albumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + return this; + } + + /** + * Gets or sets the album id. + * @return albumId + */ + @javax.annotation.Nullable + public UUID getAlbumId() { + return albumId; + } + + public void setAlbumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + } + + + public BaseItemDto albumPrimaryImageTag(@javax.annotation.Nullable String albumPrimaryImageTag) { + this.albumPrimaryImageTag = albumPrimaryImageTag; + return this; + } + + /** + * Gets or sets the album image tag. + * @return albumPrimaryImageTag + */ + @javax.annotation.Nullable + public String getAlbumPrimaryImageTag() { + return albumPrimaryImageTag; + } + + public void setAlbumPrimaryImageTag(@javax.annotation.Nullable String albumPrimaryImageTag) { + this.albumPrimaryImageTag = albumPrimaryImageTag; + } + + + public BaseItemDto seriesPrimaryImageTag(@javax.annotation.Nullable String seriesPrimaryImageTag) { + this.seriesPrimaryImageTag = seriesPrimaryImageTag; + return this; + } + + /** + * Gets or sets the series primary image tag. + * @return seriesPrimaryImageTag + */ + @javax.annotation.Nullable + public String getSeriesPrimaryImageTag() { + return seriesPrimaryImageTag; + } + + public void setSeriesPrimaryImageTag(@javax.annotation.Nullable String seriesPrimaryImageTag) { + this.seriesPrimaryImageTag = seriesPrimaryImageTag; + } + + + public BaseItemDto albumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtist + */ + @javax.annotation.Nullable + public String getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + } + + + public BaseItemDto albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public BaseItemDto addAlbumArtistsItem(NameGuidPair albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Gets or sets the album artists. + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public BaseItemDto seasonName(@javax.annotation.Nullable String seasonName) { + this.seasonName = seasonName; + return this; + } + + /** + * Gets or sets the name of the season. + * @return seasonName + */ + @javax.annotation.Nullable + public String getSeasonName() { + return seasonName; + } + + public void setSeasonName(@javax.annotation.Nullable String seasonName) { + this.seasonName = seasonName; + } + + + public BaseItemDto mediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + return this; + } + + public BaseItemDto addMediaStreamsItem(MediaStream mediaStreamsItem) { + if (this.mediaStreams == null) { + this.mediaStreams = new ArrayList<>(); + } + this.mediaStreams.add(mediaStreamsItem); + return this; + } + + /** + * Gets or sets the media streams. + * @return mediaStreams + */ + @javax.annotation.Nullable + public List getMediaStreams() { + return mediaStreams; + } + + public void setMediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + } + + + public BaseItemDto videoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + return this; + } + + /** + * Gets or sets the type of the video. + * @return videoType + */ + @javax.annotation.Nullable + public VideoType getVideoType() { + return videoType; + } + + public void setVideoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + } + + + public BaseItemDto partCount(@javax.annotation.Nullable Integer partCount) { + this.partCount = partCount; + return this; + } + + /** + * Gets or sets the part count. + * @return partCount + */ + @javax.annotation.Nullable + public Integer getPartCount() { + return partCount; + } + + public void setPartCount(@javax.annotation.Nullable Integer partCount) { + this.partCount = partCount; + } + + + public BaseItemDto mediaSourceCount(@javax.annotation.Nullable Integer mediaSourceCount) { + this.mediaSourceCount = mediaSourceCount; + return this; + } + + /** + * Get mediaSourceCount + * @return mediaSourceCount + */ + @javax.annotation.Nullable + public Integer getMediaSourceCount() { + return mediaSourceCount; + } + + public void setMediaSourceCount(@javax.annotation.Nullable Integer mediaSourceCount) { + this.mediaSourceCount = mediaSourceCount; + } + + + public BaseItemDto imageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + return this; + } + + public BaseItemDto putImageTagsItem(String key, String imageTagsItem) { + if (this.imageTags == null) { + this.imageTags = new HashMap<>(); + } + this.imageTags.put(key, imageTagsItem); + return this; + } + + /** + * Gets or sets the image tags. + * @return imageTags + */ + @javax.annotation.Nullable + public Map getImageTags() { + return imageTags; + } + + public void setImageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + } + + + public BaseItemDto backdropImageTags(@javax.annotation.Nullable List backdropImageTags) { + this.backdropImageTags = backdropImageTags; + return this; + } + + public BaseItemDto addBackdropImageTagsItem(String backdropImageTagsItem) { + if (this.backdropImageTags == null) { + this.backdropImageTags = new ArrayList<>(); + } + this.backdropImageTags.add(backdropImageTagsItem); + return this; + } + + /** + * Gets or sets the backdrop image tags. + * @return backdropImageTags + */ + @javax.annotation.Nullable + public List getBackdropImageTags() { + return backdropImageTags; + } + + public void setBackdropImageTags(@javax.annotation.Nullable List backdropImageTags) { + this.backdropImageTags = backdropImageTags; + } + + + public BaseItemDto screenshotImageTags(@javax.annotation.Nullable List screenshotImageTags) { + this.screenshotImageTags = screenshotImageTags; + return this; + } + + public BaseItemDto addScreenshotImageTagsItem(String screenshotImageTagsItem) { + if (this.screenshotImageTags == null) { + this.screenshotImageTags = new ArrayList<>(); + } + this.screenshotImageTags.add(screenshotImageTagsItem); + return this; + } + + /** + * Gets or sets the screenshot image tags. + * @return screenshotImageTags + */ + @javax.annotation.Nullable + public List getScreenshotImageTags() { + return screenshotImageTags; + } + + public void setScreenshotImageTags(@javax.annotation.Nullable List screenshotImageTags) { + this.screenshotImageTags = screenshotImageTags; + } + + + public BaseItemDto parentLogoImageTag(@javax.annotation.Nullable String parentLogoImageTag) { + this.parentLogoImageTag = parentLogoImageTag; + return this; + } + + /** + * Gets or sets the parent logo image tag. + * @return parentLogoImageTag + */ + @javax.annotation.Nullable + public String getParentLogoImageTag() { + return parentLogoImageTag; + } + + public void setParentLogoImageTag(@javax.annotation.Nullable String parentLogoImageTag) { + this.parentLogoImageTag = parentLogoImageTag; + } + + + public BaseItemDto parentArtItemId(@javax.annotation.Nullable UUID parentArtItemId) { + this.parentArtItemId = parentArtItemId; + return this; + } + + /** + * Gets or sets wether the item has fan art, this will hold the Id of the Parent that has one. + * @return parentArtItemId + */ + @javax.annotation.Nullable + public UUID getParentArtItemId() { + return parentArtItemId; + } + + public void setParentArtItemId(@javax.annotation.Nullable UUID parentArtItemId) { + this.parentArtItemId = parentArtItemId; + } + + + public BaseItemDto parentArtImageTag(@javax.annotation.Nullable String parentArtImageTag) { + this.parentArtImageTag = parentArtImageTag; + return this; + } + + /** + * Gets or sets the parent art image tag. + * @return parentArtImageTag + */ + @javax.annotation.Nullable + public String getParentArtImageTag() { + return parentArtImageTag; + } + + public void setParentArtImageTag(@javax.annotation.Nullable String parentArtImageTag) { + this.parentArtImageTag = parentArtImageTag; + } + + + public BaseItemDto seriesThumbImageTag(@javax.annotation.Nullable String seriesThumbImageTag) { + this.seriesThumbImageTag = seriesThumbImageTag; + return this; + } + + /** + * Gets or sets the series thumb image tag. + * @return seriesThumbImageTag + */ + @javax.annotation.Nullable + public String getSeriesThumbImageTag() { + return seriesThumbImageTag; + } + + public void setSeriesThumbImageTag(@javax.annotation.Nullable String seriesThumbImageTag) { + this.seriesThumbImageTag = seriesThumbImageTag; + } + + + public BaseItemDto imageBlurHashes(@javax.annotation.Nullable BaseItemDtoImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + return this; + } + + /** + * Get imageBlurHashes + * @return imageBlurHashes + */ + @javax.annotation.Nullable + public BaseItemDtoImageBlurHashes getImageBlurHashes() { + return imageBlurHashes; + } + + public void setImageBlurHashes(@javax.annotation.Nullable BaseItemDtoImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + } + + + public BaseItemDto seriesStudio(@javax.annotation.Nullable String seriesStudio) { + this.seriesStudio = seriesStudio; + return this; + } + + /** + * Gets or sets the series studio. + * @return seriesStudio + */ + @javax.annotation.Nullable + public String getSeriesStudio() { + return seriesStudio; + } + + public void setSeriesStudio(@javax.annotation.Nullable String seriesStudio) { + this.seriesStudio = seriesStudio; + } + + + public BaseItemDto parentThumbItemId(@javax.annotation.Nullable UUID parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + return this; + } + + /** + * Gets or sets the parent thumb item id. + * @return parentThumbItemId + */ + @javax.annotation.Nullable + public UUID getParentThumbItemId() { + return parentThumbItemId; + } + + public void setParentThumbItemId(@javax.annotation.Nullable UUID parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + } + + + public BaseItemDto parentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + return this; + } + + /** + * Gets or sets the parent thumb image tag. + * @return parentThumbImageTag + */ + @javax.annotation.Nullable + public String getParentThumbImageTag() { + return parentThumbImageTag; + } + + public void setParentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + } + + + public BaseItemDto parentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + return this; + } + + /** + * Gets or sets the parent primary image item identifier. + * @return parentPrimaryImageItemId + */ + @javax.annotation.Nullable + public String getParentPrimaryImageItemId() { + return parentPrimaryImageItemId; + } + + public void setParentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + } + + + public BaseItemDto parentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + return this; + } + + /** + * Gets or sets the parent primary image tag. + * @return parentPrimaryImageTag + */ + @javax.annotation.Nullable + public String getParentPrimaryImageTag() { + return parentPrimaryImageTag; + } + + public void setParentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + } + + + public BaseItemDto chapters(@javax.annotation.Nullable List chapters) { + this.chapters = chapters; + return this; + } + + public BaseItemDto addChaptersItem(ChapterInfo chaptersItem) { + if (this.chapters == null) { + this.chapters = new ArrayList<>(); + } + this.chapters.add(chaptersItem); + return this; + } + + /** + * Gets or sets the chapters. + * @return chapters + */ + @javax.annotation.Nullable + public List getChapters() { + return chapters; + } + + public void setChapters(@javax.annotation.Nullable List chapters) { + this.chapters = chapters; + } + + + public BaseItemDto locationType(@javax.annotation.Nullable LocationType locationType) { + this.locationType = locationType; + return this; + } + + /** + * Gets or sets the type of the location. + * @return locationType + */ + @javax.annotation.Nullable + public LocationType getLocationType() { + return locationType; + } + + public void setLocationType(@javax.annotation.Nullable LocationType locationType) { + this.locationType = locationType; + } + + + public BaseItemDto isoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + return this; + } + + /** + * Gets or sets the type of the iso. + * @return isoType + */ + @javax.annotation.Nullable + public IsoType getIsoType() { + return isoType; + } + + public void setIsoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + } + + + public BaseItemDto mediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Gets or sets the type of the media. + * @return mediaType + */ + @javax.annotation.Nullable + public String getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + } + + + public BaseItemDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public BaseItemDto lockedFields(@javax.annotation.Nullable List lockedFields) { + this.lockedFields = lockedFields; + return this; + } + + public BaseItemDto addLockedFieldsItem(MetadataField lockedFieldsItem) { + if (this.lockedFields == null) { + this.lockedFields = new ArrayList<>(); + } + this.lockedFields.add(lockedFieldsItem); + return this; + } + + /** + * Gets or sets the locked fields. + * @return lockedFields + */ + @javax.annotation.Nullable + public List getLockedFields() { + return lockedFields; + } + + public void setLockedFields(@javax.annotation.Nullable List lockedFields) { + this.lockedFields = lockedFields; + } + + + public BaseItemDto trailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + return this; + } + + /** + * Gets or sets the trailer count. + * @return trailerCount + */ + @javax.annotation.Nullable + public Integer getTrailerCount() { + return trailerCount; + } + + public void setTrailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + } + + + public BaseItemDto movieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + return this; + } + + /** + * Gets or sets the movie count. + * @return movieCount + */ + @javax.annotation.Nullable + public Integer getMovieCount() { + return movieCount; + } + + public void setMovieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + } + + + public BaseItemDto seriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + return this; + } + + /** + * Gets or sets the series count. + * @return seriesCount + */ + @javax.annotation.Nullable + public Integer getSeriesCount() { + return seriesCount; + } + + public void setSeriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + } + + + public BaseItemDto programCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + return this; + } + + /** + * Get programCount + * @return programCount + */ + @javax.annotation.Nullable + public Integer getProgramCount() { + return programCount; + } + + public void setProgramCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + } + + + public BaseItemDto episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public BaseItemDto songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public BaseItemDto albumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + return this; + } + + /** + * Gets or sets the album count. + * @return albumCount + */ + @javax.annotation.Nullable + public Integer getAlbumCount() { + return albumCount; + } + + public void setAlbumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + } + + + public BaseItemDto artistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + return this; + } + + /** + * Get artistCount + * @return artistCount + */ + @javax.annotation.Nullable + public Integer getArtistCount() { + return artistCount; + } + + public void setArtistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + } + + + public BaseItemDto musicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + return this; + } + + /** + * Gets or sets the music video count. + * @return musicVideoCount + */ + @javax.annotation.Nullable + public Integer getMusicVideoCount() { + return musicVideoCount; + } + + public void setMusicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + } + + + public BaseItemDto lockData(@javax.annotation.Nullable Boolean lockData) { + this.lockData = lockData; + return this; + } + + /** + * Gets or sets a value indicating whether [enable internet providers]. + * @return lockData + */ + @javax.annotation.Nullable + public Boolean getLockData() { + return lockData; + } + + public void setLockData(@javax.annotation.Nullable Boolean lockData) { + this.lockData = lockData; + } + + + public BaseItemDto width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Get width + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public BaseItemDto height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Get height + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public BaseItemDto cameraMake(@javax.annotation.Nullable String cameraMake) { + this.cameraMake = cameraMake; + return this; + } + + /** + * Get cameraMake + * @return cameraMake + */ + @javax.annotation.Nullable + public String getCameraMake() { + return cameraMake; + } + + public void setCameraMake(@javax.annotation.Nullable String cameraMake) { + this.cameraMake = cameraMake; + } + + + public BaseItemDto cameraModel(@javax.annotation.Nullable String cameraModel) { + this.cameraModel = cameraModel; + return this; + } + + /** + * Get cameraModel + * @return cameraModel + */ + @javax.annotation.Nullable + public String getCameraModel() { + return cameraModel; + } + + public void setCameraModel(@javax.annotation.Nullable String cameraModel) { + this.cameraModel = cameraModel; + } + + + public BaseItemDto software(@javax.annotation.Nullable String software) { + this.software = software; + return this; + } + + /** + * Get software + * @return software + */ + @javax.annotation.Nullable + public String getSoftware() { + return software; + } + + public void setSoftware(@javax.annotation.Nullable String software) { + this.software = software; + } + + + public BaseItemDto exposureTime(@javax.annotation.Nullable Double exposureTime) { + this.exposureTime = exposureTime; + return this; + } + + /** + * Get exposureTime + * @return exposureTime + */ + @javax.annotation.Nullable + public Double getExposureTime() { + return exposureTime; + } + + public void setExposureTime(@javax.annotation.Nullable Double exposureTime) { + this.exposureTime = exposureTime; + } + + + public BaseItemDto focalLength(@javax.annotation.Nullable Double focalLength) { + this.focalLength = focalLength; + return this; + } + + /** + * Get focalLength + * @return focalLength + */ + @javax.annotation.Nullable + public Double getFocalLength() { + return focalLength; + } + + public void setFocalLength(@javax.annotation.Nullable Double focalLength) { + this.focalLength = focalLength; + } + + + public BaseItemDto imageOrientation(@javax.annotation.Nullable ImageOrientation imageOrientation) { + this.imageOrientation = imageOrientation; + return this; + } + + /** + * Get imageOrientation + * @return imageOrientation + */ + @javax.annotation.Nullable + public ImageOrientation getImageOrientation() { + return imageOrientation; + } + + public void setImageOrientation(@javax.annotation.Nullable ImageOrientation imageOrientation) { + this.imageOrientation = imageOrientation; + } + + + public BaseItemDto aperture(@javax.annotation.Nullable Double aperture) { + this.aperture = aperture; + return this; + } + + /** + * Get aperture + * @return aperture + */ + @javax.annotation.Nullable + public Double getAperture() { + return aperture; + } + + public void setAperture(@javax.annotation.Nullable Double aperture) { + this.aperture = aperture; + } + + + public BaseItemDto shutterSpeed(@javax.annotation.Nullable Double shutterSpeed) { + this.shutterSpeed = shutterSpeed; + return this; + } + + /** + * Get shutterSpeed + * @return shutterSpeed + */ + @javax.annotation.Nullable + public Double getShutterSpeed() { + return shutterSpeed; + } + + public void setShutterSpeed(@javax.annotation.Nullable Double shutterSpeed) { + this.shutterSpeed = shutterSpeed; + } + + + public BaseItemDto latitude(@javax.annotation.Nullable Double latitude) { + this.latitude = latitude; + return this; + } + + /** + * Get latitude + * @return latitude + */ + @javax.annotation.Nullable + public Double getLatitude() { + return latitude; + } + + public void setLatitude(@javax.annotation.Nullable Double latitude) { + this.latitude = latitude; + } + + + public BaseItemDto longitude(@javax.annotation.Nullable Double longitude) { + this.longitude = longitude; + return this; + } + + /** + * Get longitude + * @return longitude + */ + @javax.annotation.Nullable + public Double getLongitude() { + return longitude; + } + + public void setLongitude(@javax.annotation.Nullable Double longitude) { + this.longitude = longitude; + } + + + public BaseItemDto altitude(@javax.annotation.Nullable Double altitude) { + this.altitude = altitude; + return this; + } + + /** + * Get altitude + * @return altitude + */ + @javax.annotation.Nullable + public Double getAltitude() { + return altitude; + } + + public void setAltitude(@javax.annotation.Nullable Double altitude) { + this.altitude = altitude; + } + + + public BaseItemDto isoSpeedRating(@javax.annotation.Nullable Integer isoSpeedRating) { + this.isoSpeedRating = isoSpeedRating; + return this; + } + + /** + * Get isoSpeedRating + * @return isoSpeedRating + */ + @javax.annotation.Nullable + public Integer getIsoSpeedRating() { + return isoSpeedRating; + } + + public void setIsoSpeedRating(@javax.annotation.Nullable Integer isoSpeedRating) { + this.isoSpeedRating = isoSpeedRating; + } + + + public BaseItemDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets the series timer identifier. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public BaseItemDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public BaseItemDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Gets or sets the channel primary image tag. + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public BaseItemDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public BaseItemDto completionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + return this; + } + + /** + * Gets or sets the completion percentage. + * @return completionPercentage + */ + @javax.annotation.Nullable + public Double getCompletionPercentage() { + return completionPercentage; + } + + public void setCompletionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + } + + + public BaseItemDto isRepeat(@javax.annotation.Nullable Boolean isRepeat) { + this.isRepeat = isRepeat; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is repeat. + * @return isRepeat + */ + @javax.annotation.Nullable + public Boolean getIsRepeat() { + return isRepeat; + } + + public void setIsRepeat(@javax.annotation.Nullable Boolean isRepeat) { + this.isRepeat = isRepeat; + } + + + public BaseItemDto episodeTitle(@javax.annotation.Nullable String episodeTitle) { + this.episodeTitle = episodeTitle; + return this; + } + + /** + * Gets or sets the episode title. + * @return episodeTitle + */ + @javax.annotation.Nullable + public String getEpisodeTitle() { + return episodeTitle; + } + + public void setEpisodeTitle(@javax.annotation.Nullable String episodeTitle) { + this.episodeTitle = episodeTitle; + } + + + public BaseItemDto channelType(@javax.annotation.Nullable ChannelType channelType) { + this.channelType = channelType; + return this; + } + + /** + * Gets or sets the type of the channel. + * @return channelType + */ + @javax.annotation.Nullable + public ChannelType getChannelType() { + return channelType; + } + + public void setChannelType(@javax.annotation.Nullable ChannelType channelType) { + this.channelType = channelType; + } + + + public BaseItemDto audio(@javax.annotation.Nullable ProgramAudio audio) { + this.audio = audio; + return this; + } + + /** + * Gets or sets the audio. + * @return audio + */ + @javax.annotation.Nullable + public ProgramAudio getAudio() { + return audio; + } + + public void setAudio(@javax.annotation.Nullable ProgramAudio audio) { + this.audio = audio; + } + + + public BaseItemDto isMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is movie. + * @return isMovie + */ + @javax.annotation.Nullable + public Boolean getIsMovie() { + return isMovie; + } + + public void setIsMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + } + + + public BaseItemDto isSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is sports. + * @return isSports + */ + @javax.annotation.Nullable + public Boolean getIsSports() { + return isSports; + } + + public void setIsSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + } + + + public BaseItemDto isSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is series. + * @return isSeries + */ + @javax.annotation.Nullable + public Boolean getIsSeries() { + return isSeries; + } + + public void setIsSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + } + + + public BaseItemDto isLive(@javax.annotation.Nullable Boolean isLive) { + this.isLive = isLive; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is live. + * @return isLive + */ + @javax.annotation.Nullable + public Boolean getIsLive() { + return isLive; + } + + public void setIsLive(@javax.annotation.Nullable Boolean isLive) { + this.isLive = isLive; + } + + + public BaseItemDto isNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is news. + * @return isNews + */ + @javax.annotation.Nullable + public Boolean getIsNews() { + return isNews; + } + + public void setIsNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + } + + + public BaseItemDto isKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is kids. + * @return isKids + */ + @javax.annotation.Nullable + public Boolean getIsKids() { + return isKids; + } + + public void setIsKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + } + + + public BaseItemDto isPremiere(@javax.annotation.Nullable Boolean isPremiere) { + this.isPremiere = isPremiere; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is premiere. + * @return isPremiere + */ + @javax.annotation.Nullable + public Boolean getIsPremiere() { + return isPremiere; + } + + public void setIsPremiere(@javax.annotation.Nullable Boolean isPremiere) { + this.isPremiere = isPremiere; + } + + + public BaseItemDto timerId(@javax.annotation.Nullable String timerId) { + this.timerId = timerId; + return this; + } + + /** + * Gets or sets the timer identifier. + * @return timerId + */ + @javax.annotation.Nullable + public String getTimerId() { + return timerId; + } + + public void setTimerId(@javax.annotation.Nullable String timerId) { + this.timerId = timerId; + } + + + public BaseItemDto currentProgram(@javax.annotation.Nullable BaseItemDto currentProgram) { + this.currentProgram = currentProgram; + return this; + } + + /** + * Gets or sets the current program. + * @return currentProgram + */ + @javax.annotation.Nullable + public BaseItemDto getCurrentProgram() { + return currentProgram; + } + + public void setCurrentProgram(@javax.annotation.Nullable BaseItemDto currentProgram) { + this.currentProgram = currentProgram; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDto baseItemDto = (BaseItemDto) o; + return Objects.equals(this.name, baseItemDto.name) && + Objects.equals(this.originalTitle, baseItemDto.originalTitle) && + Objects.equals(this.serverId, baseItemDto.serverId) && + Objects.equals(this.id, baseItemDto.id) && + Objects.equals(this.etag, baseItemDto.etag) && + Objects.equals(this.sourceType, baseItemDto.sourceType) && + Objects.equals(this.playlistItemId, baseItemDto.playlistItemId) && + Objects.equals(this.dateCreated, baseItemDto.dateCreated) && + Objects.equals(this.dateLastMediaAdded, baseItemDto.dateLastMediaAdded) && + Objects.equals(this.extraType, baseItemDto.extraType) && + Objects.equals(this.airsBeforeSeasonNumber, baseItemDto.airsBeforeSeasonNumber) && + Objects.equals(this.airsAfterSeasonNumber, baseItemDto.airsAfterSeasonNumber) && + Objects.equals(this.airsBeforeEpisodeNumber, baseItemDto.airsBeforeEpisodeNumber) && + Objects.equals(this.canDelete, baseItemDto.canDelete) && + Objects.equals(this.canDownload, baseItemDto.canDownload) && + Objects.equals(this.hasSubtitles, baseItemDto.hasSubtitles) && + Objects.equals(this.preferredMetadataLanguage, baseItemDto.preferredMetadataLanguage) && + Objects.equals(this.preferredMetadataCountryCode, baseItemDto.preferredMetadataCountryCode) && + Objects.equals(this.supportsSync, baseItemDto.supportsSync) && + Objects.equals(this.container, baseItemDto.container) && + Objects.equals(this.sortName, baseItemDto.sortName) && + Objects.equals(this.forcedSortName, baseItemDto.forcedSortName) && + Objects.equals(this.video3DFormat, baseItemDto.video3DFormat) && + Objects.equals(this.premiereDate, baseItemDto.premiereDate) && + Objects.equals(this.externalUrls, baseItemDto.externalUrls) && + Objects.equals(this.mediaSources, baseItemDto.mediaSources) && + Objects.equals(this.criticRating, baseItemDto.criticRating) && + Objects.equals(this.productionLocations, baseItemDto.productionLocations) && + Objects.equals(this.path, baseItemDto.path) && + Objects.equals(this.enableMediaSourceDisplay, baseItemDto.enableMediaSourceDisplay) && + Objects.equals(this.officialRating, baseItemDto.officialRating) && + Objects.equals(this.customRating, baseItemDto.customRating) && + Objects.equals(this.channelId, baseItemDto.channelId) && + Objects.equals(this.channelName, baseItemDto.channelName) && + Objects.equals(this.overview, baseItemDto.overview) && + Objects.equals(this.taglines, baseItemDto.taglines) && + Objects.equals(this.genres, baseItemDto.genres) && + Objects.equals(this.communityRating, baseItemDto.communityRating) && + Objects.equals(this.cumulativeRunTimeTicks, baseItemDto.cumulativeRunTimeTicks) && + Objects.equals(this.runTimeTicks, baseItemDto.runTimeTicks) && + Objects.equals(this.playAccess, baseItemDto.playAccess) && + Objects.equals(this.aspectRatio, baseItemDto.aspectRatio) && + Objects.equals(this.productionYear, baseItemDto.productionYear) && + Objects.equals(this.isPlaceHolder, baseItemDto.isPlaceHolder) && + Objects.equals(this.number, baseItemDto.number) && + Objects.equals(this.channelNumber, baseItemDto.channelNumber) && + Objects.equals(this.indexNumber, baseItemDto.indexNumber) && + Objects.equals(this.indexNumberEnd, baseItemDto.indexNumberEnd) && + Objects.equals(this.parentIndexNumber, baseItemDto.parentIndexNumber) && + Objects.equals(this.remoteTrailers, baseItemDto.remoteTrailers) && + Objects.equals(this.providerIds, baseItemDto.providerIds) && + Objects.equals(this.isHD, baseItemDto.isHD) && + Objects.equals(this.isFolder, baseItemDto.isFolder) && + Objects.equals(this.parentId, baseItemDto.parentId) && + Objects.equals(this.type, baseItemDto.type) && + Objects.equals(this.people, baseItemDto.people) && + Objects.equals(this.studios, baseItemDto.studios) && + Objects.equals(this.genreItems, baseItemDto.genreItems) && + Objects.equals(this.parentLogoItemId, baseItemDto.parentLogoItemId) && + Objects.equals(this.parentBackdropItemId, baseItemDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, baseItemDto.parentBackdropImageTags) && + Objects.equals(this.localTrailerCount, baseItemDto.localTrailerCount) && + Objects.equals(this.userData, baseItemDto.userData) && + Objects.equals(this.recursiveItemCount, baseItemDto.recursiveItemCount) && + Objects.equals(this.childCount, baseItemDto.childCount) && + Objects.equals(this.seriesName, baseItemDto.seriesName) && + Objects.equals(this.seriesId, baseItemDto.seriesId) && + Objects.equals(this.seasonId, baseItemDto.seasonId) && + Objects.equals(this.specialFeatureCount, baseItemDto.specialFeatureCount) && + Objects.equals(this.displayPreferencesId, baseItemDto.displayPreferencesId) && + Objects.equals(this.status, baseItemDto.status) && + Objects.equals(this.airTime, baseItemDto.airTime) && + Objects.equals(this.airDays, baseItemDto.airDays) && + Objects.equals(this.tags, baseItemDto.tags) && + Objects.equals(this.primaryImageAspectRatio, baseItemDto.primaryImageAspectRatio) && + Objects.equals(this.artists, baseItemDto.artists) && + Objects.equals(this.artistItems, baseItemDto.artistItems) && + Objects.equals(this.album, baseItemDto.album) && + Objects.equals(this.collectionType, baseItemDto.collectionType) && + Objects.equals(this.displayOrder, baseItemDto.displayOrder) && + Objects.equals(this.albumId, baseItemDto.albumId) && + Objects.equals(this.albumPrimaryImageTag, baseItemDto.albumPrimaryImageTag) && + Objects.equals(this.seriesPrimaryImageTag, baseItemDto.seriesPrimaryImageTag) && + Objects.equals(this.albumArtist, baseItemDto.albumArtist) && + Objects.equals(this.albumArtists, baseItemDto.albumArtists) && + Objects.equals(this.seasonName, baseItemDto.seasonName) && + Objects.equals(this.mediaStreams, baseItemDto.mediaStreams) && + Objects.equals(this.videoType, baseItemDto.videoType) && + Objects.equals(this.partCount, baseItemDto.partCount) && + Objects.equals(this.mediaSourceCount, baseItemDto.mediaSourceCount) && + Objects.equals(this.imageTags, baseItemDto.imageTags) && + Objects.equals(this.backdropImageTags, baseItemDto.backdropImageTags) && + Objects.equals(this.screenshotImageTags, baseItemDto.screenshotImageTags) && + Objects.equals(this.parentLogoImageTag, baseItemDto.parentLogoImageTag) && + Objects.equals(this.parentArtItemId, baseItemDto.parentArtItemId) && + Objects.equals(this.parentArtImageTag, baseItemDto.parentArtImageTag) && + Objects.equals(this.seriesThumbImageTag, baseItemDto.seriesThumbImageTag) && + Objects.equals(this.imageBlurHashes, baseItemDto.imageBlurHashes) && + Objects.equals(this.seriesStudio, baseItemDto.seriesStudio) && + Objects.equals(this.parentThumbItemId, baseItemDto.parentThumbItemId) && + Objects.equals(this.parentThumbImageTag, baseItemDto.parentThumbImageTag) && + Objects.equals(this.parentPrimaryImageItemId, baseItemDto.parentPrimaryImageItemId) && + Objects.equals(this.parentPrimaryImageTag, baseItemDto.parentPrimaryImageTag) && + Objects.equals(this.chapters, baseItemDto.chapters) && + Objects.equals(this.locationType, baseItemDto.locationType) && + Objects.equals(this.isoType, baseItemDto.isoType) && + Objects.equals(this.mediaType, baseItemDto.mediaType) && + Objects.equals(this.endDate, baseItemDto.endDate) && + Objects.equals(this.lockedFields, baseItemDto.lockedFields) && + Objects.equals(this.trailerCount, baseItemDto.trailerCount) && + Objects.equals(this.movieCount, baseItemDto.movieCount) && + Objects.equals(this.seriesCount, baseItemDto.seriesCount) && + Objects.equals(this.programCount, baseItemDto.programCount) && + Objects.equals(this.episodeCount, baseItemDto.episodeCount) && + Objects.equals(this.songCount, baseItemDto.songCount) && + Objects.equals(this.albumCount, baseItemDto.albumCount) && + Objects.equals(this.artistCount, baseItemDto.artistCount) && + Objects.equals(this.musicVideoCount, baseItemDto.musicVideoCount) && + Objects.equals(this.lockData, baseItemDto.lockData) && + Objects.equals(this.width, baseItemDto.width) && + Objects.equals(this.height, baseItemDto.height) && + Objects.equals(this.cameraMake, baseItemDto.cameraMake) && + Objects.equals(this.cameraModel, baseItemDto.cameraModel) && + Objects.equals(this.software, baseItemDto.software) && + Objects.equals(this.exposureTime, baseItemDto.exposureTime) && + Objects.equals(this.focalLength, baseItemDto.focalLength) && + Objects.equals(this.imageOrientation, baseItemDto.imageOrientation) && + Objects.equals(this.aperture, baseItemDto.aperture) && + Objects.equals(this.shutterSpeed, baseItemDto.shutterSpeed) && + Objects.equals(this.latitude, baseItemDto.latitude) && + Objects.equals(this.longitude, baseItemDto.longitude) && + Objects.equals(this.altitude, baseItemDto.altitude) && + Objects.equals(this.isoSpeedRating, baseItemDto.isoSpeedRating) && + Objects.equals(this.seriesTimerId, baseItemDto.seriesTimerId) && + Objects.equals(this.programId, baseItemDto.programId) && + Objects.equals(this.channelPrimaryImageTag, baseItemDto.channelPrimaryImageTag) && + Objects.equals(this.startDate, baseItemDto.startDate) && + Objects.equals(this.completionPercentage, baseItemDto.completionPercentage) && + Objects.equals(this.isRepeat, baseItemDto.isRepeat) && + Objects.equals(this.episodeTitle, baseItemDto.episodeTitle) && + Objects.equals(this.channelType, baseItemDto.channelType) && + Objects.equals(this.audio, baseItemDto.audio) && + Objects.equals(this.isMovie, baseItemDto.isMovie) && + Objects.equals(this.isSports, baseItemDto.isSports) && + Objects.equals(this.isSeries, baseItemDto.isSeries) && + Objects.equals(this.isLive, baseItemDto.isLive) && + Objects.equals(this.isNews, baseItemDto.isNews) && + Objects.equals(this.isKids, baseItemDto.isKids) && + Objects.equals(this.isPremiere, baseItemDto.isPremiere) && + Objects.equals(this.timerId, baseItemDto.timerId) && + Objects.equals(this.currentProgram, baseItemDto.currentProgram); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, serverId, id, etag, sourceType, playlistItemId, dateCreated, dateLastMediaAdded, extraType, airsBeforeSeasonNumber, airsAfterSeasonNumber, airsBeforeEpisodeNumber, canDelete, canDownload, hasSubtitles, preferredMetadataLanguage, preferredMetadataCountryCode, supportsSync, container, sortName, forcedSortName, video3DFormat, premiereDate, externalUrls, mediaSources, criticRating, productionLocations, path, enableMediaSourceDisplay, officialRating, customRating, channelId, channelName, overview, taglines, genres, communityRating, cumulativeRunTimeTicks, runTimeTicks, playAccess, aspectRatio, productionYear, isPlaceHolder, number, channelNumber, indexNumber, indexNumberEnd, parentIndexNumber, remoteTrailers, providerIds, isHD, isFolder, parentId, type, people, studios, genreItems, parentLogoItemId, parentBackdropItemId, parentBackdropImageTags, localTrailerCount, userData, recursiveItemCount, childCount, seriesName, seriesId, seasonId, specialFeatureCount, displayPreferencesId, status, airTime, airDays, tags, primaryImageAspectRatio, artists, artistItems, album, collectionType, displayOrder, albumId, albumPrimaryImageTag, seriesPrimaryImageTag, albumArtist, albumArtists, seasonName, mediaStreams, videoType, partCount, mediaSourceCount, imageTags, backdropImageTags, screenshotImageTags, parentLogoImageTag, parentArtItemId, parentArtImageTag, seriesThumbImageTag, imageBlurHashes, seriesStudio, parentThumbItemId, parentThumbImageTag, parentPrimaryImageItemId, parentPrimaryImageTag, chapters, locationType, isoType, mediaType, endDate, lockedFields, trailerCount, movieCount, seriesCount, programCount, episodeCount, songCount, albumCount, artistCount, musicVideoCount, lockData, width, height, cameraMake, cameraModel, software, exposureTime, focalLength, imageOrientation, aperture, shutterSpeed, latitude, longitude, altitude, isoSpeedRating, seriesTimerId, programId, channelPrimaryImageTag, startDate, completionPercentage, isRepeat, episodeTitle, channelType, audio, isMovie, isSports, isSeries, isLive, isNews, isKids, isPremiere, timerId, currentProgram); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" etag: ").append(toIndentedString(etag)).append("\n"); + sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateLastMediaAdded: ").append(toIndentedString(dateLastMediaAdded)).append("\n"); + sb.append(" extraType: ").append(toIndentedString(extraType)).append("\n"); + sb.append(" airsBeforeSeasonNumber: ").append(toIndentedString(airsBeforeSeasonNumber)).append("\n"); + sb.append(" airsAfterSeasonNumber: ").append(toIndentedString(airsAfterSeasonNumber)).append("\n"); + sb.append(" airsBeforeEpisodeNumber: ").append(toIndentedString(airsBeforeEpisodeNumber)).append("\n"); + sb.append(" canDelete: ").append(toIndentedString(canDelete)).append("\n"); + sb.append(" canDownload: ").append(toIndentedString(canDownload)).append("\n"); + sb.append(" hasSubtitles: ").append(toIndentedString(hasSubtitles)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" preferredMetadataCountryCode: ").append(toIndentedString(preferredMetadataCountryCode)).append("\n"); + sb.append(" supportsSync: ").append(toIndentedString(supportsSync)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" sortName: ").append(toIndentedString(sortName)).append("\n"); + sb.append(" forcedSortName: ").append(toIndentedString(forcedSortName)).append("\n"); + sb.append(" video3DFormat: ").append(toIndentedString(video3DFormat)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" externalUrls: ").append(toIndentedString(externalUrls)).append("\n"); + sb.append(" mediaSources: ").append(toIndentedString(mediaSources)).append("\n"); + sb.append(" criticRating: ").append(toIndentedString(criticRating)).append("\n"); + sb.append(" productionLocations: ").append(toIndentedString(productionLocations)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" enableMediaSourceDisplay: ").append(toIndentedString(enableMediaSourceDisplay)).append("\n"); + sb.append(" officialRating: ").append(toIndentedString(officialRating)).append("\n"); + sb.append(" customRating: ").append(toIndentedString(customRating)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" taglines: ").append(toIndentedString(taglines)).append("\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" cumulativeRunTimeTicks: ").append(toIndentedString(cumulativeRunTimeTicks)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" playAccess: ").append(toIndentedString(playAccess)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" isPlaceHolder: ").append(toIndentedString(isPlaceHolder)).append("\n"); + sb.append(" number: ").append(toIndentedString(number)).append("\n"); + sb.append(" channelNumber: ").append(toIndentedString(channelNumber)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" indexNumberEnd: ").append(toIndentedString(indexNumberEnd)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" remoteTrailers: ").append(toIndentedString(remoteTrailers)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" isHD: ").append(toIndentedString(isHD)).append("\n"); + sb.append(" isFolder: ").append(toIndentedString(isFolder)).append("\n"); + sb.append(" parentId: ").append(toIndentedString(parentId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" people: ").append(toIndentedString(people)).append("\n"); + sb.append(" studios: ").append(toIndentedString(studios)).append("\n"); + sb.append(" genreItems: ").append(toIndentedString(genreItems)).append("\n"); + sb.append(" parentLogoItemId: ").append(toIndentedString(parentLogoItemId)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" localTrailerCount: ").append(toIndentedString(localTrailerCount)).append("\n"); + sb.append(" userData: ").append(toIndentedString(userData)).append("\n"); + sb.append(" recursiveItemCount: ").append(toIndentedString(recursiveItemCount)).append("\n"); + sb.append(" childCount: ").append(toIndentedString(childCount)).append("\n"); + sb.append(" seriesName: ").append(toIndentedString(seriesName)).append("\n"); + sb.append(" seriesId: ").append(toIndentedString(seriesId)).append("\n"); + sb.append(" seasonId: ").append(toIndentedString(seasonId)).append("\n"); + sb.append(" specialFeatureCount: ").append(toIndentedString(specialFeatureCount)).append("\n"); + sb.append(" displayPreferencesId: ").append(toIndentedString(displayPreferencesId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" airTime: ").append(toIndentedString(airTime)).append("\n"); + sb.append(" airDays: ").append(toIndentedString(airDays)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append(" artistItems: ").append(toIndentedString(artistItems)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" collectionType: ").append(toIndentedString(collectionType)).append("\n"); + sb.append(" displayOrder: ").append(toIndentedString(displayOrder)).append("\n"); + sb.append(" albumId: ").append(toIndentedString(albumId)).append("\n"); + sb.append(" albumPrimaryImageTag: ").append(toIndentedString(albumPrimaryImageTag)).append("\n"); + sb.append(" seriesPrimaryImageTag: ").append(toIndentedString(seriesPrimaryImageTag)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" seasonName: ").append(toIndentedString(seasonName)).append("\n"); + sb.append(" mediaStreams: ").append(toIndentedString(mediaStreams)).append("\n"); + sb.append(" videoType: ").append(toIndentedString(videoType)).append("\n"); + sb.append(" partCount: ").append(toIndentedString(partCount)).append("\n"); + sb.append(" mediaSourceCount: ").append(toIndentedString(mediaSourceCount)).append("\n"); + sb.append(" imageTags: ").append(toIndentedString(imageTags)).append("\n"); + sb.append(" backdropImageTags: ").append(toIndentedString(backdropImageTags)).append("\n"); + sb.append(" screenshotImageTags: ").append(toIndentedString(screenshotImageTags)).append("\n"); + sb.append(" parentLogoImageTag: ").append(toIndentedString(parentLogoImageTag)).append("\n"); + sb.append(" parentArtItemId: ").append(toIndentedString(parentArtItemId)).append("\n"); + sb.append(" parentArtImageTag: ").append(toIndentedString(parentArtImageTag)).append("\n"); + sb.append(" seriesThumbImageTag: ").append(toIndentedString(seriesThumbImageTag)).append("\n"); + sb.append(" imageBlurHashes: ").append(toIndentedString(imageBlurHashes)).append("\n"); + sb.append(" seriesStudio: ").append(toIndentedString(seriesStudio)).append("\n"); + sb.append(" parentThumbItemId: ").append(toIndentedString(parentThumbItemId)).append("\n"); + sb.append(" parentThumbImageTag: ").append(toIndentedString(parentThumbImageTag)).append("\n"); + sb.append(" parentPrimaryImageItemId: ").append(toIndentedString(parentPrimaryImageItemId)).append("\n"); + sb.append(" parentPrimaryImageTag: ").append(toIndentedString(parentPrimaryImageTag)).append("\n"); + sb.append(" chapters: ").append(toIndentedString(chapters)).append("\n"); + sb.append(" locationType: ").append(toIndentedString(locationType)).append("\n"); + sb.append(" isoType: ").append(toIndentedString(isoType)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" lockedFields: ").append(toIndentedString(lockedFields)).append("\n"); + sb.append(" trailerCount: ").append(toIndentedString(trailerCount)).append("\n"); + sb.append(" movieCount: ").append(toIndentedString(movieCount)).append("\n"); + sb.append(" seriesCount: ").append(toIndentedString(seriesCount)).append("\n"); + sb.append(" programCount: ").append(toIndentedString(programCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" albumCount: ").append(toIndentedString(albumCount)).append("\n"); + sb.append(" artistCount: ").append(toIndentedString(artistCount)).append("\n"); + sb.append(" musicVideoCount: ").append(toIndentedString(musicVideoCount)).append("\n"); + sb.append(" lockData: ").append(toIndentedString(lockData)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" cameraMake: ").append(toIndentedString(cameraMake)).append("\n"); + sb.append(" cameraModel: ").append(toIndentedString(cameraModel)).append("\n"); + sb.append(" software: ").append(toIndentedString(software)).append("\n"); + sb.append(" exposureTime: ").append(toIndentedString(exposureTime)).append("\n"); + sb.append(" focalLength: ").append(toIndentedString(focalLength)).append("\n"); + sb.append(" imageOrientation: ").append(toIndentedString(imageOrientation)).append("\n"); + sb.append(" aperture: ").append(toIndentedString(aperture)).append("\n"); + sb.append(" shutterSpeed: ").append(toIndentedString(shutterSpeed)).append("\n"); + sb.append(" latitude: ").append(toIndentedString(latitude)).append("\n"); + sb.append(" longitude: ").append(toIndentedString(longitude)).append("\n"); + sb.append(" altitude: ").append(toIndentedString(altitude)).append("\n"); + sb.append(" isoSpeedRating: ").append(toIndentedString(isoSpeedRating)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" completionPercentage: ").append(toIndentedString(completionPercentage)).append("\n"); + sb.append(" isRepeat: ").append(toIndentedString(isRepeat)).append("\n"); + sb.append(" episodeTitle: ").append(toIndentedString(episodeTitle)).append("\n"); + sb.append(" channelType: ").append(toIndentedString(channelType)).append("\n"); + sb.append(" audio: ").append(toIndentedString(audio)).append("\n"); + sb.append(" isMovie: ").append(toIndentedString(isMovie)).append("\n"); + sb.append(" isSports: ").append(toIndentedString(isSports)).append("\n"); + sb.append(" isSeries: ").append(toIndentedString(isSeries)).append("\n"); + sb.append(" isLive: ").append(toIndentedString(isLive)).append("\n"); + sb.append(" isNews: ").append(toIndentedString(isNews)).append("\n"); + sb.append(" isKids: ").append(toIndentedString(isKids)).append("\n"); + sb.append(" isPremiere: ").append(toIndentedString(isPremiere)).append("\n"); + sb.append(" timerId: ").append(toIndentedString(timerId)).append("\n"); + sb.append(" currentProgram: ").append(toIndentedString(currentProgram)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("ServerId"); + openapiFields.add("Id"); + openapiFields.add("Etag"); + openapiFields.add("SourceType"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("DateCreated"); + openapiFields.add("DateLastMediaAdded"); + openapiFields.add("ExtraType"); + openapiFields.add("AirsBeforeSeasonNumber"); + openapiFields.add("AirsAfterSeasonNumber"); + openapiFields.add("AirsBeforeEpisodeNumber"); + openapiFields.add("CanDelete"); + openapiFields.add("CanDownload"); + openapiFields.add("HasSubtitles"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("PreferredMetadataCountryCode"); + openapiFields.add("SupportsSync"); + openapiFields.add("Container"); + openapiFields.add("SortName"); + openapiFields.add("ForcedSortName"); + openapiFields.add("Video3DFormat"); + openapiFields.add("PremiereDate"); + openapiFields.add("ExternalUrls"); + openapiFields.add("MediaSources"); + openapiFields.add("CriticRating"); + openapiFields.add("ProductionLocations"); + openapiFields.add("Path"); + openapiFields.add("EnableMediaSourceDisplay"); + openapiFields.add("OfficialRating"); + openapiFields.add("CustomRating"); + openapiFields.add("ChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("Overview"); + openapiFields.add("Taglines"); + openapiFields.add("Genres"); + openapiFields.add("CommunityRating"); + openapiFields.add("CumulativeRunTimeTicks"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("PlayAccess"); + openapiFields.add("AspectRatio"); + openapiFields.add("ProductionYear"); + openapiFields.add("IsPlaceHolder"); + openapiFields.add("Number"); + openapiFields.add("ChannelNumber"); + openapiFields.add("IndexNumber"); + openapiFields.add("IndexNumberEnd"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("RemoteTrailers"); + openapiFields.add("ProviderIds"); + openapiFields.add("IsHD"); + openapiFields.add("IsFolder"); + openapiFields.add("ParentId"); + openapiFields.add("Type"); + openapiFields.add("People"); + openapiFields.add("Studios"); + openapiFields.add("GenreItems"); + openapiFields.add("ParentLogoItemId"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("LocalTrailerCount"); + openapiFields.add("UserData"); + openapiFields.add("RecursiveItemCount"); + openapiFields.add("ChildCount"); + openapiFields.add("SeriesName"); + openapiFields.add("SeriesId"); + openapiFields.add("SeasonId"); + openapiFields.add("SpecialFeatureCount"); + openapiFields.add("DisplayPreferencesId"); + openapiFields.add("Status"); + openapiFields.add("AirTime"); + openapiFields.add("AirDays"); + openapiFields.add("Tags"); + openapiFields.add("PrimaryImageAspectRatio"); + openapiFields.add("Artists"); + openapiFields.add("ArtistItems"); + openapiFields.add("Album"); + openapiFields.add("CollectionType"); + openapiFields.add("DisplayOrder"); + openapiFields.add("AlbumId"); + openapiFields.add("AlbumPrimaryImageTag"); + openapiFields.add("SeriesPrimaryImageTag"); + openapiFields.add("AlbumArtist"); + openapiFields.add("AlbumArtists"); + openapiFields.add("SeasonName"); + openapiFields.add("MediaStreams"); + openapiFields.add("VideoType"); + openapiFields.add("PartCount"); + openapiFields.add("MediaSourceCount"); + openapiFields.add("ImageTags"); + openapiFields.add("BackdropImageTags"); + openapiFields.add("ScreenshotImageTags"); + openapiFields.add("ParentLogoImageTag"); + openapiFields.add("ParentArtItemId"); + openapiFields.add("ParentArtImageTag"); + openapiFields.add("SeriesThumbImageTag"); + openapiFields.add("ImageBlurHashes"); + openapiFields.add("SeriesStudio"); + openapiFields.add("ParentThumbItemId"); + openapiFields.add("ParentThumbImageTag"); + openapiFields.add("ParentPrimaryImageItemId"); + openapiFields.add("ParentPrimaryImageTag"); + openapiFields.add("Chapters"); + openapiFields.add("LocationType"); + openapiFields.add("IsoType"); + openapiFields.add("MediaType"); + openapiFields.add("EndDate"); + openapiFields.add("LockedFields"); + openapiFields.add("TrailerCount"); + openapiFields.add("MovieCount"); + openapiFields.add("SeriesCount"); + openapiFields.add("ProgramCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("SongCount"); + openapiFields.add("AlbumCount"); + openapiFields.add("ArtistCount"); + openapiFields.add("MusicVideoCount"); + openapiFields.add("LockData"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("CameraMake"); + openapiFields.add("CameraModel"); + openapiFields.add("Software"); + openapiFields.add("ExposureTime"); + openapiFields.add("FocalLength"); + openapiFields.add("ImageOrientation"); + openapiFields.add("Aperture"); + openapiFields.add("ShutterSpeed"); + openapiFields.add("Latitude"); + openapiFields.add("Longitude"); + openapiFields.add("Altitude"); + openapiFields.add("IsoSpeedRating"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("ProgramId"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("StartDate"); + openapiFields.add("CompletionPercentage"); + openapiFields.add("IsRepeat"); + openapiFields.add("EpisodeTitle"); + openapiFields.add("ChannelType"); + openapiFields.add("Audio"); + openapiFields.add("IsMovie"); + openapiFields.add("IsSports"); + openapiFields.add("IsSeries"); + openapiFields.add("IsLive"); + openapiFields.add("IsNews"); + openapiFields.add("IsKids"); + openapiFields.add("IsPremiere"); + openapiFields.add("TimerId"); + openapiFields.add("CurrentProgram"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDto is not found in the empty JSON string", BaseItemDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Etag") != null && !jsonObj.get("Etag").isJsonNull()) && !jsonObj.get("Etag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Etag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Etag").toString())); + } + if ((jsonObj.get("SourceType") != null && !jsonObj.get("SourceType").isJsonNull()) && !jsonObj.get("SourceType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SourceType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SourceType").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + if ((jsonObj.get("ExtraType") != null && !jsonObj.get("ExtraType").isJsonNull()) && !jsonObj.get("ExtraType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExtraType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExtraType").toString())); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("PreferredMetadataCountryCode") != null && !jsonObj.get("PreferredMetadataCountryCode").isJsonNull()) && !jsonObj.get("PreferredMetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataCountryCode").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("SortName") != null && !jsonObj.get("SortName").isJsonNull()) && !jsonObj.get("SortName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SortName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SortName").toString())); + } + if ((jsonObj.get("ForcedSortName") != null && !jsonObj.get("ForcedSortName").isJsonNull()) && !jsonObj.get("ForcedSortName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ForcedSortName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ForcedSortName").toString())); + } + // validate the optional field `Video3DFormat` + if (jsonObj.get("Video3DFormat") != null && !jsonObj.get("Video3DFormat").isJsonNull()) { + Video3DFormat.validateJsonElement(jsonObj.get("Video3DFormat")); + } + if (jsonObj.get("ExternalUrls") != null && !jsonObj.get("ExternalUrls").isJsonNull()) { + JsonArray jsonArrayexternalUrls = jsonObj.getAsJsonArray("ExternalUrls"); + if (jsonArrayexternalUrls != null) { + // ensure the json data is an array + if (!jsonObj.get("ExternalUrls").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalUrls` to be an array in the JSON string but got `%s`", jsonObj.get("ExternalUrls").toString())); + } + + // validate the optional field `ExternalUrls` (array) + for (int i = 0; i < jsonArrayexternalUrls.size(); i++) { + ExternalUrl.validateJsonElement(jsonArrayexternalUrls.get(i)); + }; + } + } + if (jsonObj.get("MediaSources") != null && !jsonObj.get("MediaSources").isJsonNull()) { + JsonArray jsonArraymediaSources = jsonObj.getAsJsonArray("MediaSources"); + if (jsonArraymediaSources != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaSources").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSources` to be an array in the JSON string but got `%s`", jsonObj.get("MediaSources").toString())); + } + + // validate the optional field `MediaSources` (array) + for (int i = 0; i < jsonArraymediaSources.size(); i++) { + MediaSourceInfo.validateJsonElement(jsonArraymediaSources.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("ProductionLocations") != null && !jsonObj.get("ProductionLocations").isJsonNull() && !jsonObj.get("ProductionLocations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductionLocations` to be an array in the JSON string but got `%s`", jsonObj.get("ProductionLocations").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("OfficialRating") != null && !jsonObj.get("OfficialRating").isJsonNull()) && !jsonObj.get("OfficialRating").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OfficialRating` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OfficialRating").toString())); + } + if ((jsonObj.get("CustomRating") != null && !jsonObj.get("CustomRating").isJsonNull()) && !jsonObj.get("CustomRating").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomRating` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomRating").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Taglines") != null && !jsonObj.get("Taglines").isJsonNull() && !jsonObj.get("Taglines").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Taglines` to be an array in the JSON string but got `%s`", jsonObj.get("Taglines").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // validate the optional field `PlayAccess` + if (jsonObj.get("PlayAccess") != null && !jsonObj.get("PlayAccess").isJsonNull()) { + PlayAccess.validateJsonElement(jsonObj.get("PlayAccess")); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + if ((jsonObj.get("Number") != null && !jsonObj.get("Number").isJsonNull()) && !jsonObj.get("Number").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Number` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Number").toString())); + } + if ((jsonObj.get("ChannelNumber") != null && !jsonObj.get("ChannelNumber").isJsonNull()) && !jsonObj.get("ChannelNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelNumber").toString())); + } + if (jsonObj.get("RemoteTrailers") != null && !jsonObj.get("RemoteTrailers").isJsonNull()) { + JsonArray jsonArrayremoteTrailers = jsonObj.getAsJsonArray("RemoteTrailers"); + if (jsonArrayremoteTrailers != null) { + // ensure the json data is an array + if (!jsonObj.get("RemoteTrailers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteTrailers` to be an array in the JSON string but got `%s`", jsonObj.get("RemoteTrailers").toString())); + } + + // validate the optional field `RemoteTrailers` (array) + for (int i = 0; i < jsonArrayremoteTrailers.size(); i++) { + MediaUrl.validateJsonElement(jsonArrayremoteTrailers.get(i)); + }; + } + } + if ((jsonObj.get("ParentId") != null && !jsonObj.get("ParentId").isJsonNull()) && !jsonObj.get("ParentId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + BaseItemKind.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("People") != null && !jsonObj.get("People").isJsonNull()) { + JsonArray jsonArraypeople = jsonObj.getAsJsonArray("People"); + if (jsonArraypeople != null) { + // ensure the json data is an array + if (!jsonObj.get("People").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `People` to be an array in the JSON string but got `%s`", jsonObj.get("People").toString())); + } + + // validate the optional field `People` (array) + for (int i = 0; i < jsonArraypeople.size(); i++) { + BaseItemPerson.validateJsonElement(jsonArraypeople.get(i)); + }; + } + } + if (jsonObj.get("Studios") != null && !jsonObj.get("Studios").isJsonNull()) { + JsonArray jsonArraystudios = jsonObj.getAsJsonArray("Studios"); + if (jsonArraystudios != null) { + // ensure the json data is an array + if (!jsonObj.get("Studios").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Studios` to be an array in the JSON string but got `%s`", jsonObj.get("Studios").toString())); + } + + // validate the optional field `Studios` (array) + for (int i = 0; i < jsonArraystudios.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraystudios.get(i)); + }; + } + } + if (jsonObj.get("GenreItems") != null && !jsonObj.get("GenreItems").isJsonNull()) { + JsonArray jsonArraygenreItems = jsonObj.getAsJsonArray("GenreItems"); + if (jsonArraygenreItems != null) { + // ensure the json data is an array + if (!jsonObj.get("GenreItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GenreItems` to be an array in the JSON string but got `%s`", jsonObj.get("GenreItems").toString())); + } + + // validate the optional field `GenreItems` (array) + for (int i = 0; i < jsonArraygenreItems.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraygenreItems.get(i)); + }; + } + } + if ((jsonObj.get("ParentLogoItemId") != null && !jsonObj.get("ParentLogoItemId").isJsonNull()) && !jsonObj.get("ParentLogoItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentLogoItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentLogoItemId").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `UserData` + if (jsonObj.get("UserData") != null && !jsonObj.get("UserData").isJsonNull()) { + UserItemDataDto.validateJsonElement(jsonObj.get("UserData")); + } + if ((jsonObj.get("SeriesName") != null && !jsonObj.get("SeriesName").isJsonNull()) && !jsonObj.get("SeriesName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesName").toString())); + } + if ((jsonObj.get("SeriesId") != null && !jsonObj.get("SeriesId").isJsonNull()) && !jsonObj.get("SeriesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesId").toString())); + } + if ((jsonObj.get("SeasonId") != null && !jsonObj.get("SeasonId").isJsonNull()) && !jsonObj.get("SeasonId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonId").toString())); + } + if ((jsonObj.get("DisplayPreferencesId") != null && !jsonObj.get("DisplayPreferencesId").isJsonNull()) && !jsonObj.get("DisplayPreferencesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayPreferencesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayPreferencesId").toString())); + } + if ((jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) && !jsonObj.get("Status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Status").toString())); + } + if ((jsonObj.get("AirTime") != null && !jsonObj.get("AirTime").isJsonNull()) && !jsonObj.get("AirTime").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AirTime` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AirTime").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AirDays") != null && !jsonObj.get("AirDays").isJsonNull() && !jsonObj.get("AirDays").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AirDays` to be an array in the JSON string but got `%s`", jsonObj.get("AirDays").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + if (jsonObj.get("ArtistItems") != null && !jsonObj.get("ArtistItems").isJsonNull()) { + JsonArray jsonArrayartistItems = jsonObj.getAsJsonArray("ArtistItems"); + if (jsonArrayartistItems != null) { + // ensure the json data is an array + if (!jsonObj.get("ArtistItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ArtistItems` to be an array in the JSON string but got `%s`", jsonObj.get("ArtistItems").toString())); + } + + // validate the optional field `ArtistItems` (array) + for (int i = 0; i < jsonArrayartistItems.size(); i++) { + NameGuidPair.validateJsonElement(jsonArrayartistItems.get(i)); + }; + } + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + if ((jsonObj.get("CollectionType") != null && !jsonObj.get("CollectionType").isJsonNull()) && !jsonObj.get("CollectionType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CollectionType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CollectionType").toString())); + } + if ((jsonObj.get("DisplayOrder") != null && !jsonObj.get("DisplayOrder").isJsonNull()) && !jsonObj.get("DisplayOrder").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayOrder` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayOrder").toString())); + } + if ((jsonObj.get("AlbumId") != null && !jsonObj.get("AlbumId").isJsonNull()) && !jsonObj.get("AlbumId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumId").toString())); + } + if ((jsonObj.get("AlbumPrimaryImageTag") != null && !jsonObj.get("AlbumPrimaryImageTag").isJsonNull()) && !jsonObj.get("AlbumPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumPrimaryImageTag").toString())); + } + if ((jsonObj.get("SeriesPrimaryImageTag") != null && !jsonObj.get("SeriesPrimaryImageTag").isJsonNull()) && !jsonObj.get("SeriesPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesPrimaryImageTag").toString())); + } + if ((jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) && !jsonObj.get("AlbumArtist").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtist` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumArtist").toString())); + } + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull()) { + JsonArray jsonArrayalbumArtists = jsonObj.getAsJsonArray("AlbumArtists"); + if (jsonArrayalbumArtists != null) { + // ensure the json data is an array + if (!jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + + // validate the optional field `AlbumArtists` (array) + for (int i = 0; i < jsonArrayalbumArtists.size(); i++) { + NameGuidPair.validateJsonElement(jsonArrayalbumArtists.get(i)); + }; + } + } + if ((jsonObj.get("SeasonName") != null && !jsonObj.get("SeasonName").isJsonNull()) && !jsonObj.get("SeasonName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonName").toString())); + } + if (jsonObj.get("MediaStreams") != null && !jsonObj.get("MediaStreams").isJsonNull()) { + JsonArray jsonArraymediaStreams = jsonObj.getAsJsonArray("MediaStreams"); + if (jsonArraymediaStreams != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaStreams").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaStreams` to be an array in the JSON string but got `%s`", jsonObj.get("MediaStreams").toString())); + } + + // validate the optional field `MediaStreams` (array) + for (int i = 0; i < jsonArraymediaStreams.size(); i++) { + MediaStream.validateJsonElement(jsonArraymediaStreams.get(i)); + }; + } + } + // validate the optional field `VideoType` + if (jsonObj.get("VideoType") != null && !jsonObj.get("VideoType").isJsonNull()) { + VideoType.validateJsonElement(jsonObj.get("VideoType")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BackdropImageTags") != null && !jsonObj.get("BackdropImageTags").isJsonNull() && !jsonObj.get("BackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("BackdropImageTags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ScreenshotImageTags") != null && !jsonObj.get("ScreenshotImageTags").isJsonNull() && !jsonObj.get("ScreenshotImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ScreenshotImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ScreenshotImageTags").toString())); + } + if ((jsonObj.get("ParentLogoImageTag") != null && !jsonObj.get("ParentLogoImageTag").isJsonNull()) && !jsonObj.get("ParentLogoImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentLogoImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentLogoImageTag").toString())); + } + if ((jsonObj.get("ParentArtItemId") != null && !jsonObj.get("ParentArtItemId").isJsonNull()) && !jsonObj.get("ParentArtItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentArtItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentArtItemId").toString())); + } + if ((jsonObj.get("ParentArtImageTag") != null && !jsonObj.get("ParentArtImageTag").isJsonNull()) && !jsonObj.get("ParentArtImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentArtImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentArtImageTag").toString())); + } + if ((jsonObj.get("SeriesThumbImageTag") != null && !jsonObj.get("SeriesThumbImageTag").isJsonNull()) && !jsonObj.get("SeriesThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesThumbImageTag").toString())); + } + // validate the optional field `ImageBlurHashes` + if (jsonObj.get("ImageBlurHashes") != null && !jsonObj.get("ImageBlurHashes").isJsonNull()) { + BaseItemDtoImageBlurHashes.validateJsonElement(jsonObj.get("ImageBlurHashes")); + } + if ((jsonObj.get("SeriesStudio") != null && !jsonObj.get("SeriesStudio").isJsonNull()) && !jsonObj.get("SeriesStudio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesStudio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesStudio").toString())); + } + if ((jsonObj.get("ParentThumbItemId") != null && !jsonObj.get("ParentThumbItemId").isJsonNull()) && !jsonObj.get("ParentThumbItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbItemId").toString())); + } + if ((jsonObj.get("ParentThumbImageTag") != null && !jsonObj.get("ParentThumbImageTag").isJsonNull()) && !jsonObj.get("ParentThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbImageTag").toString())); + } + if ((jsonObj.get("ParentPrimaryImageItemId") != null && !jsonObj.get("ParentPrimaryImageItemId").isJsonNull()) && !jsonObj.get("ParentPrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageItemId").toString())); + } + if ((jsonObj.get("ParentPrimaryImageTag") != null && !jsonObj.get("ParentPrimaryImageTag").isJsonNull()) && !jsonObj.get("ParentPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageTag").toString())); + } + if (jsonObj.get("Chapters") != null && !jsonObj.get("Chapters").isJsonNull()) { + JsonArray jsonArraychapters = jsonObj.getAsJsonArray("Chapters"); + if (jsonArraychapters != null) { + // ensure the json data is an array + if (!jsonObj.get("Chapters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Chapters` to be an array in the JSON string but got `%s`", jsonObj.get("Chapters").toString())); + } + + // validate the optional field `Chapters` (array) + for (int i = 0; i < jsonArraychapters.size(); i++) { + ChapterInfo.validateJsonElement(jsonArraychapters.get(i)); + }; + } + } + // validate the optional field `LocationType` + if (jsonObj.get("LocationType") != null && !jsonObj.get("LocationType").isJsonNull()) { + LocationType.validateJsonElement(jsonObj.get("LocationType")); + } + // validate the optional field `IsoType` + if (jsonObj.get("IsoType") != null && !jsonObj.get("IsoType").isJsonNull()) { + IsoType.validateJsonElement(jsonObj.get("IsoType")); + } + if ((jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) && !jsonObj.get("MediaType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaType").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LockedFields") != null && !jsonObj.get("LockedFields").isJsonNull() && !jsonObj.get("LockedFields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LockedFields` to be an array in the JSON string but got `%s`", jsonObj.get("LockedFields").toString())); + } + if ((jsonObj.get("CameraMake") != null && !jsonObj.get("CameraMake").isJsonNull()) && !jsonObj.get("CameraMake").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CameraMake` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CameraMake").toString())); + } + if ((jsonObj.get("CameraModel") != null && !jsonObj.get("CameraModel").isJsonNull()) && !jsonObj.get("CameraModel").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CameraModel` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CameraModel").toString())); + } + if ((jsonObj.get("Software") != null && !jsonObj.get("Software").isJsonNull()) && !jsonObj.get("Software").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Software` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Software").toString())); + } + // validate the optional field `ImageOrientation` + if (jsonObj.get("ImageOrientation") != null && !jsonObj.get("ImageOrientation").isJsonNull()) { + ImageOrientation.validateJsonElement(jsonObj.get("ImageOrientation")); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("EpisodeTitle") != null && !jsonObj.get("EpisodeTitle").isJsonNull()) && !jsonObj.get("EpisodeTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EpisodeTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EpisodeTitle").toString())); + } + // validate the optional field `ChannelType` + if (jsonObj.get("ChannelType") != null && !jsonObj.get("ChannelType").isJsonNull()) { + ChannelType.validateJsonElement(jsonObj.get("ChannelType")); + } + // validate the optional field `Audio` + if (jsonObj.get("Audio") != null && !jsonObj.get("Audio").isJsonNull()) { + ProgramAudio.validateJsonElement(jsonObj.get("Audio")); + } + if ((jsonObj.get("TimerId") != null && !jsonObj.get("TimerId").isJsonNull()) && !jsonObj.get("TimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TimerId").toString())); + } + // validate the optional field `CurrentProgram` + if (jsonObj.get("CurrentProgram") != null && !jsonObj.get("CurrentProgram").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("CurrentProgram")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDto + * @throws IOException if the JSON string is invalid with respect to BaseItemDto + */ + public static BaseItemDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDto.class); + } + + /** + * Convert an instance of BaseItemDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java new file mode 100644 index 0000000000000..8d52bf66eae99 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoImageBlurHashes.java @@ -0,0 +1,633 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Gets or sets the blurhashes for the image tags. Maps image type to dictionary mapping image tag to blurhash value. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDtoImageBlurHashes { + public static final String SERIALIZED_NAME_PRIMARY = "Primary"; + @SerializedName(SERIALIZED_NAME_PRIMARY) + @javax.annotation.Nullable + private Map primary = new HashMap<>(); + + public static final String SERIALIZED_NAME_ART = "Art"; + @SerializedName(SERIALIZED_NAME_ART) + @javax.annotation.Nullable + private Map art = new HashMap<>(); + + public static final String SERIALIZED_NAME_BACKDROP = "Backdrop"; + @SerializedName(SERIALIZED_NAME_BACKDROP) + @javax.annotation.Nullable + private Map backdrop = new HashMap<>(); + + public static final String SERIALIZED_NAME_BANNER = "Banner"; + @SerializedName(SERIALIZED_NAME_BANNER) + @javax.annotation.Nullable + private Map banner = new HashMap<>(); + + public static final String SERIALIZED_NAME_LOGO = "Logo"; + @SerializedName(SERIALIZED_NAME_LOGO) + @javax.annotation.Nullable + private Map logo = new HashMap<>(); + + public static final String SERIALIZED_NAME_THUMB = "Thumb"; + @SerializedName(SERIALIZED_NAME_THUMB) + @javax.annotation.Nullable + private Map thumb = new HashMap<>(); + + public static final String SERIALIZED_NAME_DISC = "Disc"; + @SerializedName(SERIALIZED_NAME_DISC) + @javax.annotation.Nullable + private Map disc = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX = "Box"; + @SerializedName(SERIALIZED_NAME_BOX) + @javax.annotation.Nullable + private Map box = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCREENSHOT = "Screenshot"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT) + @javax.annotation.Nullable + private Map screenshot = new HashMap<>(); + + public static final String SERIALIZED_NAME_MENU = "Menu"; + @SerializedName(SERIALIZED_NAME_MENU) + @javax.annotation.Nullable + private Map menu = new HashMap<>(); + + public static final String SERIALIZED_NAME_CHAPTER = "Chapter"; + @SerializedName(SERIALIZED_NAME_CHAPTER) + @javax.annotation.Nullable + private Map chapter = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX_REAR = "BoxRear"; + @SerializedName(SERIALIZED_NAME_BOX_REAR) + @javax.annotation.Nullable + private Map boxRear = new HashMap<>(); + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private Map profile = new HashMap<>(); + + public BaseItemDtoImageBlurHashes() { + } + + public BaseItemDtoImageBlurHashes primary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + return this; + } + + public BaseItemDtoImageBlurHashes putPrimaryItem(String key, String primaryItem) { + if (this.primary == null) { + this.primary = new HashMap<>(); + } + this.primary.put(key, primaryItem); + return this; + } + + /** + * Get primary + * @return primary + */ + @javax.annotation.Nullable + public Map getPrimary() { + return primary; + } + + public void setPrimary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + } + + + public BaseItemDtoImageBlurHashes art(@javax.annotation.Nullable Map art) { + this.art = art; + return this; + } + + public BaseItemDtoImageBlurHashes putArtItem(String key, String artItem) { + if (this.art == null) { + this.art = new HashMap<>(); + } + this.art.put(key, artItem); + return this; + } + + /** + * Get art + * @return art + */ + @javax.annotation.Nullable + public Map getArt() { + return art; + } + + public void setArt(@javax.annotation.Nullable Map art) { + this.art = art; + } + + + public BaseItemDtoImageBlurHashes backdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + return this; + } + + public BaseItemDtoImageBlurHashes putBackdropItem(String key, String backdropItem) { + if (this.backdrop == null) { + this.backdrop = new HashMap<>(); + } + this.backdrop.put(key, backdropItem); + return this; + } + + /** + * Get backdrop + * @return backdrop + */ + @javax.annotation.Nullable + public Map getBackdrop() { + return backdrop; + } + + public void setBackdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + } + + + public BaseItemDtoImageBlurHashes banner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + return this; + } + + public BaseItemDtoImageBlurHashes putBannerItem(String key, String bannerItem) { + if (this.banner == null) { + this.banner = new HashMap<>(); + } + this.banner.put(key, bannerItem); + return this; + } + + /** + * Get banner + * @return banner + */ + @javax.annotation.Nullable + public Map getBanner() { + return banner; + } + + public void setBanner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + } + + + public BaseItemDtoImageBlurHashes logo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + return this; + } + + public BaseItemDtoImageBlurHashes putLogoItem(String key, String logoItem) { + if (this.logo == null) { + this.logo = new HashMap<>(); + } + this.logo.put(key, logoItem); + return this; + } + + /** + * Get logo + * @return logo + */ + @javax.annotation.Nullable + public Map getLogo() { + return logo; + } + + public void setLogo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + } + + + public BaseItemDtoImageBlurHashes thumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + return this; + } + + public BaseItemDtoImageBlurHashes putThumbItem(String key, String thumbItem) { + if (this.thumb == null) { + this.thumb = new HashMap<>(); + } + this.thumb.put(key, thumbItem); + return this; + } + + /** + * Get thumb + * @return thumb + */ + @javax.annotation.Nullable + public Map getThumb() { + return thumb; + } + + public void setThumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + } + + + public BaseItemDtoImageBlurHashes disc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + return this; + } + + public BaseItemDtoImageBlurHashes putDiscItem(String key, String discItem) { + if (this.disc == null) { + this.disc = new HashMap<>(); + } + this.disc.put(key, discItem); + return this; + } + + /** + * Get disc + * @return disc + */ + @javax.annotation.Nullable + public Map getDisc() { + return disc; + } + + public void setDisc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + } + + + public BaseItemDtoImageBlurHashes box(@javax.annotation.Nullable Map box) { + this.box = box; + return this; + } + + public BaseItemDtoImageBlurHashes putBoxItem(String key, String boxItem) { + if (this.box == null) { + this.box = new HashMap<>(); + } + this.box.put(key, boxItem); + return this; + } + + /** + * Get box + * @return box + */ + @javax.annotation.Nullable + public Map getBox() { + return box; + } + + public void setBox(@javax.annotation.Nullable Map box) { + this.box = box; + } + + + public BaseItemDtoImageBlurHashes screenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + return this; + } + + public BaseItemDtoImageBlurHashes putScreenshotItem(String key, String screenshotItem) { + if (this.screenshot == null) { + this.screenshot = new HashMap<>(); + } + this.screenshot.put(key, screenshotItem); + return this; + } + + /** + * Get screenshot + * @return screenshot + */ + @javax.annotation.Nullable + public Map getScreenshot() { + return screenshot; + } + + public void setScreenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + } + + + public BaseItemDtoImageBlurHashes menu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + return this; + } + + public BaseItemDtoImageBlurHashes putMenuItem(String key, String menuItem) { + if (this.menu == null) { + this.menu = new HashMap<>(); + } + this.menu.put(key, menuItem); + return this; + } + + /** + * Get menu + * @return menu + */ + @javax.annotation.Nullable + public Map getMenu() { + return menu; + } + + public void setMenu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + } + + + public BaseItemDtoImageBlurHashes chapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + return this; + } + + public BaseItemDtoImageBlurHashes putChapterItem(String key, String chapterItem) { + if (this.chapter == null) { + this.chapter = new HashMap<>(); + } + this.chapter.put(key, chapterItem); + return this; + } + + /** + * Get chapter + * @return chapter + */ + @javax.annotation.Nullable + public Map getChapter() { + return chapter; + } + + public void setChapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + } + + + public BaseItemDtoImageBlurHashes boxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + return this; + } + + public BaseItemDtoImageBlurHashes putBoxRearItem(String key, String boxRearItem) { + if (this.boxRear == null) { + this.boxRear = new HashMap<>(); + } + this.boxRear.put(key, boxRearItem); + return this; + } + + /** + * Get boxRear + * @return boxRear + */ + @javax.annotation.Nullable + public Map getBoxRear() { + return boxRear; + } + + public void setBoxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + } + + + public BaseItemDtoImageBlurHashes profile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + return this; + } + + public BaseItemDtoImageBlurHashes putProfileItem(String key, String profileItem) { + if (this.profile == null) { + this.profile = new HashMap<>(); + } + this.profile.put(key, profileItem); + return this; + } + + /** + * Get profile + * @return profile + */ + @javax.annotation.Nullable + public Map getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDtoImageBlurHashes baseItemDtoImageBlurHashes = (BaseItemDtoImageBlurHashes) o; + return Objects.equals(this.primary, baseItemDtoImageBlurHashes.primary) && + Objects.equals(this.art, baseItemDtoImageBlurHashes.art) && + Objects.equals(this.backdrop, baseItemDtoImageBlurHashes.backdrop) && + Objects.equals(this.banner, baseItemDtoImageBlurHashes.banner) && + Objects.equals(this.logo, baseItemDtoImageBlurHashes.logo) && + Objects.equals(this.thumb, baseItemDtoImageBlurHashes.thumb) && + Objects.equals(this.disc, baseItemDtoImageBlurHashes.disc) && + Objects.equals(this.box, baseItemDtoImageBlurHashes.box) && + Objects.equals(this.screenshot, baseItemDtoImageBlurHashes.screenshot) && + Objects.equals(this.menu, baseItemDtoImageBlurHashes.menu) && + Objects.equals(this.chapter, baseItemDtoImageBlurHashes.chapter) && + Objects.equals(this.boxRear, baseItemDtoImageBlurHashes.boxRear) && + Objects.equals(this.profile, baseItemDtoImageBlurHashes.profile); + } + + @Override + public int hashCode() { + return Objects.hash(primary, art, backdrop, banner, logo, thumb, disc, box, screenshot, menu, chapter, boxRear, profile); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDtoImageBlurHashes {\n"); + sb.append(" primary: ").append(toIndentedString(primary)).append("\n"); + sb.append(" art: ").append(toIndentedString(art)).append("\n"); + sb.append(" backdrop: ").append(toIndentedString(backdrop)).append("\n"); + sb.append(" banner: ").append(toIndentedString(banner)).append("\n"); + sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); + sb.append(" thumb: ").append(toIndentedString(thumb)).append("\n"); + sb.append(" disc: ").append(toIndentedString(disc)).append("\n"); + sb.append(" box: ").append(toIndentedString(box)).append("\n"); + sb.append(" screenshot: ").append(toIndentedString(screenshot)).append("\n"); + sb.append(" menu: ").append(toIndentedString(menu)).append("\n"); + sb.append(" chapter: ").append(toIndentedString(chapter)).append("\n"); + sb.append(" boxRear: ").append(toIndentedString(boxRear)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Primary"); + openapiFields.add("Art"); + openapiFields.add("Backdrop"); + openapiFields.add("Banner"); + openapiFields.add("Logo"); + openapiFields.add("Thumb"); + openapiFields.add("Disc"); + openapiFields.add("Box"); + openapiFields.add("Screenshot"); + openapiFields.add("Menu"); + openapiFields.add("Chapter"); + openapiFields.add("BoxRear"); + openapiFields.add("Profile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDtoImageBlurHashes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDtoImageBlurHashes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDtoImageBlurHashes is not found in the empty JSON string", BaseItemDtoImageBlurHashes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDtoImageBlurHashes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDtoImageBlurHashes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDtoImageBlurHashes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDtoImageBlurHashes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDtoImageBlurHashes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDtoImageBlurHashes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDtoImageBlurHashes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDtoImageBlurHashes given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDtoImageBlurHashes + * @throws IOException if the JSON string is invalid with respect to BaseItemDtoImageBlurHashes + */ + public static BaseItemDtoImageBlurHashes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDtoImageBlurHashes.class); + } + + /** + * Convert an instance of BaseItemDtoImageBlurHashes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java new file mode 100644 index 0000000000000..da5ceb09f146e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemDtoQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BaseItemDtoQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public BaseItemDtoQueryResult() { + } + + public BaseItemDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public BaseItemDtoQueryResult addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public BaseItemDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public BaseItemDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemDtoQueryResult baseItemDtoQueryResult = (BaseItemDtoQueryResult) o; + return Objects.equals(this.items, baseItemDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, baseItemDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, baseItemDtoQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemDtoQueryResult is not found in the empty JSON string", BaseItemDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to BaseItemDtoQueryResult + */ + public static BaseItemDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemDtoQueryResult.class); + } + + /** + * Convert an instance of BaseItemDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemKind.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemKind.java new file mode 100644 index 0000000000000..afaa0082c8ca6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemKind.java @@ -0,0 +1,148 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The base item kind. + */ +@JsonAdapter(BaseItemKind.Adapter.class) +public enum BaseItemKind { + + AGGREGATE_FOLDER("AggregateFolder"), + + AUDIO("Audio"), + + AUDIO_BOOK("AudioBook"), + + BASE_PLUGIN_FOLDER("BasePluginFolder"), + + BOOK("Book"), + + BOX_SET("BoxSet"), + + CHANNEL("Channel"), + + CHANNEL_FOLDER_ITEM("ChannelFolderItem"), + + COLLECTION_FOLDER("CollectionFolder"), + + EPISODE("Episode"), + + FOLDER("Folder"), + + GENRE("Genre"), + + MANUAL_PLAYLISTS_FOLDER("ManualPlaylistsFolder"), + + MOVIE("Movie"), + + LIVE_TV_CHANNEL("LiveTvChannel"), + + LIVE_TV_PROGRAM("LiveTvProgram"), + + MUSIC_ALBUM("MusicAlbum"), + + MUSIC_ARTIST("MusicArtist"), + + MUSIC_GENRE("MusicGenre"), + + MUSIC_VIDEO("MusicVideo"), + + PERSON("Person"), + + PHOTO("Photo"), + + PHOTO_ALBUM("PhotoAlbum"), + + PLAYLIST("Playlist"), + + PLAYLISTS_FOLDER("PlaylistsFolder"), + + PROGRAM("Program"), + + RECORDING("Recording"), + + SEASON("Season"), + + SERIES("Series"), + + STUDIO("Studio"), + + TRAILER("Trailer"), + + TV_CHANNEL("TvChannel"), + + TV_PROGRAM("TvProgram"), + + USER_ROOT_FOLDER("UserRootFolder"), + + USER_VIEW("UserView"), + + VIDEO("Video"), + + YEAR("Year"); + + private String value; + + BaseItemKind(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static BaseItemKind fromValue(String value) { + for (BaseItemKind b : BaseItemKind.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final BaseItemKind enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public BaseItemKind read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return BaseItemKind.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + BaseItemKind.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPerson.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPerson.java new file mode 100644 index 0000000000000..adacff3d5fdb2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPerson.java @@ -0,0 +1,371 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BaseItemPersonImageBlurHashes; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is used by the api to get information about a Person within a BaseItem. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemPerson { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_ROLE = "Role"; + @SerializedName(SERIALIZED_NAME_ROLE) + @javax.annotation.Nullable + private String role; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_IMAGE_BLUR_HASHES = "ImageBlurHashes"; + @SerializedName(SERIALIZED_NAME_IMAGE_BLUR_HASHES) + @javax.annotation.Nullable + private BaseItemPersonImageBlurHashes imageBlurHashes; + + public BaseItemPerson() { + } + + public BaseItemPerson name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BaseItemPerson id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public BaseItemPerson role(@javax.annotation.Nullable String role) { + this.role = role; + return this; + } + + /** + * Gets or sets the role. + * @return role + */ + @javax.annotation.Nullable + public String getRole() { + return role; + } + + public void setRole(@javax.annotation.Nullable String role) { + this.role = role; + } + + + public BaseItemPerson type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public BaseItemPerson primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the primary image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public BaseItemPerson imageBlurHashes(@javax.annotation.Nullable BaseItemPersonImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + return this; + } + + /** + * Get imageBlurHashes + * @return imageBlurHashes + */ + @javax.annotation.Nullable + public BaseItemPersonImageBlurHashes getImageBlurHashes() { + return imageBlurHashes; + } + + public void setImageBlurHashes(@javax.annotation.Nullable BaseItemPersonImageBlurHashes imageBlurHashes) { + this.imageBlurHashes = imageBlurHashes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemPerson baseItemPerson = (BaseItemPerson) o; + return Objects.equals(this.name, baseItemPerson.name) && + Objects.equals(this.id, baseItemPerson.id) && + Objects.equals(this.role, baseItemPerson.role) && + Objects.equals(this.type, baseItemPerson.type) && + Objects.equals(this.primaryImageTag, baseItemPerson.primaryImageTag) && + Objects.equals(this.imageBlurHashes, baseItemPerson.imageBlurHashes); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, role, type, primaryImageTag, imageBlurHashes); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemPerson {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" imageBlurHashes: ").append(toIndentedString(imageBlurHashes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("Role"); + openapiFields.add("Type"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("ImageBlurHashes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemPerson + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemPerson.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemPerson is not found in the empty JSON string", BaseItemPerson.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemPerson.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemPerson` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Role") != null && !jsonObj.get("Role").isJsonNull()) && !jsonObj.get("Role").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Role` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Role").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + // validate the optional field `ImageBlurHashes` + if (jsonObj.get("ImageBlurHashes") != null && !jsonObj.get("ImageBlurHashes").isJsonNull()) { + BaseItemPersonImageBlurHashes.validateJsonElement(jsonObj.get("ImageBlurHashes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemPerson.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemPerson' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemPerson.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemPerson value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemPerson read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemPerson given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemPerson + * @throws IOException if the JSON string is invalid with respect to BaseItemPerson + */ + public static BaseItemPerson fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemPerson.class); + } + + /** + * Convert an instance of BaseItemPerson to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java new file mode 100644 index 0000000000000..fbc65bd2ce240 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BaseItemPersonImageBlurHashes.java @@ -0,0 +1,633 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Gets or sets the primary image blurhash. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BaseItemPersonImageBlurHashes { + public static final String SERIALIZED_NAME_PRIMARY = "Primary"; + @SerializedName(SERIALIZED_NAME_PRIMARY) + @javax.annotation.Nullable + private Map primary = new HashMap<>(); + + public static final String SERIALIZED_NAME_ART = "Art"; + @SerializedName(SERIALIZED_NAME_ART) + @javax.annotation.Nullable + private Map art = new HashMap<>(); + + public static final String SERIALIZED_NAME_BACKDROP = "Backdrop"; + @SerializedName(SERIALIZED_NAME_BACKDROP) + @javax.annotation.Nullable + private Map backdrop = new HashMap<>(); + + public static final String SERIALIZED_NAME_BANNER = "Banner"; + @SerializedName(SERIALIZED_NAME_BANNER) + @javax.annotation.Nullable + private Map banner = new HashMap<>(); + + public static final String SERIALIZED_NAME_LOGO = "Logo"; + @SerializedName(SERIALIZED_NAME_LOGO) + @javax.annotation.Nullable + private Map logo = new HashMap<>(); + + public static final String SERIALIZED_NAME_THUMB = "Thumb"; + @SerializedName(SERIALIZED_NAME_THUMB) + @javax.annotation.Nullable + private Map thumb = new HashMap<>(); + + public static final String SERIALIZED_NAME_DISC = "Disc"; + @SerializedName(SERIALIZED_NAME_DISC) + @javax.annotation.Nullable + private Map disc = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX = "Box"; + @SerializedName(SERIALIZED_NAME_BOX) + @javax.annotation.Nullable + private Map box = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCREENSHOT = "Screenshot"; + @SerializedName(SERIALIZED_NAME_SCREENSHOT) + @javax.annotation.Nullable + private Map screenshot = new HashMap<>(); + + public static final String SERIALIZED_NAME_MENU = "Menu"; + @SerializedName(SERIALIZED_NAME_MENU) + @javax.annotation.Nullable + private Map menu = new HashMap<>(); + + public static final String SERIALIZED_NAME_CHAPTER = "Chapter"; + @SerializedName(SERIALIZED_NAME_CHAPTER) + @javax.annotation.Nullable + private Map chapter = new HashMap<>(); + + public static final String SERIALIZED_NAME_BOX_REAR = "BoxRear"; + @SerializedName(SERIALIZED_NAME_BOX_REAR) + @javax.annotation.Nullable + private Map boxRear = new HashMap<>(); + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private Map profile = new HashMap<>(); + + public BaseItemPersonImageBlurHashes() { + } + + public BaseItemPersonImageBlurHashes primary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + return this; + } + + public BaseItemPersonImageBlurHashes putPrimaryItem(String key, String primaryItem) { + if (this.primary == null) { + this.primary = new HashMap<>(); + } + this.primary.put(key, primaryItem); + return this; + } + + /** + * Get primary + * @return primary + */ + @javax.annotation.Nullable + public Map getPrimary() { + return primary; + } + + public void setPrimary(@javax.annotation.Nullable Map primary) { + this.primary = primary; + } + + + public BaseItemPersonImageBlurHashes art(@javax.annotation.Nullable Map art) { + this.art = art; + return this; + } + + public BaseItemPersonImageBlurHashes putArtItem(String key, String artItem) { + if (this.art == null) { + this.art = new HashMap<>(); + } + this.art.put(key, artItem); + return this; + } + + /** + * Get art + * @return art + */ + @javax.annotation.Nullable + public Map getArt() { + return art; + } + + public void setArt(@javax.annotation.Nullable Map art) { + this.art = art; + } + + + public BaseItemPersonImageBlurHashes backdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + return this; + } + + public BaseItemPersonImageBlurHashes putBackdropItem(String key, String backdropItem) { + if (this.backdrop == null) { + this.backdrop = new HashMap<>(); + } + this.backdrop.put(key, backdropItem); + return this; + } + + /** + * Get backdrop + * @return backdrop + */ + @javax.annotation.Nullable + public Map getBackdrop() { + return backdrop; + } + + public void setBackdrop(@javax.annotation.Nullable Map backdrop) { + this.backdrop = backdrop; + } + + + public BaseItemPersonImageBlurHashes banner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + return this; + } + + public BaseItemPersonImageBlurHashes putBannerItem(String key, String bannerItem) { + if (this.banner == null) { + this.banner = new HashMap<>(); + } + this.banner.put(key, bannerItem); + return this; + } + + /** + * Get banner + * @return banner + */ + @javax.annotation.Nullable + public Map getBanner() { + return banner; + } + + public void setBanner(@javax.annotation.Nullable Map banner) { + this.banner = banner; + } + + + public BaseItemPersonImageBlurHashes logo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + return this; + } + + public BaseItemPersonImageBlurHashes putLogoItem(String key, String logoItem) { + if (this.logo == null) { + this.logo = new HashMap<>(); + } + this.logo.put(key, logoItem); + return this; + } + + /** + * Get logo + * @return logo + */ + @javax.annotation.Nullable + public Map getLogo() { + return logo; + } + + public void setLogo(@javax.annotation.Nullable Map logo) { + this.logo = logo; + } + + + public BaseItemPersonImageBlurHashes thumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + return this; + } + + public BaseItemPersonImageBlurHashes putThumbItem(String key, String thumbItem) { + if (this.thumb == null) { + this.thumb = new HashMap<>(); + } + this.thumb.put(key, thumbItem); + return this; + } + + /** + * Get thumb + * @return thumb + */ + @javax.annotation.Nullable + public Map getThumb() { + return thumb; + } + + public void setThumb(@javax.annotation.Nullable Map thumb) { + this.thumb = thumb; + } + + + public BaseItemPersonImageBlurHashes disc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + return this; + } + + public BaseItemPersonImageBlurHashes putDiscItem(String key, String discItem) { + if (this.disc == null) { + this.disc = new HashMap<>(); + } + this.disc.put(key, discItem); + return this; + } + + /** + * Get disc + * @return disc + */ + @javax.annotation.Nullable + public Map getDisc() { + return disc; + } + + public void setDisc(@javax.annotation.Nullable Map disc) { + this.disc = disc; + } + + + public BaseItemPersonImageBlurHashes box(@javax.annotation.Nullable Map box) { + this.box = box; + return this; + } + + public BaseItemPersonImageBlurHashes putBoxItem(String key, String boxItem) { + if (this.box == null) { + this.box = new HashMap<>(); + } + this.box.put(key, boxItem); + return this; + } + + /** + * Get box + * @return box + */ + @javax.annotation.Nullable + public Map getBox() { + return box; + } + + public void setBox(@javax.annotation.Nullable Map box) { + this.box = box; + } + + + public BaseItemPersonImageBlurHashes screenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + return this; + } + + public BaseItemPersonImageBlurHashes putScreenshotItem(String key, String screenshotItem) { + if (this.screenshot == null) { + this.screenshot = new HashMap<>(); + } + this.screenshot.put(key, screenshotItem); + return this; + } + + /** + * Get screenshot + * @return screenshot + */ + @javax.annotation.Nullable + public Map getScreenshot() { + return screenshot; + } + + public void setScreenshot(@javax.annotation.Nullable Map screenshot) { + this.screenshot = screenshot; + } + + + public BaseItemPersonImageBlurHashes menu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + return this; + } + + public BaseItemPersonImageBlurHashes putMenuItem(String key, String menuItem) { + if (this.menu == null) { + this.menu = new HashMap<>(); + } + this.menu.put(key, menuItem); + return this; + } + + /** + * Get menu + * @return menu + */ + @javax.annotation.Nullable + public Map getMenu() { + return menu; + } + + public void setMenu(@javax.annotation.Nullable Map menu) { + this.menu = menu; + } + + + public BaseItemPersonImageBlurHashes chapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + return this; + } + + public BaseItemPersonImageBlurHashes putChapterItem(String key, String chapterItem) { + if (this.chapter == null) { + this.chapter = new HashMap<>(); + } + this.chapter.put(key, chapterItem); + return this; + } + + /** + * Get chapter + * @return chapter + */ + @javax.annotation.Nullable + public Map getChapter() { + return chapter; + } + + public void setChapter(@javax.annotation.Nullable Map chapter) { + this.chapter = chapter; + } + + + public BaseItemPersonImageBlurHashes boxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + return this; + } + + public BaseItemPersonImageBlurHashes putBoxRearItem(String key, String boxRearItem) { + if (this.boxRear == null) { + this.boxRear = new HashMap<>(); + } + this.boxRear.put(key, boxRearItem); + return this; + } + + /** + * Get boxRear + * @return boxRear + */ + @javax.annotation.Nullable + public Map getBoxRear() { + return boxRear; + } + + public void setBoxRear(@javax.annotation.Nullable Map boxRear) { + this.boxRear = boxRear; + } + + + public BaseItemPersonImageBlurHashes profile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + return this; + } + + public BaseItemPersonImageBlurHashes putProfileItem(String key, String profileItem) { + if (this.profile == null) { + this.profile = new HashMap<>(); + } + this.profile.put(key, profileItem); + return this; + } + + /** + * Get profile + * @return profile + */ + @javax.annotation.Nullable + public Map getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable Map profile) { + this.profile = profile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseItemPersonImageBlurHashes baseItemPersonImageBlurHashes = (BaseItemPersonImageBlurHashes) o; + return Objects.equals(this.primary, baseItemPersonImageBlurHashes.primary) && + Objects.equals(this.art, baseItemPersonImageBlurHashes.art) && + Objects.equals(this.backdrop, baseItemPersonImageBlurHashes.backdrop) && + Objects.equals(this.banner, baseItemPersonImageBlurHashes.banner) && + Objects.equals(this.logo, baseItemPersonImageBlurHashes.logo) && + Objects.equals(this.thumb, baseItemPersonImageBlurHashes.thumb) && + Objects.equals(this.disc, baseItemPersonImageBlurHashes.disc) && + Objects.equals(this.box, baseItemPersonImageBlurHashes.box) && + Objects.equals(this.screenshot, baseItemPersonImageBlurHashes.screenshot) && + Objects.equals(this.menu, baseItemPersonImageBlurHashes.menu) && + Objects.equals(this.chapter, baseItemPersonImageBlurHashes.chapter) && + Objects.equals(this.boxRear, baseItemPersonImageBlurHashes.boxRear) && + Objects.equals(this.profile, baseItemPersonImageBlurHashes.profile); + } + + @Override + public int hashCode() { + return Objects.hash(primary, art, backdrop, banner, logo, thumb, disc, box, screenshot, menu, chapter, boxRear, profile); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BaseItemPersonImageBlurHashes {\n"); + sb.append(" primary: ").append(toIndentedString(primary)).append("\n"); + sb.append(" art: ").append(toIndentedString(art)).append("\n"); + sb.append(" backdrop: ").append(toIndentedString(backdrop)).append("\n"); + sb.append(" banner: ").append(toIndentedString(banner)).append("\n"); + sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); + sb.append(" thumb: ").append(toIndentedString(thumb)).append("\n"); + sb.append(" disc: ").append(toIndentedString(disc)).append("\n"); + sb.append(" box: ").append(toIndentedString(box)).append("\n"); + sb.append(" screenshot: ").append(toIndentedString(screenshot)).append("\n"); + sb.append(" menu: ").append(toIndentedString(menu)).append("\n"); + sb.append(" chapter: ").append(toIndentedString(chapter)).append("\n"); + sb.append(" boxRear: ").append(toIndentedString(boxRear)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Primary"); + openapiFields.add("Art"); + openapiFields.add("Backdrop"); + openapiFields.add("Banner"); + openapiFields.add("Logo"); + openapiFields.add("Thumb"); + openapiFields.add("Disc"); + openapiFields.add("Box"); + openapiFields.add("Screenshot"); + openapiFields.add("Menu"); + openapiFields.add("Chapter"); + openapiFields.add("BoxRear"); + openapiFields.add("Profile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BaseItemPersonImageBlurHashes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BaseItemPersonImageBlurHashes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BaseItemPersonImageBlurHashes is not found in the empty JSON string", BaseItemPersonImageBlurHashes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BaseItemPersonImageBlurHashes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BaseItemPersonImageBlurHashes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BaseItemPersonImageBlurHashes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BaseItemPersonImageBlurHashes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BaseItemPersonImageBlurHashes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BaseItemPersonImageBlurHashes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BaseItemPersonImageBlurHashes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BaseItemPersonImageBlurHashes given an JSON string + * + * @param jsonString JSON string + * @return An instance of BaseItemPersonImageBlurHashes + * @throws IOException if the JSON string is invalid with respect to BaseItemPersonImageBlurHashes + */ + public static BaseItemPersonImageBlurHashes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BaseItemPersonImageBlurHashes.class); + } + + /** + * Convert an instance of BaseItemPersonImageBlurHashes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfo.java new file mode 100644 index 0000000000000..f3c5f27eaf7e2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfo.java @@ -0,0 +1,541 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BookInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BookInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_SERIES_NAME = "SeriesName"; + @SerializedName(SERIALIZED_NAME_SERIES_NAME) + @javax.annotation.Nullable + private String seriesName; + + public BookInfo() { + } + + public BookInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BookInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BookInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BookInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public BookInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public BookInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BookInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BookInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public BookInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BookInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BookInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BookInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public BookInfo seriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + return this; + } + + /** + * Get seriesName + * @return seriesName + */ + @javax.annotation.Nullable + public String getSeriesName() { + return seriesName; + } + + public void setSeriesName(@javax.annotation.Nullable String seriesName) { + this.seriesName = seriesName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BookInfo bookInfo = (BookInfo) o; + return Objects.equals(this.name, bookInfo.name) && + Objects.equals(this.originalTitle, bookInfo.originalTitle) && + Objects.equals(this.path, bookInfo.path) && + Objects.equals(this.metadataLanguage, bookInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, bookInfo.metadataCountryCode) && + Objects.equals(this.providerIds, bookInfo.providerIds) && + Objects.equals(this.year, bookInfo.year) && + Objects.equals(this.indexNumber, bookInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, bookInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, bookInfo.premiereDate) && + Objects.equals(this.isAutomated, bookInfo.isAutomated) && + Objects.equals(this.seriesName, bookInfo.seriesName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, seriesName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BookInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" seriesName: ").append(toIndentedString(seriesName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("SeriesName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BookInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BookInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BookInfo is not found in the empty JSON string", BookInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BookInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BookInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("SeriesName") != null && !jsonObj.get("SeriesName").isJsonNull()) && !jsonObj.get("SeriesName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BookInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BookInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BookInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BookInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BookInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BookInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of BookInfo + * @throws IOException if the JSON string is invalid with respect to BookInfo + */ + public static BookInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BookInfo.class); + } + + /** + * Convert an instance of BookInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..8c0382753299f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BookInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BookInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BookInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BookInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private BookInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public BookInfoRemoteSearchQuery() { + } + + public BookInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable BookInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public BookInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable BookInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public BookInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public BookInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public BookInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BookInfoRemoteSearchQuery bookInfoRemoteSearchQuery = (BookInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, bookInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, bookInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, bookInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, bookInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BookInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BookInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BookInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BookInfoRemoteSearchQuery is not found in the empty JSON string", BookInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BookInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BookInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + BookInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BookInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BookInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BookInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BookInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BookInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BookInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of BookInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to BookInfoRemoteSearchQuery + */ + public static BookInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BookInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of BookInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfo.java new file mode 100644 index 0000000000000..c4f26c0c5a071 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BoxSetInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BoxSetInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public BoxSetInfo() { + } + + public BoxSetInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public BoxSetInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public BoxSetInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public BoxSetInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public BoxSetInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public BoxSetInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public BoxSetInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public BoxSetInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public BoxSetInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public BoxSetInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public BoxSetInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public BoxSetInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BoxSetInfo boxSetInfo = (BoxSetInfo) o; + return Objects.equals(this.name, boxSetInfo.name) && + Objects.equals(this.originalTitle, boxSetInfo.originalTitle) && + Objects.equals(this.path, boxSetInfo.path) && + Objects.equals(this.metadataLanguage, boxSetInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, boxSetInfo.metadataCountryCode) && + Objects.equals(this.providerIds, boxSetInfo.providerIds) && + Objects.equals(this.year, boxSetInfo.year) && + Objects.equals(this.indexNumber, boxSetInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, boxSetInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, boxSetInfo.premiereDate) && + Objects.equals(this.isAutomated, boxSetInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BoxSetInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BoxSetInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BoxSetInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BoxSetInfo is not found in the empty JSON string", BoxSetInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BoxSetInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BoxSetInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BoxSetInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BoxSetInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BoxSetInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BoxSetInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BoxSetInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BoxSetInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of BoxSetInfo + * @throws IOException if the JSON string is invalid with respect to BoxSetInfo + */ + public static BoxSetInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BoxSetInfo.class); + } + + /** + * Convert an instance of BoxSetInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..1e66b9068644b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BoxSetInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.BoxSetInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * BoxSetInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BoxSetInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private BoxSetInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public BoxSetInfoRemoteSearchQuery() { + } + + public BoxSetInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable BoxSetInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public BoxSetInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable BoxSetInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public BoxSetInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public BoxSetInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public BoxSetInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BoxSetInfoRemoteSearchQuery boxSetInfoRemoteSearchQuery = (BoxSetInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, boxSetInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, boxSetInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, boxSetInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, boxSetInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BoxSetInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BoxSetInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BoxSetInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BoxSetInfoRemoteSearchQuery is not found in the empty JSON string", BoxSetInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BoxSetInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BoxSetInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + BoxSetInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BoxSetInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BoxSetInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BoxSetInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BoxSetInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BoxSetInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BoxSetInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of BoxSetInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to BoxSetInfoRemoteSearchQuery + */ + public static BoxSetInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BoxSetInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of BoxSetInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BrandingOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BrandingOptions.java new file mode 100644 index 0000000000000..4ac0e5445d799 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BrandingOptions.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The branding options. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BrandingOptions { + public static final String SERIALIZED_NAME_LOGIN_DISCLAIMER = "LoginDisclaimer"; + @SerializedName(SERIALIZED_NAME_LOGIN_DISCLAIMER) + @javax.annotation.Nullable + private String loginDisclaimer; + + public static final String SERIALIZED_NAME_CUSTOM_CSS = "CustomCss"; + @SerializedName(SERIALIZED_NAME_CUSTOM_CSS) + @javax.annotation.Nullable + private String customCss; + + public static final String SERIALIZED_NAME_SPLASHSCREEN_ENABLED = "SplashscreenEnabled"; + @SerializedName(SERIALIZED_NAME_SPLASHSCREEN_ENABLED) + @javax.annotation.Nullable + private Boolean splashscreenEnabled; + + public BrandingOptions() { + } + + public BrandingOptions loginDisclaimer(@javax.annotation.Nullable String loginDisclaimer) { + this.loginDisclaimer = loginDisclaimer; + return this; + } + + /** + * Gets or sets the login disclaimer. + * @return loginDisclaimer + */ + @javax.annotation.Nullable + public String getLoginDisclaimer() { + return loginDisclaimer; + } + + public void setLoginDisclaimer(@javax.annotation.Nullable String loginDisclaimer) { + this.loginDisclaimer = loginDisclaimer; + } + + + public BrandingOptions customCss(@javax.annotation.Nullable String customCss) { + this.customCss = customCss; + return this; + } + + /** + * Gets or sets the custom CSS. + * @return customCss + */ + @javax.annotation.Nullable + public String getCustomCss() { + return customCss; + } + + public void setCustomCss(@javax.annotation.Nullable String customCss) { + this.customCss = customCss; + } + + + public BrandingOptions splashscreenEnabled(@javax.annotation.Nullable Boolean splashscreenEnabled) { + this.splashscreenEnabled = splashscreenEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether to enable the splashscreen. + * @return splashscreenEnabled + */ + @javax.annotation.Nullable + public Boolean getSplashscreenEnabled() { + return splashscreenEnabled; + } + + public void setSplashscreenEnabled(@javax.annotation.Nullable Boolean splashscreenEnabled) { + this.splashscreenEnabled = splashscreenEnabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BrandingOptions brandingOptions = (BrandingOptions) o; + return Objects.equals(this.loginDisclaimer, brandingOptions.loginDisclaimer) && + Objects.equals(this.customCss, brandingOptions.customCss) && + Objects.equals(this.splashscreenEnabled, brandingOptions.splashscreenEnabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(loginDisclaimer, customCss, splashscreenEnabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BrandingOptions {\n"); + sb.append(" loginDisclaimer: ").append(toIndentedString(loginDisclaimer)).append("\n"); + sb.append(" customCss: ").append(toIndentedString(customCss)).append("\n"); + sb.append(" splashscreenEnabled: ").append(toIndentedString(splashscreenEnabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LoginDisclaimer"); + openapiFields.add("CustomCss"); + openapiFields.add("SplashscreenEnabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BrandingOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BrandingOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BrandingOptions is not found in the empty JSON string", BrandingOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BrandingOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BrandingOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LoginDisclaimer") != null && !jsonObj.get("LoginDisclaimer").isJsonNull()) && !jsonObj.get("LoginDisclaimer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LoginDisclaimer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LoginDisclaimer").toString())); + } + if ((jsonObj.get("CustomCss") != null && !jsonObj.get("CustomCss").isJsonNull()) && !jsonObj.get("CustomCss").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomCss` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomCss").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BrandingOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BrandingOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BrandingOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BrandingOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BrandingOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BrandingOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of BrandingOptions + * @throws IOException if the JSON string is invalid with respect to BrandingOptions + */ + public static BrandingOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BrandingOptions.class); + } + + /** + * Convert an instance of BrandingOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BufferRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BufferRequestDto.java new file mode 100644 index 0000000000000..e5e51d61dca56 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/BufferRequestDto.java @@ -0,0 +1,289 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class BufferRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class BufferRequestDto { + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_IS_PLAYING = "IsPlaying"; + @SerializedName(SERIALIZED_NAME_IS_PLAYING) + @javax.annotation.Nullable + private Boolean isPlaying; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public BufferRequestDto() { + } + + public BufferRequestDto when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets when the request has been made by the client. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public BufferRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public BufferRequestDto isPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + return this; + } + + /** + * Gets or sets a value indicating whether the client playback is unpaused. + * @return isPlaying + */ + @javax.annotation.Nullable + public Boolean getIsPlaying() { + return isPlaying; + } + + public void setIsPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + } + + + public BufferRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BufferRequestDto bufferRequestDto = (BufferRequestDto) o; + return Objects.equals(this.when, bufferRequestDto.when) && + Objects.equals(this.positionTicks, bufferRequestDto.positionTicks) && + Objects.equals(this.isPlaying, bufferRequestDto.isPlaying) && + Objects.equals(this.playlistItemId, bufferRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(when, positionTicks, isPlaying, playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BufferRequestDto {\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" isPlaying: ").append(toIndentedString(isPlaying)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("IsPlaying"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BufferRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BufferRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BufferRequestDto is not found in the empty JSON string", BufferRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BufferRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BufferRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BufferRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BufferRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BufferRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BufferRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BufferRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BufferRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of BufferRequestDto + * @throws IOException if the JSON string is invalid with respect to BufferRequestDto + */ + public static BufferRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BufferRequestDto.class); + } + + /** + * Convert an instance of BufferRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelFeatures.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelFeatures.java new file mode 100644 index 0000000000000..946d9c43cb839 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelFeatures.java @@ -0,0 +1,560 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.ChannelItemSortField; +import org.openapitools.client.model.ChannelMediaContentType; +import org.openapitools.client.model.ChannelMediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ChannelFeatures + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChannelFeatures { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_CAN_SEARCH = "CanSearch"; + @SerializedName(SERIALIZED_NAME_CAN_SEARCH) + @javax.annotation.Nullable + private Boolean canSearch; + + public static final String SERIALIZED_NAME_MEDIA_TYPES = "MediaTypes"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPES) + @javax.annotation.Nullable + private List mediaTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTENT_TYPES = "ContentTypes"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPES) + @javax.annotation.Nullable + private List contentTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MAX_PAGE_SIZE = "MaxPageSize"; + @SerializedName(SERIALIZED_NAME_MAX_PAGE_SIZE) + @javax.annotation.Nullable + private Integer maxPageSize; + + public static final String SERIALIZED_NAME_AUTO_REFRESH_LEVELS = "AutoRefreshLevels"; + @SerializedName(SERIALIZED_NAME_AUTO_REFRESH_LEVELS) + @javax.annotation.Nullable + private Integer autoRefreshLevels; + + public static final String SERIALIZED_NAME_DEFAULT_SORT_FIELDS = "DefaultSortFields"; + @SerializedName(SERIALIZED_NAME_DEFAULT_SORT_FIELDS) + @javax.annotation.Nullable + private List defaultSortFields = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTS_SORT_ORDER_TOGGLE = "SupportsSortOrderToggle"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_SORT_ORDER_TOGGLE) + @javax.annotation.Nullable + private Boolean supportsSortOrderToggle; + + public static final String SERIALIZED_NAME_SUPPORTS_LATEST_MEDIA = "SupportsLatestMedia"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_LATEST_MEDIA) + @javax.annotation.Nullable + private Boolean supportsLatestMedia; + + public static final String SERIALIZED_NAME_CAN_FILTER = "CanFilter"; + @SerializedName(SERIALIZED_NAME_CAN_FILTER) + @javax.annotation.Nullable + private Boolean canFilter; + + public static final String SERIALIZED_NAME_SUPPORTS_CONTENT_DOWNLOADING = "SupportsContentDownloading"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_CONTENT_DOWNLOADING) + @javax.annotation.Nullable + private Boolean supportsContentDownloading; + + public ChannelFeatures() { + } + + public ChannelFeatures name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ChannelFeatures id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public ChannelFeatures canSearch(@javax.annotation.Nullable Boolean canSearch) { + this.canSearch = canSearch; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can search. + * @return canSearch + */ + @javax.annotation.Nullable + public Boolean getCanSearch() { + return canSearch; + } + + public void setCanSearch(@javax.annotation.Nullable Boolean canSearch) { + this.canSearch = canSearch; + } + + + public ChannelFeatures mediaTypes(@javax.annotation.Nullable List mediaTypes) { + this.mediaTypes = mediaTypes; + return this; + } + + public ChannelFeatures addMediaTypesItem(ChannelMediaType mediaTypesItem) { + if (this.mediaTypes == null) { + this.mediaTypes = new ArrayList<>(); + } + this.mediaTypes.add(mediaTypesItem); + return this; + } + + /** + * Gets or sets the media types. + * @return mediaTypes + */ + @javax.annotation.Nullable + public List getMediaTypes() { + return mediaTypes; + } + + public void setMediaTypes(@javax.annotation.Nullable List mediaTypes) { + this.mediaTypes = mediaTypes; + } + + + public ChannelFeatures contentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + return this; + } + + public ChannelFeatures addContentTypesItem(ChannelMediaContentType contentTypesItem) { + if (this.contentTypes == null) { + this.contentTypes = new ArrayList<>(); + } + this.contentTypes.add(contentTypesItem); + return this; + } + + /** + * Gets or sets the content types. + * @return contentTypes + */ + @javax.annotation.Nullable + public List getContentTypes() { + return contentTypes; + } + + public void setContentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + } + + + public ChannelFeatures maxPageSize(@javax.annotation.Nullable Integer maxPageSize) { + this.maxPageSize = maxPageSize; + return this; + } + + /** + * Gets or sets the maximum number of records the channel allows retrieving at a time. + * @return maxPageSize + */ + @javax.annotation.Nullable + public Integer getMaxPageSize() { + return maxPageSize; + } + + public void setMaxPageSize(@javax.annotation.Nullable Integer maxPageSize) { + this.maxPageSize = maxPageSize; + } + + + public ChannelFeatures autoRefreshLevels(@javax.annotation.Nullable Integer autoRefreshLevels) { + this.autoRefreshLevels = autoRefreshLevels; + return this; + } + + /** + * Gets or sets the automatic refresh levels. + * @return autoRefreshLevels + */ + @javax.annotation.Nullable + public Integer getAutoRefreshLevels() { + return autoRefreshLevels; + } + + public void setAutoRefreshLevels(@javax.annotation.Nullable Integer autoRefreshLevels) { + this.autoRefreshLevels = autoRefreshLevels; + } + + + public ChannelFeatures defaultSortFields(@javax.annotation.Nullable List defaultSortFields) { + this.defaultSortFields = defaultSortFields; + return this; + } + + public ChannelFeatures addDefaultSortFieldsItem(ChannelItemSortField defaultSortFieldsItem) { + if (this.defaultSortFields == null) { + this.defaultSortFields = new ArrayList<>(); + } + this.defaultSortFields.add(defaultSortFieldsItem); + return this; + } + + /** + * Gets or sets the default sort orders. + * @return defaultSortFields + */ + @javax.annotation.Nullable + public List getDefaultSortFields() { + return defaultSortFields; + } + + public void setDefaultSortFields(@javax.annotation.Nullable List defaultSortFields) { + this.defaultSortFields = defaultSortFields; + } + + + public ChannelFeatures supportsSortOrderToggle(@javax.annotation.Nullable Boolean supportsSortOrderToggle) { + this.supportsSortOrderToggle = supportsSortOrderToggle; + return this; + } + + /** + * Gets or sets a value indicating whether a sort ascending/descending toggle is supported. + * @return supportsSortOrderToggle + */ + @javax.annotation.Nullable + public Boolean getSupportsSortOrderToggle() { + return supportsSortOrderToggle; + } + + public void setSupportsSortOrderToggle(@javax.annotation.Nullable Boolean supportsSortOrderToggle) { + this.supportsSortOrderToggle = supportsSortOrderToggle; + } + + + public ChannelFeatures supportsLatestMedia(@javax.annotation.Nullable Boolean supportsLatestMedia) { + this.supportsLatestMedia = supportsLatestMedia; + return this; + } + + /** + * Gets or sets a value indicating whether [supports latest media]. + * @return supportsLatestMedia + */ + @javax.annotation.Nullable + public Boolean getSupportsLatestMedia() { + return supportsLatestMedia; + } + + public void setSupportsLatestMedia(@javax.annotation.Nullable Boolean supportsLatestMedia) { + this.supportsLatestMedia = supportsLatestMedia; + } + + + public ChannelFeatures canFilter(@javax.annotation.Nullable Boolean canFilter) { + this.canFilter = canFilter; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can filter. + * @return canFilter + */ + @javax.annotation.Nullable + public Boolean getCanFilter() { + return canFilter; + } + + public void setCanFilter(@javax.annotation.Nullable Boolean canFilter) { + this.canFilter = canFilter; + } + + + public ChannelFeatures supportsContentDownloading(@javax.annotation.Nullable Boolean supportsContentDownloading) { + this.supportsContentDownloading = supportsContentDownloading; + return this; + } + + /** + * Gets or sets a value indicating whether [supports content downloading]. + * @return supportsContentDownloading + */ + @javax.annotation.Nullable + public Boolean getSupportsContentDownloading() { + return supportsContentDownloading; + } + + public void setSupportsContentDownloading(@javax.annotation.Nullable Boolean supportsContentDownloading) { + this.supportsContentDownloading = supportsContentDownloading; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelFeatures channelFeatures = (ChannelFeatures) o; + return Objects.equals(this.name, channelFeatures.name) && + Objects.equals(this.id, channelFeatures.id) && + Objects.equals(this.canSearch, channelFeatures.canSearch) && + Objects.equals(this.mediaTypes, channelFeatures.mediaTypes) && + Objects.equals(this.contentTypes, channelFeatures.contentTypes) && + Objects.equals(this.maxPageSize, channelFeatures.maxPageSize) && + Objects.equals(this.autoRefreshLevels, channelFeatures.autoRefreshLevels) && + Objects.equals(this.defaultSortFields, channelFeatures.defaultSortFields) && + Objects.equals(this.supportsSortOrderToggle, channelFeatures.supportsSortOrderToggle) && + Objects.equals(this.supportsLatestMedia, channelFeatures.supportsLatestMedia) && + Objects.equals(this.canFilter, channelFeatures.canFilter) && + Objects.equals(this.supportsContentDownloading, channelFeatures.supportsContentDownloading); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, canSearch, mediaTypes, contentTypes, maxPageSize, autoRefreshLevels, defaultSortFields, supportsSortOrderToggle, supportsLatestMedia, canFilter, supportsContentDownloading); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelFeatures {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" canSearch: ").append(toIndentedString(canSearch)).append("\n"); + sb.append(" mediaTypes: ").append(toIndentedString(mediaTypes)).append("\n"); + sb.append(" contentTypes: ").append(toIndentedString(contentTypes)).append("\n"); + sb.append(" maxPageSize: ").append(toIndentedString(maxPageSize)).append("\n"); + sb.append(" autoRefreshLevels: ").append(toIndentedString(autoRefreshLevels)).append("\n"); + sb.append(" defaultSortFields: ").append(toIndentedString(defaultSortFields)).append("\n"); + sb.append(" supportsSortOrderToggle: ").append(toIndentedString(supportsSortOrderToggle)).append("\n"); + sb.append(" supportsLatestMedia: ").append(toIndentedString(supportsLatestMedia)).append("\n"); + sb.append(" canFilter: ").append(toIndentedString(canFilter)).append("\n"); + sb.append(" supportsContentDownloading: ").append(toIndentedString(supportsContentDownloading)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("CanSearch"); + openapiFields.add("MediaTypes"); + openapiFields.add("ContentTypes"); + openapiFields.add("MaxPageSize"); + openapiFields.add("AutoRefreshLevels"); + openapiFields.add("DefaultSortFields"); + openapiFields.add("SupportsSortOrderToggle"); + openapiFields.add("SupportsLatestMedia"); + openapiFields.add("CanFilter"); + openapiFields.add("SupportsContentDownloading"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChannelFeatures + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChannelFeatures.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChannelFeatures is not found in the empty JSON string", ChannelFeatures.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChannelFeatures.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChannelFeatures` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MediaTypes") != null && !jsonObj.get("MediaTypes").isJsonNull() && !jsonObj.get("MediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("MediaTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ContentTypes") != null && !jsonObj.get("ContentTypes").isJsonNull() && !jsonObj.get("ContentTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypes` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DefaultSortFields") != null && !jsonObj.get("DefaultSortFields").isJsonNull() && !jsonObj.get("DefaultSortFields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DefaultSortFields` to be an array in the JSON string but got `%s`", jsonObj.get("DefaultSortFields").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChannelFeatures.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChannelFeatures' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChannelFeatures.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChannelFeatures value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChannelFeatures read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChannelFeatures given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChannelFeatures + * @throws IOException if the JSON string is invalid with respect to ChannelFeatures + */ + public static ChannelFeatures fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChannelFeatures.class); + } + + /** + * Convert an instance of ChannelFeatures to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelItemSortField.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelItemSortField.java new file mode 100644 index 0000000000000..8582866d9d2e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelItemSortField.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelItemSortField + */ +@JsonAdapter(ChannelItemSortField.Adapter.class) +public enum ChannelItemSortField { + + NAME("Name"), + + COMMUNITY_RATING("CommunityRating"), + + PREMIERE_DATE("PremiereDate"), + + DATE_CREATED("DateCreated"), + + RUNTIME("Runtime"), + + PLAY_COUNT("PlayCount"), + + COMMUNITY_PLAY_COUNT("CommunityPlayCount"); + + private String value; + + ChannelItemSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelItemSortField fromValue(String value) { + for (ChannelItemSortField b : ChannelItemSortField.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelItemSortField enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelItemSortField read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelItemSortField.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelItemSortField.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java new file mode 100644 index 0000000000000..125f93a3e1f80 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMappingOptionsDto.java @@ -0,0 +1,370 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameIdPair; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.TunerChannelMapping; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Channel mapping options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChannelMappingOptionsDto { + public static final String SERIALIZED_NAME_TUNER_CHANNELS = "TunerChannels"; + @SerializedName(SERIALIZED_NAME_TUNER_CHANNELS) + @javax.annotation.Nullable + private List tunerChannels = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROVIDER_CHANNELS = "ProviderChannels"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNELS) + @javax.annotation.Nullable + private List providerChannels = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MAPPINGS = "Mappings"; + @SerializedName(SERIALIZED_NAME_MAPPINGS) + @javax.annotation.Nullable + private List mappings = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public ChannelMappingOptionsDto() { + } + + public ChannelMappingOptionsDto tunerChannels(@javax.annotation.Nullable List tunerChannels) { + this.tunerChannels = tunerChannels; + return this; + } + + public ChannelMappingOptionsDto addTunerChannelsItem(TunerChannelMapping tunerChannelsItem) { + if (this.tunerChannels == null) { + this.tunerChannels = new ArrayList<>(); + } + this.tunerChannels.add(tunerChannelsItem); + return this; + } + + /** + * Gets or sets list of tuner channels. + * @return tunerChannels + */ + @javax.annotation.Nullable + public List getTunerChannels() { + return tunerChannels; + } + + public void setTunerChannels(@javax.annotation.Nullable List tunerChannels) { + this.tunerChannels = tunerChannels; + } + + + public ChannelMappingOptionsDto providerChannels(@javax.annotation.Nullable List providerChannels) { + this.providerChannels = providerChannels; + return this; + } + + public ChannelMappingOptionsDto addProviderChannelsItem(NameIdPair providerChannelsItem) { + if (this.providerChannels == null) { + this.providerChannels = new ArrayList<>(); + } + this.providerChannels.add(providerChannelsItem); + return this; + } + + /** + * Gets or sets list of provider channels. + * @return providerChannels + */ + @javax.annotation.Nullable + public List getProviderChannels() { + return providerChannels; + } + + public void setProviderChannels(@javax.annotation.Nullable List providerChannels) { + this.providerChannels = providerChannels; + } + + + public ChannelMappingOptionsDto mappings(@javax.annotation.Nullable List mappings) { + this.mappings = mappings; + return this; + } + + public ChannelMappingOptionsDto addMappingsItem(NameValuePair mappingsItem) { + if (this.mappings == null) { + this.mappings = new ArrayList<>(); + } + this.mappings.add(mappingsItem); + return this; + } + + /** + * Gets or sets list of mappings. + * @return mappings + */ + @javax.annotation.Nullable + public List getMappings() { + return mappings; + } + + public void setMappings(@javax.annotation.Nullable List mappings) { + this.mappings = mappings; + } + + + public ChannelMappingOptionsDto providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Gets or sets provider name. + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChannelMappingOptionsDto channelMappingOptionsDto = (ChannelMappingOptionsDto) o; + return Objects.equals(this.tunerChannels, channelMappingOptionsDto.tunerChannels) && + Objects.equals(this.providerChannels, channelMappingOptionsDto.providerChannels) && + Objects.equals(this.mappings, channelMappingOptionsDto.mappings) && + Objects.equals(this.providerName, channelMappingOptionsDto.providerName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(tunerChannels, providerChannels, mappings, providerName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChannelMappingOptionsDto {\n"); + sb.append(" tunerChannels: ").append(toIndentedString(tunerChannels)).append("\n"); + sb.append(" providerChannels: ").append(toIndentedString(providerChannels)).append("\n"); + sb.append(" mappings: ").append(toIndentedString(mappings)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("TunerChannels"); + openapiFields.add("ProviderChannels"); + openapiFields.add("Mappings"); + openapiFields.add("ProviderName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChannelMappingOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChannelMappingOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChannelMappingOptionsDto is not found in the empty JSON string", ChannelMappingOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChannelMappingOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChannelMappingOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("TunerChannels") != null && !jsonObj.get("TunerChannels").isJsonNull()) { + JsonArray jsonArraytunerChannels = jsonObj.getAsJsonArray("TunerChannels"); + if (jsonArraytunerChannels != null) { + // ensure the json data is an array + if (!jsonObj.get("TunerChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerChannels` to be an array in the JSON string but got `%s`", jsonObj.get("TunerChannels").toString())); + } + + // validate the optional field `TunerChannels` (array) + for (int i = 0; i < jsonArraytunerChannels.size(); i++) { + TunerChannelMapping.validateJsonElement(jsonArraytunerChannels.get(i)); + }; + } + } + if (jsonObj.get("ProviderChannels") != null && !jsonObj.get("ProviderChannels").isJsonNull()) { + JsonArray jsonArrayproviderChannels = jsonObj.getAsJsonArray("ProviderChannels"); + if (jsonArrayproviderChannels != null) { + // ensure the json data is an array + if (!jsonObj.get("ProviderChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannels` to be an array in the JSON string but got `%s`", jsonObj.get("ProviderChannels").toString())); + } + + // validate the optional field `ProviderChannels` (array) + for (int i = 0; i < jsonArrayproviderChannels.size(); i++) { + NameIdPair.validateJsonElement(jsonArrayproviderChannels.get(i)); + }; + } + } + if (jsonObj.get("Mappings") != null && !jsonObj.get("Mappings").isJsonNull()) { + JsonArray jsonArraymappings = jsonObj.getAsJsonArray("Mappings"); + if (jsonArraymappings != null) { + // ensure the json data is an array + if (!jsonObj.get("Mappings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Mappings` to be an array in the JSON string but got `%s`", jsonObj.get("Mappings").toString())); + } + + // validate the optional field `Mappings` (array) + for (int i = 0; i < jsonArraymappings.size(); i++) { + NameValuePair.validateJsonElement(jsonArraymappings.get(i)); + }; + } + } + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChannelMappingOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChannelMappingOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChannelMappingOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChannelMappingOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChannelMappingOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChannelMappingOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChannelMappingOptionsDto + * @throws IOException if the JSON string is invalid with respect to ChannelMappingOptionsDto + */ + public static ChannelMappingOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChannelMappingOptionsDto.class); + } + + /** + * Convert an instance of ChannelMappingOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java new file mode 100644 index 0000000000000..c86442617a99c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaContentType.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelMediaContentType + */ +@JsonAdapter(ChannelMediaContentType.Adapter.class) +public enum ChannelMediaContentType { + + CLIP("Clip"), + + PODCAST("Podcast"), + + TRAILER("Trailer"), + + MOVIE("Movie"), + + EPISODE("Episode"), + + SONG("Song"), + + MOVIE_EXTRA("MovieExtra"), + + TV_EXTRA("TvExtra"); + + private String value; + + ChannelMediaContentType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelMediaContentType fromValue(String value) { + for (ChannelMediaContentType b : ChannelMediaContentType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelMediaContentType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelMediaContentType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelMediaContentType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelMediaContentType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaType.java new file mode 100644 index 0000000000000..af56180898c5c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelMediaType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ChannelMediaType + */ +@JsonAdapter(ChannelMediaType.Adapter.class) +public enum ChannelMediaType { + + AUDIO("Audio"), + + VIDEO("Video"), + + PHOTO("Photo"); + + private String value; + + ChannelMediaType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelMediaType fromValue(String value) { + for (ChannelMediaType b : ChannelMediaType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelMediaType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelMediaType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelMediaType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelMediaType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelType.java new file mode 100644 index 0000000000000..53da5a4ac2fb0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChannelType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ChannelType. + */ +@JsonAdapter(ChannelType.Adapter.class) +public enum ChannelType { + + TV("TV"), + + RADIO("Radio"); + + private String value; + + ChannelType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ChannelType fromValue(String value) { + for (ChannelType b : ChannelType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ChannelType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ChannelType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ChannelType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ChannelType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChapterInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChapterInfo.java new file mode 100644 index 0000000000000..5960d5bdfc426 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ChapterInfo.java @@ -0,0 +1,333 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ChapterInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ChapterInfo { + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IMAGE_PATH = "ImagePath"; + @SerializedName(SERIALIZED_NAME_IMAGE_PATH) + @javax.annotation.Nullable + private String imagePath; + + public static final String SERIALIZED_NAME_IMAGE_DATE_MODIFIED = "ImageDateModified"; + @SerializedName(SERIALIZED_NAME_IMAGE_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime imageDateModified; + + public static final String SERIALIZED_NAME_IMAGE_TAG = "ImageTag"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAG) + @javax.annotation.Nullable + private String imageTag; + + public ChapterInfo() { + } + + public ChapterInfo startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + public ChapterInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ChapterInfo imagePath(@javax.annotation.Nullable String imagePath) { + this.imagePath = imagePath; + return this; + } + + /** + * Gets or sets the image path. + * @return imagePath + */ + @javax.annotation.Nullable + public String getImagePath() { + return imagePath; + } + + public void setImagePath(@javax.annotation.Nullable String imagePath) { + this.imagePath = imagePath; + } + + + public ChapterInfo imageDateModified(@javax.annotation.Nullable OffsetDateTime imageDateModified) { + this.imageDateModified = imageDateModified; + return this; + } + + /** + * Get imageDateModified + * @return imageDateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getImageDateModified() { + return imageDateModified; + } + + public void setImageDateModified(@javax.annotation.Nullable OffsetDateTime imageDateModified) { + this.imageDateModified = imageDateModified; + } + + + public ChapterInfo imageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + return this; + } + + /** + * Get imageTag + * @return imageTag + */ + @javax.annotation.Nullable + public String getImageTag() { + return imageTag; + } + + public void setImageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChapterInfo chapterInfo = (ChapterInfo) o; + return Objects.equals(this.startPositionTicks, chapterInfo.startPositionTicks) && + Objects.equals(this.name, chapterInfo.name) && + Objects.equals(this.imagePath, chapterInfo.imagePath) && + Objects.equals(this.imageDateModified, chapterInfo.imageDateModified) && + Objects.equals(this.imageTag, chapterInfo.imageTag); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(startPositionTicks, name, imagePath, imageDateModified, imageTag); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChapterInfo {\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" imagePath: ").append(toIndentedString(imagePath)).append("\n"); + sb.append(" imageDateModified: ").append(toIndentedString(imageDateModified)).append("\n"); + sb.append(" imageTag: ").append(toIndentedString(imageTag)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartPositionTicks"); + openapiFields.add("Name"); + openapiFields.add("ImagePath"); + openapiFields.add("ImageDateModified"); + openapiFields.add("ImageTag"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChapterInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChapterInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChapterInfo is not found in the empty JSON string", ChapterInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChapterInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChapterInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ImagePath") != null && !jsonObj.get("ImagePath").isJsonNull()) && !jsonObj.get("ImagePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImagePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImagePath").toString())); + } + if ((jsonObj.get("ImageTag") != null && !jsonObj.get("ImageTag").isJsonNull()) && !jsonObj.get("ImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageTag").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChapterInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChapterInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChapterInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChapterInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChapterInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChapterInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChapterInfo + * @throws IOException if the JSON string is invalid with respect to ChapterInfo + */ + public static ChapterInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChapterInfo.class); + } + + /** + * Convert an instance of ChapterInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilities.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilities.java new file mode 100644 index 0000000000000..481f504cfff80 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilities.java @@ -0,0 +1,499 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ClientCapabilities + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ClientCapabilities { + public static final String SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES = "PlayableMediaTypes"; + @SerializedName(SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES) + @javax.annotation.Nullable + private List playableMediaTypes; + + public static final String SERIALIZED_NAME_SUPPORTED_COMMANDS = "SupportedCommands"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_COMMANDS) + @javax.annotation.Nullable + private List supportedCommands; + + public static final String SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL = "SupportsMediaControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL) + @javax.annotation.Nullable + private Boolean supportsMediaControl; + + public static final String SERIALIZED_NAME_SUPPORTS_CONTENT_UPLOADING = "SupportsContentUploading"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_CONTENT_UPLOADING) + @javax.annotation.Nullable + private Boolean supportsContentUploading; + + public static final String SERIALIZED_NAME_MESSAGE_CALLBACK_URL = "MessageCallbackUrl"; + @SerializedName(SERIALIZED_NAME_MESSAGE_CALLBACK_URL) + @javax.annotation.Nullable + private String messageCallbackUrl; + + public static final String SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER = "SupportsPersistentIdentifier"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER) + @javax.annotation.Nullable + private Boolean supportsPersistentIdentifier; + + public static final String SERIALIZED_NAME_SUPPORTS_SYNC = "SupportsSync"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_SYNC) + @javax.annotation.Nullable + private Boolean supportsSync; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_APP_STORE_URL = "AppStoreUrl"; + @SerializedName(SERIALIZED_NAME_APP_STORE_URL) + @javax.annotation.Nullable + private String appStoreUrl; + + public static final String SERIALIZED_NAME_ICON_URL = "IconUrl"; + @SerializedName(SERIALIZED_NAME_ICON_URL) + @javax.annotation.Nullable + private String iconUrl; + + public ClientCapabilities() { + } + + public ClientCapabilities playableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + return this; + } + + public ClientCapabilities addPlayableMediaTypesItem(String playableMediaTypesItem) { + if (this.playableMediaTypes == null) { + this.playableMediaTypes = new ArrayList<>(); + } + this.playableMediaTypes.add(playableMediaTypesItem); + return this; + } + + /** + * Get playableMediaTypes + * @return playableMediaTypes + */ + @javax.annotation.Nullable + public List getPlayableMediaTypes() { + return playableMediaTypes; + } + + public void setPlayableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + } + + + public ClientCapabilities supportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + return this; + } + + public ClientCapabilities addSupportedCommandsItem(GeneralCommandType supportedCommandsItem) { + if (this.supportedCommands == null) { + this.supportedCommands = new ArrayList<>(); + } + this.supportedCommands.add(supportedCommandsItem); + return this; + } + + /** + * Get supportedCommands + * @return supportedCommands + */ + @javax.annotation.Nullable + public List getSupportedCommands() { + return supportedCommands; + } + + public void setSupportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + } + + + public ClientCapabilities supportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + return this; + } + + /** + * Get supportsMediaControl + * @return supportsMediaControl + */ + @javax.annotation.Nullable + public Boolean getSupportsMediaControl() { + return supportsMediaControl; + } + + public void setSupportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + } + + + public ClientCapabilities supportsContentUploading(@javax.annotation.Nullable Boolean supportsContentUploading) { + this.supportsContentUploading = supportsContentUploading; + return this; + } + + /** + * Get supportsContentUploading + * @return supportsContentUploading + */ + @javax.annotation.Nullable + public Boolean getSupportsContentUploading() { + return supportsContentUploading; + } + + public void setSupportsContentUploading(@javax.annotation.Nullable Boolean supportsContentUploading) { + this.supportsContentUploading = supportsContentUploading; + } + + + public ClientCapabilities messageCallbackUrl(@javax.annotation.Nullable String messageCallbackUrl) { + this.messageCallbackUrl = messageCallbackUrl; + return this; + } + + /** + * Get messageCallbackUrl + * @return messageCallbackUrl + */ + @javax.annotation.Nullable + public String getMessageCallbackUrl() { + return messageCallbackUrl; + } + + public void setMessageCallbackUrl(@javax.annotation.Nullable String messageCallbackUrl) { + this.messageCallbackUrl = messageCallbackUrl; + } + + + public ClientCapabilities supportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + return this; + } + + /** + * Get supportsPersistentIdentifier + * @return supportsPersistentIdentifier + */ + @javax.annotation.Nullable + public Boolean getSupportsPersistentIdentifier() { + return supportsPersistentIdentifier; + } + + public void setSupportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + } + + + public ClientCapabilities supportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + return this; + } + + /** + * Get supportsSync + * @return supportsSync + */ + @javax.annotation.Nullable + public Boolean getSupportsSync() { + return supportsSync; + } + + public void setSupportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + } + + + public ClientCapabilities deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public ClientCapabilities appStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + return this; + } + + /** + * Get appStoreUrl + * @return appStoreUrl + */ + @javax.annotation.Nullable + public String getAppStoreUrl() { + return appStoreUrl; + } + + public void setAppStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + } + + + public ClientCapabilities iconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + return this; + } + + /** + * Get iconUrl + * @return iconUrl + */ + @javax.annotation.Nullable + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientCapabilities clientCapabilities = (ClientCapabilities) o; + return Objects.equals(this.playableMediaTypes, clientCapabilities.playableMediaTypes) && + Objects.equals(this.supportedCommands, clientCapabilities.supportedCommands) && + Objects.equals(this.supportsMediaControl, clientCapabilities.supportsMediaControl) && + Objects.equals(this.supportsContentUploading, clientCapabilities.supportsContentUploading) && + Objects.equals(this.messageCallbackUrl, clientCapabilities.messageCallbackUrl) && + Objects.equals(this.supportsPersistentIdentifier, clientCapabilities.supportsPersistentIdentifier) && + Objects.equals(this.supportsSync, clientCapabilities.supportsSync) && + Objects.equals(this.deviceProfile, clientCapabilities.deviceProfile) && + Objects.equals(this.appStoreUrl, clientCapabilities.appStoreUrl) && + Objects.equals(this.iconUrl, clientCapabilities.iconUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(playableMediaTypes, supportedCommands, supportsMediaControl, supportsContentUploading, messageCallbackUrl, supportsPersistentIdentifier, supportsSync, deviceProfile, appStoreUrl, iconUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClientCapabilities {\n"); + sb.append(" playableMediaTypes: ").append(toIndentedString(playableMediaTypes)).append("\n"); + sb.append(" supportedCommands: ").append(toIndentedString(supportedCommands)).append("\n"); + sb.append(" supportsMediaControl: ").append(toIndentedString(supportsMediaControl)).append("\n"); + sb.append(" supportsContentUploading: ").append(toIndentedString(supportsContentUploading)).append("\n"); + sb.append(" messageCallbackUrl: ").append(toIndentedString(messageCallbackUrl)).append("\n"); + sb.append(" supportsPersistentIdentifier: ").append(toIndentedString(supportsPersistentIdentifier)).append("\n"); + sb.append(" supportsSync: ").append(toIndentedString(supportsSync)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" appStoreUrl: ").append(toIndentedString(appStoreUrl)).append("\n"); + sb.append(" iconUrl: ").append(toIndentedString(iconUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayableMediaTypes"); + openapiFields.add("SupportedCommands"); + openapiFields.add("SupportsMediaControl"); + openapiFields.add("SupportsContentUploading"); + openapiFields.add("MessageCallbackUrl"); + openapiFields.add("SupportsPersistentIdentifier"); + openapiFields.add("SupportsSync"); + openapiFields.add("DeviceProfile"); + openapiFields.add("AppStoreUrl"); + openapiFields.add("IconUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ClientCapabilities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ClientCapabilities.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ClientCapabilities is not found in the empty JSON string", ClientCapabilities.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ClientCapabilities.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ClientCapabilities` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlayableMediaTypes") != null && !jsonObj.get("PlayableMediaTypes").isJsonNull() && !jsonObj.get("PlayableMediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayableMediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("PlayableMediaTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedCommands") != null && !jsonObj.get("SupportedCommands").isJsonNull() && !jsonObj.get("SupportedCommands").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedCommands` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedCommands").toString())); + } + if ((jsonObj.get("MessageCallbackUrl") != null && !jsonObj.get("MessageCallbackUrl").isJsonNull()) && !jsonObj.get("MessageCallbackUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageCallbackUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageCallbackUrl").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + if ((jsonObj.get("AppStoreUrl") != null && !jsonObj.get("AppStoreUrl").isJsonNull()) && !jsonObj.get("AppStoreUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppStoreUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppStoreUrl").toString())); + } + if ((jsonObj.get("IconUrl") != null && !jsonObj.get("IconUrl").isJsonNull()) && !jsonObj.get("IconUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IconUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IconUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ClientCapabilities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ClientCapabilities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ClientCapabilities.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ClientCapabilities value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ClientCapabilities read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ClientCapabilities given an JSON string + * + * @param jsonString JSON string + * @return An instance of ClientCapabilities + * @throws IOException if the JSON string is invalid with respect to ClientCapabilities + */ + public static ClientCapabilities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ClientCapabilities.class); + } + + /** + * Convert an instance of ClientCapabilities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java new file mode 100644 index 0000000000000..e5c5edb8cd133 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientCapabilitiesDto.java @@ -0,0 +1,499 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Client capabilities dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ClientCapabilitiesDto { + public static final String SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES = "PlayableMediaTypes"; + @SerializedName(SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES) + @javax.annotation.Nullable + private List playableMediaTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTED_COMMANDS = "SupportedCommands"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_COMMANDS) + @javax.annotation.Nullable + private List supportedCommands = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL = "SupportsMediaControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL) + @javax.annotation.Nullable + private Boolean supportsMediaControl; + + public static final String SERIALIZED_NAME_SUPPORTS_CONTENT_UPLOADING = "SupportsContentUploading"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_CONTENT_UPLOADING) + @javax.annotation.Nullable + private Boolean supportsContentUploading; + + public static final String SERIALIZED_NAME_MESSAGE_CALLBACK_URL = "MessageCallbackUrl"; + @SerializedName(SERIALIZED_NAME_MESSAGE_CALLBACK_URL) + @javax.annotation.Nullable + private String messageCallbackUrl; + + public static final String SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER = "SupportsPersistentIdentifier"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_PERSISTENT_IDENTIFIER) + @javax.annotation.Nullable + private Boolean supportsPersistentIdentifier; + + public static final String SERIALIZED_NAME_SUPPORTS_SYNC = "SupportsSync"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_SYNC) + @javax.annotation.Nullable + private Boolean supportsSync; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_APP_STORE_URL = "AppStoreUrl"; + @SerializedName(SERIALIZED_NAME_APP_STORE_URL) + @javax.annotation.Nullable + private String appStoreUrl; + + public static final String SERIALIZED_NAME_ICON_URL = "IconUrl"; + @SerializedName(SERIALIZED_NAME_ICON_URL) + @javax.annotation.Nullable + private String iconUrl; + + public ClientCapabilitiesDto() { + } + + public ClientCapabilitiesDto playableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + return this; + } + + public ClientCapabilitiesDto addPlayableMediaTypesItem(String playableMediaTypesItem) { + if (this.playableMediaTypes == null) { + this.playableMediaTypes = new ArrayList<>(); + } + this.playableMediaTypes.add(playableMediaTypesItem); + return this; + } + + /** + * Gets or sets the list of playable media types. + * @return playableMediaTypes + */ + @javax.annotation.Nullable + public List getPlayableMediaTypes() { + return playableMediaTypes; + } + + public void setPlayableMediaTypes(@javax.annotation.Nullable List playableMediaTypes) { + this.playableMediaTypes = playableMediaTypes; + } + + + public ClientCapabilitiesDto supportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + return this; + } + + public ClientCapabilitiesDto addSupportedCommandsItem(GeneralCommandType supportedCommandsItem) { + if (this.supportedCommands == null) { + this.supportedCommands = new ArrayList<>(); + } + this.supportedCommands.add(supportedCommandsItem); + return this; + } + + /** + * Gets or sets the list of supported commands. + * @return supportedCommands + */ + @javax.annotation.Nullable + public List getSupportedCommands() { + return supportedCommands; + } + + public void setSupportedCommands(@javax.annotation.Nullable List supportedCommands) { + this.supportedCommands = supportedCommands; + } + + + public ClientCapabilitiesDto supportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + return this; + } + + /** + * Gets or sets a value indicating whether session supports media control. + * @return supportsMediaControl + */ + @javax.annotation.Nullable + public Boolean getSupportsMediaControl() { + return supportsMediaControl; + } + + public void setSupportsMediaControl(@javax.annotation.Nullable Boolean supportsMediaControl) { + this.supportsMediaControl = supportsMediaControl; + } + + + public ClientCapabilitiesDto supportsContentUploading(@javax.annotation.Nullable Boolean supportsContentUploading) { + this.supportsContentUploading = supportsContentUploading; + return this; + } + + /** + * Gets or sets a value indicating whether session supports content uploading. + * @return supportsContentUploading + */ + @javax.annotation.Nullable + public Boolean getSupportsContentUploading() { + return supportsContentUploading; + } + + public void setSupportsContentUploading(@javax.annotation.Nullable Boolean supportsContentUploading) { + this.supportsContentUploading = supportsContentUploading; + } + + + public ClientCapabilitiesDto messageCallbackUrl(@javax.annotation.Nullable String messageCallbackUrl) { + this.messageCallbackUrl = messageCallbackUrl; + return this; + } + + /** + * Gets or sets the message callback url. + * @return messageCallbackUrl + */ + @javax.annotation.Nullable + public String getMessageCallbackUrl() { + return messageCallbackUrl; + } + + public void setMessageCallbackUrl(@javax.annotation.Nullable String messageCallbackUrl) { + this.messageCallbackUrl = messageCallbackUrl; + } + + + public ClientCapabilitiesDto supportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + return this; + } + + /** + * Gets or sets a value indicating whether session supports a persistent identifier. + * @return supportsPersistentIdentifier + */ + @javax.annotation.Nullable + public Boolean getSupportsPersistentIdentifier() { + return supportsPersistentIdentifier; + } + + public void setSupportsPersistentIdentifier(@javax.annotation.Nullable Boolean supportsPersistentIdentifier) { + this.supportsPersistentIdentifier = supportsPersistentIdentifier; + } + + + public ClientCapabilitiesDto supportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + return this; + } + + /** + * Gets or sets a value indicating whether session supports sync. + * @return supportsSync + */ + @javax.annotation.Nullable + public Boolean getSupportsSync() { + return supportsSync; + } + + public void setSupportsSync(@javax.annotation.Nullable Boolean supportsSync) { + this.supportsSync = supportsSync; + } + + + public ClientCapabilitiesDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public ClientCapabilitiesDto appStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + return this; + } + + /** + * Gets or sets the app store url. + * @return appStoreUrl + */ + @javax.annotation.Nullable + public String getAppStoreUrl() { + return appStoreUrl; + } + + public void setAppStoreUrl(@javax.annotation.Nullable String appStoreUrl) { + this.appStoreUrl = appStoreUrl; + } + + + public ClientCapabilitiesDto iconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + return this; + } + + /** + * Gets or sets the icon url. + * @return iconUrl + */ + @javax.annotation.Nullable + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientCapabilitiesDto clientCapabilitiesDto = (ClientCapabilitiesDto) o; + return Objects.equals(this.playableMediaTypes, clientCapabilitiesDto.playableMediaTypes) && + Objects.equals(this.supportedCommands, clientCapabilitiesDto.supportedCommands) && + Objects.equals(this.supportsMediaControl, clientCapabilitiesDto.supportsMediaControl) && + Objects.equals(this.supportsContentUploading, clientCapabilitiesDto.supportsContentUploading) && + Objects.equals(this.messageCallbackUrl, clientCapabilitiesDto.messageCallbackUrl) && + Objects.equals(this.supportsPersistentIdentifier, clientCapabilitiesDto.supportsPersistentIdentifier) && + Objects.equals(this.supportsSync, clientCapabilitiesDto.supportsSync) && + Objects.equals(this.deviceProfile, clientCapabilitiesDto.deviceProfile) && + Objects.equals(this.appStoreUrl, clientCapabilitiesDto.appStoreUrl) && + Objects.equals(this.iconUrl, clientCapabilitiesDto.iconUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(playableMediaTypes, supportedCommands, supportsMediaControl, supportsContentUploading, messageCallbackUrl, supportsPersistentIdentifier, supportsSync, deviceProfile, appStoreUrl, iconUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClientCapabilitiesDto {\n"); + sb.append(" playableMediaTypes: ").append(toIndentedString(playableMediaTypes)).append("\n"); + sb.append(" supportedCommands: ").append(toIndentedString(supportedCommands)).append("\n"); + sb.append(" supportsMediaControl: ").append(toIndentedString(supportsMediaControl)).append("\n"); + sb.append(" supportsContentUploading: ").append(toIndentedString(supportsContentUploading)).append("\n"); + sb.append(" messageCallbackUrl: ").append(toIndentedString(messageCallbackUrl)).append("\n"); + sb.append(" supportsPersistentIdentifier: ").append(toIndentedString(supportsPersistentIdentifier)).append("\n"); + sb.append(" supportsSync: ").append(toIndentedString(supportsSync)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" appStoreUrl: ").append(toIndentedString(appStoreUrl)).append("\n"); + sb.append(" iconUrl: ").append(toIndentedString(iconUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayableMediaTypes"); + openapiFields.add("SupportedCommands"); + openapiFields.add("SupportsMediaControl"); + openapiFields.add("SupportsContentUploading"); + openapiFields.add("MessageCallbackUrl"); + openapiFields.add("SupportsPersistentIdentifier"); + openapiFields.add("SupportsSync"); + openapiFields.add("DeviceProfile"); + openapiFields.add("AppStoreUrl"); + openapiFields.add("IconUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ClientCapabilitiesDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ClientCapabilitiesDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ClientCapabilitiesDto is not found in the empty JSON string", ClientCapabilitiesDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ClientCapabilitiesDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ClientCapabilitiesDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlayableMediaTypes") != null && !jsonObj.get("PlayableMediaTypes").isJsonNull() && !jsonObj.get("PlayableMediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayableMediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("PlayableMediaTypes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedCommands") != null && !jsonObj.get("SupportedCommands").isJsonNull() && !jsonObj.get("SupportedCommands").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedCommands` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedCommands").toString())); + } + if ((jsonObj.get("MessageCallbackUrl") != null && !jsonObj.get("MessageCallbackUrl").isJsonNull()) && !jsonObj.get("MessageCallbackUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MessageCallbackUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MessageCallbackUrl").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + if ((jsonObj.get("AppStoreUrl") != null && !jsonObj.get("AppStoreUrl").isJsonNull()) && !jsonObj.get("AppStoreUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppStoreUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppStoreUrl").toString())); + } + if ((jsonObj.get("IconUrl") != null && !jsonObj.get("IconUrl").isJsonNull()) && !jsonObj.get("IconUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IconUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IconUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ClientCapabilitiesDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ClientCapabilitiesDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ClientCapabilitiesDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ClientCapabilitiesDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ClientCapabilitiesDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ClientCapabilitiesDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ClientCapabilitiesDto + * @throws IOException if the JSON string is invalid with respect to ClientCapabilitiesDto + */ + public static ClientCapabilitiesDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ClientCapabilitiesDto.class); + } + + /** + * Convert an instance of ClientCapabilitiesDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java new file mode 100644 index 0000000000000..4723386e0863d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ClientLogDocumentResponseDto.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Client log document response dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ClientLogDocumentResponseDto { + public static final String SERIALIZED_NAME_FILE_NAME = "FileName"; + @SerializedName(SERIALIZED_NAME_FILE_NAME) + @javax.annotation.Nullable + private String fileName; + + public ClientLogDocumentResponseDto() { + } + + public ClientLogDocumentResponseDto fileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + return this; + } + + /** + * Gets the resulting filename. + * @return fileName + */ + @javax.annotation.Nullable + public String getFileName() { + return fileName; + } + + public void setFileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientLogDocumentResponseDto clientLogDocumentResponseDto = (ClientLogDocumentResponseDto) o; + return Objects.equals(this.fileName, clientLogDocumentResponseDto.fileName); + } + + @Override + public int hashCode() { + return Objects.hash(fileName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ClientLogDocumentResponseDto {\n"); + sb.append(" fileName: ").append(toIndentedString(fileName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FileName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ClientLogDocumentResponseDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ClientLogDocumentResponseDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ClientLogDocumentResponseDto is not found in the empty JSON string", ClientLogDocumentResponseDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ClientLogDocumentResponseDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ClientLogDocumentResponseDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("FileName") != null && !jsonObj.get("FileName").isJsonNull()) && !jsonObj.get("FileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FileName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ClientLogDocumentResponseDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ClientLogDocumentResponseDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ClientLogDocumentResponseDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ClientLogDocumentResponseDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ClientLogDocumentResponseDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ClientLogDocumentResponseDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ClientLogDocumentResponseDto + * @throws IOException if the JSON string is invalid with respect to ClientLogDocumentResponseDto + */ + public static ClientLogDocumentResponseDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ClientLogDocumentResponseDto.class); + } + + /** + * Convert an instance of ClientLogDocumentResponseDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecProfile.java new file mode 100644 index 0000000000000..88e8195aa68e7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecProfile.java @@ -0,0 +1,381 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CodecType; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * CodecProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CodecProfile { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private CodecType type; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions; + + public static final String SERIALIZED_NAME_APPLY_CONDITIONS = "ApplyConditions"; + @SerializedName(SERIALIZED_NAME_APPLY_CONDITIONS) + @javax.annotation.Nullable + private List applyConditions; + + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public CodecProfile() { + } + + public CodecProfile type(@javax.annotation.Nullable CodecType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public CodecType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable CodecType type) { + this.type = type; + } + + + public CodecProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public CodecProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Get conditions + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public CodecProfile applyConditions(@javax.annotation.Nullable List applyConditions) { + this.applyConditions = applyConditions; + return this; + } + + public CodecProfile addApplyConditionsItem(ProfileCondition applyConditionsItem) { + if (this.applyConditions == null) { + this.applyConditions = new ArrayList<>(); + } + this.applyConditions.add(applyConditionsItem); + return this; + } + + /** + * Get applyConditions + * @return applyConditions + */ + @javax.annotation.Nullable + public List getApplyConditions() { + return applyConditions; + } + + public void setApplyConditions(@javax.annotation.Nullable List applyConditions) { + this.applyConditions = applyConditions; + } + + + public CodecProfile codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Get codec + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public CodecProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CodecProfile codecProfile = (CodecProfile) o; + return Objects.equals(this.type, codecProfile.type) && + Objects.equals(this.conditions, codecProfile.conditions) && + Objects.equals(this.applyConditions, codecProfile.applyConditions) && + Objects.equals(this.codec, codecProfile.codec) && + Objects.equals(this.container, codecProfile.container); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, conditions, applyConditions, codec, container); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CodecProfile {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" applyConditions: ").append(toIndentedString(applyConditions)).append("\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Conditions"); + openapiFields.add("ApplyConditions"); + openapiFields.add("Codec"); + openapiFields.add("Container"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CodecProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CodecProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CodecProfile is not found in the empty JSON string", CodecProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CodecProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CodecProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + CodecType.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + if (jsonObj.get("ApplyConditions") != null && !jsonObj.get("ApplyConditions").isJsonNull()) { + JsonArray jsonArrayapplyConditions = jsonObj.getAsJsonArray("ApplyConditions"); + if (jsonArrayapplyConditions != null) { + // ensure the json data is an array + if (!jsonObj.get("ApplyConditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ApplyConditions` to be an array in the JSON string but got `%s`", jsonObj.get("ApplyConditions").toString())); + } + + // validate the optional field `ApplyConditions` (array) + for (int i = 0; i < jsonArrayapplyConditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayapplyConditions.get(i)); + }; + } + } + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CodecProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CodecProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CodecProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CodecProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CodecProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CodecProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of CodecProfile + * @throws IOException if the JSON string is invalid with respect to CodecProfile + */ + public static CodecProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CodecProfile.class); + } + + /** + * Convert an instance of CodecProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecType.java new file mode 100644 index 0000000000000..cb1b26c97cc22 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CodecType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets CodecType + */ +@JsonAdapter(CodecType.Adapter.class) +public enum CodecType { + + VIDEO("Video"), + + VIDEO_AUDIO("VideoAudio"), + + AUDIO("Audio"); + + private String value; + + CodecType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CodecType fromValue(String value) { + for (CodecType b : CodecType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CodecType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CodecType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CodecType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CodecType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionCreationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionCreationResult.java new file mode 100644 index 0000000000000..76f3a8bee561d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionCreationResult.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * CollectionCreationResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CollectionCreationResult { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public CollectionCreationResult() { + } + + public CollectionCreationResult id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollectionCreationResult collectionCreationResult = (CollectionCreationResult) o; + return Objects.equals(this.id, collectionCreationResult.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CollectionCreationResult {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CollectionCreationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CollectionCreationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CollectionCreationResult is not found in the empty JSON string", CollectionCreationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CollectionCreationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CollectionCreationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CollectionCreationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CollectionCreationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CollectionCreationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CollectionCreationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CollectionCreationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CollectionCreationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of CollectionCreationResult + * @throws IOException if the JSON string is invalid with respect to CollectionCreationResult + */ + public static CollectionCreationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CollectionCreationResult.class); + } + + /** + * Convert an instance of CollectionCreationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java new file mode 100644 index 0000000000000..e0facb673d511 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CollectionTypeOptions.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets CollectionTypeOptions + */ +@JsonAdapter(CollectionTypeOptions.Adapter.class) +public enum CollectionTypeOptions { + + MOVIES("Movies"), + + TV_SHOWS("TvShows"), + + MUSIC("Music"), + + MUSIC_VIDEOS("MusicVideos"), + + HOME_VIDEOS("HomeVideos"), + + BOX_SETS("BoxSets"), + + BOOKS("Books"), + + MIXED("Mixed"); + + private String value; + + CollectionTypeOptions(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CollectionTypeOptions fromValue(String value) { + for (CollectionTypeOptions b : CollectionTypeOptions.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CollectionTypeOptions enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CollectionTypeOptions read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CollectionTypeOptions.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CollectionTypeOptions.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigImageTypes.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigImageTypes.java new file mode 100644 index 0000000000000..c06d94daa7786 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigImageTypes.java @@ -0,0 +1,445 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ConfigImageTypes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ConfigImageTypes { + public static final String SERIALIZED_NAME_BACKDROP_SIZES = "BackdropSizes"; + @SerializedName(SERIALIZED_NAME_BACKDROP_SIZES) + @javax.annotation.Nullable + private List backdropSizes; + + public static final String SERIALIZED_NAME_BASE_URL = "BaseUrl"; + @SerializedName(SERIALIZED_NAME_BASE_URL) + @javax.annotation.Nullable + private String baseUrl; + + public static final String SERIALIZED_NAME_LOGO_SIZES = "LogoSizes"; + @SerializedName(SERIALIZED_NAME_LOGO_SIZES) + @javax.annotation.Nullable + private List logoSizes; + + public static final String SERIALIZED_NAME_POSTER_SIZES = "PosterSizes"; + @SerializedName(SERIALIZED_NAME_POSTER_SIZES) + @javax.annotation.Nullable + private List posterSizes; + + public static final String SERIALIZED_NAME_PROFILE_SIZES = "ProfileSizes"; + @SerializedName(SERIALIZED_NAME_PROFILE_SIZES) + @javax.annotation.Nullable + private List profileSizes; + + public static final String SERIALIZED_NAME_SECURE_BASE_URL = "SecureBaseUrl"; + @SerializedName(SERIALIZED_NAME_SECURE_BASE_URL) + @javax.annotation.Nullable + private String secureBaseUrl; + + public static final String SERIALIZED_NAME_STILL_SIZES = "StillSizes"; + @SerializedName(SERIALIZED_NAME_STILL_SIZES) + @javax.annotation.Nullable + private List stillSizes; + + public ConfigImageTypes() { + } + + public ConfigImageTypes backdropSizes(@javax.annotation.Nullable List backdropSizes) { + this.backdropSizes = backdropSizes; + return this; + } + + public ConfigImageTypes addBackdropSizesItem(String backdropSizesItem) { + if (this.backdropSizes == null) { + this.backdropSizes = new ArrayList<>(); + } + this.backdropSizes.add(backdropSizesItem); + return this; + } + + /** + * Get backdropSizes + * @return backdropSizes + */ + @javax.annotation.Nullable + public List getBackdropSizes() { + return backdropSizes; + } + + public void setBackdropSizes(@javax.annotation.Nullable List backdropSizes) { + this.backdropSizes = backdropSizes; + } + + + public ConfigImageTypes baseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + /** + * Get baseUrl + * @return baseUrl + */ + @javax.annotation.Nullable + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + } + + + public ConfigImageTypes logoSizes(@javax.annotation.Nullable List logoSizes) { + this.logoSizes = logoSizes; + return this; + } + + public ConfigImageTypes addLogoSizesItem(String logoSizesItem) { + if (this.logoSizes == null) { + this.logoSizes = new ArrayList<>(); + } + this.logoSizes.add(logoSizesItem); + return this; + } + + /** + * Get logoSizes + * @return logoSizes + */ + @javax.annotation.Nullable + public List getLogoSizes() { + return logoSizes; + } + + public void setLogoSizes(@javax.annotation.Nullable List logoSizes) { + this.logoSizes = logoSizes; + } + + + public ConfigImageTypes posterSizes(@javax.annotation.Nullable List posterSizes) { + this.posterSizes = posterSizes; + return this; + } + + public ConfigImageTypes addPosterSizesItem(String posterSizesItem) { + if (this.posterSizes == null) { + this.posterSizes = new ArrayList<>(); + } + this.posterSizes.add(posterSizesItem); + return this; + } + + /** + * Get posterSizes + * @return posterSizes + */ + @javax.annotation.Nullable + public List getPosterSizes() { + return posterSizes; + } + + public void setPosterSizes(@javax.annotation.Nullable List posterSizes) { + this.posterSizes = posterSizes; + } + + + public ConfigImageTypes profileSizes(@javax.annotation.Nullable List profileSizes) { + this.profileSizes = profileSizes; + return this; + } + + public ConfigImageTypes addProfileSizesItem(String profileSizesItem) { + if (this.profileSizes == null) { + this.profileSizes = new ArrayList<>(); + } + this.profileSizes.add(profileSizesItem); + return this; + } + + /** + * Get profileSizes + * @return profileSizes + */ + @javax.annotation.Nullable + public List getProfileSizes() { + return profileSizes; + } + + public void setProfileSizes(@javax.annotation.Nullable List profileSizes) { + this.profileSizes = profileSizes; + } + + + public ConfigImageTypes secureBaseUrl(@javax.annotation.Nullable String secureBaseUrl) { + this.secureBaseUrl = secureBaseUrl; + return this; + } + + /** + * Get secureBaseUrl + * @return secureBaseUrl + */ + @javax.annotation.Nullable + public String getSecureBaseUrl() { + return secureBaseUrl; + } + + public void setSecureBaseUrl(@javax.annotation.Nullable String secureBaseUrl) { + this.secureBaseUrl = secureBaseUrl; + } + + + public ConfigImageTypes stillSizes(@javax.annotation.Nullable List stillSizes) { + this.stillSizes = stillSizes; + return this; + } + + public ConfigImageTypes addStillSizesItem(String stillSizesItem) { + if (this.stillSizes == null) { + this.stillSizes = new ArrayList<>(); + } + this.stillSizes.add(stillSizesItem); + return this; + } + + /** + * Get stillSizes + * @return stillSizes + */ + @javax.annotation.Nullable + public List getStillSizes() { + return stillSizes; + } + + public void setStillSizes(@javax.annotation.Nullable List stillSizes) { + this.stillSizes = stillSizes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConfigImageTypes configImageTypes = (ConfigImageTypes) o; + return Objects.equals(this.backdropSizes, configImageTypes.backdropSizes) && + Objects.equals(this.baseUrl, configImageTypes.baseUrl) && + Objects.equals(this.logoSizes, configImageTypes.logoSizes) && + Objects.equals(this.posterSizes, configImageTypes.posterSizes) && + Objects.equals(this.profileSizes, configImageTypes.profileSizes) && + Objects.equals(this.secureBaseUrl, configImageTypes.secureBaseUrl) && + Objects.equals(this.stillSizes, configImageTypes.stillSizes); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(backdropSizes, baseUrl, logoSizes, posterSizes, profileSizes, secureBaseUrl, stillSizes); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConfigImageTypes {\n"); + sb.append(" backdropSizes: ").append(toIndentedString(backdropSizes)).append("\n"); + sb.append(" baseUrl: ").append(toIndentedString(baseUrl)).append("\n"); + sb.append(" logoSizes: ").append(toIndentedString(logoSizes)).append("\n"); + sb.append(" posterSizes: ").append(toIndentedString(posterSizes)).append("\n"); + sb.append(" profileSizes: ").append(toIndentedString(profileSizes)).append("\n"); + sb.append(" secureBaseUrl: ").append(toIndentedString(secureBaseUrl)).append("\n"); + sb.append(" stillSizes: ").append(toIndentedString(stillSizes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("BackdropSizes"); + openapiFields.add("BaseUrl"); + openapiFields.add("LogoSizes"); + openapiFields.add("PosterSizes"); + openapiFields.add("ProfileSizes"); + openapiFields.add("SecureBaseUrl"); + openapiFields.add("StillSizes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ConfigImageTypes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ConfigImageTypes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConfigImageTypes is not found in the empty JSON string", ConfigImageTypes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ConfigImageTypes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ConfigImageTypes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("BackdropSizes") != null && !jsonObj.get("BackdropSizes").isJsonNull() && !jsonObj.get("BackdropSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropSizes` to be an array in the JSON string but got `%s`", jsonObj.get("BackdropSizes").toString())); + } + if ((jsonObj.get("BaseUrl") != null && !jsonObj.get("BaseUrl").isJsonNull()) && !jsonObj.get("BaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaseUrl").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LogoSizes") != null && !jsonObj.get("LogoSizes").isJsonNull() && !jsonObj.get("LogoSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LogoSizes` to be an array in the JSON string but got `%s`", jsonObj.get("LogoSizes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PosterSizes") != null && !jsonObj.get("PosterSizes").isJsonNull() && !jsonObj.get("PosterSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PosterSizes` to be an array in the JSON string but got `%s`", jsonObj.get("PosterSizes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ProfileSizes") != null && !jsonObj.get("ProfileSizes").isJsonNull() && !jsonObj.get("ProfileSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ProfileSizes` to be an array in the JSON string but got `%s`", jsonObj.get("ProfileSizes").toString())); + } + if ((jsonObj.get("SecureBaseUrl") != null && !jsonObj.get("SecureBaseUrl").isJsonNull()) && !jsonObj.get("SecureBaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SecureBaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SecureBaseUrl").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("StillSizes") != null && !jsonObj.get("StillSizes").isJsonNull() && !jsonObj.get("StillSizes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `StillSizes` to be an array in the JSON string but got `%s`", jsonObj.get("StillSizes").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConfigImageTypes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConfigImageTypes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConfigImageTypes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConfigImageTypes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ConfigImageTypes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConfigImageTypes given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConfigImageTypes + * @throws IOException if the JSON string is invalid with respect to ConfigImageTypes + */ + public static ConfigImageTypes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConfigImageTypes.class); + } + + /** + * Convert an instance of ConfigImageTypes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java new file mode 100644 index 0000000000000..5f247d64b9312 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ConfigurationPageInfo.java @@ -0,0 +1,366 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The configuration page info. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ConfigurationPageInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ENABLE_IN_MAIN_MENU = "EnableInMainMenu"; + @SerializedName(SERIALIZED_NAME_ENABLE_IN_MAIN_MENU) + @javax.annotation.Nullable + private Boolean enableInMainMenu; + + public static final String SERIALIZED_NAME_MENU_SECTION = "MenuSection"; + @SerializedName(SERIALIZED_NAME_MENU_SECTION) + @javax.annotation.Nullable + private String menuSection; + + public static final String SERIALIZED_NAME_MENU_ICON = "MenuIcon"; + @SerializedName(SERIALIZED_NAME_MENU_ICON) + @javax.annotation.Nullable + private String menuIcon; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_PLUGIN_ID = "PluginId"; + @SerializedName(SERIALIZED_NAME_PLUGIN_ID) + @javax.annotation.Nullable + private UUID pluginId; + + public ConfigurationPageInfo() { + } + + public ConfigurationPageInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ConfigurationPageInfo enableInMainMenu(@javax.annotation.Nullable Boolean enableInMainMenu) { + this.enableInMainMenu = enableInMainMenu; + return this; + } + + /** + * Gets or sets a value indicating whether the configurations page is enabled in the main menu. + * @return enableInMainMenu + */ + @javax.annotation.Nullable + public Boolean getEnableInMainMenu() { + return enableInMainMenu; + } + + public void setEnableInMainMenu(@javax.annotation.Nullable Boolean enableInMainMenu) { + this.enableInMainMenu = enableInMainMenu; + } + + + public ConfigurationPageInfo menuSection(@javax.annotation.Nullable String menuSection) { + this.menuSection = menuSection; + return this; + } + + /** + * Gets or sets the menu section. + * @return menuSection + */ + @javax.annotation.Nullable + public String getMenuSection() { + return menuSection; + } + + public void setMenuSection(@javax.annotation.Nullable String menuSection) { + this.menuSection = menuSection; + } + + + public ConfigurationPageInfo menuIcon(@javax.annotation.Nullable String menuIcon) { + this.menuIcon = menuIcon; + return this; + } + + /** + * Gets or sets the menu icon. + * @return menuIcon + */ + @javax.annotation.Nullable + public String getMenuIcon() { + return menuIcon; + } + + public void setMenuIcon(@javax.annotation.Nullable String menuIcon) { + this.menuIcon = menuIcon; + } + + + public ConfigurationPageInfo displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets or sets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public ConfigurationPageInfo pluginId(@javax.annotation.Nullable UUID pluginId) { + this.pluginId = pluginId; + return this; + } + + /** + * Gets or sets the plugin id. + * @return pluginId + */ + @javax.annotation.Nullable + public UUID getPluginId() { + return pluginId; + } + + public void setPluginId(@javax.annotation.Nullable UUID pluginId) { + this.pluginId = pluginId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConfigurationPageInfo configurationPageInfo = (ConfigurationPageInfo) o; + return Objects.equals(this.name, configurationPageInfo.name) && + Objects.equals(this.enableInMainMenu, configurationPageInfo.enableInMainMenu) && + Objects.equals(this.menuSection, configurationPageInfo.menuSection) && + Objects.equals(this.menuIcon, configurationPageInfo.menuIcon) && + Objects.equals(this.displayName, configurationPageInfo.displayName) && + Objects.equals(this.pluginId, configurationPageInfo.pluginId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, enableInMainMenu, menuSection, menuIcon, displayName, pluginId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConfigurationPageInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enableInMainMenu: ").append(toIndentedString(enableInMainMenu)).append("\n"); + sb.append(" menuSection: ").append(toIndentedString(menuSection)).append("\n"); + sb.append(" menuIcon: ").append(toIndentedString(menuIcon)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" pluginId: ").append(toIndentedString(pluginId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("EnableInMainMenu"); + openapiFields.add("MenuSection"); + openapiFields.add("MenuIcon"); + openapiFields.add("DisplayName"); + openapiFields.add("PluginId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ConfigurationPageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ConfigurationPageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConfigurationPageInfo is not found in the empty JSON string", ConfigurationPageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ConfigurationPageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ConfigurationPageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("MenuSection") != null && !jsonObj.get("MenuSection").isJsonNull()) && !jsonObj.get("MenuSection").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MenuSection` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MenuSection").toString())); + } + if ((jsonObj.get("MenuIcon") != null && !jsonObj.get("MenuIcon").isJsonNull()) && !jsonObj.get("MenuIcon").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MenuIcon` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MenuIcon").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("PluginId") != null && !jsonObj.get("PluginId").isJsonNull()) && !jsonObj.get("PluginId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PluginId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PluginId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConfigurationPageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConfigurationPageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConfigurationPageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConfigurationPageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ConfigurationPageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConfigurationPageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConfigurationPageInfo + * @throws IOException if the JSON string is invalid with respect to ConfigurationPageInfo + */ + public static ConfigurationPageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConfigurationPageInfo.class); + } + + /** + * Convert an instance of ConfigurationPageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ContainerProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ContainerProfile.java new file mode 100644 index 0000000000000..97feb25a2eee3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ContainerProfile.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ContainerProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ContainerProfile { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public ContainerProfile() { + } + + public ContainerProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + public ContainerProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public ContainerProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Get conditions + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public ContainerProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContainerProfile containerProfile = (ContainerProfile) o; + return Objects.equals(this.type, containerProfile.type) && + Objects.equals(this.conditions, containerProfile.conditions) && + Objects.equals(this.container, containerProfile.container); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, conditions, container); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContainerProfile {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Conditions"); + openapiFields.add("Container"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ContainerProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ContainerProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ContainerProfile is not found in the empty JSON string", ContainerProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ContainerProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ContainerProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ContainerProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ContainerProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ContainerProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ContainerProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ContainerProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ContainerProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of ContainerProfile + * @throws IOException if the JSON string is invalid with respect to ContainerProfile + */ + public static ContainerProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ContainerProfile.class); + } + + /** + * Convert an instance of ContainerProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ControlResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ControlResponse.java new file mode 100644 index 0000000000000..79bc6420ce831 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ControlResponse.java @@ -0,0 +1,261 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ControlResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ControlResponse { + public static final String SERIALIZED_NAME_HEADERS = "Headers"; + @SerializedName(SERIALIZED_NAME_HEADERS) + @javax.annotation.Nullable + private Map headers = new HashMap<>(); + + public static final String SERIALIZED_NAME_XML = "Xml"; + @SerializedName(SERIALIZED_NAME_XML) + @javax.annotation.Nullable + private String xml; + + public static final String SERIALIZED_NAME_IS_SUCCESSFUL = "IsSuccessful"; + @SerializedName(SERIALIZED_NAME_IS_SUCCESSFUL) + @javax.annotation.Nullable + private Boolean isSuccessful; + + public ControlResponse() { + } + + public ControlResponse( + Map headers + ) { + this(); + this.headers = headers; + } + + /** + * Get headers + * @return headers + */ + @javax.annotation.Nullable + public Map getHeaders() { + return headers; + } + + + + public ControlResponse xml(@javax.annotation.Nullable String xml) { + this.xml = xml; + return this; + } + + /** + * Get xml + * @return xml + */ + @javax.annotation.Nullable + public String getXml() { + return xml; + } + + public void setXml(@javax.annotation.Nullable String xml) { + this.xml = xml; + } + + + public ControlResponse isSuccessful(@javax.annotation.Nullable Boolean isSuccessful) { + this.isSuccessful = isSuccessful; + return this; + } + + /** + * Get isSuccessful + * @return isSuccessful + */ + @javax.annotation.Nullable + public Boolean getIsSuccessful() { + return isSuccessful; + } + + public void setIsSuccessful(@javax.annotation.Nullable Boolean isSuccessful) { + this.isSuccessful = isSuccessful; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ControlResponse controlResponse = (ControlResponse) o; + return Objects.equals(this.headers, controlResponse.headers) && + Objects.equals(this.xml, controlResponse.xml) && + Objects.equals(this.isSuccessful, controlResponse.isSuccessful); + } + + @Override + public int hashCode() { + return Objects.hash(headers, xml, isSuccessful); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ControlResponse {\n"); + sb.append(" headers: ").append(toIndentedString(headers)).append("\n"); + sb.append(" xml: ").append(toIndentedString(xml)).append("\n"); + sb.append(" isSuccessful: ").append(toIndentedString(isSuccessful)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Headers"); + openapiFields.add("Xml"); + openapiFields.add("IsSuccessful"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ControlResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ControlResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ControlResponse is not found in the empty JSON string", ControlResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ControlResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ControlResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Xml") != null && !jsonObj.get("Xml").isJsonNull()) && !jsonObj.get("Xml").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Xml` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Xml").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ControlResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ControlResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ControlResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ControlResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ControlResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ControlResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of ControlResponse + * @throws IOException if the JSON string is invalid with respect to ControlResponse + */ + public static ControlResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ControlResponse.class); + } + + /** + * Convert an instance of ControlResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CountryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CountryInfo.java new file mode 100644 index 0000000000000..6af85cf9b673e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CountryInfo.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class CountryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CountryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_TWO_LETTER_I_S_O_REGION_NAME = "TwoLetterISORegionName"; + @SerializedName(SERIALIZED_NAME_TWO_LETTER_I_S_O_REGION_NAME) + @javax.annotation.Nullable + private String twoLetterISORegionName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_REGION_NAME = "ThreeLetterISORegionName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_REGION_NAME) + @javax.annotation.Nullable + private String threeLetterISORegionName; + + public CountryInfo() { + } + + public CountryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CountryInfo displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets or sets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public CountryInfo twoLetterISORegionName(@javax.annotation.Nullable String twoLetterISORegionName) { + this.twoLetterISORegionName = twoLetterISORegionName; + return this; + } + + /** + * Gets or sets the name of the two letter ISO region. + * @return twoLetterISORegionName + */ + @javax.annotation.Nullable + public String getTwoLetterISORegionName() { + return twoLetterISORegionName; + } + + public void setTwoLetterISORegionName(@javax.annotation.Nullable String twoLetterISORegionName) { + this.twoLetterISORegionName = twoLetterISORegionName; + } + + + public CountryInfo threeLetterISORegionName(@javax.annotation.Nullable String threeLetterISORegionName) { + this.threeLetterISORegionName = threeLetterISORegionName; + return this; + } + + /** + * Gets or sets the name of the three letter ISO region. + * @return threeLetterISORegionName + */ + @javax.annotation.Nullable + public String getThreeLetterISORegionName() { + return threeLetterISORegionName; + } + + public void setThreeLetterISORegionName(@javax.annotation.Nullable String threeLetterISORegionName) { + this.threeLetterISORegionName = threeLetterISORegionName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CountryInfo countryInfo = (CountryInfo) o; + return Objects.equals(this.name, countryInfo.name) && + Objects.equals(this.displayName, countryInfo.displayName) && + Objects.equals(this.twoLetterISORegionName, countryInfo.twoLetterISORegionName) && + Objects.equals(this.threeLetterISORegionName, countryInfo.threeLetterISORegionName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, displayName, twoLetterISORegionName, threeLetterISORegionName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CountryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" twoLetterISORegionName: ").append(toIndentedString(twoLetterISORegionName)).append("\n"); + sb.append(" threeLetterISORegionName: ").append(toIndentedString(threeLetterISORegionName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DisplayName"); + openapiFields.add("TwoLetterISORegionName"); + openapiFields.add("ThreeLetterISORegionName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CountryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CountryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CountryInfo is not found in the empty JSON string", CountryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CountryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CountryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("TwoLetterISORegionName") != null && !jsonObj.get("TwoLetterISORegionName").isJsonNull()) && !jsonObj.get("TwoLetterISORegionName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TwoLetterISORegionName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TwoLetterISORegionName").toString())); + } + if ((jsonObj.get("ThreeLetterISORegionName") != null && !jsonObj.get("ThreeLetterISORegionName").isJsonNull()) && !jsonObj.get("ThreeLetterISORegionName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISORegionName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISORegionName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CountryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CountryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CountryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CountryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CountryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CountryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of CountryInfo + * @throws IOException if the JSON string is invalid with respect to CountryInfo + */ + public static CountryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CountryInfo.class); + } + + /** + * Convert an instance of CountryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java new file mode 100644 index 0000000000000..e5a3581d09e24 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreatePlaylistDto.java @@ -0,0 +1,320 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Create new playlist dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CreatePlaylistDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IDS = "Ids"; + @SerializedName(SERIALIZED_NAME_IDS) + @javax.annotation.Nullable + private List ids = new ArrayList<>(); + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private String mediaType; + + public CreatePlaylistDto() { + } + + public CreatePlaylistDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the new playlist. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CreatePlaylistDto ids(@javax.annotation.Nullable List ids) { + this.ids = ids; + return this; + } + + public CreatePlaylistDto addIdsItem(UUID idsItem) { + if (this.ids == null) { + this.ids = new ArrayList<>(); + } + this.ids.add(idsItem); + return this; + } + + /** + * Gets or sets item ids to add to the playlist. + * @return ids + */ + @javax.annotation.Nullable + public List getIds() { + return ids; + } + + public void setIds(@javax.annotation.Nullable List ids) { + this.ids = ids; + } + + + public CreatePlaylistDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public CreatePlaylistDto mediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Gets or sets the media type. + * @return mediaType + */ + @javax.annotation.Nullable + public String getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreatePlaylistDto createPlaylistDto = (CreatePlaylistDto) o; + return Objects.equals(this.name, createPlaylistDto.name) && + Objects.equals(this.ids, createPlaylistDto.ids) && + Objects.equals(this.userId, createPlaylistDto.userId) && + Objects.equals(this.mediaType, createPlaylistDto.mediaType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, ids, userId, mediaType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreatePlaylistDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" ids: ").append(toIndentedString(ids)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Ids"); + openapiFields.add("UserId"); + openapiFields.add("MediaType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreatePlaylistDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreatePlaylistDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreatePlaylistDto is not found in the empty JSON string", CreatePlaylistDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreatePlaylistDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreatePlaylistDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Ids") != null && !jsonObj.get("Ids").isJsonNull() && !jsonObj.get("Ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Ids` to be an array in the JSON string but got `%s`", jsonObj.get("Ids").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) && !jsonObj.get("MediaType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaType").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreatePlaylistDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreatePlaylistDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreatePlaylistDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreatePlaylistDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreatePlaylistDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreatePlaylistDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreatePlaylistDto + * @throws IOException if the JSON string is invalid with respect to CreatePlaylistDto + */ + public static CreatePlaylistDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreatePlaylistDto.class); + } + + /** + * Convert an instance of CreatePlaylistDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreateUserByName.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreateUserByName.java new file mode 100644 index 0000000000000..145fd88ff312d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CreateUserByName.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The create user by name request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CreateUserByName { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public CreateUserByName() { + } + + public CreateUserByName name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the username. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CreateUserByName password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Gets or sets the password. + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateUserByName createUserByName = (CreateUserByName) o; + return Objects.equals(this.name, createUserByName.name) && + Objects.equals(this.password, createUserByName.password); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, password); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateUserByName {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Password"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateUserByName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateUserByName.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateUserByName is not found in the empty JSON string", CreateUserByName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateUserByName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateUserByName` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateUserByName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateUserByName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateUserByName.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateUserByName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateUserByName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateUserByName given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateUserByName + * @throws IOException if the JSON string is invalid with respect to CreateUserByName + */ + public static CreateUserByName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateUserByName.class); + } + + /** + * Convert an instance of CreateUserByName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CultureDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CultureDto.java new file mode 100644 index 0000000000000..34d438a1c593d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/CultureDto.java @@ -0,0 +1,348 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class CultureDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class CultureDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "DisplayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + @javax.annotation.Nullable + private String displayName; + + public static final String SERIALIZED_NAME_TWO_LETTER_I_S_O_LANGUAGE_NAME = "TwoLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_TWO_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String twoLetterISOLanguageName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME = "ThreeLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String threeLetterISOLanguageName; + + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAMES = "ThreeLetterISOLanguageNames"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAMES) + @javax.annotation.Nullable + private List threeLetterISOLanguageNames = new ArrayList<>(); + + public CultureDto() { + } + + public CultureDto( + String threeLetterISOLanguageName + ) { + this(); + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + } + + public CultureDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public CultureDto displayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Gets the display name. + * @return displayName + */ + @javax.annotation.Nullable + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(@javax.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + + public CultureDto twoLetterISOLanguageName(@javax.annotation.Nullable String twoLetterISOLanguageName) { + this.twoLetterISOLanguageName = twoLetterISOLanguageName; + return this; + } + + /** + * Gets the name of the two letter ISO language. + * @return twoLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getTwoLetterISOLanguageName() { + return twoLetterISOLanguageName; + } + + public void setTwoLetterISOLanguageName(@javax.annotation.Nullable String twoLetterISOLanguageName) { + this.twoLetterISOLanguageName = twoLetterISOLanguageName; + } + + + /** + * Gets the name of the three letter ISO language. + * @return threeLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getThreeLetterISOLanguageName() { + return threeLetterISOLanguageName; + } + + + + public CultureDto threeLetterISOLanguageNames(@javax.annotation.Nullable List threeLetterISOLanguageNames) { + this.threeLetterISOLanguageNames = threeLetterISOLanguageNames; + return this; + } + + public CultureDto addThreeLetterISOLanguageNamesItem(String threeLetterISOLanguageNamesItem) { + if (this.threeLetterISOLanguageNames == null) { + this.threeLetterISOLanguageNames = new ArrayList<>(); + } + this.threeLetterISOLanguageNames.add(threeLetterISOLanguageNamesItem); + return this; + } + + /** + * Get threeLetterISOLanguageNames + * @return threeLetterISOLanguageNames + */ + @javax.annotation.Nullable + public List getThreeLetterISOLanguageNames() { + return threeLetterISOLanguageNames; + } + + public void setThreeLetterISOLanguageNames(@javax.annotation.Nullable List threeLetterISOLanguageNames) { + this.threeLetterISOLanguageNames = threeLetterISOLanguageNames; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CultureDto cultureDto = (CultureDto) o; + return Objects.equals(this.name, cultureDto.name) && + Objects.equals(this.displayName, cultureDto.displayName) && + Objects.equals(this.twoLetterISOLanguageName, cultureDto.twoLetterISOLanguageName) && + Objects.equals(this.threeLetterISOLanguageName, cultureDto.threeLetterISOLanguageName) && + Objects.equals(this.threeLetterISOLanguageNames, cultureDto.threeLetterISOLanguageNames); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, displayName, twoLetterISOLanguageName, threeLetterISOLanguageName, threeLetterISOLanguageNames); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CultureDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" twoLetterISOLanguageName: ").append(toIndentedString(twoLetterISOLanguageName)).append("\n"); + sb.append(" threeLetterISOLanguageName: ").append(toIndentedString(threeLetterISOLanguageName)).append("\n"); + sb.append(" threeLetterISOLanguageNames: ").append(toIndentedString(threeLetterISOLanguageNames)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DisplayName"); + openapiFields.add("TwoLetterISOLanguageName"); + openapiFields.add("ThreeLetterISOLanguageName"); + openapiFields.add("ThreeLetterISOLanguageNames"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CultureDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CultureDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CultureDto is not found in the empty JSON string", CultureDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CultureDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CultureDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("DisplayName") != null && !jsonObj.get("DisplayName").isJsonNull()) && !jsonObj.get("DisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayName").toString())); + } + if ((jsonObj.get("TwoLetterISOLanguageName") != null && !jsonObj.get("TwoLetterISOLanguageName").isJsonNull()) && !jsonObj.get("TwoLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TwoLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TwoLetterISOLanguageName").toString())); + } + if ((jsonObj.get("ThreeLetterISOLanguageName") != null && !jsonObj.get("ThreeLetterISOLanguageName").isJsonNull()) && !jsonObj.get("ThreeLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageName").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ThreeLetterISOLanguageNames") != null && !jsonObj.get("ThreeLetterISOLanguageNames").isJsonNull() && !jsonObj.get("ThreeLetterISOLanguageNames").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageNames` to be an array in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageNames").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CultureDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CultureDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CultureDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CultureDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CultureDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CultureDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of CultureDto + * @throws IOException if the JSON string is invalid with respect to CultureDto + */ + public static CultureDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CultureDto.class); + } + + /** + * Convert an instance of CultureDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayOfWeek.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayOfWeek.java new file mode 100644 index 0000000000000..40880b1bf0d9e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayOfWeek.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DayOfWeek + */ +@JsonAdapter(DayOfWeek.Adapter.class) +public enum DayOfWeek { + + SUNDAY("Sunday"), + + MONDAY("Monday"), + + TUESDAY("Tuesday"), + + WEDNESDAY("Wednesday"), + + THURSDAY("Thursday"), + + FRIDAY("Friday"), + + SATURDAY("Saturday"); + + private String value; + + DayOfWeek(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DayOfWeek fromValue(String value) { + for (DayOfWeek b : DayOfWeek.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DayOfWeek enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DayOfWeek read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DayOfWeek.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DayOfWeek.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayPattern.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayPattern.java new file mode 100644 index 0000000000000..21f3f0d4a9ff3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DayPattern.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DayPattern + */ +@JsonAdapter(DayPattern.Adapter.class) +public enum DayPattern { + + DAILY("Daily"), + + WEEKDAYS("Weekdays"), + + WEEKENDS("Weekends"); + + private String value; + + DayPattern(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DayPattern fromValue(String value) { + for (DayPattern b : DayPattern.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DayPattern enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DayPattern read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DayPattern.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DayPattern.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java new file mode 100644 index 0000000000000..b3a7e47471715 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DefaultDirectoryBrowserInfoDto.java @@ -0,0 +1,218 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Default directory browser info. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DefaultDirectoryBrowserInfoDto { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public DefaultDirectoryBrowserInfoDto() { + } + + public DefaultDirectoryBrowserInfoDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DefaultDirectoryBrowserInfoDto defaultDirectoryBrowserInfoDto = (DefaultDirectoryBrowserInfoDto) o; + return Objects.equals(this.path, defaultDirectoryBrowserInfoDto.path); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(path); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DefaultDirectoryBrowserInfoDto {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DefaultDirectoryBrowserInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DefaultDirectoryBrowserInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DefaultDirectoryBrowserInfoDto is not found in the empty JSON string", DefaultDirectoryBrowserInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DefaultDirectoryBrowserInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DefaultDirectoryBrowserInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DefaultDirectoryBrowserInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DefaultDirectoryBrowserInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DefaultDirectoryBrowserInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DefaultDirectoryBrowserInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DefaultDirectoryBrowserInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DefaultDirectoryBrowserInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DefaultDirectoryBrowserInfoDto + * @throws IOException if the JSON string is invalid with respect to DefaultDirectoryBrowserInfoDto + */ + public static DefaultDirectoryBrowserInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DefaultDirectoryBrowserInfoDto.class); + } + + /** + * Convert an instance of DefaultDirectoryBrowserInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceIdentification.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceIdentification.java new file mode 100644 index 0000000000000..5da2187d5a68f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceIdentification.java @@ -0,0 +1,468 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.HttpHeaderInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DeviceIdentification + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceIdentification { + public static final String SERIALIZED_NAME_FRIENDLY_NAME = "FriendlyName"; + @SerializedName(SERIALIZED_NAME_FRIENDLY_NAME) + @javax.annotation.Nullable + private String friendlyName; + + public static final String SERIALIZED_NAME_MODEL_NUMBER = "ModelNumber"; + @SerializedName(SERIALIZED_NAME_MODEL_NUMBER) + @javax.annotation.Nullable + private String modelNumber; + + public static final String SERIALIZED_NAME_SERIAL_NUMBER = "SerialNumber"; + @SerializedName(SERIALIZED_NAME_SERIAL_NUMBER) + @javax.annotation.Nullable + private String serialNumber; + + public static final String SERIALIZED_NAME_MODEL_NAME = "ModelName"; + @SerializedName(SERIALIZED_NAME_MODEL_NAME) + @javax.annotation.Nullable + private String modelName; + + public static final String SERIALIZED_NAME_MODEL_DESCRIPTION = "ModelDescription"; + @SerializedName(SERIALIZED_NAME_MODEL_DESCRIPTION) + @javax.annotation.Nullable + private String modelDescription; + + public static final String SERIALIZED_NAME_MODEL_URL = "ModelUrl"; + @SerializedName(SERIALIZED_NAME_MODEL_URL) + @javax.annotation.Nullable + private String modelUrl; + + public static final String SERIALIZED_NAME_MANUFACTURER = "Manufacturer"; + @SerializedName(SERIALIZED_NAME_MANUFACTURER) + @javax.annotation.Nullable + private String manufacturer; + + public static final String SERIALIZED_NAME_MANUFACTURER_URL = "ManufacturerUrl"; + @SerializedName(SERIALIZED_NAME_MANUFACTURER_URL) + @javax.annotation.Nullable + private String manufacturerUrl; + + public static final String SERIALIZED_NAME_HEADERS = "Headers"; + @SerializedName(SERIALIZED_NAME_HEADERS) + @javax.annotation.Nullable + private List headers = new ArrayList<>(); + + public DeviceIdentification() { + } + + public DeviceIdentification friendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + /** + * Gets or sets the name of the friendly. + * @return friendlyName + */ + @javax.annotation.Nullable + public String getFriendlyName() { + return friendlyName; + } + + public void setFriendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + } + + + public DeviceIdentification modelNumber(@javax.annotation.Nullable String modelNumber) { + this.modelNumber = modelNumber; + return this; + } + + /** + * Gets or sets the model number. + * @return modelNumber + */ + @javax.annotation.Nullable + public String getModelNumber() { + return modelNumber; + } + + public void setModelNumber(@javax.annotation.Nullable String modelNumber) { + this.modelNumber = modelNumber; + } + + + public DeviceIdentification serialNumber(@javax.annotation.Nullable String serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + /** + * Gets or sets the serial number. + * @return serialNumber + */ + @javax.annotation.Nullable + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(@javax.annotation.Nullable String serialNumber) { + this.serialNumber = serialNumber; + } + + + public DeviceIdentification modelName(@javax.annotation.Nullable String modelName) { + this.modelName = modelName; + return this; + } + + /** + * Gets or sets the name of the model. + * @return modelName + */ + @javax.annotation.Nullable + public String getModelName() { + return modelName; + } + + public void setModelName(@javax.annotation.Nullable String modelName) { + this.modelName = modelName; + } + + + public DeviceIdentification modelDescription(@javax.annotation.Nullable String modelDescription) { + this.modelDescription = modelDescription; + return this; + } + + /** + * Gets or sets the model description. + * @return modelDescription + */ + @javax.annotation.Nullable + public String getModelDescription() { + return modelDescription; + } + + public void setModelDescription(@javax.annotation.Nullable String modelDescription) { + this.modelDescription = modelDescription; + } + + + public DeviceIdentification modelUrl(@javax.annotation.Nullable String modelUrl) { + this.modelUrl = modelUrl; + return this; + } + + /** + * Gets or sets the model URL. + * @return modelUrl + */ + @javax.annotation.Nullable + public String getModelUrl() { + return modelUrl; + } + + public void setModelUrl(@javax.annotation.Nullable String modelUrl) { + this.modelUrl = modelUrl; + } + + + public DeviceIdentification manufacturer(@javax.annotation.Nullable String manufacturer) { + this.manufacturer = manufacturer; + return this; + } + + /** + * Gets or sets the manufacturer. + * @return manufacturer + */ + @javax.annotation.Nullable + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(@javax.annotation.Nullable String manufacturer) { + this.manufacturer = manufacturer; + } + + + public DeviceIdentification manufacturerUrl(@javax.annotation.Nullable String manufacturerUrl) { + this.manufacturerUrl = manufacturerUrl; + return this; + } + + /** + * Gets or sets the manufacturer URL. + * @return manufacturerUrl + */ + @javax.annotation.Nullable + public String getManufacturerUrl() { + return manufacturerUrl; + } + + public void setManufacturerUrl(@javax.annotation.Nullable String manufacturerUrl) { + this.manufacturerUrl = manufacturerUrl; + } + + + public DeviceIdentification headers(@javax.annotation.Nullable List headers) { + this.headers = headers; + return this; + } + + public DeviceIdentification addHeadersItem(HttpHeaderInfo headersItem) { + if (this.headers == null) { + this.headers = new ArrayList<>(); + } + this.headers.add(headersItem); + return this; + } + + /** + * Gets or sets the headers. + * @return headers + */ + @javax.annotation.Nullable + public List getHeaders() { + return headers; + } + + public void setHeaders(@javax.annotation.Nullable List headers) { + this.headers = headers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceIdentification deviceIdentification = (DeviceIdentification) o; + return Objects.equals(this.friendlyName, deviceIdentification.friendlyName) && + Objects.equals(this.modelNumber, deviceIdentification.modelNumber) && + Objects.equals(this.serialNumber, deviceIdentification.serialNumber) && + Objects.equals(this.modelName, deviceIdentification.modelName) && + Objects.equals(this.modelDescription, deviceIdentification.modelDescription) && + Objects.equals(this.modelUrl, deviceIdentification.modelUrl) && + Objects.equals(this.manufacturer, deviceIdentification.manufacturer) && + Objects.equals(this.manufacturerUrl, deviceIdentification.manufacturerUrl) && + Objects.equals(this.headers, deviceIdentification.headers); + } + + @Override + public int hashCode() { + return Objects.hash(friendlyName, modelNumber, serialNumber, modelName, modelDescription, modelUrl, manufacturer, manufacturerUrl, headers); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceIdentification {\n"); + sb.append(" friendlyName: ").append(toIndentedString(friendlyName)).append("\n"); + sb.append(" modelNumber: ").append(toIndentedString(modelNumber)).append("\n"); + sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); + sb.append(" modelName: ").append(toIndentedString(modelName)).append("\n"); + sb.append(" modelDescription: ").append(toIndentedString(modelDescription)).append("\n"); + sb.append(" modelUrl: ").append(toIndentedString(modelUrl)).append("\n"); + sb.append(" manufacturer: ").append(toIndentedString(manufacturer)).append("\n"); + sb.append(" manufacturerUrl: ").append(toIndentedString(manufacturerUrl)).append("\n"); + sb.append(" headers: ").append(toIndentedString(headers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FriendlyName"); + openapiFields.add("ModelNumber"); + openapiFields.add("SerialNumber"); + openapiFields.add("ModelName"); + openapiFields.add("ModelDescription"); + openapiFields.add("ModelUrl"); + openapiFields.add("Manufacturer"); + openapiFields.add("ManufacturerUrl"); + openapiFields.add("Headers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceIdentification + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceIdentification.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceIdentification is not found in the empty JSON string", DeviceIdentification.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceIdentification.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceIdentification` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("FriendlyName") != null && !jsonObj.get("FriendlyName").isJsonNull()) && !jsonObj.get("FriendlyName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FriendlyName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FriendlyName").toString())); + } + if ((jsonObj.get("ModelNumber") != null && !jsonObj.get("ModelNumber").isJsonNull()) && !jsonObj.get("ModelNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelNumber").toString())); + } + if ((jsonObj.get("SerialNumber") != null && !jsonObj.get("SerialNumber").isJsonNull()) && !jsonObj.get("SerialNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SerialNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SerialNumber").toString())); + } + if ((jsonObj.get("ModelName") != null && !jsonObj.get("ModelName").isJsonNull()) && !jsonObj.get("ModelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelName").toString())); + } + if ((jsonObj.get("ModelDescription") != null && !jsonObj.get("ModelDescription").isJsonNull()) && !jsonObj.get("ModelDescription").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelDescription` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelDescription").toString())); + } + if ((jsonObj.get("ModelUrl") != null && !jsonObj.get("ModelUrl").isJsonNull()) && !jsonObj.get("ModelUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelUrl").toString())); + } + if ((jsonObj.get("Manufacturer") != null && !jsonObj.get("Manufacturer").isJsonNull()) && !jsonObj.get("Manufacturer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Manufacturer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Manufacturer").toString())); + } + if ((jsonObj.get("ManufacturerUrl") != null && !jsonObj.get("ManufacturerUrl").isJsonNull()) && !jsonObj.get("ManufacturerUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ManufacturerUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ManufacturerUrl").toString())); + } + if (jsonObj.get("Headers") != null && !jsonObj.get("Headers").isJsonNull()) { + JsonArray jsonArrayheaders = jsonObj.getAsJsonArray("Headers"); + if (jsonArrayheaders != null) { + // ensure the json data is an array + if (!jsonObj.get("Headers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Headers` to be an array in the JSON string but got `%s`", jsonObj.get("Headers").toString())); + } + + // validate the optional field `Headers` (array) + for (int i = 0; i < jsonArrayheaders.size(); i++) { + HttpHeaderInfo.validateJsonElement(jsonArrayheaders.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceIdentification.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceIdentification' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceIdentification.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceIdentification value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceIdentification read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceIdentification given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceIdentification + * @throws IOException if the JSON string is invalid with respect to DeviceIdentification + */ + public static DeviceIdentification fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceIdentification.class); + } + + /** + * Convert an instance of DeviceIdentification to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfo.java new file mode 100644 index 0000000000000..cc0bf7725e6ee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfo.java @@ -0,0 +1,489 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.ClientCapabilities; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DeviceInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "AccessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + @javax.annotation.Nullable + private String accessToken; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_LAST_USER_NAME = "LastUserName"; + @SerializedName(SERIALIZED_NAME_LAST_USER_NAME) + @javax.annotation.Nullable + private String lastUserName; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_LAST_USER_ID = "LastUserId"; + @SerializedName(SERIALIZED_NAME_LAST_USER_ID) + @javax.annotation.Nullable + private UUID lastUserId; + + public static final String SERIALIZED_NAME_DATE_LAST_ACTIVITY = "DateLastActivity"; + @SerializedName(SERIALIZED_NAME_DATE_LAST_ACTIVITY) + @javax.annotation.Nullable + private OffsetDateTime dateLastActivity; + + public static final String SERIALIZED_NAME_CAPABILITIES = "Capabilities"; + @SerializedName(SERIALIZED_NAME_CAPABILITIES) + @javax.annotation.Nullable + private ClientCapabilities capabilities; + + public static final String SERIALIZED_NAME_ICON_URL = "IconUrl"; + @SerializedName(SERIALIZED_NAME_ICON_URL) + @javax.annotation.Nullable + private String iconUrl; + + public DeviceInfo() { + } + + public DeviceInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public DeviceInfo accessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Gets or sets the access token. + * @return accessToken + */ + @javax.annotation.Nullable + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(@javax.annotation.Nullable String accessToken) { + this.accessToken = accessToken; + } + + + public DeviceInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DeviceInfo lastUserName(@javax.annotation.Nullable String lastUserName) { + this.lastUserName = lastUserName; + return this; + } + + /** + * Gets or sets the last name of the user. + * @return lastUserName + */ + @javax.annotation.Nullable + public String getLastUserName() { + return lastUserName; + } + + public void setLastUserName(@javax.annotation.Nullable String lastUserName) { + this.lastUserName = lastUserName; + } + + + public DeviceInfo appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets or sets the name of the application. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public DeviceInfo appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public DeviceInfo lastUserId(@javax.annotation.Nullable UUID lastUserId) { + this.lastUserId = lastUserId; + return this; + } + + /** + * Gets or sets the last user identifier. + * @return lastUserId + */ + @javax.annotation.Nullable + public UUID getLastUserId() { + return lastUserId; + } + + public void setLastUserId(@javax.annotation.Nullable UUID lastUserId) { + this.lastUserId = lastUserId; + } + + + public DeviceInfo dateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + return this; + } + + /** + * Gets or sets the date last modified. + * @return dateLastActivity + */ + @javax.annotation.Nullable + public OffsetDateTime getDateLastActivity() { + return dateLastActivity; + } + + public void setDateLastActivity(@javax.annotation.Nullable OffsetDateTime dateLastActivity) { + this.dateLastActivity = dateLastActivity; + } + + + public DeviceInfo capabilities(@javax.annotation.Nullable ClientCapabilities capabilities) { + this.capabilities = capabilities; + return this; + } + + /** + * Gets or sets the capabilities. + * @return capabilities + */ + @javax.annotation.Nullable + public ClientCapabilities getCapabilities() { + return capabilities; + } + + public void setCapabilities(@javax.annotation.Nullable ClientCapabilities capabilities) { + this.capabilities = capabilities; + } + + + public DeviceInfo iconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + return this; + } + + /** + * Get iconUrl + * @return iconUrl + */ + @javax.annotation.Nullable + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(@javax.annotation.Nullable String iconUrl) { + this.iconUrl = iconUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceInfo deviceInfo = (DeviceInfo) o; + return Objects.equals(this.name, deviceInfo.name) && + Objects.equals(this.accessToken, deviceInfo.accessToken) && + Objects.equals(this.id, deviceInfo.id) && + Objects.equals(this.lastUserName, deviceInfo.lastUserName) && + Objects.equals(this.appName, deviceInfo.appName) && + Objects.equals(this.appVersion, deviceInfo.appVersion) && + Objects.equals(this.lastUserId, deviceInfo.lastUserId) && + Objects.equals(this.dateLastActivity, deviceInfo.dateLastActivity) && + Objects.equals(this.capabilities, deviceInfo.capabilities) && + Objects.equals(this.iconUrl, deviceInfo.iconUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, accessToken, id, lastUserName, appName, appVersion, lastUserId, dateLastActivity, capabilities, iconUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" lastUserName: ").append(toIndentedString(lastUserName)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" lastUserId: ").append(toIndentedString(lastUserId)).append("\n"); + sb.append(" dateLastActivity: ").append(toIndentedString(dateLastActivity)).append("\n"); + sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n"); + sb.append(" iconUrl: ").append(toIndentedString(iconUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("AccessToken"); + openapiFields.add("Id"); + openapiFields.add("LastUserName"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("LastUserId"); + openapiFields.add("DateLastActivity"); + openapiFields.add("Capabilities"); + openapiFields.add("IconUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceInfo is not found in the empty JSON string", DeviceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("AccessToken") != null && !jsonObj.get("AccessToken").isJsonNull()) && !jsonObj.get("AccessToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AccessToken").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("LastUserName") != null && !jsonObj.get("LastUserName").isJsonNull()) && !jsonObj.get("LastUserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LastUserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LastUserName").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + if ((jsonObj.get("LastUserId") != null && !jsonObj.get("LastUserId").isJsonNull()) && !jsonObj.get("LastUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LastUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LastUserId").toString())); + } + // validate the optional field `Capabilities` + if (jsonObj.get("Capabilities") != null && !jsonObj.get("Capabilities").isJsonNull()) { + ClientCapabilities.validateJsonElement(jsonObj.get("Capabilities")); + } + if ((jsonObj.get("IconUrl") != null && !jsonObj.get("IconUrl").isJsonNull()) && !jsonObj.get("IconUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IconUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IconUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceInfo + * @throws IOException if the JSON string is invalid with respect to DeviceInfo + */ + public static DeviceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceInfo.class); + } + + /** + * Convert an instance of DeviceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfoQueryResult.java new file mode 100644 index 0000000000000..e04743291a37a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceInfoQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DeviceInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DeviceInfoQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceInfoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public DeviceInfoQueryResult() { + } + + public DeviceInfoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public DeviceInfoQueryResult addItemsItem(DeviceInfo itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public DeviceInfoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public DeviceInfoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceInfoQueryResult deviceInfoQueryResult = (DeviceInfoQueryResult) o; + return Objects.equals(this.items, deviceInfoQueryResult.items) && + Objects.equals(this.totalRecordCount, deviceInfoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, deviceInfoQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceInfoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceInfoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceInfoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceInfoQueryResult is not found in the empty JSON string", DeviceInfoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceInfoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceInfoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + DeviceInfo.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceInfoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceInfoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceInfoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceInfoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceInfoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceInfoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceInfoQueryResult + * @throws IOException if the JSON string is invalid with respect to DeviceInfoQueryResult + */ + public static DeviceInfoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceInfoQueryResult.class); + } + + /** + * Convert an instance of DeviceInfoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptions.java new file mode 100644 index 0000000000000..ff042850caa60 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptions.java @@ -0,0 +1,274 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * An entity representing custom options for a device. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceOptions { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Integer id; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_CUSTOM_NAME = "CustomName"; + @SerializedName(SERIALIZED_NAME_CUSTOM_NAME) + @javax.annotation.Nullable + private String customName; + + public DeviceOptions() { + } + + public DeviceOptions( + Integer id + ) { + this(); + this.id = id; + } + + /** + * Gets the id. + * @return id + */ + @javax.annotation.Nullable + public Integer getId() { + return id; + } + + + + public DeviceOptions deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets the device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public DeviceOptions customName(@javax.annotation.Nullable String customName) { + this.customName = customName; + return this; + } + + /** + * Gets or sets the custom name. + * @return customName + */ + @javax.annotation.Nullable + public String getCustomName() { + return customName; + } + + public void setCustomName(@javax.annotation.Nullable String customName) { + this.customName = customName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceOptions deviceOptions = (DeviceOptions) o; + return Objects.equals(this.id, deviceOptions.id) && + Objects.equals(this.deviceId, deviceOptions.deviceId) && + Objects.equals(this.customName, deviceOptions.customName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, deviceId, customName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceOptions {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" customName: ").append(toIndentedString(customName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("DeviceId"); + openapiFields.add("CustomName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceOptions is not found in the empty JSON string", DeviceOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("CustomName") != null && !jsonObj.get("CustomName").isJsonNull()) && !jsonObj.get("CustomName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceOptions + * @throws IOException if the JSON string is invalid with respect to DeviceOptions + */ + public static DeviceOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceOptions.class); + } + + /** + * Convert an instance of DeviceOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java new file mode 100644 index 0000000000000..0936fd1f5f1f0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceOptionsDto.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A dto representing custom options for a device. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceOptionsDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private Integer id; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_CUSTOM_NAME = "CustomName"; + @SerializedName(SERIALIZED_NAME_CUSTOM_NAME) + @javax.annotation.Nullable + private String customName; + + public DeviceOptionsDto() { + } + + public DeviceOptionsDto id(@javax.annotation.Nullable Integer id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public Integer getId() { + return id; + } + + public void setId(@javax.annotation.Nullable Integer id) { + this.id = id; + } + + + public DeviceOptionsDto deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public DeviceOptionsDto customName(@javax.annotation.Nullable String customName) { + this.customName = customName; + return this; + } + + /** + * Gets or sets the custom name. + * @return customName + */ + @javax.annotation.Nullable + public String getCustomName() { + return customName; + } + + public void setCustomName(@javax.annotation.Nullable String customName) { + this.customName = customName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceOptionsDto deviceOptionsDto = (DeviceOptionsDto) o; + return Objects.equals(this.id, deviceOptionsDto.id) && + Objects.equals(this.deviceId, deviceOptionsDto.deviceId) && + Objects.equals(this.customName, deviceOptionsDto.customName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, deviceId, customName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceOptionsDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" customName: ").append(toIndentedString(customName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("DeviceId"); + openapiFields.add("CustomName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceOptionsDto is not found in the empty JSON string", DeviceOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("CustomName") != null && !jsonObj.get("CustomName").isJsonNull()) && !jsonObj.get("CustomName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CustomName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CustomName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceOptionsDto + * @throws IOException if the JSON string is invalid with respect to DeviceOptionsDto + */ + public static DeviceOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceOptionsDto.class); + } + + /** + * Convert an instance of DeviceOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfile.java new file mode 100644 index 0000000000000..3906576d1c5af --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfile.java @@ -0,0 +1,1454 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CodecProfile; +import org.openapitools.client.model.ContainerProfile; +import org.openapitools.client.model.DeviceIdentification; +import org.openapitools.client.model.DirectPlayProfile; +import org.openapitools.client.model.ResponseProfile; +import org.openapitools.client.model.SubtitleProfile; +import org.openapitools.client.model.TranscodingProfile; +import org.openapitools.client.model.XmlAttribute; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceProfile { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_IDENTIFICATION = "Identification"; + @SerializedName(SERIALIZED_NAME_IDENTIFICATION) + @javax.annotation.Nullable + private DeviceIdentification identification; + + public static final String SERIALIZED_NAME_FRIENDLY_NAME = "FriendlyName"; + @SerializedName(SERIALIZED_NAME_FRIENDLY_NAME) + @javax.annotation.Nullable + private String friendlyName; + + public static final String SERIALIZED_NAME_MANUFACTURER = "Manufacturer"; + @SerializedName(SERIALIZED_NAME_MANUFACTURER) + @javax.annotation.Nullable + private String manufacturer; + + public static final String SERIALIZED_NAME_MANUFACTURER_URL = "ManufacturerUrl"; + @SerializedName(SERIALIZED_NAME_MANUFACTURER_URL) + @javax.annotation.Nullable + private String manufacturerUrl; + + public static final String SERIALIZED_NAME_MODEL_NAME = "ModelName"; + @SerializedName(SERIALIZED_NAME_MODEL_NAME) + @javax.annotation.Nullable + private String modelName; + + public static final String SERIALIZED_NAME_MODEL_DESCRIPTION = "ModelDescription"; + @SerializedName(SERIALIZED_NAME_MODEL_DESCRIPTION) + @javax.annotation.Nullable + private String modelDescription; + + public static final String SERIALIZED_NAME_MODEL_NUMBER = "ModelNumber"; + @SerializedName(SERIALIZED_NAME_MODEL_NUMBER) + @javax.annotation.Nullable + private String modelNumber; + + public static final String SERIALIZED_NAME_MODEL_URL = "ModelUrl"; + @SerializedName(SERIALIZED_NAME_MODEL_URL) + @javax.annotation.Nullable + private String modelUrl; + + public static final String SERIALIZED_NAME_SERIAL_NUMBER = "SerialNumber"; + @SerializedName(SERIALIZED_NAME_SERIAL_NUMBER) + @javax.annotation.Nullable + private String serialNumber; + + public static final String SERIALIZED_NAME_ENABLE_ALBUM_ART_IN_DIDL = "EnableAlbumArtInDidl"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALBUM_ART_IN_DIDL) + @javax.annotation.Nullable + private Boolean enableAlbumArtInDidl = false; + + public static final String SERIALIZED_NAME_ENABLE_SINGLE_ALBUM_ART_LIMIT = "EnableSingleAlbumArtLimit"; + @SerializedName(SERIALIZED_NAME_ENABLE_SINGLE_ALBUM_ART_LIMIT) + @javax.annotation.Nullable + private Boolean enableSingleAlbumArtLimit = false; + + public static final String SERIALIZED_NAME_ENABLE_SINGLE_SUBTITLE_LIMIT = "EnableSingleSubtitleLimit"; + @SerializedName(SERIALIZED_NAME_ENABLE_SINGLE_SUBTITLE_LIMIT) + @javax.annotation.Nullable + private Boolean enableSingleSubtitleLimit = false; + + public static final String SERIALIZED_NAME_SUPPORTED_MEDIA_TYPES = "SupportedMediaTypes"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_MEDIA_TYPES) + @javax.annotation.Nullable + private String supportedMediaTypes; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private String userId; + + public static final String SERIALIZED_NAME_ALBUM_ART_PN = "AlbumArtPn"; + @SerializedName(SERIALIZED_NAME_ALBUM_ART_PN) + @javax.annotation.Nullable + private String albumArtPn; + + public static final String SERIALIZED_NAME_MAX_ALBUM_ART_WIDTH = "MaxAlbumArtWidth"; + @SerializedName(SERIALIZED_NAME_MAX_ALBUM_ART_WIDTH) + @javax.annotation.Nullable + private Integer maxAlbumArtWidth; + + public static final String SERIALIZED_NAME_MAX_ALBUM_ART_HEIGHT = "MaxAlbumArtHeight"; + @SerializedName(SERIALIZED_NAME_MAX_ALBUM_ART_HEIGHT) + @javax.annotation.Nullable + private Integer maxAlbumArtHeight; + + public static final String SERIALIZED_NAME_MAX_ICON_WIDTH = "MaxIconWidth"; + @SerializedName(SERIALIZED_NAME_MAX_ICON_WIDTH) + @javax.annotation.Nullable + private Integer maxIconWidth; + + public static final String SERIALIZED_NAME_MAX_ICON_HEIGHT = "MaxIconHeight"; + @SerializedName(SERIALIZED_NAME_MAX_ICON_HEIGHT) + @javax.annotation.Nullable + private Integer maxIconHeight; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_MAX_STATIC_BITRATE = "MaxStaticBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STATIC_BITRATE) + @javax.annotation.Nullable + private Integer maxStaticBitrate; + + public static final String SERIALIZED_NAME_MUSIC_STREAMING_TRANSCODING_BITRATE = "MusicStreamingTranscodingBitrate"; + @SerializedName(SERIALIZED_NAME_MUSIC_STREAMING_TRANSCODING_BITRATE) + @javax.annotation.Nullable + private Integer musicStreamingTranscodingBitrate; + + public static final String SERIALIZED_NAME_MAX_STATIC_MUSIC_BITRATE = "MaxStaticMusicBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STATIC_MUSIC_BITRATE) + @javax.annotation.Nullable + private Integer maxStaticMusicBitrate; + + public static final String SERIALIZED_NAME_SONY_AGGREGATION_FLAGS = "SonyAggregationFlags"; + @SerializedName(SERIALIZED_NAME_SONY_AGGREGATION_FLAGS) + @javax.annotation.Nullable + private String sonyAggregationFlags; + + public static final String SERIALIZED_NAME_PROTOCOL_INFO = "ProtocolInfo"; + @SerializedName(SERIALIZED_NAME_PROTOCOL_INFO) + @javax.annotation.Nullable + private String protocolInfo; + + public static final String SERIALIZED_NAME_TIMELINE_OFFSET_SECONDS = "TimelineOffsetSeconds"; + @SerializedName(SERIALIZED_NAME_TIMELINE_OFFSET_SECONDS) + @javax.annotation.Nullable + private Integer timelineOffsetSeconds = 0; + + public static final String SERIALIZED_NAME_REQUIRES_PLAIN_VIDEO_ITEMS = "RequiresPlainVideoItems"; + @SerializedName(SERIALIZED_NAME_REQUIRES_PLAIN_VIDEO_ITEMS) + @javax.annotation.Nullable + private Boolean requiresPlainVideoItems = false; + + public static final String SERIALIZED_NAME_REQUIRES_PLAIN_FOLDERS = "RequiresPlainFolders"; + @SerializedName(SERIALIZED_NAME_REQUIRES_PLAIN_FOLDERS) + @javax.annotation.Nullable + private Boolean requiresPlainFolders = false; + + public static final String SERIALIZED_NAME_ENABLE_M_S_MEDIA_RECEIVER_REGISTRAR = "EnableMSMediaReceiverRegistrar"; + @SerializedName(SERIALIZED_NAME_ENABLE_M_S_MEDIA_RECEIVER_REGISTRAR) + @javax.annotation.Nullable + private Boolean enableMSMediaReceiverRegistrar = false; + + public static final String SERIALIZED_NAME_IGNORE_TRANSCODE_BYTE_RANGE_REQUESTS = "IgnoreTranscodeByteRangeRequests"; + @SerializedName(SERIALIZED_NAME_IGNORE_TRANSCODE_BYTE_RANGE_REQUESTS) + @javax.annotation.Nullable + private Boolean ignoreTranscodeByteRangeRequests = false; + + public static final String SERIALIZED_NAME_XML_ROOT_ATTRIBUTES = "XmlRootAttributes"; + @SerializedName(SERIALIZED_NAME_XML_ROOT_ATTRIBUTES) + @javax.annotation.Nullable + private List xmlRootAttributes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DIRECT_PLAY_PROFILES = "DirectPlayProfiles"; + @SerializedName(SERIALIZED_NAME_DIRECT_PLAY_PROFILES) + @javax.annotation.Nullable + private List directPlayProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TRANSCODING_PROFILES = "TranscodingProfiles"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_PROFILES) + @javax.annotation.Nullable + private List transcodingProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTAINER_PROFILES = "ContainerProfiles"; + @SerializedName(SERIALIZED_NAME_CONTAINER_PROFILES) + @javax.annotation.Nullable + private List containerProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CODEC_PROFILES = "CodecProfiles"; + @SerializedName(SERIALIZED_NAME_CODEC_PROFILES) + @javax.annotation.Nullable + private List codecProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_RESPONSE_PROFILES = "ResponseProfiles"; + @SerializedName(SERIALIZED_NAME_RESPONSE_PROFILES) + @javax.annotation.Nullable + private List responseProfiles = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_PROFILES = "SubtitleProfiles"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_PROFILES) + @javax.annotation.Nullable + private List subtitleProfiles = new ArrayList<>(); + + public DeviceProfile() { + } + + public DeviceProfile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of this device profile. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public DeviceProfile id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the Id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DeviceProfile identification(@javax.annotation.Nullable DeviceIdentification identification) { + this.identification = identification; + return this; + } + + /** + * Gets or sets the Identification. + * @return identification + */ + @javax.annotation.Nullable + public DeviceIdentification getIdentification() { + return identification; + } + + public void setIdentification(@javax.annotation.Nullable DeviceIdentification identification) { + this.identification = identification; + } + + + public DeviceProfile friendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + /** + * Gets or sets the friendly name of the device profile, which can be shown to users. + * @return friendlyName + */ + @javax.annotation.Nullable + public String getFriendlyName() { + return friendlyName; + } + + public void setFriendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + } + + + public DeviceProfile manufacturer(@javax.annotation.Nullable String manufacturer) { + this.manufacturer = manufacturer; + return this; + } + + /** + * Gets or sets the manufacturer of the device which this profile represents. + * @return manufacturer + */ + @javax.annotation.Nullable + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(@javax.annotation.Nullable String manufacturer) { + this.manufacturer = manufacturer; + } + + + public DeviceProfile manufacturerUrl(@javax.annotation.Nullable String manufacturerUrl) { + this.manufacturerUrl = manufacturerUrl; + return this; + } + + /** + * Gets or sets an url for the manufacturer of the device which this profile represents. + * @return manufacturerUrl + */ + @javax.annotation.Nullable + public String getManufacturerUrl() { + return manufacturerUrl; + } + + public void setManufacturerUrl(@javax.annotation.Nullable String manufacturerUrl) { + this.manufacturerUrl = manufacturerUrl; + } + + + public DeviceProfile modelName(@javax.annotation.Nullable String modelName) { + this.modelName = modelName; + return this; + } + + /** + * Gets or sets the model name of the device which this profile represents. + * @return modelName + */ + @javax.annotation.Nullable + public String getModelName() { + return modelName; + } + + public void setModelName(@javax.annotation.Nullable String modelName) { + this.modelName = modelName; + } + + + public DeviceProfile modelDescription(@javax.annotation.Nullable String modelDescription) { + this.modelDescription = modelDescription; + return this; + } + + /** + * Gets or sets the model description of the device which this profile represents. + * @return modelDescription + */ + @javax.annotation.Nullable + public String getModelDescription() { + return modelDescription; + } + + public void setModelDescription(@javax.annotation.Nullable String modelDescription) { + this.modelDescription = modelDescription; + } + + + public DeviceProfile modelNumber(@javax.annotation.Nullable String modelNumber) { + this.modelNumber = modelNumber; + return this; + } + + /** + * Gets or sets the model number of the device which this profile represents. + * @return modelNumber + */ + @javax.annotation.Nullable + public String getModelNumber() { + return modelNumber; + } + + public void setModelNumber(@javax.annotation.Nullable String modelNumber) { + this.modelNumber = modelNumber; + } + + + public DeviceProfile modelUrl(@javax.annotation.Nullable String modelUrl) { + this.modelUrl = modelUrl; + return this; + } + + /** + * Gets or sets the ModelUrl. + * @return modelUrl + */ + @javax.annotation.Nullable + public String getModelUrl() { + return modelUrl; + } + + public void setModelUrl(@javax.annotation.Nullable String modelUrl) { + this.modelUrl = modelUrl; + } + + + public DeviceProfile serialNumber(@javax.annotation.Nullable String serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + /** + * Gets or sets the serial number of the device which this profile represents. + * @return serialNumber + */ + @javax.annotation.Nullable + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(@javax.annotation.Nullable String serialNumber) { + this.serialNumber = serialNumber; + } + + + public DeviceProfile enableAlbumArtInDidl(@javax.annotation.Nullable Boolean enableAlbumArtInDidl) { + this.enableAlbumArtInDidl = enableAlbumArtInDidl; + return this; + } + + /** + * Gets or sets a value indicating whether EnableAlbumArtInDidl. + * @return enableAlbumArtInDidl + */ + @javax.annotation.Nullable + public Boolean getEnableAlbumArtInDidl() { + return enableAlbumArtInDidl; + } + + public void setEnableAlbumArtInDidl(@javax.annotation.Nullable Boolean enableAlbumArtInDidl) { + this.enableAlbumArtInDidl = enableAlbumArtInDidl; + } + + + public DeviceProfile enableSingleAlbumArtLimit(@javax.annotation.Nullable Boolean enableSingleAlbumArtLimit) { + this.enableSingleAlbumArtLimit = enableSingleAlbumArtLimit; + return this; + } + + /** + * Gets or sets a value indicating whether EnableSingleAlbumArtLimit. + * @return enableSingleAlbumArtLimit + */ + @javax.annotation.Nullable + public Boolean getEnableSingleAlbumArtLimit() { + return enableSingleAlbumArtLimit; + } + + public void setEnableSingleAlbumArtLimit(@javax.annotation.Nullable Boolean enableSingleAlbumArtLimit) { + this.enableSingleAlbumArtLimit = enableSingleAlbumArtLimit; + } + + + public DeviceProfile enableSingleSubtitleLimit(@javax.annotation.Nullable Boolean enableSingleSubtitleLimit) { + this.enableSingleSubtitleLimit = enableSingleSubtitleLimit; + return this; + } + + /** + * Gets or sets a value indicating whether EnableSingleSubtitleLimit. + * @return enableSingleSubtitleLimit + */ + @javax.annotation.Nullable + public Boolean getEnableSingleSubtitleLimit() { + return enableSingleSubtitleLimit; + } + + public void setEnableSingleSubtitleLimit(@javax.annotation.Nullable Boolean enableSingleSubtitleLimit) { + this.enableSingleSubtitleLimit = enableSingleSubtitleLimit; + } + + + public DeviceProfile supportedMediaTypes(@javax.annotation.Nullable String supportedMediaTypes) { + this.supportedMediaTypes = supportedMediaTypes; + return this; + } + + /** + * Gets or sets the SupportedMediaTypes. + * @return supportedMediaTypes + */ + @javax.annotation.Nullable + public String getSupportedMediaTypes() { + return supportedMediaTypes; + } + + public void setSupportedMediaTypes(@javax.annotation.Nullable String supportedMediaTypes) { + this.supportedMediaTypes = supportedMediaTypes; + } + + + public DeviceProfile userId(@javax.annotation.Nullable String userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the UserId. + * @return userId + */ + @javax.annotation.Nullable + public String getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable String userId) { + this.userId = userId; + } + + + public DeviceProfile albumArtPn(@javax.annotation.Nullable String albumArtPn) { + this.albumArtPn = albumArtPn; + return this; + } + + /** + * Gets or sets the AlbumArtPn. + * @return albumArtPn + */ + @javax.annotation.Nullable + public String getAlbumArtPn() { + return albumArtPn; + } + + public void setAlbumArtPn(@javax.annotation.Nullable String albumArtPn) { + this.albumArtPn = albumArtPn; + } + + + public DeviceProfile maxAlbumArtWidth(@javax.annotation.Nullable Integer maxAlbumArtWidth) { + this.maxAlbumArtWidth = maxAlbumArtWidth; + return this; + } + + /** + * Gets or sets the MaxAlbumArtWidth. + * @return maxAlbumArtWidth + */ + @javax.annotation.Nullable + public Integer getMaxAlbumArtWidth() { + return maxAlbumArtWidth; + } + + public void setMaxAlbumArtWidth(@javax.annotation.Nullable Integer maxAlbumArtWidth) { + this.maxAlbumArtWidth = maxAlbumArtWidth; + } + + + public DeviceProfile maxAlbumArtHeight(@javax.annotation.Nullable Integer maxAlbumArtHeight) { + this.maxAlbumArtHeight = maxAlbumArtHeight; + return this; + } + + /** + * Gets or sets the MaxAlbumArtHeight. + * @return maxAlbumArtHeight + */ + @javax.annotation.Nullable + public Integer getMaxAlbumArtHeight() { + return maxAlbumArtHeight; + } + + public void setMaxAlbumArtHeight(@javax.annotation.Nullable Integer maxAlbumArtHeight) { + this.maxAlbumArtHeight = maxAlbumArtHeight; + } + + + public DeviceProfile maxIconWidth(@javax.annotation.Nullable Integer maxIconWidth) { + this.maxIconWidth = maxIconWidth; + return this; + } + + /** + * Gets or sets the maximum allowed width of embedded icons. + * @return maxIconWidth + */ + @javax.annotation.Nullable + public Integer getMaxIconWidth() { + return maxIconWidth; + } + + public void setMaxIconWidth(@javax.annotation.Nullable Integer maxIconWidth) { + this.maxIconWidth = maxIconWidth; + } + + + public DeviceProfile maxIconHeight(@javax.annotation.Nullable Integer maxIconHeight) { + this.maxIconHeight = maxIconHeight; + return this; + } + + /** + * Gets or sets the maximum allowed height of embedded icons. + * @return maxIconHeight + */ + @javax.annotation.Nullable + public Integer getMaxIconHeight() { + return maxIconHeight; + } + + public void setMaxIconHeight(@javax.annotation.Nullable Integer maxIconHeight) { + this.maxIconHeight = maxIconHeight; + } + + + public DeviceProfile maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for all streamed content. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public DeviceProfile maxStaticBitrate(@javax.annotation.Nullable Integer maxStaticBitrate) { + this.maxStaticBitrate = maxStaticBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). + * @return maxStaticBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStaticBitrate() { + return maxStaticBitrate; + } + + public void setMaxStaticBitrate(@javax.annotation.Nullable Integer maxStaticBitrate) { + this.maxStaticBitrate = maxStaticBitrate; + } + + + public DeviceProfile musicStreamingTranscodingBitrate(@javax.annotation.Nullable Integer musicStreamingTranscodingBitrate) { + this.musicStreamingTranscodingBitrate = musicStreamingTranscodingBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for transcoded music streams. + * @return musicStreamingTranscodingBitrate + */ + @javax.annotation.Nullable + public Integer getMusicStreamingTranscodingBitrate() { + return musicStreamingTranscodingBitrate; + } + + public void setMusicStreamingTranscodingBitrate(@javax.annotation.Nullable Integer musicStreamingTranscodingBitrate) { + this.musicStreamingTranscodingBitrate = musicStreamingTranscodingBitrate; + } + + + public DeviceProfile maxStaticMusicBitrate(@javax.annotation.Nullable Integer maxStaticMusicBitrate) { + this.maxStaticMusicBitrate = maxStaticMusicBitrate; + return this; + } + + /** + * Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. + * @return maxStaticMusicBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStaticMusicBitrate() { + return maxStaticMusicBitrate; + } + + public void setMaxStaticMusicBitrate(@javax.annotation.Nullable Integer maxStaticMusicBitrate) { + this.maxStaticMusicBitrate = maxStaticMusicBitrate; + } + + + public DeviceProfile sonyAggregationFlags(@javax.annotation.Nullable String sonyAggregationFlags) { + this.sonyAggregationFlags = sonyAggregationFlags; + return this; + } + + /** + * Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace. + * @return sonyAggregationFlags + */ + @javax.annotation.Nullable + public String getSonyAggregationFlags() { + return sonyAggregationFlags; + } + + public void setSonyAggregationFlags(@javax.annotation.Nullable String sonyAggregationFlags) { + this.sonyAggregationFlags = sonyAggregationFlags; + } + + + public DeviceProfile protocolInfo(@javax.annotation.Nullable String protocolInfo) { + this.protocolInfo = protocolInfo; + return this; + } + + /** + * Gets or sets the ProtocolInfo. + * @return protocolInfo + */ + @javax.annotation.Nullable + public String getProtocolInfo() { + return protocolInfo; + } + + public void setProtocolInfo(@javax.annotation.Nullable String protocolInfo) { + this.protocolInfo = protocolInfo; + } + + + public DeviceProfile timelineOffsetSeconds(@javax.annotation.Nullable Integer timelineOffsetSeconds) { + this.timelineOffsetSeconds = timelineOffsetSeconds; + return this; + } + + /** + * Gets or sets the TimelineOffsetSeconds. + * @return timelineOffsetSeconds + */ + @javax.annotation.Nullable + public Integer getTimelineOffsetSeconds() { + return timelineOffsetSeconds; + } + + public void setTimelineOffsetSeconds(@javax.annotation.Nullable Integer timelineOffsetSeconds) { + this.timelineOffsetSeconds = timelineOffsetSeconds; + } + + + public DeviceProfile requiresPlainVideoItems(@javax.annotation.Nullable Boolean requiresPlainVideoItems) { + this.requiresPlainVideoItems = requiresPlainVideoItems; + return this; + } + + /** + * Gets or sets a value indicating whether RequiresPlainVideoItems. + * @return requiresPlainVideoItems + */ + @javax.annotation.Nullable + public Boolean getRequiresPlainVideoItems() { + return requiresPlainVideoItems; + } + + public void setRequiresPlainVideoItems(@javax.annotation.Nullable Boolean requiresPlainVideoItems) { + this.requiresPlainVideoItems = requiresPlainVideoItems; + } + + + public DeviceProfile requiresPlainFolders(@javax.annotation.Nullable Boolean requiresPlainFolders) { + this.requiresPlainFolders = requiresPlainFolders; + return this; + } + + /** + * Gets or sets a value indicating whether RequiresPlainFolders. + * @return requiresPlainFolders + */ + @javax.annotation.Nullable + public Boolean getRequiresPlainFolders() { + return requiresPlainFolders; + } + + public void setRequiresPlainFolders(@javax.annotation.Nullable Boolean requiresPlainFolders) { + this.requiresPlainFolders = requiresPlainFolders; + } + + + public DeviceProfile enableMSMediaReceiverRegistrar(@javax.annotation.Nullable Boolean enableMSMediaReceiverRegistrar) { + this.enableMSMediaReceiverRegistrar = enableMSMediaReceiverRegistrar; + return this; + } + + /** + * Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar. + * @return enableMSMediaReceiverRegistrar + */ + @javax.annotation.Nullable + public Boolean getEnableMSMediaReceiverRegistrar() { + return enableMSMediaReceiverRegistrar; + } + + public void setEnableMSMediaReceiverRegistrar(@javax.annotation.Nullable Boolean enableMSMediaReceiverRegistrar) { + this.enableMSMediaReceiverRegistrar = enableMSMediaReceiverRegistrar; + } + + + public DeviceProfile ignoreTranscodeByteRangeRequests(@javax.annotation.Nullable Boolean ignoreTranscodeByteRangeRequests) { + this.ignoreTranscodeByteRangeRequests = ignoreTranscodeByteRangeRequests; + return this; + } + + /** + * Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests. + * @return ignoreTranscodeByteRangeRequests + */ + @javax.annotation.Nullable + public Boolean getIgnoreTranscodeByteRangeRequests() { + return ignoreTranscodeByteRangeRequests; + } + + public void setIgnoreTranscodeByteRangeRequests(@javax.annotation.Nullable Boolean ignoreTranscodeByteRangeRequests) { + this.ignoreTranscodeByteRangeRequests = ignoreTranscodeByteRangeRequests; + } + + + public DeviceProfile xmlRootAttributes(@javax.annotation.Nullable List xmlRootAttributes) { + this.xmlRootAttributes = xmlRootAttributes; + return this; + } + + public DeviceProfile addXmlRootAttributesItem(XmlAttribute xmlRootAttributesItem) { + if (this.xmlRootAttributes == null) { + this.xmlRootAttributes = new ArrayList<>(); + } + this.xmlRootAttributes.add(xmlRootAttributesItem); + return this; + } + + /** + * Gets or sets the XmlRootAttributes. + * @return xmlRootAttributes + */ + @javax.annotation.Nullable + public List getXmlRootAttributes() { + return xmlRootAttributes; + } + + public void setXmlRootAttributes(@javax.annotation.Nullable List xmlRootAttributes) { + this.xmlRootAttributes = xmlRootAttributes; + } + + + public DeviceProfile directPlayProfiles(@javax.annotation.Nullable List directPlayProfiles) { + this.directPlayProfiles = directPlayProfiles; + return this; + } + + public DeviceProfile addDirectPlayProfilesItem(DirectPlayProfile directPlayProfilesItem) { + if (this.directPlayProfiles == null) { + this.directPlayProfiles = new ArrayList<>(); + } + this.directPlayProfiles.add(directPlayProfilesItem); + return this; + } + + /** + * Gets or sets the direct play profiles. + * @return directPlayProfiles + */ + @javax.annotation.Nullable + public List getDirectPlayProfiles() { + return directPlayProfiles; + } + + public void setDirectPlayProfiles(@javax.annotation.Nullable List directPlayProfiles) { + this.directPlayProfiles = directPlayProfiles; + } + + + public DeviceProfile transcodingProfiles(@javax.annotation.Nullable List transcodingProfiles) { + this.transcodingProfiles = transcodingProfiles; + return this; + } + + public DeviceProfile addTranscodingProfilesItem(TranscodingProfile transcodingProfilesItem) { + if (this.transcodingProfiles == null) { + this.transcodingProfiles = new ArrayList<>(); + } + this.transcodingProfiles.add(transcodingProfilesItem); + return this; + } + + /** + * Gets or sets the transcoding profiles. + * @return transcodingProfiles + */ + @javax.annotation.Nullable + public List getTranscodingProfiles() { + return transcodingProfiles; + } + + public void setTranscodingProfiles(@javax.annotation.Nullable List transcodingProfiles) { + this.transcodingProfiles = transcodingProfiles; + } + + + public DeviceProfile containerProfiles(@javax.annotation.Nullable List containerProfiles) { + this.containerProfiles = containerProfiles; + return this; + } + + public DeviceProfile addContainerProfilesItem(ContainerProfile containerProfilesItem) { + if (this.containerProfiles == null) { + this.containerProfiles = new ArrayList<>(); + } + this.containerProfiles.add(containerProfilesItem); + return this; + } + + /** + * Gets or sets the container profiles. + * @return containerProfiles + */ + @javax.annotation.Nullable + public List getContainerProfiles() { + return containerProfiles; + } + + public void setContainerProfiles(@javax.annotation.Nullable List containerProfiles) { + this.containerProfiles = containerProfiles; + } + + + public DeviceProfile codecProfiles(@javax.annotation.Nullable List codecProfiles) { + this.codecProfiles = codecProfiles; + return this; + } + + public DeviceProfile addCodecProfilesItem(CodecProfile codecProfilesItem) { + if (this.codecProfiles == null) { + this.codecProfiles = new ArrayList<>(); + } + this.codecProfiles.add(codecProfilesItem); + return this; + } + + /** + * Gets or sets the codec profiles. + * @return codecProfiles + */ + @javax.annotation.Nullable + public List getCodecProfiles() { + return codecProfiles; + } + + public void setCodecProfiles(@javax.annotation.Nullable List codecProfiles) { + this.codecProfiles = codecProfiles; + } + + + public DeviceProfile responseProfiles(@javax.annotation.Nullable List responseProfiles) { + this.responseProfiles = responseProfiles; + return this; + } + + public DeviceProfile addResponseProfilesItem(ResponseProfile responseProfilesItem) { + if (this.responseProfiles == null) { + this.responseProfiles = new ArrayList<>(); + } + this.responseProfiles.add(responseProfilesItem); + return this; + } + + /** + * Gets or sets the ResponseProfiles. + * @return responseProfiles + */ + @javax.annotation.Nullable + public List getResponseProfiles() { + return responseProfiles; + } + + public void setResponseProfiles(@javax.annotation.Nullable List responseProfiles) { + this.responseProfiles = responseProfiles; + } + + + public DeviceProfile subtitleProfiles(@javax.annotation.Nullable List subtitleProfiles) { + this.subtitleProfiles = subtitleProfiles; + return this; + } + + public DeviceProfile addSubtitleProfilesItem(SubtitleProfile subtitleProfilesItem) { + if (this.subtitleProfiles == null) { + this.subtitleProfiles = new ArrayList<>(); + } + this.subtitleProfiles.add(subtitleProfilesItem); + return this; + } + + /** + * Gets or sets the subtitle profiles. + * @return subtitleProfiles + */ + @javax.annotation.Nullable + public List getSubtitleProfiles() { + return subtitleProfiles; + } + + public void setSubtitleProfiles(@javax.annotation.Nullable List subtitleProfiles) { + this.subtitleProfiles = subtitleProfiles; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceProfile deviceProfile = (DeviceProfile) o; + return Objects.equals(this.name, deviceProfile.name) && + Objects.equals(this.id, deviceProfile.id) && + Objects.equals(this.identification, deviceProfile.identification) && + Objects.equals(this.friendlyName, deviceProfile.friendlyName) && + Objects.equals(this.manufacturer, deviceProfile.manufacturer) && + Objects.equals(this.manufacturerUrl, deviceProfile.manufacturerUrl) && + Objects.equals(this.modelName, deviceProfile.modelName) && + Objects.equals(this.modelDescription, deviceProfile.modelDescription) && + Objects.equals(this.modelNumber, deviceProfile.modelNumber) && + Objects.equals(this.modelUrl, deviceProfile.modelUrl) && + Objects.equals(this.serialNumber, deviceProfile.serialNumber) && + Objects.equals(this.enableAlbumArtInDidl, deviceProfile.enableAlbumArtInDidl) && + Objects.equals(this.enableSingleAlbumArtLimit, deviceProfile.enableSingleAlbumArtLimit) && + Objects.equals(this.enableSingleSubtitleLimit, deviceProfile.enableSingleSubtitleLimit) && + Objects.equals(this.supportedMediaTypes, deviceProfile.supportedMediaTypes) && + Objects.equals(this.userId, deviceProfile.userId) && + Objects.equals(this.albumArtPn, deviceProfile.albumArtPn) && + Objects.equals(this.maxAlbumArtWidth, deviceProfile.maxAlbumArtWidth) && + Objects.equals(this.maxAlbumArtHeight, deviceProfile.maxAlbumArtHeight) && + Objects.equals(this.maxIconWidth, deviceProfile.maxIconWidth) && + Objects.equals(this.maxIconHeight, deviceProfile.maxIconHeight) && + Objects.equals(this.maxStreamingBitrate, deviceProfile.maxStreamingBitrate) && + Objects.equals(this.maxStaticBitrate, deviceProfile.maxStaticBitrate) && + Objects.equals(this.musicStreamingTranscodingBitrate, deviceProfile.musicStreamingTranscodingBitrate) && + Objects.equals(this.maxStaticMusicBitrate, deviceProfile.maxStaticMusicBitrate) && + Objects.equals(this.sonyAggregationFlags, deviceProfile.sonyAggregationFlags) && + Objects.equals(this.protocolInfo, deviceProfile.protocolInfo) && + Objects.equals(this.timelineOffsetSeconds, deviceProfile.timelineOffsetSeconds) && + Objects.equals(this.requiresPlainVideoItems, deviceProfile.requiresPlainVideoItems) && + Objects.equals(this.requiresPlainFolders, deviceProfile.requiresPlainFolders) && + Objects.equals(this.enableMSMediaReceiverRegistrar, deviceProfile.enableMSMediaReceiverRegistrar) && + Objects.equals(this.ignoreTranscodeByteRangeRequests, deviceProfile.ignoreTranscodeByteRangeRequests) && + Objects.equals(this.xmlRootAttributes, deviceProfile.xmlRootAttributes) && + Objects.equals(this.directPlayProfiles, deviceProfile.directPlayProfiles) && + Objects.equals(this.transcodingProfiles, deviceProfile.transcodingProfiles) && + Objects.equals(this.containerProfiles, deviceProfile.containerProfiles) && + Objects.equals(this.codecProfiles, deviceProfile.codecProfiles) && + Objects.equals(this.responseProfiles, deviceProfile.responseProfiles) && + Objects.equals(this.subtitleProfiles, deviceProfile.subtitleProfiles); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id, identification, friendlyName, manufacturer, manufacturerUrl, modelName, modelDescription, modelNumber, modelUrl, serialNumber, enableAlbumArtInDidl, enableSingleAlbumArtLimit, enableSingleSubtitleLimit, supportedMediaTypes, userId, albumArtPn, maxAlbumArtWidth, maxAlbumArtHeight, maxIconWidth, maxIconHeight, maxStreamingBitrate, maxStaticBitrate, musicStreamingTranscodingBitrate, maxStaticMusicBitrate, sonyAggregationFlags, protocolInfo, timelineOffsetSeconds, requiresPlainVideoItems, requiresPlainFolders, enableMSMediaReceiverRegistrar, ignoreTranscodeByteRangeRequests, xmlRootAttributes, directPlayProfiles, transcodingProfiles, containerProfiles, codecProfiles, responseProfiles, subtitleProfiles); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceProfile {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" identification: ").append(toIndentedString(identification)).append("\n"); + sb.append(" friendlyName: ").append(toIndentedString(friendlyName)).append("\n"); + sb.append(" manufacturer: ").append(toIndentedString(manufacturer)).append("\n"); + sb.append(" manufacturerUrl: ").append(toIndentedString(manufacturerUrl)).append("\n"); + sb.append(" modelName: ").append(toIndentedString(modelName)).append("\n"); + sb.append(" modelDescription: ").append(toIndentedString(modelDescription)).append("\n"); + sb.append(" modelNumber: ").append(toIndentedString(modelNumber)).append("\n"); + sb.append(" modelUrl: ").append(toIndentedString(modelUrl)).append("\n"); + sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); + sb.append(" enableAlbumArtInDidl: ").append(toIndentedString(enableAlbumArtInDidl)).append("\n"); + sb.append(" enableSingleAlbumArtLimit: ").append(toIndentedString(enableSingleAlbumArtLimit)).append("\n"); + sb.append(" enableSingleSubtitleLimit: ").append(toIndentedString(enableSingleSubtitleLimit)).append("\n"); + sb.append(" supportedMediaTypes: ").append(toIndentedString(supportedMediaTypes)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" albumArtPn: ").append(toIndentedString(albumArtPn)).append("\n"); + sb.append(" maxAlbumArtWidth: ").append(toIndentedString(maxAlbumArtWidth)).append("\n"); + sb.append(" maxAlbumArtHeight: ").append(toIndentedString(maxAlbumArtHeight)).append("\n"); + sb.append(" maxIconWidth: ").append(toIndentedString(maxIconWidth)).append("\n"); + sb.append(" maxIconHeight: ").append(toIndentedString(maxIconHeight)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" maxStaticBitrate: ").append(toIndentedString(maxStaticBitrate)).append("\n"); + sb.append(" musicStreamingTranscodingBitrate: ").append(toIndentedString(musicStreamingTranscodingBitrate)).append("\n"); + sb.append(" maxStaticMusicBitrate: ").append(toIndentedString(maxStaticMusicBitrate)).append("\n"); + sb.append(" sonyAggregationFlags: ").append(toIndentedString(sonyAggregationFlags)).append("\n"); + sb.append(" protocolInfo: ").append(toIndentedString(protocolInfo)).append("\n"); + sb.append(" timelineOffsetSeconds: ").append(toIndentedString(timelineOffsetSeconds)).append("\n"); + sb.append(" requiresPlainVideoItems: ").append(toIndentedString(requiresPlainVideoItems)).append("\n"); + sb.append(" requiresPlainFolders: ").append(toIndentedString(requiresPlainFolders)).append("\n"); + sb.append(" enableMSMediaReceiverRegistrar: ").append(toIndentedString(enableMSMediaReceiverRegistrar)).append("\n"); + sb.append(" ignoreTranscodeByteRangeRequests: ").append(toIndentedString(ignoreTranscodeByteRangeRequests)).append("\n"); + sb.append(" xmlRootAttributes: ").append(toIndentedString(xmlRootAttributes)).append("\n"); + sb.append(" directPlayProfiles: ").append(toIndentedString(directPlayProfiles)).append("\n"); + sb.append(" transcodingProfiles: ").append(toIndentedString(transcodingProfiles)).append("\n"); + sb.append(" containerProfiles: ").append(toIndentedString(containerProfiles)).append("\n"); + sb.append(" codecProfiles: ").append(toIndentedString(codecProfiles)).append("\n"); + sb.append(" responseProfiles: ").append(toIndentedString(responseProfiles)).append("\n"); + sb.append(" subtitleProfiles: ").append(toIndentedString(subtitleProfiles)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + openapiFields.add("Identification"); + openapiFields.add("FriendlyName"); + openapiFields.add("Manufacturer"); + openapiFields.add("ManufacturerUrl"); + openapiFields.add("ModelName"); + openapiFields.add("ModelDescription"); + openapiFields.add("ModelNumber"); + openapiFields.add("ModelUrl"); + openapiFields.add("SerialNumber"); + openapiFields.add("EnableAlbumArtInDidl"); + openapiFields.add("EnableSingleAlbumArtLimit"); + openapiFields.add("EnableSingleSubtitleLimit"); + openapiFields.add("SupportedMediaTypes"); + openapiFields.add("UserId"); + openapiFields.add("AlbumArtPn"); + openapiFields.add("MaxAlbumArtWidth"); + openapiFields.add("MaxAlbumArtHeight"); + openapiFields.add("MaxIconWidth"); + openapiFields.add("MaxIconHeight"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("MaxStaticBitrate"); + openapiFields.add("MusicStreamingTranscodingBitrate"); + openapiFields.add("MaxStaticMusicBitrate"); + openapiFields.add("SonyAggregationFlags"); + openapiFields.add("ProtocolInfo"); + openapiFields.add("TimelineOffsetSeconds"); + openapiFields.add("RequiresPlainVideoItems"); + openapiFields.add("RequiresPlainFolders"); + openapiFields.add("EnableMSMediaReceiverRegistrar"); + openapiFields.add("IgnoreTranscodeByteRangeRequests"); + openapiFields.add("XmlRootAttributes"); + openapiFields.add("DirectPlayProfiles"); + openapiFields.add("TranscodingProfiles"); + openapiFields.add("ContainerProfiles"); + openapiFields.add("CodecProfiles"); + openapiFields.add("ResponseProfiles"); + openapiFields.add("SubtitleProfiles"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceProfile is not found in the empty JSON string", DeviceProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `Identification` + if (jsonObj.get("Identification") != null && !jsonObj.get("Identification").isJsonNull()) { + DeviceIdentification.validateJsonElement(jsonObj.get("Identification")); + } + if ((jsonObj.get("FriendlyName") != null && !jsonObj.get("FriendlyName").isJsonNull()) && !jsonObj.get("FriendlyName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FriendlyName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FriendlyName").toString())); + } + if ((jsonObj.get("Manufacturer") != null && !jsonObj.get("Manufacturer").isJsonNull()) && !jsonObj.get("Manufacturer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Manufacturer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Manufacturer").toString())); + } + if ((jsonObj.get("ManufacturerUrl") != null && !jsonObj.get("ManufacturerUrl").isJsonNull()) && !jsonObj.get("ManufacturerUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ManufacturerUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ManufacturerUrl").toString())); + } + if ((jsonObj.get("ModelName") != null && !jsonObj.get("ModelName").isJsonNull()) && !jsonObj.get("ModelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelName").toString())); + } + if ((jsonObj.get("ModelDescription") != null && !jsonObj.get("ModelDescription").isJsonNull()) && !jsonObj.get("ModelDescription").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelDescription` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelDescription").toString())); + } + if ((jsonObj.get("ModelNumber") != null && !jsonObj.get("ModelNumber").isJsonNull()) && !jsonObj.get("ModelNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelNumber").toString())); + } + if ((jsonObj.get("ModelUrl") != null && !jsonObj.get("ModelUrl").isJsonNull()) && !jsonObj.get("ModelUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ModelUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ModelUrl").toString())); + } + if ((jsonObj.get("SerialNumber") != null && !jsonObj.get("SerialNumber").isJsonNull()) && !jsonObj.get("SerialNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SerialNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SerialNumber").toString())); + } + if ((jsonObj.get("SupportedMediaTypes") != null && !jsonObj.get("SupportedMediaTypes").isJsonNull()) && !jsonObj.get("SupportedMediaTypes").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedMediaTypes` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SupportedMediaTypes").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("AlbumArtPn") != null && !jsonObj.get("AlbumArtPn").isJsonNull()) && !jsonObj.get("AlbumArtPn").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtPn` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumArtPn").toString())); + } + if ((jsonObj.get("SonyAggregationFlags") != null && !jsonObj.get("SonyAggregationFlags").isJsonNull()) && !jsonObj.get("SonyAggregationFlags").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SonyAggregationFlags` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SonyAggregationFlags").toString())); + } + if ((jsonObj.get("ProtocolInfo") != null && !jsonObj.get("ProtocolInfo").isJsonNull()) && !jsonObj.get("ProtocolInfo").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProtocolInfo` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProtocolInfo").toString())); + } + if (jsonObj.get("XmlRootAttributes") != null && !jsonObj.get("XmlRootAttributes").isJsonNull()) { + JsonArray jsonArrayxmlRootAttributes = jsonObj.getAsJsonArray("XmlRootAttributes"); + if (jsonArrayxmlRootAttributes != null) { + // ensure the json data is an array + if (!jsonObj.get("XmlRootAttributes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `XmlRootAttributes` to be an array in the JSON string but got `%s`", jsonObj.get("XmlRootAttributes").toString())); + } + + // validate the optional field `XmlRootAttributes` (array) + for (int i = 0; i < jsonArrayxmlRootAttributes.size(); i++) { + XmlAttribute.validateJsonElement(jsonArrayxmlRootAttributes.get(i)); + }; + } + } + if (jsonObj.get("DirectPlayProfiles") != null && !jsonObj.get("DirectPlayProfiles").isJsonNull()) { + JsonArray jsonArraydirectPlayProfiles = jsonObj.getAsJsonArray("DirectPlayProfiles"); + if (jsonArraydirectPlayProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("DirectPlayProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DirectPlayProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("DirectPlayProfiles").toString())); + } + + // validate the optional field `DirectPlayProfiles` (array) + for (int i = 0; i < jsonArraydirectPlayProfiles.size(); i++) { + DirectPlayProfile.validateJsonElement(jsonArraydirectPlayProfiles.get(i)); + }; + } + } + if (jsonObj.get("TranscodingProfiles") != null && !jsonObj.get("TranscodingProfiles").isJsonNull()) { + JsonArray jsonArraytranscodingProfiles = jsonObj.getAsJsonArray("TranscodingProfiles"); + if (jsonArraytranscodingProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("TranscodingProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("TranscodingProfiles").toString())); + } + + // validate the optional field `TranscodingProfiles` (array) + for (int i = 0; i < jsonArraytranscodingProfiles.size(); i++) { + TranscodingProfile.validateJsonElement(jsonArraytranscodingProfiles.get(i)); + }; + } + } + if (jsonObj.get("ContainerProfiles") != null && !jsonObj.get("ContainerProfiles").isJsonNull()) { + JsonArray jsonArraycontainerProfiles = jsonObj.getAsJsonArray("ContainerProfiles"); + if (jsonArraycontainerProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("ContainerProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContainerProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("ContainerProfiles").toString())); + } + + // validate the optional field `ContainerProfiles` (array) + for (int i = 0; i < jsonArraycontainerProfiles.size(); i++) { + ContainerProfile.validateJsonElement(jsonArraycontainerProfiles.get(i)); + }; + } + } + if (jsonObj.get("CodecProfiles") != null && !jsonObj.get("CodecProfiles").isJsonNull()) { + JsonArray jsonArraycodecProfiles = jsonObj.getAsJsonArray("CodecProfiles"); + if (jsonArraycodecProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("CodecProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("CodecProfiles").toString())); + } + + // validate the optional field `CodecProfiles` (array) + for (int i = 0; i < jsonArraycodecProfiles.size(); i++) { + CodecProfile.validateJsonElement(jsonArraycodecProfiles.get(i)); + }; + } + } + if (jsonObj.get("ResponseProfiles") != null && !jsonObj.get("ResponseProfiles").isJsonNull()) { + JsonArray jsonArrayresponseProfiles = jsonObj.getAsJsonArray("ResponseProfiles"); + if (jsonArrayresponseProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("ResponseProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ResponseProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("ResponseProfiles").toString())); + } + + // validate the optional field `ResponseProfiles` (array) + for (int i = 0; i < jsonArrayresponseProfiles.size(); i++) { + ResponseProfile.validateJsonElement(jsonArrayresponseProfiles.get(i)); + }; + } + } + if (jsonObj.get("SubtitleProfiles") != null && !jsonObj.get("SubtitleProfiles").isJsonNull()) { + JsonArray jsonArraysubtitleProfiles = jsonObj.getAsJsonArray("SubtitleProfiles"); + if (jsonArraysubtitleProfiles != null) { + // ensure the json data is an array + if (!jsonObj.get("SubtitleProfiles").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleProfiles` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleProfiles").toString())); + } + + // validate the optional field `SubtitleProfiles` (array) + for (int i = 0; i < jsonArraysubtitleProfiles.size(); i++) { + SubtitleProfile.validateJsonElement(jsonArraysubtitleProfiles.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceProfile + * @throws IOException if the JSON string is invalid with respect to DeviceProfile + */ + public static DeviceProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceProfile.class); + } + + /** + * Convert an instance of DeviceProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileInfo.java new file mode 100644 index 0000000000000..17bdeb58f1a90 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileInfo.java @@ -0,0 +1,280 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.DeviceProfileType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DeviceProfileInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DeviceProfileInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DeviceProfileType type; + + public DeviceProfileInfo() { + } + + public DeviceProfileInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DeviceProfileInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public DeviceProfileInfo type(@javax.annotation.Nullable DeviceProfileType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public DeviceProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DeviceProfileType type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeviceProfileInfo deviceProfileInfo = (DeviceProfileInfo) o; + return Objects.equals(this.id, deviceProfileInfo.id) && + Objects.equals(this.name, deviceProfileInfo.name) && + Objects.equals(this.type, deviceProfileInfo.type); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, type); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeviceProfileInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("Type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceProfileInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceProfileInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeviceProfileInfo is not found in the empty JSON string", DeviceProfileInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceProfileInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeviceProfileInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DeviceProfileType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceProfileInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceProfileInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeviceProfileInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceProfileInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceProfileInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceProfileInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceProfileInfo + * @throws IOException if the JSON string is invalid with respect to DeviceProfileInfo + */ + public static DeviceProfileInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceProfileInfo.class); + } + + /** + * Convert an instance of DeviceProfileInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileType.java new file mode 100644 index 0000000000000..5113b7b337352 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DeviceProfileType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DeviceProfileType + */ +@JsonAdapter(DeviceProfileType.Adapter.class) +public enum DeviceProfileType { + + SYSTEM("System"), + + USER("User"); + + private String value; + + DeviceProfileType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DeviceProfileType fromValue(String value) { + for (DeviceProfileType b : DeviceProfileType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DeviceProfileType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DeviceProfileType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DeviceProfileType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DeviceProfileType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DirectPlayProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DirectPlayProfile.java new file mode 100644 index 0000000000000..8fc1e506999bb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DirectPlayProfile.java @@ -0,0 +1,310 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * DirectPlayProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DirectPlayProfile { + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public DirectPlayProfile() { + } + + public DirectPlayProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public DirectPlayProfile audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Get audioCodec + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public DirectPlayProfile videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Get videoCodec + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public DirectPlayProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectPlayProfile directPlayProfile = (DirectPlayProfile) o; + return Objects.equals(this.container, directPlayProfile.container) && + Objects.equals(this.audioCodec, directPlayProfile.audioCodec) && + Objects.equals(this.videoCodec, directPlayProfile.videoCodec) && + Objects.equals(this.type, directPlayProfile.type); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(container, audioCodec, videoCodec, type); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DirectPlayProfile {\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Container"); + openapiFields.add("AudioCodec"); + openapiFields.add("VideoCodec"); + openapiFields.add("Type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DirectPlayProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DirectPlayProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DirectPlayProfile is not found in the empty JSON string", DirectPlayProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DirectPlayProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DirectPlayProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DirectPlayProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DirectPlayProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DirectPlayProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DirectPlayProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DirectPlayProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DirectPlayProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of DirectPlayProfile + * @throws IOException if the JSON string is invalid with respect to DirectPlayProfile + */ + public static DirectPlayProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DirectPlayProfile.class); + } + + /** + * Convert an instance of DirectPlayProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java new file mode 100644 index 0000000000000..ed4b0bf5a5e90 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DisplayPreferencesDto.java @@ -0,0 +1,601 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.client.model.ScrollDirection; +import org.openapitools.client.model.SortOrder; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the display preferences for any item that supports them (usually Folders). + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DisplayPreferencesDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_VIEW_TYPE = "ViewType"; + @SerializedName(SERIALIZED_NAME_VIEW_TYPE) + @javax.annotation.Nullable + private String viewType; + + public static final String SERIALIZED_NAME_SORT_BY = "SortBy"; + @SerializedName(SERIALIZED_NAME_SORT_BY) + @javax.annotation.Nullable + private String sortBy; + + public static final String SERIALIZED_NAME_INDEX_BY = "IndexBy"; + @SerializedName(SERIALIZED_NAME_INDEX_BY) + @javax.annotation.Nullable + private String indexBy; + + public static final String SERIALIZED_NAME_REMEMBER_INDEXING = "RememberIndexing"; + @SerializedName(SERIALIZED_NAME_REMEMBER_INDEXING) + @javax.annotation.Nullable + private Boolean rememberIndexing; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_HEIGHT = "PrimaryImageHeight"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_HEIGHT) + @javax.annotation.Nullable + private Integer primaryImageHeight; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_WIDTH = "PrimaryImageWidth"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_WIDTH) + @javax.annotation.Nullable + private Integer primaryImageWidth; + + public static final String SERIALIZED_NAME_CUSTOM_PREFS = "CustomPrefs"; + @SerializedName(SERIALIZED_NAME_CUSTOM_PREFS) + @javax.annotation.Nullable + private Map customPrefs = new HashMap<>(); + + public static final String SERIALIZED_NAME_SCROLL_DIRECTION = "ScrollDirection"; + @SerializedName(SERIALIZED_NAME_SCROLL_DIRECTION) + @javax.annotation.Nullable + private ScrollDirection scrollDirection; + + public static final String SERIALIZED_NAME_SHOW_BACKDROP = "ShowBackdrop"; + @SerializedName(SERIALIZED_NAME_SHOW_BACKDROP) + @javax.annotation.Nullable + private Boolean showBackdrop; + + public static final String SERIALIZED_NAME_REMEMBER_SORTING = "RememberSorting"; + @SerializedName(SERIALIZED_NAME_REMEMBER_SORTING) + @javax.annotation.Nullable + private Boolean rememberSorting; + + public static final String SERIALIZED_NAME_SORT_ORDER = "SortOrder"; + @SerializedName(SERIALIZED_NAME_SORT_ORDER) + @javax.annotation.Nullable + private SortOrder sortOrder; + + public static final String SERIALIZED_NAME_SHOW_SIDEBAR = "ShowSidebar"; + @SerializedName(SERIALIZED_NAME_SHOW_SIDEBAR) + @javax.annotation.Nullable + private Boolean showSidebar; + + public static final String SERIALIZED_NAME_CLIENT = "Client"; + @SerializedName(SERIALIZED_NAME_CLIENT) + @javax.annotation.Nullable + private String client; + + public DisplayPreferencesDto() { + } + + public DisplayPreferencesDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the user id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public DisplayPreferencesDto viewType(@javax.annotation.Nullable String viewType) { + this.viewType = viewType; + return this; + } + + /** + * Gets or sets the type of the view. + * @return viewType + */ + @javax.annotation.Nullable + public String getViewType() { + return viewType; + } + + public void setViewType(@javax.annotation.Nullable String viewType) { + this.viewType = viewType; + } + + + public DisplayPreferencesDto sortBy(@javax.annotation.Nullable String sortBy) { + this.sortBy = sortBy; + return this; + } + + /** + * Gets or sets the sort by. + * @return sortBy + */ + @javax.annotation.Nullable + public String getSortBy() { + return sortBy; + } + + public void setSortBy(@javax.annotation.Nullable String sortBy) { + this.sortBy = sortBy; + } + + + public DisplayPreferencesDto indexBy(@javax.annotation.Nullable String indexBy) { + this.indexBy = indexBy; + return this; + } + + /** + * Gets or sets the index by. + * @return indexBy + */ + @javax.annotation.Nullable + public String getIndexBy() { + return indexBy; + } + + public void setIndexBy(@javax.annotation.Nullable String indexBy) { + this.indexBy = indexBy; + } + + + public DisplayPreferencesDto rememberIndexing(@javax.annotation.Nullable Boolean rememberIndexing) { + this.rememberIndexing = rememberIndexing; + return this; + } + + /** + * Gets or sets a value indicating whether [remember indexing]. + * @return rememberIndexing + */ + @javax.annotation.Nullable + public Boolean getRememberIndexing() { + return rememberIndexing; + } + + public void setRememberIndexing(@javax.annotation.Nullable Boolean rememberIndexing) { + this.rememberIndexing = rememberIndexing; + } + + + public DisplayPreferencesDto primaryImageHeight(@javax.annotation.Nullable Integer primaryImageHeight) { + this.primaryImageHeight = primaryImageHeight; + return this; + } + + /** + * Gets or sets the height of the primary image. + * @return primaryImageHeight + */ + @javax.annotation.Nullable + public Integer getPrimaryImageHeight() { + return primaryImageHeight; + } + + public void setPrimaryImageHeight(@javax.annotation.Nullable Integer primaryImageHeight) { + this.primaryImageHeight = primaryImageHeight; + } + + + public DisplayPreferencesDto primaryImageWidth(@javax.annotation.Nullable Integer primaryImageWidth) { + this.primaryImageWidth = primaryImageWidth; + return this; + } + + /** + * Gets or sets the width of the primary image. + * @return primaryImageWidth + */ + @javax.annotation.Nullable + public Integer getPrimaryImageWidth() { + return primaryImageWidth; + } + + public void setPrimaryImageWidth(@javax.annotation.Nullable Integer primaryImageWidth) { + this.primaryImageWidth = primaryImageWidth; + } + + + public DisplayPreferencesDto customPrefs(@javax.annotation.Nullable Map customPrefs) { + this.customPrefs = customPrefs; + return this; + } + + public DisplayPreferencesDto putCustomPrefsItem(String key, String customPrefsItem) { + if (this.customPrefs == null) { + this.customPrefs = new HashMap<>(); + } + this.customPrefs.put(key, customPrefsItem); + return this; + } + + /** + * Gets or sets the custom prefs. + * @return customPrefs + */ + @javax.annotation.Nullable + public Map getCustomPrefs() { + return customPrefs; + } + + public void setCustomPrefs(@javax.annotation.Nullable Map customPrefs) { + this.customPrefs = customPrefs; + } + + + public DisplayPreferencesDto scrollDirection(@javax.annotation.Nullable ScrollDirection scrollDirection) { + this.scrollDirection = scrollDirection; + return this; + } + + /** + * Gets or sets the scroll direction. + * @return scrollDirection + */ + @javax.annotation.Nullable + public ScrollDirection getScrollDirection() { + return scrollDirection; + } + + public void setScrollDirection(@javax.annotation.Nullable ScrollDirection scrollDirection) { + this.scrollDirection = scrollDirection; + } + + + public DisplayPreferencesDto showBackdrop(@javax.annotation.Nullable Boolean showBackdrop) { + this.showBackdrop = showBackdrop; + return this; + } + + /** + * Gets or sets a value indicating whether to show backdrops on this item. + * @return showBackdrop + */ + @javax.annotation.Nullable + public Boolean getShowBackdrop() { + return showBackdrop; + } + + public void setShowBackdrop(@javax.annotation.Nullable Boolean showBackdrop) { + this.showBackdrop = showBackdrop; + } + + + public DisplayPreferencesDto rememberSorting(@javax.annotation.Nullable Boolean rememberSorting) { + this.rememberSorting = rememberSorting; + return this; + } + + /** + * Gets or sets a value indicating whether [remember sorting]. + * @return rememberSorting + */ + @javax.annotation.Nullable + public Boolean getRememberSorting() { + return rememberSorting; + } + + public void setRememberSorting(@javax.annotation.Nullable Boolean rememberSorting) { + this.rememberSorting = rememberSorting; + } + + + public DisplayPreferencesDto sortOrder(@javax.annotation.Nullable SortOrder sortOrder) { + this.sortOrder = sortOrder; + return this; + } + + /** + * Gets or sets the sort order. + * @return sortOrder + */ + @javax.annotation.Nullable + public SortOrder getSortOrder() { + return sortOrder; + } + + public void setSortOrder(@javax.annotation.Nullable SortOrder sortOrder) { + this.sortOrder = sortOrder; + } + + + public DisplayPreferencesDto showSidebar(@javax.annotation.Nullable Boolean showSidebar) { + this.showSidebar = showSidebar; + return this; + } + + /** + * Gets or sets a value indicating whether [show sidebar]. + * @return showSidebar + */ + @javax.annotation.Nullable + public Boolean getShowSidebar() { + return showSidebar; + } + + public void setShowSidebar(@javax.annotation.Nullable Boolean showSidebar) { + this.showSidebar = showSidebar; + } + + + public DisplayPreferencesDto client(@javax.annotation.Nullable String client) { + this.client = client; + return this; + } + + /** + * Gets or sets the client. + * @return client + */ + @javax.annotation.Nullable + public String getClient() { + return client; + } + + public void setClient(@javax.annotation.Nullable String client) { + this.client = client; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DisplayPreferencesDto displayPreferencesDto = (DisplayPreferencesDto) o; + return Objects.equals(this.id, displayPreferencesDto.id) && + Objects.equals(this.viewType, displayPreferencesDto.viewType) && + Objects.equals(this.sortBy, displayPreferencesDto.sortBy) && + Objects.equals(this.indexBy, displayPreferencesDto.indexBy) && + Objects.equals(this.rememberIndexing, displayPreferencesDto.rememberIndexing) && + Objects.equals(this.primaryImageHeight, displayPreferencesDto.primaryImageHeight) && + Objects.equals(this.primaryImageWidth, displayPreferencesDto.primaryImageWidth) && + Objects.equals(this.customPrefs, displayPreferencesDto.customPrefs) && + Objects.equals(this.scrollDirection, displayPreferencesDto.scrollDirection) && + Objects.equals(this.showBackdrop, displayPreferencesDto.showBackdrop) && + Objects.equals(this.rememberSorting, displayPreferencesDto.rememberSorting) && + Objects.equals(this.sortOrder, displayPreferencesDto.sortOrder) && + Objects.equals(this.showSidebar, displayPreferencesDto.showSidebar) && + Objects.equals(this.client, displayPreferencesDto.client); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, viewType, sortBy, indexBy, rememberIndexing, primaryImageHeight, primaryImageWidth, customPrefs, scrollDirection, showBackdrop, rememberSorting, sortOrder, showSidebar, client); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DisplayPreferencesDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" viewType: ").append(toIndentedString(viewType)).append("\n"); + sb.append(" sortBy: ").append(toIndentedString(sortBy)).append("\n"); + sb.append(" indexBy: ").append(toIndentedString(indexBy)).append("\n"); + sb.append(" rememberIndexing: ").append(toIndentedString(rememberIndexing)).append("\n"); + sb.append(" primaryImageHeight: ").append(toIndentedString(primaryImageHeight)).append("\n"); + sb.append(" primaryImageWidth: ").append(toIndentedString(primaryImageWidth)).append("\n"); + sb.append(" customPrefs: ").append(toIndentedString(customPrefs)).append("\n"); + sb.append(" scrollDirection: ").append(toIndentedString(scrollDirection)).append("\n"); + sb.append(" showBackdrop: ").append(toIndentedString(showBackdrop)).append("\n"); + sb.append(" rememberSorting: ").append(toIndentedString(rememberSorting)).append("\n"); + sb.append(" sortOrder: ").append(toIndentedString(sortOrder)).append("\n"); + sb.append(" showSidebar: ").append(toIndentedString(showSidebar)).append("\n"); + sb.append(" client: ").append(toIndentedString(client)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ViewType"); + openapiFields.add("SortBy"); + openapiFields.add("IndexBy"); + openapiFields.add("RememberIndexing"); + openapiFields.add("PrimaryImageHeight"); + openapiFields.add("PrimaryImageWidth"); + openapiFields.add("CustomPrefs"); + openapiFields.add("ScrollDirection"); + openapiFields.add("ShowBackdrop"); + openapiFields.add("RememberSorting"); + openapiFields.add("SortOrder"); + openapiFields.add("ShowSidebar"); + openapiFields.add("Client"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DisplayPreferencesDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DisplayPreferencesDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DisplayPreferencesDto is not found in the empty JSON string", DisplayPreferencesDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DisplayPreferencesDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DisplayPreferencesDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ViewType") != null && !jsonObj.get("ViewType").isJsonNull()) && !jsonObj.get("ViewType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ViewType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ViewType").toString())); + } + if ((jsonObj.get("SortBy") != null && !jsonObj.get("SortBy").isJsonNull()) && !jsonObj.get("SortBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SortBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SortBy").toString())); + } + if ((jsonObj.get("IndexBy") != null && !jsonObj.get("IndexBy").isJsonNull()) && !jsonObj.get("IndexBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `IndexBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("IndexBy").toString())); + } + // validate the optional field `ScrollDirection` + if (jsonObj.get("ScrollDirection") != null && !jsonObj.get("ScrollDirection").isJsonNull()) { + ScrollDirection.validateJsonElement(jsonObj.get("ScrollDirection")); + } + // validate the optional field `SortOrder` + if (jsonObj.get("SortOrder") != null && !jsonObj.get("SortOrder").isJsonNull()) { + SortOrder.validateJsonElement(jsonObj.get("SortOrder")); + } + if ((jsonObj.get("Client") != null && !jsonObj.get("Client").isJsonNull()) && !jsonObj.get("Client").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Client` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Client").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DisplayPreferencesDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DisplayPreferencesDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DisplayPreferencesDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DisplayPreferencesDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DisplayPreferencesDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DisplayPreferencesDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of DisplayPreferencesDto + * @throws IOException if the JSON string is invalid with respect to DisplayPreferencesDto + */ + public static DisplayPreferencesDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DisplayPreferencesDto.class); + } + + /** + * Convert an instance of DisplayPreferencesDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaOptions.java new file mode 100644 index 0000000000000..a301bdf202d6f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaOptions.java @@ -0,0 +1,488 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The DlnaOptions class contains the user definable parameters for the dlna subsystems. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class DlnaOptions { + public static final String SERIALIZED_NAME_ENABLE_PLAY_TO = "EnablePlayTo"; + @SerializedName(SERIALIZED_NAME_ENABLE_PLAY_TO) + @javax.annotation.Nullable + private Boolean enablePlayTo; + + public static final String SERIALIZED_NAME_ENABLE_SERVER = "EnableServer"; + @SerializedName(SERIALIZED_NAME_ENABLE_SERVER) + @javax.annotation.Nullable + private Boolean enableServer; + + public static final String SERIALIZED_NAME_ENABLE_DEBUG_LOG = "EnableDebugLog"; + @SerializedName(SERIALIZED_NAME_ENABLE_DEBUG_LOG) + @javax.annotation.Nullable + private Boolean enableDebugLog; + + public static final String SERIALIZED_NAME_ENABLE_PLAY_TO_TRACING = "EnablePlayToTracing"; + @SerializedName(SERIALIZED_NAME_ENABLE_PLAY_TO_TRACING) + @javax.annotation.Nullable + private Boolean enablePlayToTracing; + + public static final String SERIALIZED_NAME_CLIENT_DISCOVERY_INTERVAL_SECONDS = "ClientDiscoveryIntervalSeconds"; + @SerializedName(SERIALIZED_NAME_CLIENT_DISCOVERY_INTERVAL_SECONDS) + @javax.annotation.Nullable + private Integer clientDiscoveryIntervalSeconds; + + public static final String SERIALIZED_NAME_ALIVE_MESSAGE_INTERVAL_SECONDS = "AliveMessageIntervalSeconds"; + @SerializedName(SERIALIZED_NAME_ALIVE_MESSAGE_INTERVAL_SECONDS) + @javax.annotation.Nullable + private Integer aliveMessageIntervalSeconds; + + public static final String SERIALIZED_NAME_BLAST_ALIVE_MESSAGE_INTERVAL_SECONDS = "BlastAliveMessageIntervalSeconds"; + @SerializedName(SERIALIZED_NAME_BLAST_ALIVE_MESSAGE_INTERVAL_SECONDS) + @javax.annotation.Nullable + private Integer blastAliveMessageIntervalSeconds; + + public static final String SERIALIZED_NAME_DEFAULT_USER_ID = "DefaultUserId"; + @SerializedName(SERIALIZED_NAME_DEFAULT_USER_ID) + @javax.annotation.Nullable + private String defaultUserId; + + public static final String SERIALIZED_NAME_AUTO_CREATE_PLAY_TO_PROFILES = "AutoCreatePlayToProfiles"; + @SerializedName(SERIALIZED_NAME_AUTO_CREATE_PLAY_TO_PROFILES) + @javax.annotation.Nullable + private Boolean autoCreatePlayToProfiles; + + public static final String SERIALIZED_NAME_BLAST_ALIVE_MESSAGES = "BlastAliveMessages"; + @SerializedName(SERIALIZED_NAME_BLAST_ALIVE_MESSAGES) + @javax.annotation.Nullable + private Boolean blastAliveMessages; + + public static final String SERIALIZED_NAME_SEND_ONLY_MATCHED_HOST = "SendOnlyMatchedHost"; + @SerializedName(SERIALIZED_NAME_SEND_ONLY_MATCHED_HOST) + @javax.annotation.Nullable + private Boolean sendOnlyMatchedHost; + + public DlnaOptions() { + } + + public DlnaOptions enablePlayTo(@javax.annotation.Nullable Boolean enablePlayTo) { + this.enablePlayTo = enablePlayTo; + return this; + } + + /** + * Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem. + * @return enablePlayTo + */ + @javax.annotation.Nullable + public Boolean getEnablePlayTo() { + return enablePlayTo; + } + + public void setEnablePlayTo(@javax.annotation.Nullable Boolean enablePlayTo) { + this.enablePlayTo = enablePlayTo; + } + + + public DlnaOptions enableServer(@javax.annotation.Nullable Boolean enableServer) { + this.enableServer = enableServer; + return this; + } + + /** + * Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem. + * @return enableServer + */ + @javax.annotation.Nullable + public Boolean getEnableServer() { + return enableServer; + } + + public void setEnableServer(@javax.annotation.Nullable Boolean enableServer) { + this.enableServer = enableServer; + } + + + public DlnaOptions enableDebugLog(@javax.annotation.Nullable Boolean enableDebugLog) { + this.enableDebugLog = enableDebugLog; + return this; + } + + /** + * Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log. If the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work. + * @return enableDebugLog + */ + @javax.annotation.Nullable + public Boolean getEnableDebugLog() { + return enableDebugLog; + } + + public void setEnableDebugLog(@javax.annotation.Nullable Boolean enableDebugLog) { + this.enableDebugLog = enableDebugLog; + } + + + public DlnaOptions enablePlayToTracing(@javax.annotation.Nullable Boolean enablePlayToTracing) { + this.enablePlayToTracing = enablePlayToTracing; + return this; + } + + /** + * Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log. If the setting \"Emby.Dlna.PlayTo\": \"Debug\" msut be set in logging.default.json for this property to work. + * @return enablePlayToTracing + */ + @javax.annotation.Nullable + public Boolean getEnablePlayToTracing() { + return enablePlayToTracing; + } + + public void setEnablePlayToTracing(@javax.annotation.Nullable Boolean enablePlayToTracing) { + this.enablePlayToTracing = enablePlayToTracing; + } + + + public DlnaOptions clientDiscoveryIntervalSeconds(@javax.annotation.Nullable Integer clientDiscoveryIntervalSeconds) { + this.clientDiscoveryIntervalSeconds = clientDiscoveryIntervalSeconds; + return this; + } + + /** + * Gets or sets the ssdp client discovery interval time (in seconds). This is the time after which the server will send a ssdp search request. + * @return clientDiscoveryIntervalSeconds + */ + @javax.annotation.Nullable + public Integer getClientDiscoveryIntervalSeconds() { + return clientDiscoveryIntervalSeconds; + } + + public void setClientDiscoveryIntervalSeconds(@javax.annotation.Nullable Integer clientDiscoveryIntervalSeconds) { + this.clientDiscoveryIntervalSeconds = clientDiscoveryIntervalSeconds; + } + + + public DlnaOptions aliveMessageIntervalSeconds(@javax.annotation.Nullable Integer aliveMessageIntervalSeconds) { + this.aliveMessageIntervalSeconds = aliveMessageIntervalSeconds; + return this; + } + + /** + * Gets or sets the frequency at which ssdp alive notifications are transmitted. + * @return aliveMessageIntervalSeconds + */ + @javax.annotation.Nullable + public Integer getAliveMessageIntervalSeconds() { + return aliveMessageIntervalSeconds; + } + + public void setAliveMessageIntervalSeconds(@javax.annotation.Nullable Integer aliveMessageIntervalSeconds) { + this.aliveMessageIntervalSeconds = aliveMessageIntervalSeconds; + } + + + public DlnaOptions blastAliveMessageIntervalSeconds(@javax.annotation.Nullable Integer blastAliveMessageIntervalSeconds) { + this.blastAliveMessageIntervalSeconds = blastAliveMessageIntervalSeconds; + return this; + } + + /** + * Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED. + * @return blastAliveMessageIntervalSeconds + */ + @javax.annotation.Nullable + public Integer getBlastAliveMessageIntervalSeconds() { + return blastAliveMessageIntervalSeconds; + } + + public void setBlastAliveMessageIntervalSeconds(@javax.annotation.Nullable Integer blastAliveMessageIntervalSeconds) { + this.blastAliveMessageIntervalSeconds = blastAliveMessageIntervalSeconds; + } + + + public DlnaOptions defaultUserId(@javax.annotation.Nullable String defaultUserId) { + this.defaultUserId = defaultUserId; + return this; + } + + /** + * Gets or sets the default user account that the dlna server uses. + * @return defaultUserId + */ + @javax.annotation.Nullable + public String getDefaultUserId() { + return defaultUserId; + } + + public void setDefaultUserId(@javax.annotation.Nullable String defaultUserId) { + this.defaultUserId = defaultUserId; + } + + + public DlnaOptions autoCreatePlayToProfiles(@javax.annotation.Nullable Boolean autoCreatePlayToProfiles) { + this.autoCreatePlayToProfiles = autoCreatePlayToProfiles; + return this; + } + + /** + * Gets or sets a value indicating whether playTo device profiles should be created. + * @return autoCreatePlayToProfiles + */ + @javax.annotation.Nullable + public Boolean getAutoCreatePlayToProfiles() { + return autoCreatePlayToProfiles; + } + + public void setAutoCreatePlayToProfiles(@javax.annotation.Nullable Boolean autoCreatePlayToProfiles) { + this.autoCreatePlayToProfiles = autoCreatePlayToProfiles; + } + + + public DlnaOptions blastAliveMessages(@javax.annotation.Nullable Boolean blastAliveMessages) { + this.blastAliveMessages = blastAliveMessages; + return this; + } + + /** + * Gets or sets a value indicating whether to blast alive messages. + * @return blastAliveMessages + */ + @javax.annotation.Nullable + public Boolean getBlastAliveMessages() { + return blastAliveMessages; + } + + public void setBlastAliveMessages(@javax.annotation.Nullable Boolean blastAliveMessages) { + this.blastAliveMessages = blastAliveMessages; + } + + + public DlnaOptions sendOnlyMatchedHost(@javax.annotation.Nullable Boolean sendOnlyMatchedHost) { + this.sendOnlyMatchedHost = sendOnlyMatchedHost; + return this; + } + + /** + * gets or sets a value indicating whether to send only matched host. + * @return sendOnlyMatchedHost + */ + @javax.annotation.Nullable + public Boolean getSendOnlyMatchedHost() { + return sendOnlyMatchedHost; + } + + public void setSendOnlyMatchedHost(@javax.annotation.Nullable Boolean sendOnlyMatchedHost) { + this.sendOnlyMatchedHost = sendOnlyMatchedHost; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DlnaOptions dlnaOptions = (DlnaOptions) o; + return Objects.equals(this.enablePlayTo, dlnaOptions.enablePlayTo) && + Objects.equals(this.enableServer, dlnaOptions.enableServer) && + Objects.equals(this.enableDebugLog, dlnaOptions.enableDebugLog) && + Objects.equals(this.enablePlayToTracing, dlnaOptions.enablePlayToTracing) && + Objects.equals(this.clientDiscoveryIntervalSeconds, dlnaOptions.clientDiscoveryIntervalSeconds) && + Objects.equals(this.aliveMessageIntervalSeconds, dlnaOptions.aliveMessageIntervalSeconds) && + Objects.equals(this.blastAliveMessageIntervalSeconds, dlnaOptions.blastAliveMessageIntervalSeconds) && + Objects.equals(this.defaultUserId, dlnaOptions.defaultUserId) && + Objects.equals(this.autoCreatePlayToProfiles, dlnaOptions.autoCreatePlayToProfiles) && + Objects.equals(this.blastAliveMessages, dlnaOptions.blastAliveMessages) && + Objects.equals(this.sendOnlyMatchedHost, dlnaOptions.sendOnlyMatchedHost); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(enablePlayTo, enableServer, enableDebugLog, enablePlayToTracing, clientDiscoveryIntervalSeconds, aliveMessageIntervalSeconds, blastAliveMessageIntervalSeconds, defaultUserId, autoCreatePlayToProfiles, blastAliveMessages, sendOnlyMatchedHost); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DlnaOptions {\n"); + sb.append(" enablePlayTo: ").append(toIndentedString(enablePlayTo)).append("\n"); + sb.append(" enableServer: ").append(toIndentedString(enableServer)).append("\n"); + sb.append(" enableDebugLog: ").append(toIndentedString(enableDebugLog)).append("\n"); + sb.append(" enablePlayToTracing: ").append(toIndentedString(enablePlayToTracing)).append("\n"); + sb.append(" clientDiscoveryIntervalSeconds: ").append(toIndentedString(clientDiscoveryIntervalSeconds)).append("\n"); + sb.append(" aliveMessageIntervalSeconds: ").append(toIndentedString(aliveMessageIntervalSeconds)).append("\n"); + sb.append(" blastAliveMessageIntervalSeconds: ").append(toIndentedString(blastAliveMessageIntervalSeconds)).append("\n"); + sb.append(" defaultUserId: ").append(toIndentedString(defaultUserId)).append("\n"); + sb.append(" autoCreatePlayToProfiles: ").append(toIndentedString(autoCreatePlayToProfiles)).append("\n"); + sb.append(" blastAliveMessages: ").append(toIndentedString(blastAliveMessages)).append("\n"); + sb.append(" sendOnlyMatchedHost: ").append(toIndentedString(sendOnlyMatchedHost)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnablePlayTo"); + openapiFields.add("EnableServer"); + openapiFields.add("EnableDebugLog"); + openapiFields.add("EnablePlayToTracing"); + openapiFields.add("ClientDiscoveryIntervalSeconds"); + openapiFields.add("AliveMessageIntervalSeconds"); + openapiFields.add("BlastAliveMessageIntervalSeconds"); + openapiFields.add("DefaultUserId"); + openapiFields.add("AutoCreatePlayToProfiles"); + openapiFields.add("BlastAliveMessages"); + openapiFields.add("SendOnlyMatchedHost"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DlnaOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DlnaOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DlnaOptions is not found in the empty JSON string", DlnaOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DlnaOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DlnaOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("DefaultUserId") != null && !jsonObj.get("DefaultUserId").isJsonNull()) && !jsonObj.get("DefaultUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DefaultUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DefaultUserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DlnaOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DlnaOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DlnaOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, DlnaOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DlnaOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DlnaOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of DlnaOptions + * @throws IOException if the JSON string is invalid with respect to DlnaOptions + */ + public static DlnaOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DlnaOptions.class); + } + + /** + * Convert an instance of DlnaOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaProfileType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaProfileType.java new file mode 100644 index 0000000000000..aeea30c66f8b4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DlnaProfileType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets DlnaProfileType + */ +@JsonAdapter(DlnaProfileType.Adapter.class) +public enum DlnaProfileType { + + AUDIO("Audio"), + + VIDEO("Video"), + + PHOTO("Photo"), + + SUBTITLE("Subtitle"); + + private String value; + + DlnaProfileType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DlnaProfileType fromValue(String value) { + for (DlnaProfileType b : DlnaProfileType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DlnaProfileType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DlnaProfileType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DlnaProfileType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DlnaProfileType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java new file mode 100644 index 0000000000000..4a2d5a515aad6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/DynamicDayOfWeek.java @@ -0,0 +1,94 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum that represents a day of the week, weekdays, weekends, or all days. + */ +@JsonAdapter(DynamicDayOfWeek.Adapter.class) +public enum DynamicDayOfWeek { + + SUNDAY("Sunday"), + + MONDAY("Monday"), + + TUESDAY("Tuesday"), + + WEDNESDAY("Wednesday"), + + THURSDAY("Thursday"), + + FRIDAY("Friday"), + + SATURDAY("Saturday"), + + EVERYDAY("Everyday"), + + WEEKDAY("Weekday"), + + WEEKEND("Weekend"); + + private String value; + + DynamicDayOfWeek(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DynamicDayOfWeek fromValue(String value) { + for (DynamicDayOfWeek b : DynamicDayOfWeek.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DynamicDayOfWeek enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DynamicDayOfWeek read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DynamicDayOfWeek.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DynamicDayOfWeek.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java new file mode 100644 index 0000000000000..941ef0e815099 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EmbeddedSubtitleOptions.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the options to disable embedded subs. + */ +@JsonAdapter(EmbeddedSubtitleOptions.Adapter.class) +public enum EmbeddedSubtitleOptions { + + ALLOW_ALL("AllowAll"), + + ALLOW_TEXT("AllowText"), + + ALLOW_IMAGE("AllowImage"), + + ALLOW_NONE("AllowNone"); + + private String value; + + EmbeddedSubtitleOptions(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EmbeddedSubtitleOptions fromValue(String value) { + for (EmbeddedSubtitleOptions b : EmbeddedSubtitleOptions.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EmbeddedSubtitleOptions enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EmbeddedSubtitleOptions read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EmbeddedSubtitleOptions.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EmbeddedSubtitleOptions.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingContext.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingContext.java new file mode 100644 index 0000000000000..082a38630fe6b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingContext.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets EncodingContext + */ +@JsonAdapter(EncodingContext.Adapter.class) +public enum EncodingContext { + + STREAMING("Streaming"), + + STATIC("Static"); + + private String value; + + EncodingContext(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EncodingContext fromValue(String value) { + for (EncodingContext b : EncodingContext.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EncodingContext enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EncodingContext read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EncodingContext.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EncodingContext.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingOptions.java new file mode 100644 index 0000000000000..9a8f2d7c13a96 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EncodingOptions.java @@ -0,0 +1,1273 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * EncodingOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class EncodingOptions { + public static final String SERIALIZED_NAME_ENCODING_THREAD_COUNT = "EncodingThreadCount"; + @SerializedName(SERIALIZED_NAME_ENCODING_THREAD_COUNT) + @javax.annotation.Nullable + private Integer encodingThreadCount; + + public static final String SERIALIZED_NAME_TRANSCODING_TEMP_PATH = "TranscodingTempPath"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_TEMP_PATH) + @javax.annotation.Nullable + private String transcodingTempPath; + + public static final String SERIALIZED_NAME_FALLBACK_FONT_PATH = "FallbackFontPath"; + @SerializedName(SERIALIZED_NAME_FALLBACK_FONT_PATH) + @javax.annotation.Nullable + private String fallbackFontPath; + + public static final String SERIALIZED_NAME_ENABLE_FALLBACK_FONT = "EnableFallbackFont"; + @SerializedName(SERIALIZED_NAME_ENABLE_FALLBACK_FONT) + @javax.annotation.Nullable + private Boolean enableFallbackFont; + + public static final String SERIALIZED_NAME_DOWN_MIX_AUDIO_BOOST = "DownMixAudioBoost"; + @SerializedName(SERIALIZED_NAME_DOWN_MIX_AUDIO_BOOST) + @javax.annotation.Nullable + private Double downMixAudioBoost; + + public static final String SERIALIZED_NAME_MAX_MUXING_QUEUE_SIZE = "MaxMuxingQueueSize"; + @SerializedName(SERIALIZED_NAME_MAX_MUXING_QUEUE_SIZE) + @javax.annotation.Nullable + private Integer maxMuxingQueueSize; + + public static final String SERIALIZED_NAME_ENABLE_THROTTLING = "EnableThrottling"; + @SerializedName(SERIALIZED_NAME_ENABLE_THROTTLING) + @javax.annotation.Nullable + private Boolean enableThrottling; + + public static final String SERIALIZED_NAME_THROTTLE_DELAY_SECONDS = "ThrottleDelaySeconds"; + @SerializedName(SERIALIZED_NAME_THROTTLE_DELAY_SECONDS) + @javax.annotation.Nullable + private Integer throttleDelaySeconds; + + public static final String SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE = "HardwareAccelerationType"; + @SerializedName(SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE) + @javax.annotation.Nullable + private String hardwareAccelerationType; + + public static final String SERIALIZED_NAME_ENCODER_APP_PATH = "EncoderAppPath"; + @SerializedName(SERIALIZED_NAME_ENCODER_APP_PATH) + @javax.annotation.Nullable + private String encoderAppPath; + + public static final String SERIALIZED_NAME_ENCODER_APP_PATH_DISPLAY = "EncoderAppPathDisplay"; + @SerializedName(SERIALIZED_NAME_ENCODER_APP_PATH_DISPLAY) + @javax.annotation.Nullable + private String encoderAppPathDisplay; + + public static final String SERIALIZED_NAME_VAAPI_DEVICE = "VaapiDevice"; + @SerializedName(SERIALIZED_NAME_VAAPI_DEVICE) + @javax.annotation.Nullable + private String vaapiDevice; + + public static final String SERIALIZED_NAME_ENABLE_TONEMAPPING = "EnableTonemapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_TONEMAPPING) + @javax.annotation.Nullable + private Boolean enableTonemapping; + + public static final String SERIALIZED_NAME_ENABLE_VPP_TONEMAPPING = "EnableVppTonemapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_VPP_TONEMAPPING) + @javax.annotation.Nullable + private Boolean enableVppTonemapping; + + public static final String SERIALIZED_NAME_TONEMAPPING_ALGORITHM = "TonemappingAlgorithm"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_ALGORITHM) + @javax.annotation.Nullable + private String tonemappingAlgorithm; + + public static final String SERIALIZED_NAME_TONEMAPPING_MODE = "TonemappingMode"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_MODE) + @javax.annotation.Nullable + private String tonemappingMode; + + public static final String SERIALIZED_NAME_TONEMAPPING_RANGE = "TonemappingRange"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_RANGE) + @javax.annotation.Nullable + private String tonemappingRange; + + public static final String SERIALIZED_NAME_TONEMAPPING_DESAT = "TonemappingDesat"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_DESAT) + @javax.annotation.Nullable + private Double tonemappingDesat; + + public static final String SERIALIZED_NAME_TONEMAPPING_PEAK = "TonemappingPeak"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_PEAK) + @javax.annotation.Nullable + private Double tonemappingPeak; + + public static final String SERIALIZED_NAME_TONEMAPPING_PARAM = "TonemappingParam"; + @SerializedName(SERIALIZED_NAME_TONEMAPPING_PARAM) + @javax.annotation.Nullable + private Double tonemappingParam; + + public static final String SERIALIZED_NAME_VPP_TONEMAPPING_BRIGHTNESS = "VppTonemappingBrightness"; + @SerializedName(SERIALIZED_NAME_VPP_TONEMAPPING_BRIGHTNESS) + @javax.annotation.Nullable + private Double vppTonemappingBrightness; + + public static final String SERIALIZED_NAME_VPP_TONEMAPPING_CONTRAST = "VppTonemappingContrast"; + @SerializedName(SERIALIZED_NAME_VPP_TONEMAPPING_CONTRAST) + @javax.annotation.Nullable + private Double vppTonemappingContrast; + + public static final String SERIALIZED_NAME_H264_CRF = "H264Crf"; + @SerializedName(SERIALIZED_NAME_H264_CRF) + @javax.annotation.Nullable + private Integer h264Crf; + + public static final String SERIALIZED_NAME_H265_CRF = "H265Crf"; + @SerializedName(SERIALIZED_NAME_H265_CRF) + @javax.annotation.Nullable + private Integer h265Crf; + + public static final String SERIALIZED_NAME_ENCODER_PRESET = "EncoderPreset"; + @SerializedName(SERIALIZED_NAME_ENCODER_PRESET) + @javax.annotation.Nullable + private String encoderPreset; + + public static final String SERIALIZED_NAME_DEINTERLACE_DOUBLE_RATE = "DeinterlaceDoubleRate"; + @SerializedName(SERIALIZED_NAME_DEINTERLACE_DOUBLE_RATE) + @javax.annotation.Nullable + private Boolean deinterlaceDoubleRate; + + public static final String SERIALIZED_NAME_DEINTERLACE_METHOD = "DeinterlaceMethod"; + @SerializedName(SERIALIZED_NAME_DEINTERLACE_METHOD) + @javax.annotation.Nullable + private String deinterlaceMethod; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC = "EnableDecodingColorDepth10Hevc"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_HEVC) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth10Hevc; + + public static final String SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_VP9 = "EnableDecodingColorDepth10Vp9"; + @SerializedName(SERIALIZED_NAME_ENABLE_DECODING_COLOR_DEPTH10_VP9) + @javax.annotation.Nullable + private Boolean enableDecodingColorDepth10Vp9; + + public static final String SERIALIZED_NAME_ENABLE_ENHANCED_NVDEC_DECODER = "EnableEnhancedNvdecDecoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_ENHANCED_NVDEC_DECODER) + @javax.annotation.Nullable + private Boolean enableEnhancedNvdecDecoder; + + public static final String SERIALIZED_NAME_PREFER_SYSTEM_NATIVE_HW_DECODER = "PreferSystemNativeHwDecoder"; + @SerializedName(SERIALIZED_NAME_PREFER_SYSTEM_NATIVE_HW_DECODER) + @javax.annotation.Nullable + private Boolean preferSystemNativeHwDecoder; + + public static final String SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_H264_HW_ENCODER = "EnableIntelLowPowerH264HwEncoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_H264_HW_ENCODER) + @javax.annotation.Nullable + private Boolean enableIntelLowPowerH264HwEncoder; + + public static final String SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_HEVC_HW_ENCODER = "EnableIntelLowPowerHevcHwEncoder"; + @SerializedName(SERIALIZED_NAME_ENABLE_INTEL_LOW_POWER_HEVC_HW_ENCODER) + @javax.annotation.Nullable + private Boolean enableIntelLowPowerHevcHwEncoder; + + public static final String SERIALIZED_NAME_ENABLE_HARDWARE_ENCODING = "EnableHardwareEncoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_HARDWARE_ENCODING) + @javax.annotation.Nullable + private Boolean enableHardwareEncoding; + + public static final String SERIALIZED_NAME_ALLOW_HEVC_ENCODING = "AllowHevcEncoding"; + @SerializedName(SERIALIZED_NAME_ALLOW_HEVC_ENCODING) + @javax.annotation.Nullable + private Boolean allowHevcEncoding; + + public static final String SERIALIZED_NAME_ENABLE_SUBTITLE_EXTRACTION = "EnableSubtitleExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_SUBTITLE_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableSubtitleExtraction; + + public static final String SERIALIZED_NAME_HARDWARE_DECODING_CODECS = "HardwareDecodingCodecs"; + @SerializedName(SERIALIZED_NAME_HARDWARE_DECODING_CODECS) + @javax.annotation.Nullable + private List hardwareDecodingCodecs; + + public static final String SERIALIZED_NAME_ALLOW_ON_DEMAND_METADATA_BASED_KEYFRAME_EXTRACTION_FOR_EXTENSIONS = "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions"; + @SerializedName(SERIALIZED_NAME_ALLOW_ON_DEMAND_METADATA_BASED_KEYFRAME_EXTRACTION_FOR_EXTENSIONS) + @javax.annotation.Nullable + private List allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + + public EncodingOptions() { + } + + public EncodingOptions encodingThreadCount(@javax.annotation.Nullable Integer encodingThreadCount) { + this.encodingThreadCount = encodingThreadCount; + return this; + } + + /** + * Get encodingThreadCount + * @return encodingThreadCount + */ + @javax.annotation.Nullable + public Integer getEncodingThreadCount() { + return encodingThreadCount; + } + + public void setEncodingThreadCount(@javax.annotation.Nullable Integer encodingThreadCount) { + this.encodingThreadCount = encodingThreadCount; + } + + + public EncodingOptions transcodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + return this; + } + + /** + * Get transcodingTempPath + * @return transcodingTempPath + */ + @javax.annotation.Nullable + public String getTranscodingTempPath() { + return transcodingTempPath; + } + + public void setTranscodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + } + + + public EncodingOptions fallbackFontPath(@javax.annotation.Nullable String fallbackFontPath) { + this.fallbackFontPath = fallbackFontPath; + return this; + } + + /** + * Get fallbackFontPath + * @return fallbackFontPath + */ + @javax.annotation.Nullable + public String getFallbackFontPath() { + return fallbackFontPath; + } + + public void setFallbackFontPath(@javax.annotation.Nullable String fallbackFontPath) { + this.fallbackFontPath = fallbackFontPath; + } + + + public EncodingOptions enableFallbackFont(@javax.annotation.Nullable Boolean enableFallbackFont) { + this.enableFallbackFont = enableFallbackFont; + return this; + } + + /** + * Get enableFallbackFont + * @return enableFallbackFont + */ + @javax.annotation.Nullable + public Boolean getEnableFallbackFont() { + return enableFallbackFont; + } + + public void setEnableFallbackFont(@javax.annotation.Nullable Boolean enableFallbackFont) { + this.enableFallbackFont = enableFallbackFont; + } + + + public EncodingOptions downMixAudioBoost(@javax.annotation.Nullable Double downMixAudioBoost) { + this.downMixAudioBoost = downMixAudioBoost; + return this; + } + + /** + * Get downMixAudioBoost + * @return downMixAudioBoost + */ + @javax.annotation.Nullable + public Double getDownMixAudioBoost() { + return downMixAudioBoost; + } + + public void setDownMixAudioBoost(@javax.annotation.Nullable Double downMixAudioBoost) { + this.downMixAudioBoost = downMixAudioBoost; + } + + + public EncodingOptions maxMuxingQueueSize(@javax.annotation.Nullable Integer maxMuxingQueueSize) { + this.maxMuxingQueueSize = maxMuxingQueueSize; + return this; + } + + /** + * Get maxMuxingQueueSize + * @return maxMuxingQueueSize + */ + @javax.annotation.Nullable + public Integer getMaxMuxingQueueSize() { + return maxMuxingQueueSize; + } + + public void setMaxMuxingQueueSize(@javax.annotation.Nullable Integer maxMuxingQueueSize) { + this.maxMuxingQueueSize = maxMuxingQueueSize; + } + + + public EncodingOptions enableThrottling(@javax.annotation.Nullable Boolean enableThrottling) { + this.enableThrottling = enableThrottling; + return this; + } + + /** + * Get enableThrottling + * @return enableThrottling + */ + @javax.annotation.Nullable + public Boolean getEnableThrottling() { + return enableThrottling; + } + + public void setEnableThrottling(@javax.annotation.Nullable Boolean enableThrottling) { + this.enableThrottling = enableThrottling; + } + + + public EncodingOptions throttleDelaySeconds(@javax.annotation.Nullable Integer throttleDelaySeconds) { + this.throttleDelaySeconds = throttleDelaySeconds; + return this; + } + + /** + * Get throttleDelaySeconds + * @return throttleDelaySeconds + */ + @javax.annotation.Nullable + public Integer getThrottleDelaySeconds() { + return throttleDelaySeconds; + } + + public void setThrottleDelaySeconds(@javax.annotation.Nullable Integer throttleDelaySeconds) { + this.throttleDelaySeconds = throttleDelaySeconds; + } + + + public EncodingOptions hardwareAccelerationType(@javax.annotation.Nullable String hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + return this; + } + + /** + * Get hardwareAccelerationType + * @return hardwareAccelerationType + */ + @javax.annotation.Nullable + public String getHardwareAccelerationType() { + return hardwareAccelerationType; + } + + public void setHardwareAccelerationType(@javax.annotation.Nullable String hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + } + + + public EncodingOptions encoderAppPath(@javax.annotation.Nullable String encoderAppPath) { + this.encoderAppPath = encoderAppPath; + return this; + } + + /** + * Gets or sets the FFmpeg path as set by the user via the UI. + * @return encoderAppPath + */ + @javax.annotation.Nullable + public String getEncoderAppPath() { + return encoderAppPath; + } + + public void setEncoderAppPath(@javax.annotation.Nullable String encoderAppPath) { + this.encoderAppPath = encoderAppPath; + } + + + public EncodingOptions encoderAppPathDisplay(@javax.annotation.Nullable String encoderAppPathDisplay) { + this.encoderAppPathDisplay = encoderAppPathDisplay; + return this; + } + + /** + * Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. + * @return encoderAppPathDisplay + */ + @javax.annotation.Nullable + public String getEncoderAppPathDisplay() { + return encoderAppPathDisplay; + } + + public void setEncoderAppPathDisplay(@javax.annotation.Nullable String encoderAppPathDisplay) { + this.encoderAppPathDisplay = encoderAppPathDisplay; + } + + + public EncodingOptions vaapiDevice(@javax.annotation.Nullable String vaapiDevice) { + this.vaapiDevice = vaapiDevice; + return this; + } + + /** + * Get vaapiDevice + * @return vaapiDevice + */ + @javax.annotation.Nullable + public String getVaapiDevice() { + return vaapiDevice; + } + + public void setVaapiDevice(@javax.annotation.Nullable String vaapiDevice) { + this.vaapiDevice = vaapiDevice; + } + + + public EncodingOptions enableTonemapping(@javax.annotation.Nullable Boolean enableTonemapping) { + this.enableTonemapping = enableTonemapping; + return this; + } + + /** + * Get enableTonemapping + * @return enableTonemapping + */ + @javax.annotation.Nullable + public Boolean getEnableTonemapping() { + return enableTonemapping; + } + + public void setEnableTonemapping(@javax.annotation.Nullable Boolean enableTonemapping) { + this.enableTonemapping = enableTonemapping; + } + + + public EncodingOptions enableVppTonemapping(@javax.annotation.Nullable Boolean enableVppTonemapping) { + this.enableVppTonemapping = enableVppTonemapping; + return this; + } + + /** + * Get enableVppTonemapping + * @return enableVppTonemapping + */ + @javax.annotation.Nullable + public Boolean getEnableVppTonemapping() { + return enableVppTonemapping; + } + + public void setEnableVppTonemapping(@javax.annotation.Nullable Boolean enableVppTonemapping) { + this.enableVppTonemapping = enableVppTonemapping; + } + + + public EncodingOptions tonemappingAlgorithm(@javax.annotation.Nullable String tonemappingAlgorithm) { + this.tonemappingAlgorithm = tonemappingAlgorithm; + return this; + } + + /** + * Get tonemappingAlgorithm + * @return tonemappingAlgorithm + */ + @javax.annotation.Nullable + public String getTonemappingAlgorithm() { + return tonemappingAlgorithm; + } + + public void setTonemappingAlgorithm(@javax.annotation.Nullable String tonemappingAlgorithm) { + this.tonemappingAlgorithm = tonemappingAlgorithm; + } + + + public EncodingOptions tonemappingMode(@javax.annotation.Nullable String tonemappingMode) { + this.tonemappingMode = tonemappingMode; + return this; + } + + /** + * Get tonemappingMode + * @return tonemappingMode + */ + @javax.annotation.Nullable + public String getTonemappingMode() { + return tonemappingMode; + } + + public void setTonemappingMode(@javax.annotation.Nullable String tonemappingMode) { + this.tonemappingMode = tonemappingMode; + } + + + public EncodingOptions tonemappingRange(@javax.annotation.Nullable String tonemappingRange) { + this.tonemappingRange = tonemappingRange; + return this; + } + + /** + * Get tonemappingRange + * @return tonemappingRange + */ + @javax.annotation.Nullable + public String getTonemappingRange() { + return tonemappingRange; + } + + public void setTonemappingRange(@javax.annotation.Nullable String tonemappingRange) { + this.tonemappingRange = tonemappingRange; + } + + + public EncodingOptions tonemappingDesat(@javax.annotation.Nullable Double tonemappingDesat) { + this.tonemappingDesat = tonemappingDesat; + return this; + } + + /** + * Get tonemappingDesat + * @return tonemappingDesat + */ + @javax.annotation.Nullable + public Double getTonemappingDesat() { + return tonemappingDesat; + } + + public void setTonemappingDesat(@javax.annotation.Nullable Double tonemappingDesat) { + this.tonemappingDesat = tonemappingDesat; + } + + + public EncodingOptions tonemappingPeak(@javax.annotation.Nullable Double tonemappingPeak) { + this.tonemappingPeak = tonemappingPeak; + return this; + } + + /** + * Get tonemappingPeak + * @return tonemappingPeak + */ + @javax.annotation.Nullable + public Double getTonemappingPeak() { + return tonemappingPeak; + } + + public void setTonemappingPeak(@javax.annotation.Nullable Double tonemappingPeak) { + this.tonemappingPeak = tonemappingPeak; + } + + + public EncodingOptions tonemappingParam(@javax.annotation.Nullable Double tonemappingParam) { + this.tonemappingParam = tonemappingParam; + return this; + } + + /** + * Get tonemappingParam + * @return tonemappingParam + */ + @javax.annotation.Nullable + public Double getTonemappingParam() { + return tonemappingParam; + } + + public void setTonemappingParam(@javax.annotation.Nullable Double tonemappingParam) { + this.tonemappingParam = tonemappingParam; + } + + + public EncodingOptions vppTonemappingBrightness(@javax.annotation.Nullable Double vppTonemappingBrightness) { + this.vppTonemappingBrightness = vppTonemappingBrightness; + return this; + } + + /** + * Get vppTonemappingBrightness + * @return vppTonemappingBrightness + */ + @javax.annotation.Nullable + public Double getVppTonemappingBrightness() { + return vppTonemappingBrightness; + } + + public void setVppTonemappingBrightness(@javax.annotation.Nullable Double vppTonemappingBrightness) { + this.vppTonemappingBrightness = vppTonemappingBrightness; + } + + + public EncodingOptions vppTonemappingContrast(@javax.annotation.Nullable Double vppTonemappingContrast) { + this.vppTonemappingContrast = vppTonemappingContrast; + return this; + } + + /** + * Get vppTonemappingContrast + * @return vppTonemappingContrast + */ + @javax.annotation.Nullable + public Double getVppTonemappingContrast() { + return vppTonemappingContrast; + } + + public void setVppTonemappingContrast(@javax.annotation.Nullable Double vppTonemappingContrast) { + this.vppTonemappingContrast = vppTonemappingContrast; + } + + + public EncodingOptions h264Crf(@javax.annotation.Nullable Integer h264Crf) { + this.h264Crf = h264Crf; + return this; + } + + /** + * Get h264Crf + * @return h264Crf + */ + @javax.annotation.Nullable + public Integer getH264Crf() { + return h264Crf; + } + + public void setH264Crf(@javax.annotation.Nullable Integer h264Crf) { + this.h264Crf = h264Crf; + } + + + public EncodingOptions h265Crf(@javax.annotation.Nullable Integer h265Crf) { + this.h265Crf = h265Crf; + return this; + } + + /** + * Get h265Crf + * @return h265Crf + */ + @javax.annotation.Nullable + public Integer getH265Crf() { + return h265Crf; + } + + public void setH265Crf(@javax.annotation.Nullable Integer h265Crf) { + this.h265Crf = h265Crf; + } + + + public EncodingOptions encoderPreset(@javax.annotation.Nullable String encoderPreset) { + this.encoderPreset = encoderPreset; + return this; + } + + /** + * Get encoderPreset + * @return encoderPreset + */ + @javax.annotation.Nullable + public String getEncoderPreset() { + return encoderPreset; + } + + public void setEncoderPreset(@javax.annotation.Nullable String encoderPreset) { + this.encoderPreset = encoderPreset; + } + + + public EncodingOptions deinterlaceDoubleRate(@javax.annotation.Nullable Boolean deinterlaceDoubleRate) { + this.deinterlaceDoubleRate = deinterlaceDoubleRate; + return this; + } + + /** + * Get deinterlaceDoubleRate + * @return deinterlaceDoubleRate + */ + @javax.annotation.Nullable + public Boolean getDeinterlaceDoubleRate() { + return deinterlaceDoubleRate; + } + + public void setDeinterlaceDoubleRate(@javax.annotation.Nullable Boolean deinterlaceDoubleRate) { + this.deinterlaceDoubleRate = deinterlaceDoubleRate; + } + + + public EncodingOptions deinterlaceMethod(@javax.annotation.Nullable String deinterlaceMethod) { + this.deinterlaceMethod = deinterlaceMethod; + return this; + } + + /** + * Get deinterlaceMethod + * @return deinterlaceMethod + */ + @javax.annotation.Nullable + public String getDeinterlaceMethod() { + return deinterlaceMethod; + } + + public void setDeinterlaceMethod(@javax.annotation.Nullable String deinterlaceMethod) { + this.deinterlaceMethod = deinterlaceMethod; + } + + + public EncodingOptions enableDecodingColorDepth10Hevc(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Hevc) { + this.enableDecodingColorDepth10Hevc = enableDecodingColorDepth10Hevc; + return this; + } + + /** + * Get enableDecodingColorDepth10Hevc + * @return enableDecodingColorDepth10Hevc + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth10Hevc() { + return enableDecodingColorDepth10Hevc; + } + + public void setEnableDecodingColorDepth10Hevc(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Hevc) { + this.enableDecodingColorDepth10Hevc = enableDecodingColorDepth10Hevc; + } + + + public EncodingOptions enableDecodingColorDepth10Vp9(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Vp9) { + this.enableDecodingColorDepth10Vp9 = enableDecodingColorDepth10Vp9; + return this; + } + + /** + * Get enableDecodingColorDepth10Vp9 + * @return enableDecodingColorDepth10Vp9 + */ + @javax.annotation.Nullable + public Boolean getEnableDecodingColorDepth10Vp9() { + return enableDecodingColorDepth10Vp9; + } + + public void setEnableDecodingColorDepth10Vp9(@javax.annotation.Nullable Boolean enableDecodingColorDepth10Vp9) { + this.enableDecodingColorDepth10Vp9 = enableDecodingColorDepth10Vp9; + } + + + public EncodingOptions enableEnhancedNvdecDecoder(@javax.annotation.Nullable Boolean enableEnhancedNvdecDecoder) { + this.enableEnhancedNvdecDecoder = enableEnhancedNvdecDecoder; + return this; + } + + /** + * Get enableEnhancedNvdecDecoder + * @return enableEnhancedNvdecDecoder + */ + @javax.annotation.Nullable + public Boolean getEnableEnhancedNvdecDecoder() { + return enableEnhancedNvdecDecoder; + } + + public void setEnableEnhancedNvdecDecoder(@javax.annotation.Nullable Boolean enableEnhancedNvdecDecoder) { + this.enableEnhancedNvdecDecoder = enableEnhancedNvdecDecoder; + } + + + public EncodingOptions preferSystemNativeHwDecoder(@javax.annotation.Nullable Boolean preferSystemNativeHwDecoder) { + this.preferSystemNativeHwDecoder = preferSystemNativeHwDecoder; + return this; + } + + /** + * Get preferSystemNativeHwDecoder + * @return preferSystemNativeHwDecoder + */ + @javax.annotation.Nullable + public Boolean getPreferSystemNativeHwDecoder() { + return preferSystemNativeHwDecoder; + } + + public void setPreferSystemNativeHwDecoder(@javax.annotation.Nullable Boolean preferSystemNativeHwDecoder) { + this.preferSystemNativeHwDecoder = preferSystemNativeHwDecoder; + } + + + public EncodingOptions enableIntelLowPowerH264HwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerH264HwEncoder) { + this.enableIntelLowPowerH264HwEncoder = enableIntelLowPowerH264HwEncoder; + return this; + } + + /** + * Get enableIntelLowPowerH264HwEncoder + * @return enableIntelLowPowerH264HwEncoder + */ + @javax.annotation.Nullable + public Boolean getEnableIntelLowPowerH264HwEncoder() { + return enableIntelLowPowerH264HwEncoder; + } + + public void setEnableIntelLowPowerH264HwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerH264HwEncoder) { + this.enableIntelLowPowerH264HwEncoder = enableIntelLowPowerH264HwEncoder; + } + + + public EncodingOptions enableIntelLowPowerHevcHwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerHevcHwEncoder) { + this.enableIntelLowPowerHevcHwEncoder = enableIntelLowPowerHevcHwEncoder; + return this; + } + + /** + * Get enableIntelLowPowerHevcHwEncoder + * @return enableIntelLowPowerHevcHwEncoder + */ + @javax.annotation.Nullable + public Boolean getEnableIntelLowPowerHevcHwEncoder() { + return enableIntelLowPowerHevcHwEncoder; + } + + public void setEnableIntelLowPowerHevcHwEncoder(@javax.annotation.Nullable Boolean enableIntelLowPowerHevcHwEncoder) { + this.enableIntelLowPowerHevcHwEncoder = enableIntelLowPowerHevcHwEncoder; + } + + + public EncodingOptions enableHardwareEncoding(@javax.annotation.Nullable Boolean enableHardwareEncoding) { + this.enableHardwareEncoding = enableHardwareEncoding; + return this; + } + + /** + * Get enableHardwareEncoding + * @return enableHardwareEncoding + */ + @javax.annotation.Nullable + public Boolean getEnableHardwareEncoding() { + return enableHardwareEncoding; + } + + public void setEnableHardwareEncoding(@javax.annotation.Nullable Boolean enableHardwareEncoding) { + this.enableHardwareEncoding = enableHardwareEncoding; + } + + + public EncodingOptions allowHevcEncoding(@javax.annotation.Nullable Boolean allowHevcEncoding) { + this.allowHevcEncoding = allowHevcEncoding; + return this; + } + + /** + * Get allowHevcEncoding + * @return allowHevcEncoding + */ + @javax.annotation.Nullable + public Boolean getAllowHevcEncoding() { + return allowHevcEncoding; + } + + public void setAllowHevcEncoding(@javax.annotation.Nullable Boolean allowHevcEncoding) { + this.allowHevcEncoding = allowHevcEncoding; + } + + + public EncodingOptions enableSubtitleExtraction(@javax.annotation.Nullable Boolean enableSubtitleExtraction) { + this.enableSubtitleExtraction = enableSubtitleExtraction; + return this; + } + + /** + * Get enableSubtitleExtraction + * @return enableSubtitleExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableSubtitleExtraction() { + return enableSubtitleExtraction; + } + + public void setEnableSubtitleExtraction(@javax.annotation.Nullable Boolean enableSubtitleExtraction) { + this.enableSubtitleExtraction = enableSubtitleExtraction; + } + + + public EncodingOptions hardwareDecodingCodecs(@javax.annotation.Nullable List hardwareDecodingCodecs) { + this.hardwareDecodingCodecs = hardwareDecodingCodecs; + return this; + } + + public EncodingOptions addHardwareDecodingCodecsItem(String hardwareDecodingCodecsItem) { + if (this.hardwareDecodingCodecs == null) { + this.hardwareDecodingCodecs = new ArrayList<>(); + } + this.hardwareDecodingCodecs.add(hardwareDecodingCodecsItem); + return this; + } + + /** + * Get hardwareDecodingCodecs + * @return hardwareDecodingCodecs + */ + @javax.annotation.Nullable + public List getHardwareDecodingCodecs() { + return hardwareDecodingCodecs; + } + + public void setHardwareDecodingCodecs(@javax.annotation.Nullable List hardwareDecodingCodecs) { + this.hardwareDecodingCodecs = hardwareDecodingCodecs; + } + + + public EncodingOptions allowOnDemandMetadataBasedKeyframeExtractionForExtensions(@javax.annotation.Nullable List allowOnDemandMetadataBasedKeyframeExtractionForExtensions) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + return this; + } + + public EncodingOptions addAllowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem(String allowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem) { + if (this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions == null) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = new ArrayList<>(); + } + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions.add(allowOnDemandMetadataBasedKeyframeExtractionForExtensionsItem); + return this; + } + + /** + * Get allowOnDemandMetadataBasedKeyframeExtractionForExtensions + * @return allowOnDemandMetadataBasedKeyframeExtractionForExtensions + */ + @javax.annotation.Nullable + public List getAllowOnDemandMetadataBasedKeyframeExtractionForExtensions() { + return allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + } + + public void setAllowOnDemandMetadataBasedKeyframeExtractionForExtensions(@javax.annotation.Nullable List allowOnDemandMetadataBasedKeyframeExtractionForExtensions) { + this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions = allowOnDemandMetadataBasedKeyframeExtractionForExtensions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EncodingOptions encodingOptions = (EncodingOptions) o; + return Objects.equals(this.encodingThreadCount, encodingOptions.encodingThreadCount) && + Objects.equals(this.transcodingTempPath, encodingOptions.transcodingTempPath) && + Objects.equals(this.fallbackFontPath, encodingOptions.fallbackFontPath) && + Objects.equals(this.enableFallbackFont, encodingOptions.enableFallbackFont) && + Objects.equals(this.downMixAudioBoost, encodingOptions.downMixAudioBoost) && + Objects.equals(this.maxMuxingQueueSize, encodingOptions.maxMuxingQueueSize) && + Objects.equals(this.enableThrottling, encodingOptions.enableThrottling) && + Objects.equals(this.throttleDelaySeconds, encodingOptions.throttleDelaySeconds) && + Objects.equals(this.hardwareAccelerationType, encodingOptions.hardwareAccelerationType) && + Objects.equals(this.encoderAppPath, encodingOptions.encoderAppPath) && + Objects.equals(this.encoderAppPathDisplay, encodingOptions.encoderAppPathDisplay) && + Objects.equals(this.vaapiDevice, encodingOptions.vaapiDevice) && + Objects.equals(this.enableTonemapping, encodingOptions.enableTonemapping) && + Objects.equals(this.enableVppTonemapping, encodingOptions.enableVppTonemapping) && + Objects.equals(this.tonemappingAlgorithm, encodingOptions.tonemappingAlgorithm) && + Objects.equals(this.tonemappingMode, encodingOptions.tonemappingMode) && + Objects.equals(this.tonemappingRange, encodingOptions.tonemappingRange) && + Objects.equals(this.tonemappingDesat, encodingOptions.tonemappingDesat) && + Objects.equals(this.tonemappingPeak, encodingOptions.tonemappingPeak) && + Objects.equals(this.tonemappingParam, encodingOptions.tonemappingParam) && + Objects.equals(this.vppTonemappingBrightness, encodingOptions.vppTonemappingBrightness) && + Objects.equals(this.vppTonemappingContrast, encodingOptions.vppTonemappingContrast) && + Objects.equals(this.h264Crf, encodingOptions.h264Crf) && + Objects.equals(this.h265Crf, encodingOptions.h265Crf) && + Objects.equals(this.encoderPreset, encodingOptions.encoderPreset) && + Objects.equals(this.deinterlaceDoubleRate, encodingOptions.deinterlaceDoubleRate) && + Objects.equals(this.deinterlaceMethod, encodingOptions.deinterlaceMethod) && + Objects.equals(this.enableDecodingColorDepth10Hevc, encodingOptions.enableDecodingColorDepth10Hevc) && + Objects.equals(this.enableDecodingColorDepth10Vp9, encodingOptions.enableDecodingColorDepth10Vp9) && + Objects.equals(this.enableEnhancedNvdecDecoder, encodingOptions.enableEnhancedNvdecDecoder) && + Objects.equals(this.preferSystemNativeHwDecoder, encodingOptions.preferSystemNativeHwDecoder) && + Objects.equals(this.enableIntelLowPowerH264HwEncoder, encodingOptions.enableIntelLowPowerH264HwEncoder) && + Objects.equals(this.enableIntelLowPowerHevcHwEncoder, encodingOptions.enableIntelLowPowerHevcHwEncoder) && + Objects.equals(this.enableHardwareEncoding, encodingOptions.enableHardwareEncoding) && + Objects.equals(this.allowHevcEncoding, encodingOptions.allowHevcEncoding) && + Objects.equals(this.enableSubtitleExtraction, encodingOptions.enableSubtitleExtraction) && + Objects.equals(this.hardwareDecodingCodecs, encodingOptions.hardwareDecodingCodecs) && + Objects.equals(this.allowOnDemandMetadataBasedKeyframeExtractionForExtensions, encodingOptions.allowOnDemandMetadataBasedKeyframeExtractionForExtensions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(encodingThreadCount, transcodingTempPath, fallbackFontPath, enableFallbackFont, downMixAudioBoost, maxMuxingQueueSize, enableThrottling, throttleDelaySeconds, hardwareAccelerationType, encoderAppPath, encoderAppPathDisplay, vaapiDevice, enableTonemapping, enableVppTonemapping, tonemappingAlgorithm, tonemappingMode, tonemappingRange, tonemappingDesat, tonemappingPeak, tonemappingParam, vppTonemappingBrightness, vppTonemappingContrast, h264Crf, h265Crf, encoderPreset, deinterlaceDoubleRate, deinterlaceMethod, enableDecodingColorDepth10Hevc, enableDecodingColorDepth10Vp9, enableEnhancedNvdecDecoder, preferSystemNativeHwDecoder, enableIntelLowPowerH264HwEncoder, enableIntelLowPowerHevcHwEncoder, enableHardwareEncoding, allowHevcEncoding, enableSubtitleExtraction, hardwareDecodingCodecs, allowOnDemandMetadataBasedKeyframeExtractionForExtensions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EncodingOptions {\n"); + sb.append(" encodingThreadCount: ").append(toIndentedString(encodingThreadCount)).append("\n"); + sb.append(" transcodingTempPath: ").append(toIndentedString(transcodingTempPath)).append("\n"); + sb.append(" fallbackFontPath: ").append(toIndentedString(fallbackFontPath)).append("\n"); + sb.append(" enableFallbackFont: ").append(toIndentedString(enableFallbackFont)).append("\n"); + sb.append(" downMixAudioBoost: ").append(toIndentedString(downMixAudioBoost)).append("\n"); + sb.append(" maxMuxingQueueSize: ").append(toIndentedString(maxMuxingQueueSize)).append("\n"); + sb.append(" enableThrottling: ").append(toIndentedString(enableThrottling)).append("\n"); + sb.append(" throttleDelaySeconds: ").append(toIndentedString(throttleDelaySeconds)).append("\n"); + sb.append(" hardwareAccelerationType: ").append(toIndentedString(hardwareAccelerationType)).append("\n"); + sb.append(" encoderAppPath: ").append(toIndentedString(encoderAppPath)).append("\n"); + sb.append(" encoderAppPathDisplay: ").append(toIndentedString(encoderAppPathDisplay)).append("\n"); + sb.append(" vaapiDevice: ").append(toIndentedString(vaapiDevice)).append("\n"); + sb.append(" enableTonemapping: ").append(toIndentedString(enableTonemapping)).append("\n"); + sb.append(" enableVppTonemapping: ").append(toIndentedString(enableVppTonemapping)).append("\n"); + sb.append(" tonemappingAlgorithm: ").append(toIndentedString(tonemappingAlgorithm)).append("\n"); + sb.append(" tonemappingMode: ").append(toIndentedString(tonemappingMode)).append("\n"); + sb.append(" tonemappingRange: ").append(toIndentedString(tonemappingRange)).append("\n"); + sb.append(" tonemappingDesat: ").append(toIndentedString(tonemappingDesat)).append("\n"); + sb.append(" tonemappingPeak: ").append(toIndentedString(tonemappingPeak)).append("\n"); + sb.append(" tonemappingParam: ").append(toIndentedString(tonemappingParam)).append("\n"); + sb.append(" vppTonemappingBrightness: ").append(toIndentedString(vppTonemappingBrightness)).append("\n"); + sb.append(" vppTonemappingContrast: ").append(toIndentedString(vppTonemappingContrast)).append("\n"); + sb.append(" h264Crf: ").append(toIndentedString(h264Crf)).append("\n"); + sb.append(" h265Crf: ").append(toIndentedString(h265Crf)).append("\n"); + sb.append(" encoderPreset: ").append(toIndentedString(encoderPreset)).append("\n"); + sb.append(" deinterlaceDoubleRate: ").append(toIndentedString(deinterlaceDoubleRate)).append("\n"); + sb.append(" deinterlaceMethod: ").append(toIndentedString(deinterlaceMethod)).append("\n"); + sb.append(" enableDecodingColorDepth10Hevc: ").append(toIndentedString(enableDecodingColorDepth10Hevc)).append("\n"); + sb.append(" enableDecodingColorDepth10Vp9: ").append(toIndentedString(enableDecodingColorDepth10Vp9)).append("\n"); + sb.append(" enableEnhancedNvdecDecoder: ").append(toIndentedString(enableEnhancedNvdecDecoder)).append("\n"); + sb.append(" preferSystemNativeHwDecoder: ").append(toIndentedString(preferSystemNativeHwDecoder)).append("\n"); + sb.append(" enableIntelLowPowerH264HwEncoder: ").append(toIndentedString(enableIntelLowPowerH264HwEncoder)).append("\n"); + sb.append(" enableIntelLowPowerHevcHwEncoder: ").append(toIndentedString(enableIntelLowPowerHevcHwEncoder)).append("\n"); + sb.append(" enableHardwareEncoding: ").append(toIndentedString(enableHardwareEncoding)).append("\n"); + sb.append(" allowHevcEncoding: ").append(toIndentedString(allowHevcEncoding)).append("\n"); + sb.append(" enableSubtitleExtraction: ").append(toIndentedString(enableSubtitleExtraction)).append("\n"); + sb.append(" hardwareDecodingCodecs: ").append(toIndentedString(hardwareDecodingCodecs)).append("\n"); + sb.append(" allowOnDemandMetadataBasedKeyframeExtractionForExtensions: ").append(toIndentedString(allowOnDemandMetadataBasedKeyframeExtractionForExtensions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EncodingThreadCount"); + openapiFields.add("TranscodingTempPath"); + openapiFields.add("FallbackFontPath"); + openapiFields.add("EnableFallbackFont"); + openapiFields.add("DownMixAudioBoost"); + openapiFields.add("MaxMuxingQueueSize"); + openapiFields.add("EnableThrottling"); + openapiFields.add("ThrottleDelaySeconds"); + openapiFields.add("HardwareAccelerationType"); + openapiFields.add("EncoderAppPath"); + openapiFields.add("EncoderAppPathDisplay"); + openapiFields.add("VaapiDevice"); + openapiFields.add("EnableTonemapping"); + openapiFields.add("EnableVppTonemapping"); + openapiFields.add("TonemappingAlgorithm"); + openapiFields.add("TonemappingMode"); + openapiFields.add("TonemappingRange"); + openapiFields.add("TonemappingDesat"); + openapiFields.add("TonemappingPeak"); + openapiFields.add("TonemappingParam"); + openapiFields.add("VppTonemappingBrightness"); + openapiFields.add("VppTonemappingContrast"); + openapiFields.add("H264Crf"); + openapiFields.add("H265Crf"); + openapiFields.add("EncoderPreset"); + openapiFields.add("DeinterlaceDoubleRate"); + openapiFields.add("DeinterlaceMethod"); + openapiFields.add("EnableDecodingColorDepth10Hevc"); + openapiFields.add("EnableDecodingColorDepth10Vp9"); + openapiFields.add("EnableEnhancedNvdecDecoder"); + openapiFields.add("PreferSystemNativeHwDecoder"); + openapiFields.add("EnableIntelLowPowerH264HwEncoder"); + openapiFields.add("EnableIntelLowPowerHevcHwEncoder"); + openapiFields.add("EnableHardwareEncoding"); + openapiFields.add("AllowHevcEncoding"); + openapiFields.add("EnableSubtitleExtraction"); + openapiFields.add("HardwareDecodingCodecs"); + openapiFields.add("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EncodingOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EncodingOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in EncodingOptions is not found in the empty JSON string", EncodingOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EncodingOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `EncodingOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("TranscodingTempPath") != null && !jsonObj.get("TranscodingTempPath").isJsonNull()) && !jsonObj.get("TranscodingTempPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingTempPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingTempPath").toString())); + } + if ((jsonObj.get("FallbackFontPath") != null && !jsonObj.get("FallbackFontPath").isJsonNull()) && !jsonObj.get("FallbackFontPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FallbackFontPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FallbackFontPath").toString())); + } + if ((jsonObj.get("HardwareAccelerationType") != null && !jsonObj.get("HardwareAccelerationType").isJsonNull()) && !jsonObj.get("HardwareAccelerationType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `HardwareAccelerationType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("HardwareAccelerationType").toString())); + } + if ((jsonObj.get("EncoderAppPath") != null && !jsonObj.get("EncoderAppPath").isJsonNull()) && !jsonObj.get("EncoderAppPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderAppPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderAppPath").toString())); + } + if ((jsonObj.get("EncoderAppPathDisplay") != null && !jsonObj.get("EncoderAppPathDisplay").isJsonNull()) && !jsonObj.get("EncoderAppPathDisplay").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderAppPathDisplay` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderAppPathDisplay").toString())); + } + if ((jsonObj.get("VaapiDevice") != null && !jsonObj.get("VaapiDevice").isJsonNull()) && !jsonObj.get("VaapiDevice").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VaapiDevice` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VaapiDevice").toString())); + } + if ((jsonObj.get("TonemappingAlgorithm") != null && !jsonObj.get("TonemappingAlgorithm").isJsonNull()) && !jsonObj.get("TonemappingAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TonemappingAlgorithm` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TonemappingAlgorithm").toString())); + } + if ((jsonObj.get("TonemappingMode") != null && !jsonObj.get("TonemappingMode").isJsonNull()) && !jsonObj.get("TonemappingMode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TonemappingMode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TonemappingMode").toString())); + } + if ((jsonObj.get("TonemappingRange") != null && !jsonObj.get("TonemappingRange").isJsonNull()) && !jsonObj.get("TonemappingRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TonemappingRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TonemappingRange").toString())); + } + if ((jsonObj.get("EncoderPreset") != null && !jsonObj.get("EncoderPreset").isJsonNull()) && !jsonObj.get("EncoderPreset").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderPreset` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderPreset").toString())); + } + if ((jsonObj.get("DeinterlaceMethod") != null && !jsonObj.get("DeinterlaceMethod").isJsonNull()) && !jsonObj.get("DeinterlaceMethod").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeinterlaceMethod` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeinterlaceMethod").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("HardwareDecodingCodecs") != null && !jsonObj.get("HardwareDecodingCodecs").isJsonNull() && !jsonObj.get("HardwareDecodingCodecs").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `HardwareDecodingCodecs` to be an array in the JSON string but got `%s`", jsonObj.get("HardwareDecodingCodecs").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions") != null && !jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").isJsonNull() && !jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AllowOnDemandMetadataBasedKeyframeExtractionForExtensions` to be an array in the JSON string but got `%s`", jsonObj.get("AllowOnDemandMetadataBasedKeyframeExtractionForExtensions").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EncodingOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EncodingOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(EncodingOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, EncodingOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EncodingOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of EncodingOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of EncodingOptions + * @throws IOException if the JSON string is invalid with respect to EncodingOptions + */ + public static EncodingOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EncodingOptions.class); + } + + /** + * Convert an instance of EncodingOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EndPointInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EndPointInfo.java new file mode 100644 index 0000000000000..220b3a48cb284 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/EndPointInfo.java @@ -0,0 +1,230 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * EndPointInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class EndPointInfo { + public static final String SERIALIZED_NAME_IS_LOCAL = "IsLocal"; + @SerializedName(SERIALIZED_NAME_IS_LOCAL) + @javax.annotation.Nullable + private Boolean isLocal; + + public static final String SERIALIZED_NAME_IS_IN_NETWORK = "IsInNetwork"; + @SerializedName(SERIALIZED_NAME_IS_IN_NETWORK) + @javax.annotation.Nullable + private Boolean isInNetwork; + + public EndPointInfo() { + } + + public EndPointInfo isLocal(@javax.annotation.Nullable Boolean isLocal) { + this.isLocal = isLocal; + return this; + } + + /** + * Get isLocal + * @return isLocal + */ + @javax.annotation.Nullable + public Boolean getIsLocal() { + return isLocal; + } + + public void setIsLocal(@javax.annotation.Nullable Boolean isLocal) { + this.isLocal = isLocal; + } + + + public EndPointInfo isInNetwork(@javax.annotation.Nullable Boolean isInNetwork) { + this.isInNetwork = isInNetwork; + return this; + } + + /** + * Get isInNetwork + * @return isInNetwork + */ + @javax.annotation.Nullable + public Boolean getIsInNetwork() { + return isInNetwork; + } + + public void setIsInNetwork(@javax.annotation.Nullable Boolean isInNetwork) { + this.isInNetwork = isInNetwork; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EndPointInfo endPointInfo = (EndPointInfo) o; + return Objects.equals(this.isLocal, endPointInfo.isLocal) && + Objects.equals(this.isInNetwork, endPointInfo.isInNetwork); + } + + @Override + public int hashCode() { + return Objects.hash(isLocal, isInNetwork); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EndPointInfo {\n"); + sb.append(" isLocal: ").append(toIndentedString(isLocal)).append("\n"); + sb.append(" isInNetwork: ").append(toIndentedString(isInNetwork)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IsLocal"); + openapiFields.add("IsInNetwork"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EndPointInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EndPointInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in EndPointInfo is not found in the empty JSON string", EndPointInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EndPointInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `EndPointInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EndPointInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EndPointInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(EndPointInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, EndPointInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EndPointInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of EndPointInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of EndPointInfo + * @throws IOException if the JSON string is invalid with respect to EndPointInfo + */ + public static EndPointInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EndPointInfo.class); + } + + /** + * Convert an instance of EndPointInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdInfo.java new file mode 100644 index 0000000000000..77593165bec3d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdInfo.java @@ -0,0 +1,310 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ExternalIdMediaType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Represents the external id information for serialization to the client. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ExternalIdInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ExternalIdMediaType type; + + public static final String SERIALIZED_NAME_URL_FORMAT_STRING = "UrlFormatString"; + @SerializedName(SERIALIZED_NAME_URL_FORMAT_STRING) + @javax.annotation.Nullable + private String urlFormatString; + + public ExternalIdInfo() { + } + + public ExternalIdInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc). + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ExternalIdInfo key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the unique key for this id. This key should be unique across all providers. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public ExternalIdInfo type(@javax.annotation.Nullable ExternalIdMediaType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the specific media type for this id. This is used to distinguish between the different external id types for providers with multiple ids. A null value indicates there is no specific media type associated with the external id, or this is the default id for the external provider so there is no need to specify a type. + * @return type + */ + @javax.annotation.Nullable + public ExternalIdMediaType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ExternalIdMediaType type) { + this.type = type; + } + + + public ExternalIdInfo urlFormatString(@javax.annotation.Nullable String urlFormatString) { + this.urlFormatString = urlFormatString; + return this; + } + + /** + * Gets or sets the URL format string. + * @return urlFormatString + */ + @javax.annotation.Nullable + public String getUrlFormatString() { + return urlFormatString; + } + + public void setUrlFormatString(@javax.annotation.Nullable String urlFormatString) { + this.urlFormatString = urlFormatString; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalIdInfo externalIdInfo = (ExternalIdInfo) o; + return Objects.equals(this.name, externalIdInfo.name) && + Objects.equals(this.key, externalIdInfo.key) && + Objects.equals(this.type, externalIdInfo.type) && + Objects.equals(this.urlFormatString, externalIdInfo.urlFormatString); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, key, type, urlFormatString); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalIdInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" urlFormatString: ").append(toIndentedString(urlFormatString)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Key"); + openapiFields.add("Type"); + openapiFields.add("UrlFormatString"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ExternalIdInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ExternalIdInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ExternalIdInfo is not found in the empty JSON string", ExternalIdInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ExternalIdInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ExternalIdInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ExternalIdMediaType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("UrlFormatString") != null && !jsonObj.get("UrlFormatString").isJsonNull()) && !jsonObj.get("UrlFormatString").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UrlFormatString` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UrlFormatString").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ExternalIdInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ExternalIdInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ExternalIdInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ExternalIdInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ExternalIdInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ExternalIdInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ExternalIdInfo + * @throws IOException if the JSON string is invalid with respect to ExternalIdInfo + */ + public static ExternalIdInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ExternalIdInfo.class); + } + + /** + * Convert an instance of ExternalIdInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java new file mode 100644 index 0000000000000..c30e39d0364b1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalIdMediaType.java @@ -0,0 +1,98 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo. + */ +@JsonAdapter(ExternalIdMediaType.Adapter.class) +public enum ExternalIdMediaType { + + ALBUM("Album"), + + ALBUM_ARTIST("AlbumArtist"), + + ARTIST("Artist"), + + BOX_SET("BoxSet"), + + EPISODE("Episode"), + + MOVIE("Movie"), + + OTHER_ARTIST("OtherArtist"), + + PERSON("Person"), + + RELEASE_GROUP("ReleaseGroup"), + + SEASON("Season"), + + SERIES("Series"), + + TRACK("Track"); + + private String value; + + ExternalIdMediaType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ExternalIdMediaType fromValue(String value) { + for (ExternalIdMediaType b : ExternalIdMediaType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ExternalIdMediaType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ExternalIdMediaType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ExternalIdMediaType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ExternalIdMediaType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalUrl.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalUrl.java new file mode 100644 index 0000000000000..ad304dd2167f2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ExternalUrl.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ExternalUrl + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ExternalUrl { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public ExternalUrl() { + } + + public ExternalUrl name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ExternalUrl url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the type of the item. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalUrl externalUrl = (ExternalUrl) o; + return Objects.equals(this.name, externalUrl.name) && + Objects.equals(this.url, externalUrl.url); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, url); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ExternalUrl {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ExternalUrl + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ExternalUrl.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ExternalUrl is not found in the empty JSON string", ExternalUrl.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ExternalUrl.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ExternalUrl` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ExternalUrl.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ExternalUrl' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ExternalUrl.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ExternalUrl value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ExternalUrl read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ExternalUrl given an JSON string + * + * @param jsonString JSON string + * @return An instance of ExternalUrl + * @throws IOException if the JSON string is invalid with respect to ExternalUrl + */ + public static ExternalUrl fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ExternalUrl.class); + } + + /** + * Convert an instance of ExternalUrl to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FFmpegLocation.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FFmpegLocation.java new file mode 100644 index 0000000000000..629fba24788c2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FFmpegLocation.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum describing the location of the FFmpeg tool. + */ +@JsonAdapter(FFmpegLocation.Adapter.class) +public enum FFmpegLocation { + + NOT_FOUND("NotFound"), + + SET_BY_ARGUMENT("SetByArgument"), + + CUSTOM("Custom"), + + SYSTEM("System"); + + private String value; + + FFmpegLocation(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FFmpegLocation fromValue(String value) { + for (FFmpegLocation b : FFmpegLocation.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FFmpegLocation enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FFmpegLocation read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FFmpegLocation.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FFmpegLocation.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java new file mode 100644 index 0000000000000..cfd0792443a6f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryInfo.java @@ -0,0 +1,268 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.FileSystemEntryType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class FileSystemEntryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class FileSystemEntryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private FileSystemEntryType type; + + public FileSystemEntryInfo() { + } + + public FileSystemEntryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public FileSystemEntryInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public FileSystemEntryInfo type(@javax.annotation.Nullable FileSystemEntryType type) { + this.type = type; + return this; + } + + /** + * Gets the type. + * @return type + */ + @javax.annotation.Nullable + public FileSystemEntryType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable FileSystemEntryType type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileSystemEntryInfo fileSystemEntryInfo = (FileSystemEntryInfo) o; + return Objects.equals(this.name, fileSystemEntryInfo.name) && + Objects.equals(this.path, fileSystemEntryInfo.path) && + Objects.equals(this.type, fileSystemEntryInfo.type); + } + + @Override + public int hashCode() { + return Objects.hash(name, path, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FileSystemEntryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Path"); + openapiFields.add("Type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FileSystemEntryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FileSystemEntryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in FileSystemEntryInfo is not found in the empty JSON string", FileSystemEntryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FileSystemEntryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `FileSystemEntryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + FileSystemEntryType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FileSystemEntryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FileSystemEntryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(FileSystemEntryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, FileSystemEntryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FileSystemEntryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of FileSystemEntryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of FileSystemEntryInfo + * @throws IOException if the JSON string is invalid with respect to FileSystemEntryInfo + */ + public static FileSystemEntryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FileSystemEntryInfo.class); + } + + /** + * Convert an instance of FileSystemEntryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryType.java new file mode 100644 index 0000000000000..f8f9b62c94600 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FileSystemEntryType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum FileSystemEntryType. + */ +@JsonAdapter(FileSystemEntryType.Adapter.class) +public enum FileSystemEntryType { + + FILE("File"), + + DIRECTORY("Directory"), + + NETWORK_COMPUTER("NetworkComputer"), + + NETWORK_SHARE("NetworkShare"); + + private String value; + + FileSystemEntryType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FileSystemEntryType fromValue(String value) { + for (FileSystemEntryType b : FileSystemEntryType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FileSystemEntryType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FileSystemEntryType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FileSystemEntryType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FileSystemEntryType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FontFile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FontFile.java new file mode 100644 index 0000000000000..fed9982bc8731 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/FontFile.java @@ -0,0 +1,300 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class FontFile. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class FontFile { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_MODIFIED = "DateModified"; + @SerializedName(SERIALIZED_NAME_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime dateModified; + + public FontFile() { + } + + public FontFile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public FontFile size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public FontFile dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public FontFile dateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + return this; + } + + /** + * Gets or sets the date modified. + * @return dateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getDateModified() { + return dateModified; + } + + public void setDateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FontFile fontFile = (FontFile) o; + return Objects.equals(this.name, fontFile.name) && + Objects.equals(this.size, fontFile.size) && + Objects.equals(this.dateCreated, fontFile.dateCreated) && + Objects.equals(this.dateModified, fontFile.dateModified); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, size, dateCreated, dateModified); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FontFile {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateModified: ").append(toIndentedString(dateModified)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Size"); + openapiFields.add("DateCreated"); + openapiFields.add("DateModified"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FontFile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FontFile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in FontFile is not found in the empty JSON string", FontFile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FontFile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `FontFile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FontFile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FontFile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(FontFile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, FontFile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FontFile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of FontFile given an JSON string + * + * @param jsonString JSON string + * @return An instance of FontFile + * @throws IOException if the JSON string is invalid with respect to FontFile + */ + public static FontFile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FontFile.class); + } + + /** + * Convert an instance of FontFile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java new file mode 100644 index 0000000000000..e411100190058 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordAction.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ForgotPasswordAction + */ +@JsonAdapter(ForgotPasswordAction.Adapter.class) +public enum ForgotPasswordAction { + + CONTACT_ADMIN("ContactAdmin"), + + PIN_CODE("PinCode"), + + IN_NETWORK_REQUIRED("InNetworkRequired"); + + private String value; + + ForgotPasswordAction(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ForgotPasswordAction fromValue(String value) { + for (ForgotPasswordAction b : ForgotPasswordAction.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ForgotPasswordAction enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ForgotPasswordAction read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ForgotPasswordAction.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ForgotPasswordAction.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java new file mode 100644 index 0000000000000..85a46474305a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Forgot Password request body DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordDto { + public static final String SERIALIZED_NAME_ENTERED_USERNAME = "EnteredUsername"; + @SerializedName(SERIALIZED_NAME_ENTERED_USERNAME) + @javax.annotation.Nonnull + private String enteredUsername; + + public ForgotPasswordDto() { + } + + public ForgotPasswordDto enteredUsername(@javax.annotation.Nonnull String enteredUsername) { + this.enteredUsername = enteredUsername; + return this; + } + + /** + * Gets or sets the entered username to have its password reset. + * @return enteredUsername + */ + @javax.annotation.Nonnull + public String getEnteredUsername() { + return enteredUsername; + } + + public void setEnteredUsername(@javax.annotation.Nonnull String enteredUsername) { + this.enteredUsername = enteredUsername; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordDto forgotPasswordDto = (ForgotPasswordDto) o; + return Objects.equals(this.enteredUsername, forgotPasswordDto.enteredUsername); + } + + @Override + public int hashCode() { + return Objects.hash(enteredUsername); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordDto {\n"); + sb.append(" enteredUsername: ").append(toIndentedString(enteredUsername)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnteredUsername"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EnteredUsername"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordDto is not found in the empty JSON string", ForgotPasswordDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ForgotPasswordDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("EnteredUsername").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EnteredUsername` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EnteredUsername").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordDto + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordDto + */ + public static ForgotPasswordDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordDto.class); + } + + /** + * Convert an instance of ForgotPasswordDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java new file mode 100644 index 0000000000000..9f1b1d9f5bcb2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordPinDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Forgot Password Pin enter request body DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordPinDto { + public static final String SERIALIZED_NAME_PIN = "Pin"; + @SerializedName(SERIALIZED_NAME_PIN) + @javax.annotation.Nonnull + private String pin; + + public ForgotPasswordPinDto() { + } + + public ForgotPasswordPinDto pin(@javax.annotation.Nonnull String pin) { + this.pin = pin; + return this; + } + + /** + * Gets or sets the entered pin to have the password reset. + * @return pin + */ + @javax.annotation.Nonnull + public String getPin() { + return pin; + } + + public void setPin(@javax.annotation.Nonnull String pin) { + this.pin = pin; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordPinDto forgotPasswordPinDto = (ForgotPasswordPinDto) o; + return Objects.equals(this.pin, forgotPasswordPinDto.pin); + } + + @Override + public int hashCode() { + return Objects.hash(pin); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordPinDto {\n"); + sb.append(" pin: ").append(toIndentedString(pin)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Pin"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Pin"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordPinDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordPinDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordPinDto is not found in the empty JSON string", ForgotPasswordPinDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordPinDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordPinDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ForgotPasswordPinDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Pin").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Pin` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Pin").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordPinDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordPinDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordPinDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordPinDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordPinDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordPinDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordPinDto + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordPinDto + */ + public static ForgotPasswordPinDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordPinDto.class); + } + + /** + * Convert an instance of ForgotPasswordPinDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java new file mode 100644 index 0000000000000..93be355419973 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ForgotPasswordResult.java @@ -0,0 +1,278 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.client.model.ForgotPasswordAction; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ForgotPasswordResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ForgotPasswordResult { + public static final String SERIALIZED_NAME_ACTION = "Action"; + @SerializedName(SERIALIZED_NAME_ACTION) + @javax.annotation.Nullable + private ForgotPasswordAction action; + + public static final String SERIALIZED_NAME_PIN_FILE = "PinFile"; + @SerializedName(SERIALIZED_NAME_PIN_FILE) + @javax.annotation.Nullable + private String pinFile; + + public static final String SERIALIZED_NAME_PIN_EXPIRATION_DATE = "PinExpirationDate"; + @SerializedName(SERIALIZED_NAME_PIN_EXPIRATION_DATE) + @javax.annotation.Nullable + private OffsetDateTime pinExpirationDate; + + public ForgotPasswordResult() { + } + + public ForgotPasswordResult action(@javax.annotation.Nullable ForgotPasswordAction action) { + this.action = action; + return this; + } + + /** + * Gets or sets the action. + * @return action + */ + @javax.annotation.Nullable + public ForgotPasswordAction getAction() { + return action; + } + + public void setAction(@javax.annotation.Nullable ForgotPasswordAction action) { + this.action = action; + } + + + public ForgotPasswordResult pinFile(@javax.annotation.Nullable String pinFile) { + this.pinFile = pinFile; + return this; + } + + /** + * Gets or sets the pin file. + * @return pinFile + */ + @javax.annotation.Nullable + public String getPinFile() { + return pinFile; + } + + public void setPinFile(@javax.annotation.Nullable String pinFile) { + this.pinFile = pinFile; + } + + + public ForgotPasswordResult pinExpirationDate(@javax.annotation.Nullable OffsetDateTime pinExpirationDate) { + this.pinExpirationDate = pinExpirationDate; + return this; + } + + /** + * Gets or sets the pin expiration date. + * @return pinExpirationDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPinExpirationDate() { + return pinExpirationDate; + } + + public void setPinExpirationDate(@javax.annotation.Nullable OffsetDateTime pinExpirationDate) { + this.pinExpirationDate = pinExpirationDate; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ForgotPasswordResult forgotPasswordResult = (ForgotPasswordResult) o; + return Objects.equals(this.action, forgotPasswordResult.action) && + Objects.equals(this.pinFile, forgotPasswordResult.pinFile) && + Objects.equals(this.pinExpirationDate, forgotPasswordResult.pinExpirationDate); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(action, pinFile, pinExpirationDate); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ForgotPasswordResult {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" pinFile: ").append(toIndentedString(pinFile)).append("\n"); + sb.append(" pinExpirationDate: ").append(toIndentedString(pinExpirationDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Action"); + openapiFields.add("PinFile"); + openapiFields.add("PinExpirationDate"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ForgotPasswordResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ForgotPasswordResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ForgotPasswordResult is not found in the empty JSON string", ForgotPasswordResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ForgotPasswordResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ForgotPasswordResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Action` + if (jsonObj.get("Action") != null && !jsonObj.get("Action").isJsonNull()) { + ForgotPasswordAction.validateJsonElement(jsonObj.get("Action")); + } + if ((jsonObj.get("PinFile") != null && !jsonObj.get("PinFile").isJsonNull()) && !jsonObj.get("PinFile").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PinFile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PinFile").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ForgotPasswordResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ForgotPasswordResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ForgotPasswordResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ForgotPasswordResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ForgotPasswordResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ForgotPasswordResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ForgotPasswordResult + * @throws IOException if the JSON string is invalid with respect to ForgotPasswordResult + */ + public static ForgotPasswordResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ForgotPasswordResult.class); + } + + /** + * Convert an instance of ForgotPasswordResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommand.java new file mode 100644 index 0000000000000..18153df1396f9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommand.java @@ -0,0 +1,276 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.GeneralCommandType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * GeneralCommand + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GeneralCommand { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private GeneralCommandType name; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private UUID controllingUserId; + + public static final String SERIALIZED_NAME_ARGUMENTS = "Arguments"; + @SerializedName(SERIALIZED_NAME_ARGUMENTS) + @javax.annotation.Nullable + private Map arguments = new HashMap<>(); + + public GeneralCommand() { + } + + public GeneralCommand name(@javax.annotation.Nullable GeneralCommandType name) { + this.name = name; + return this; + } + + /** + * This exists simply to identify a set of known commands. + * @return name + */ + @javax.annotation.Nullable + public GeneralCommandType getName() { + return name; + } + + public void setName(@javax.annotation.Nullable GeneralCommandType name) { + this.name = name; + } + + + public GeneralCommand controllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Get controllingUserId + * @return controllingUserId + */ + @javax.annotation.Nullable + public UUID getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + public GeneralCommand arguments(@javax.annotation.Nullable Map arguments) { + this.arguments = arguments; + return this; + } + + public GeneralCommand putArgumentsItem(String key, String argumentsItem) { + if (this.arguments == null) { + this.arguments = new HashMap<>(); + } + this.arguments.put(key, argumentsItem); + return this; + } + + /** + * Get arguments + * @return arguments + */ + @javax.annotation.Nullable + public Map getArguments() { + return arguments; + } + + public void setArguments(@javax.annotation.Nullable Map arguments) { + this.arguments = arguments; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GeneralCommand generalCommand = (GeneralCommand) o; + return Objects.equals(this.name, generalCommand.name) && + Objects.equals(this.controllingUserId, generalCommand.controllingUserId) && + Objects.equals(this.arguments, generalCommand.arguments); + } + + @Override + public int hashCode() { + return Objects.hash(name, controllingUserId, arguments); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GeneralCommand {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append(" arguments: ").append(toIndentedString(arguments)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ControllingUserId"); + openapiFields.add("Arguments"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GeneralCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GeneralCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GeneralCommand is not found in the empty JSON string", GeneralCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GeneralCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GeneralCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Name` + if (jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) { + GeneralCommandType.validateJsonElement(jsonObj.get("Name")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GeneralCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GeneralCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GeneralCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GeneralCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GeneralCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GeneralCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of GeneralCommand + * @throws IOException if the JSON string is invalid with respect to GeneralCommand + */ + public static GeneralCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GeneralCommand.class); + } + + /** + * Convert an instance of GeneralCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommandType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommandType.java new file mode 100644 index 0000000000000..837b22d5d2bf9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GeneralCommandType.java @@ -0,0 +1,158 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * This exists simply to identify a set of known commands. + */ +@JsonAdapter(GeneralCommandType.Adapter.class) +public enum GeneralCommandType { + + MOVE_UP("MoveUp"), + + MOVE_DOWN("MoveDown"), + + MOVE_LEFT("MoveLeft"), + + MOVE_RIGHT("MoveRight"), + + PAGE_UP("PageUp"), + + PAGE_DOWN("PageDown"), + + PREVIOUS_LETTER("PreviousLetter"), + + NEXT_LETTER("NextLetter"), + + TOGGLE_OSD("ToggleOsd"), + + TOGGLE_CONTEXT_MENU("ToggleContextMenu"), + + SELECT("Select"), + + BACK("Back"), + + TAKE_SCREENSHOT("TakeScreenshot"), + + SEND_KEY("SendKey"), + + SEND_STRING("SendString"), + + GO_HOME("GoHome"), + + GO_TO_SETTINGS("GoToSettings"), + + VOLUME_UP("VolumeUp"), + + VOLUME_DOWN("VolumeDown"), + + MUTE("Mute"), + + UNMUTE("Unmute"), + + TOGGLE_MUTE("ToggleMute"), + + SET_VOLUME("SetVolume"), + + SET_AUDIO_STREAM_INDEX("SetAudioStreamIndex"), + + SET_SUBTITLE_STREAM_INDEX("SetSubtitleStreamIndex"), + + TOGGLE_FULLSCREEN("ToggleFullscreen"), + + DISPLAY_CONTENT("DisplayContent"), + + GO_TO_SEARCH("GoToSearch"), + + DISPLAY_MESSAGE("DisplayMessage"), + + SET_REPEAT_MODE("SetRepeatMode"), + + CHANNEL_UP("ChannelUp"), + + CHANNEL_DOWN("ChannelDown"), + + GUIDE("Guide"), + + TOGGLE_STATS("ToggleStats"), + + PLAY_MEDIA_SOURCE("PlayMediaSource"), + + PLAY_TRAILERS("PlayTrailers"), + + SET_SHUFFLE_QUEUE("SetShuffleQueue"), + + PLAY_STATE("PlayState"), + + PLAY_NEXT("PlayNext"), + + TOGGLE_OSD_MENU("ToggleOsdMenu"), + + PLAY("Play"), + + SET_MAX_STREAMING_BITRATE("SetMaxStreamingBitrate"); + + private String value; + + GeneralCommandType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GeneralCommandType fromValue(String value) { + for (GeneralCommandType b : GeneralCommandType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GeneralCommandType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GeneralCommandType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GeneralCommandType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GeneralCommandType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GetProgramsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GetProgramsDto.java new file mode 100644 index 0000000000000..8d38187242752 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GetProgramsDto.java @@ -0,0 +1,1017 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.ItemFields; +import org.openapitools.client.model.SortOrder; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Get programs dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GetProgramsDto { + public static final String SERIALIZED_NAME_CHANNEL_IDS = "ChannelIds"; + @SerializedName(SERIALIZED_NAME_CHANNEL_IDS) + @javax.annotation.Nullable + private List channelIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MIN_START_DATE = "MinStartDate"; + @SerializedName(SERIALIZED_NAME_MIN_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime minStartDate; + + public static final String SERIALIZED_NAME_HAS_AIRED = "HasAired"; + @SerializedName(SERIALIZED_NAME_HAS_AIRED) + @javax.annotation.Nullable + private Boolean hasAired; + + public static final String SERIALIZED_NAME_IS_AIRING = "IsAiring"; + @SerializedName(SERIALIZED_NAME_IS_AIRING) + @javax.annotation.Nullable + private Boolean isAiring; + + public static final String SERIALIZED_NAME_MAX_START_DATE = "MaxStartDate"; + @SerializedName(SERIALIZED_NAME_MAX_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime maxStartDate; + + public static final String SERIALIZED_NAME_MIN_END_DATE = "MinEndDate"; + @SerializedName(SERIALIZED_NAME_MIN_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime minEndDate; + + public static final String SERIALIZED_NAME_MAX_END_DATE = "MaxEndDate"; + @SerializedName(SERIALIZED_NAME_MAX_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime maxEndDate; + + public static final String SERIALIZED_NAME_IS_MOVIE = "IsMovie"; + @SerializedName(SERIALIZED_NAME_IS_MOVIE) + @javax.annotation.Nullable + private Boolean isMovie; + + public static final String SERIALIZED_NAME_IS_SERIES = "IsSeries"; + @SerializedName(SERIALIZED_NAME_IS_SERIES) + @javax.annotation.Nullable + private Boolean isSeries; + + public static final String SERIALIZED_NAME_IS_NEWS = "IsNews"; + @SerializedName(SERIALIZED_NAME_IS_NEWS) + @javax.annotation.Nullable + private Boolean isNews; + + public static final String SERIALIZED_NAME_IS_KIDS = "IsKids"; + @SerializedName(SERIALIZED_NAME_IS_KIDS) + @javax.annotation.Nullable + private Boolean isKids; + + public static final String SERIALIZED_NAME_IS_SPORTS = "IsSports"; + @SerializedName(SERIALIZED_NAME_IS_SPORTS) + @javax.annotation.Nullable + private Boolean isSports; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public static final String SERIALIZED_NAME_LIMIT = "Limit"; + @SerializedName(SERIALIZED_NAME_LIMIT) + @javax.annotation.Nullable + private Integer limit; + + public static final String SERIALIZED_NAME_SORT_BY = "SortBy"; + @SerializedName(SERIALIZED_NAME_SORT_BY) + @javax.annotation.Nullable + private List sortBy = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SORT_ORDER = "SortOrder"; + @SerializedName(SERIALIZED_NAME_SORT_ORDER) + @javax.annotation.Nullable + private List sortOrder = new ArrayList<>(); + + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres = new ArrayList<>(); + + public static final String SERIALIZED_NAME_GENRE_IDS = "GenreIds"; + @SerializedName(SERIALIZED_NAME_GENRE_IDS) + @javax.annotation.Nullable + private List genreIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_IMAGES = "EnableImages"; + @SerializedName(SERIALIZED_NAME_ENABLE_IMAGES) + @javax.annotation.Nullable + private Boolean enableImages; + + public static final String SERIALIZED_NAME_ENABLE_TOTAL_RECORD_COUNT = "EnableTotalRecordCount"; + @SerializedName(SERIALIZED_NAME_ENABLE_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Boolean enableTotalRecordCount; + + public static final String SERIALIZED_NAME_IMAGE_TYPE_LIMIT = "ImageTypeLimit"; + @SerializedName(SERIALIZED_NAME_IMAGE_TYPE_LIMIT) + @javax.annotation.Nullable + private Integer imageTypeLimit; + + public static final String SERIALIZED_NAME_ENABLE_IMAGE_TYPES = "EnableImageTypes"; + @SerializedName(SERIALIZED_NAME_ENABLE_IMAGE_TYPES) + @javax.annotation.Nullable + private List enableImageTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_USER_DATA = "EnableUserData"; + @SerializedName(SERIALIZED_NAME_ENABLE_USER_DATA) + @javax.annotation.Nullable + private Boolean enableUserData; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_LIBRARY_SERIES_ID = "LibrarySeriesId"; + @SerializedName(SERIALIZED_NAME_LIBRARY_SERIES_ID) + @javax.annotation.Nullable + private UUID librarySeriesId; + + public static final String SERIALIZED_NAME_FIELDS = "Fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @javax.annotation.Nullable + private List fields = new ArrayList<>(); + + public GetProgramsDto() { + } + + public GetProgramsDto channelIds(@javax.annotation.Nullable List channelIds) { + this.channelIds = channelIds; + return this; + } + + public GetProgramsDto addChannelIdsItem(UUID channelIdsItem) { + if (this.channelIds == null) { + this.channelIds = new ArrayList<>(); + } + this.channelIds.add(channelIdsItem); + return this; + } + + /** + * Gets or sets the channels to return guide information for. + * @return channelIds + */ + @javax.annotation.Nullable + public List getChannelIds() { + return channelIds; + } + + public void setChannelIds(@javax.annotation.Nullable List channelIds) { + this.channelIds = channelIds; + } + + + public GetProgramsDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets optional. Filter by user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public GetProgramsDto minStartDate(@javax.annotation.Nullable OffsetDateTime minStartDate) { + this.minStartDate = minStartDate; + return this; + } + + /** + * Gets or sets the minimum premiere start date. Optional. + * @return minStartDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMinStartDate() { + return minStartDate; + } + + public void setMinStartDate(@javax.annotation.Nullable OffsetDateTime minStartDate) { + this.minStartDate = minStartDate; + } + + + public GetProgramsDto hasAired(@javax.annotation.Nullable Boolean hasAired) { + this.hasAired = hasAired; + return this; + } + + /** + * Gets or sets filter by programs that have completed airing, or not. Optional. + * @return hasAired + */ + @javax.annotation.Nullable + public Boolean getHasAired() { + return hasAired; + } + + public void setHasAired(@javax.annotation.Nullable Boolean hasAired) { + this.hasAired = hasAired; + } + + + public GetProgramsDto isAiring(@javax.annotation.Nullable Boolean isAiring) { + this.isAiring = isAiring; + return this; + } + + /** + * Gets or sets filter by programs that are currently airing, or not. Optional. + * @return isAiring + */ + @javax.annotation.Nullable + public Boolean getIsAiring() { + return isAiring; + } + + public void setIsAiring(@javax.annotation.Nullable Boolean isAiring) { + this.isAiring = isAiring; + } + + + public GetProgramsDto maxStartDate(@javax.annotation.Nullable OffsetDateTime maxStartDate) { + this.maxStartDate = maxStartDate; + return this; + } + + /** + * Gets or sets the maximum premiere start date. Optional. + * @return maxStartDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMaxStartDate() { + return maxStartDate; + } + + public void setMaxStartDate(@javax.annotation.Nullable OffsetDateTime maxStartDate) { + this.maxStartDate = maxStartDate; + } + + + public GetProgramsDto minEndDate(@javax.annotation.Nullable OffsetDateTime minEndDate) { + this.minEndDate = minEndDate; + return this; + } + + /** + * Gets or sets the minimum premiere end date. Optional. + * @return minEndDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMinEndDate() { + return minEndDate; + } + + public void setMinEndDate(@javax.annotation.Nullable OffsetDateTime minEndDate) { + this.minEndDate = minEndDate; + } + + + public GetProgramsDto maxEndDate(@javax.annotation.Nullable OffsetDateTime maxEndDate) { + this.maxEndDate = maxEndDate; + return this; + } + + /** + * Gets or sets the maximum premiere end date. Optional. + * @return maxEndDate + */ + @javax.annotation.Nullable + public OffsetDateTime getMaxEndDate() { + return maxEndDate; + } + + public void setMaxEndDate(@javax.annotation.Nullable OffsetDateTime maxEndDate) { + this.maxEndDate = maxEndDate; + } + + + public GetProgramsDto isMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + return this; + } + + /** + * Gets or sets filter for movies. Optional. + * @return isMovie + */ + @javax.annotation.Nullable + public Boolean getIsMovie() { + return isMovie; + } + + public void setIsMovie(@javax.annotation.Nullable Boolean isMovie) { + this.isMovie = isMovie; + } + + + public GetProgramsDto isSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + return this; + } + + /** + * Gets or sets filter for series. Optional. + * @return isSeries + */ + @javax.annotation.Nullable + public Boolean getIsSeries() { + return isSeries; + } + + public void setIsSeries(@javax.annotation.Nullable Boolean isSeries) { + this.isSeries = isSeries; + } + + + public GetProgramsDto isNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + return this; + } + + /** + * Gets or sets filter for news. Optional. + * @return isNews + */ + @javax.annotation.Nullable + public Boolean getIsNews() { + return isNews; + } + + public void setIsNews(@javax.annotation.Nullable Boolean isNews) { + this.isNews = isNews; + } + + + public GetProgramsDto isKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + return this; + } + + /** + * Gets or sets filter for kids. Optional. + * @return isKids + */ + @javax.annotation.Nullable + public Boolean getIsKids() { + return isKids; + } + + public void setIsKids(@javax.annotation.Nullable Boolean isKids) { + this.isKids = isKids; + } + + + public GetProgramsDto isSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + return this; + } + + /** + * Gets or sets filter for sports. Optional. + * @return isSports + */ + @javax.annotation.Nullable + public Boolean getIsSports() { + return isSports; + } + + public void setIsSports(@javax.annotation.Nullable Boolean isSports) { + this.isSports = isSports; + } + + + public GetProgramsDto startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the record index to start at. All items with a lower index will be dropped from the results. Optional. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + public GetProgramsDto limit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + return this; + } + + /** + * Gets or sets the maximum number of records to return. Optional. + * @return limit + */ + @javax.annotation.Nullable + public Integer getLimit() { + return limit; + } + + public void setLimit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + } + + + public GetProgramsDto sortBy(@javax.annotation.Nullable List sortBy) { + this.sortBy = sortBy; + return this; + } + + public GetProgramsDto addSortByItem(String sortByItem) { + if (this.sortBy == null) { + this.sortBy = new ArrayList<>(); + } + this.sortBy.add(sortByItem); + return this; + } + + /** + * Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate. Optional. + * @return sortBy + */ + @javax.annotation.Nullable + public List getSortBy() { + return sortBy; + } + + public void setSortBy(@javax.annotation.Nullable List sortBy) { + this.sortBy = sortBy; + } + + + public GetProgramsDto sortOrder(@javax.annotation.Nullable List sortOrder) { + this.sortOrder = sortOrder; + return this; + } + + public GetProgramsDto addSortOrderItem(SortOrder sortOrderItem) { + if (this.sortOrder == null) { + this.sortOrder = new ArrayList<>(); + } + this.sortOrder.add(sortOrderItem); + return this; + } + + /** + * Gets or sets sort Order - Ascending,Descending. + * @return sortOrder + */ + @javax.annotation.Nullable + public List getSortOrder() { + return sortOrder; + } + + public void setSortOrder(@javax.annotation.Nullable List sortOrder) { + this.sortOrder = sortOrder; + } + + + public GetProgramsDto genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public GetProgramsDto addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Gets or sets the genres to return guide information for. + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public GetProgramsDto genreIds(@javax.annotation.Nullable List genreIds) { + this.genreIds = genreIds; + return this; + } + + public GetProgramsDto addGenreIdsItem(UUID genreIdsItem) { + if (this.genreIds == null) { + this.genreIds = new ArrayList<>(); + } + this.genreIds.add(genreIdsItem); + return this; + } + + /** + * Gets or sets the genre ids to return guide information for. + * @return genreIds + */ + @javax.annotation.Nullable + public List getGenreIds() { + return genreIds; + } + + public void setGenreIds(@javax.annotation.Nullable List genreIds) { + this.genreIds = genreIds; + } + + + public GetProgramsDto enableImages(@javax.annotation.Nullable Boolean enableImages) { + this.enableImages = enableImages; + return this; + } + + /** + * Gets or sets include image information in output. Optional. + * @return enableImages + */ + @javax.annotation.Nullable + public Boolean getEnableImages() { + return enableImages; + } + + public void setEnableImages(@javax.annotation.Nullable Boolean enableImages) { + this.enableImages = enableImages; + } + + + public GetProgramsDto enableTotalRecordCount(@javax.annotation.Nullable Boolean enableTotalRecordCount) { + this.enableTotalRecordCount = enableTotalRecordCount; + return this; + } + + /** + * Gets or sets a value indicating whether retrieve total record count. + * @return enableTotalRecordCount + */ + @javax.annotation.Nullable + public Boolean getEnableTotalRecordCount() { + return enableTotalRecordCount; + } + + public void setEnableTotalRecordCount(@javax.annotation.Nullable Boolean enableTotalRecordCount) { + this.enableTotalRecordCount = enableTotalRecordCount; + } + + + public GetProgramsDto imageTypeLimit(@javax.annotation.Nullable Integer imageTypeLimit) { + this.imageTypeLimit = imageTypeLimit; + return this; + } + + /** + * Gets or sets the max number of images to return, per image type. Optional. + * @return imageTypeLimit + */ + @javax.annotation.Nullable + public Integer getImageTypeLimit() { + return imageTypeLimit; + } + + public void setImageTypeLimit(@javax.annotation.Nullable Integer imageTypeLimit) { + this.imageTypeLimit = imageTypeLimit; + } + + + public GetProgramsDto enableImageTypes(@javax.annotation.Nullable List enableImageTypes) { + this.enableImageTypes = enableImageTypes; + return this; + } + + public GetProgramsDto addEnableImageTypesItem(ImageType enableImageTypesItem) { + if (this.enableImageTypes == null) { + this.enableImageTypes = new ArrayList<>(); + } + this.enableImageTypes.add(enableImageTypesItem); + return this; + } + + /** + * Gets or sets the image types to include in the output. Optional. + * @return enableImageTypes + */ + @javax.annotation.Nullable + public List getEnableImageTypes() { + return enableImageTypes; + } + + public void setEnableImageTypes(@javax.annotation.Nullable List enableImageTypes) { + this.enableImageTypes = enableImageTypes; + } + + + public GetProgramsDto enableUserData(@javax.annotation.Nullable Boolean enableUserData) { + this.enableUserData = enableUserData; + return this; + } + + /** + * Gets or sets include user data. Optional. + * @return enableUserData + */ + @javax.annotation.Nullable + public Boolean getEnableUserData() { + return enableUserData; + } + + public void setEnableUserData(@javax.annotation.Nullable Boolean enableUserData) { + this.enableUserData = enableUserData; + } + + + public GetProgramsDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets filter by series timer id. Optional. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public GetProgramsDto librarySeriesId(@javax.annotation.Nullable UUID librarySeriesId) { + this.librarySeriesId = librarySeriesId; + return this; + } + + /** + * Gets or sets filter by library series id. Optional. + * @return librarySeriesId + */ + @javax.annotation.Nullable + public UUID getLibrarySeriesId() { + return librarySeriesId; + } + + public void setLibrarySeriesId(@javax.annotation.Nullable UUID librarySeriesId) { + this.librarySeriesId = librarySeriesId; + } + + + public GetProgramsDto fields(@javax.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public GetProgramsDto addFieldsItem(ItemFields fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines. Optional. + * @return fields + */ + @javax.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@javax.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetProgramsDto getProgramsDto = (GetProgramsDto) o; + return Objects.equals(this.channelIds, getProgramsDto.channelIds) && + Objects.equals(this.userId, getProgramsDto.userId) && + Objects.equals(this.minStartDate, getProgramsDto.minStartDate) && + Objects.equals(this.hasAired, getProgramsDto.hasAired) && + Objects.equals(this.isAiring, getProgramsDto.isAiring) && + Objects.equals(this.maxStartDate, getProgramsDto.maxStartDate) && + Objects.equals(this.minEndDate, getProgramsDto.minEndDate) && + Objects.equals(this.maxEndDate, getProgramsDto.maxEndDate) && + Objects.equals(this.isMovie, getProgramsDto.isMovie) && + Objects.equals(this.isSeries, getProgramsDto.isSeries) && + Objects.equals(this.isNews, getProgramsDto.isNews) && + Objects.equals(this.isKids, getProgramsDto.isKids) && + Objects.equals(this.isSports, getProgramsDto.isSports) && + Objects.equals(this.startIndex, getProgramsDto.startIndex) && + Objects.equals(this.limit, getProgramsDto.limit) && + Objects.equals(this.sortBy, getProgramsDto.sortBy) && + Objects.equals(this.sortOrder, getProgramsDto.sortOrder) && + Objects.equals(this.genres, getProgramsDto.genres) && + Objects.equals(this.genreIds, getProgramsDto.genreIds) && + Objects.equals(this.enableImages, getProgramsDto.enableImages) && + Objects.equals(this.enableTotalRecordCount, getProgramsDto.enableTotalRecordCount) && + Objects.equals(this.imageTypeLimit, getProgramsDto.imageTypeLimit) && + Objects.equals(this.enableImageTypes, getProgramsDto.enableImageTypes) && + Objects.equals(this.enableUserData, getProgramsDto.enableUserData) && + Objects.equals(this.seriesTimerId, getProgramsDto.seriesTimerId) && + Objects.equals(this.librarySeriesId, getProgramsDto.librarySeriesId) && + Objects.equals(this.fields, getProgramsDto.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(channelIds, userId, minStartDate, hasAired, isAiring, maxStartDate, minEndDate, maxEndDate, isMovie, isSeries, isNews, isKids, isSports, startIndex, limit, sortBy, sortOrder, genres, genreIds, enableImages, enableTotalRecordCount, imageTypeLimit, enableImageTypes, enableUserData, seriesTimerId, librarySeriesId, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetProgramsDto {\n"); + sb.append(" channelIds: ").append(toIndentedString(channelIds)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" minStartDate: ").append(toIndentedString(minStartDate)).append("\n"); + sb.append(" hasAired: ").append(toIndentedString(hasAired)).append("\n"); + sb.append(" isAiring: ").append(toIndentedString(isAiring)).append("\n"); + sb.append(" maxStartDate: ").append(toIndentedString(maxStartDate)).append("\n"); + sb.append(" minEndDate: ").append(toIndentedString(minEndDate)).append("\n"); + sb.append(" maxEndDate: ").append(toIndentedString(maxEndDate)).append("\n"); + sb.append(" isMovie: ").append(toIndentedString(isMovie)).append("\n"); + sb.append(" isSeries: ").append(toIndentedString(isSeries)).append("\n"); + sb.append(" isNews: ").append(toIndentedString(isNews)).append("\n"); + sb.append(" isKids: ").append(toIndentedString(isKids)).append("\n"); + sb.append(" isSports: ").append(toIndentedString(isSports)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" sortBy: ").append(toIndentedString(sortBy)).append("\n"); + sb.append(" sortOrder: ").append(toIndentedString(sortOrder)).append("\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" genreIds: ").append(toIndentedString(genreIds)).append("\n"); + sb.append(" enableImages: ").append(toIndentedString(enableImages)).append("\n"); + sb.append(" enableTotalRecordCount: ").append(toIndentedString(enableTotalRecordCount)).append("\n"); + sb.append(" imageTypeLimit: ").append(toIndentedString(imageTypeLimit)).append("\n"); + sb.append(" enableImageTypes: ").append(toIndentedString(enableImageTypes)).append("\n"); + sb.append(" enableUserData: ").append(toIndentedString(enableUserData)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" librarySeriesId: ").append(toIndentedString(librarySeriesId)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ChannelIds"); + openapiFields.add("UserId"); + openapiFields.add("MinStartDate"); + openapiFields.add("HasAired"); + openapiFields.add("IsAiring"); + openapiFields.add("MaxStartDate"); + openapiFields.add("MinEndDate"); + openapiFields.add("MaxEndDate"); + openapiFields.add("IsMovie"); + openapiFields.add("IsSeries"); + openapiFields.add("IsNews"); + openapiFields.add("IsKids"); + openapiFields.add("IsSports"); + openapiFields.add("StartIndex"); + openapiFields.add("Limit"); + openapiFields.add("SortBy"); + openapiFields.add("SortOrder"); + openapiFields.add("Genres"); + openapiFields.add("GenreIds"); + openapiFields.add("EnableImages"); + openapiFields.add("EnableTotalRecordCount"); + openapiFields.add("ImageTypeLimit"); + openapiFields.add("EnableImageTypes"); + openapiFields.add("EnableUserData"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("LibrarySeriesId"); + openapiFields.add("Fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetProgramsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetProgramsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetProgramsDto is not found in the empty JSON string", GetProgramsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetProgramsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetProgramsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ChannelIds") != null && !jsonObj.get("ChannelIds").isJsonNull() && !jsonObj.get("ChannelIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelIds` to be an array in the JSON string but got `%s`", jsonObj.get("ChannelIds").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortBy") != null && !jsonObj.get("SortBy").isJsonNull() && !jsonObj.get("SortBy").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortBy` to be an array in the JSON string but got `%s`", jsonObj.get("SortBy").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortOrder") != null && !jsonObj.get("SortOrder").isJsonNull() && !jsonObj.get("SortOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortOrder` to be an array in the JSON string but got `%s`", jsonObj.get("SortOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("GenreIds") != null && !jsonObj.get("GenreIds").isJsonNull() && !jsonObj.get("GenreIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GenreIds` to be an array in the JSON string but got `%s`", jsonObj.get("GenreIds").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnableImageTypes") != null && !jsonObj.get("EnableImageTypes").isJsonNull() && !jsonObj.get("EnableImageTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnableImageTypes` to be an array in the JSON string but got `%s`", jsonObj.get("EnableImageTypes").toString())); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("LibrarySeriesId") != null && !jsonObj.get("LibrarySeriesId").isJsonNull()) && !jsonObj.get("LibrarySeriesId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LibrarySeriesId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LibrarySeriesId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Fields") != null && !jsonObj.get("Fields").isJsonNull() && !jsonObj.get("Fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Fields` to be an array in the JSON string but got `%s`", jsonObj.get("Fields").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetProgramsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetProgramsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetProgramsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetProgramsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetProgramsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetProgramsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetProgramsDto + * @throws IOException if the JSON string is invalid with respect to GetProgramsDto + */ + public static GetProgramsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetProgramsDto.class); + } + + /** + * Convert an instance of GetProgramsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupInfoDto.java new file mode 100644 index 0000000000000..7224e82c2cff0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupInfoDto.java @@ -0,0 +1,338 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.GroupStateType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupInfoDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GroupInfoDto { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_GROUP_NAME = "GroupName"; + @SerializedName(SERIALIZED_NAME_GROUP_NAME) + @javax.annotation.Nullable + private String groupName; + + public static final String SERIALIZED_NAME_STATE = "State"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private GroupStateType state; + + public static final String SERIALIZED_NAME_PARTICIPANTS = "Participants"; + @SerializedName(SERIALIZED_NAME_PARTICIPANTS) + @javax.annotation.Nullable + private List participants = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LAST_UPDATED_AT = "LastUpdatedAt"; + @SerializedName(SERIALIZED_NAME_LAST_UPDATED_AT) + @javax.annotation.Nullable + private OffsetDateTime lastUpdatedAt; + + public GroupInfoDto() { + } + + public GroupInfoDto groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + public GroupInfoDto groupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + return this; + } + + /** + * Gets the group name. + * @return groupName + */ + @javax.annotation.Nullable + public String getGroupName() { + return groupName; + } + + public void setGroupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + } + + + public GroupInfoDto state(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + return this; + } + + /** + * Gets the group state. + * @return state + */ + @javax.annotation.Nullable + public GroupStateType getState() { + return state; + } + + public void setState(@javax.annotation.Nullable GroupStateType state) { + this.state = state; + } + + + public GroupInfoDto participants(@javax.annotation.Nullable List participants) { + this.participants = participants; + return this; + } + + public GroupInfoDto addParticipantsItem(String participantsItem) { + if (this.participants == null) { + this.participants = new ArrayList<>(); + } + this.participants.add(participantsItem); + return this; + } + + /** + * Gets the participants. + * @return participants + */ + @javax.annotation.Nullable + public List getParticipants() { + return participants; + } + + public void setParticipants(@javax.annotation.Nullable List participants) { + this.participants = participants; + } + + + public GroupInfoDto lastUpdatedAt(@javax.annotation.Nullable OffsetDateTime lastUpdatedAt) { + this.lastUpdatedAt = lastUpdatedAt; + return this; + } + + /** + * Gets the date when this DTO has been created. + * @return lastUpdatedAt + */ + @javax.annotation.Nullable + public OffsetDateTime getLastUpdatedAt() { + return lastUpdatedAt; + } + + public void setLastUpdatedAt(@javax.annotation.Nullable OffsetDateTime lastUpdatedAt) { + this.lastUpdatedAt = lastUpdatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupInfoDto groupInfoDto = (GroupInfoDto) o; + return Objects.equals(this.groupId, groupInfoDto.groupId) && + Objects.equals(this.groupName, groupInfoDto.groupName) && + Objects.equals(this.state, groupInfoDto.state) && + Objects.equals(this.participants, groupInfoDto.participants) && + Objects.equals(this.lastUpdatedAt, groupInfoDto.lastUpdatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, groupName, state, participants, lastUpdatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GroupInfoDto {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" groupName: ").append(toIndentedString(groupName)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" participants: ").append(toIndentedString(participants)).append("\n"); + sb.append(" lastUpdatedAt: ").append(toIndentedString(lastUpdatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("GroupName"); + openapiFields.add("State"); + openapiFields.add("Participants"); + openapiFields.add("LastUpdatedAt"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GroupInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GroupInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GroupInfoDto is not found in the empty JSON string", GroupInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GroupInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GroupInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + if ((jsonObj.get("GroupName") != null && !jsonObj.get("GroupName").isJsonNull()) && !jsonObj.get("GroupName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupName").toString())); + } + // validate the optional field `State` + if (jsonObj.get("State") != null && !jsonObj.get("State").isJsonNull()) { + GroupStateType.validateJsonElement(jsonObj.get("State")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Participants") != null && !jsonObj.get("Participants").isJsonNull() && !jsonObj.get("Participants").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Participants` to be an array in the JSON string but got `%s`", jsonObj.get("Participants").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GroupInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GroupInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GroupInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GroupInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GroupInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GroupInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of GroupInfoDto + * @throws IOException if the JSON string is invalid with respect to GroupInfoDto + */ + public static GroupInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GroupInfoDto.class); + } + + /** + * Convert an instance of GroupInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupQueueMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupQueueMode.java new file mode 100644 index 0000000000000..79bbf5b49e63f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupQueueMode.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupQueueMode. + */ +@JsonAdapter(GroupQueueMode.Adapter.class) +public enum GroupQueueMode { + + QUEUE("Queue"), + + QUEUE_NEXT("QueueNext"); + + private String value; + + GroupQueueMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupQueueMode fromValue(String value) { + for (GroupQueueMode b : GroupQueueMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupQueueMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupQueueMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupQueueMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupQueueMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupRepeatMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupRepeatMode.java new file mode 100644 index 0000000000000..53d189c5692fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupRepeatMode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupRepeatMode. + */ +@JsonAdapter(GroupRepeatMode.Adapter.class) +public enum GroupRepeatMode { + + REPEAT_ONE("RepeatOne"), + + REPEAT_ALL("RepeatAll"), + + REPEAT_NONE("RepeatNone"); + + private String value; + + GroupRepeatMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupRepeatMode fromValue(String value) { + for (GroupRepeatMode b : GroupRepeatMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupRepeatMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupRepeatMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupRepeatMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupRepeatMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupShuffleMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupShuffleMode.java new file mode 100644 index 0000000000000..955f5488ff9d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupShuffleMode.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupShuffleMode. + */ +@JsonAdapter(GroupShuffleMode.Adapter.class) +public enum GroupShuffleMode { + + SORTED("Sorted"), + + SHUFFLE("Shuffle"); + + private String value; + + GroupShuffleMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupShuffleMode fromValue(String value) { + for (GroupShuffleMode b : GroupShuffleMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupShuffleMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupShuffleMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupShuffleMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupShuffleMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupStateType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupStateType.java new file mode 100644 index 0000000000000..8a78d63a13226 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupStateType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupState. + */ +@JsonAdapter(GroupStateType.Adapter.class) +public enum GroupStateType { + + IDLE("Idle"), + + WAITING("Waiting"), + + PAUSED("Paused"), + + PLAYING("Playing"); + + private String value; + + GroupStateType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupStateType fromValue(String value) { + for (GroupStateType b : GroupStateType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupStateType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupStateType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupStateType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupStateType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupUpdateType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupUpdateType.java new file mode 100644 index 0000000000000..c18a83d6b3d5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GroupUpdateType.java @@ -0,0 +1,96 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum GroupUpdateType. + */ +@JsonAdapter(GroupUpdateType.Adapter.class) +public enum GroupUpdateType { + + USER_JOINED("UserJoined"), + + USER_LEFT("UserLeft"), + + GROUP_JOINED("GroupJoined"), + + GROUP_LEFT("GroupLeft"), + + STATE_UPDATE("StateUpdate"), + + PLAY_QUEUE("PlayQueue"), + + NOT_IN_GROUP("NotInGroup"), + + GROUP_DOES_NOT_EXIST("GroupDoesNotExist"), + + CREATE_GROUP_DENIED("CreateGroupDenied"), + + JOIN_GROUP_DENIED("JoinGroupDenied"), + + LIBRARY_ACCESS_DENIED("LibraryAccessDenied"); + + private String value; + + GroupUpdateType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GroupUpdateType fromValue(String value) { + for (GroupUpdateType b : GroupUpdateType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GroupUpdateType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GroupUpdateType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return GroupUpdateType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + GroupUpdateType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GuideInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GuideInfo.java new file mode 100644 index 0000000000000..4d688587c80d8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/GuideInfo.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * GuideInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class GuideInfo { + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public GuideInfo() { + } + + public GuideInfo startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public GuideInfo endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GuideInfo guideInfo = (GuideInfo) o; + return Objects.equals(this.startDate, guideInfo.startDate) && + Objects.equals(this.endDate, guideInfo.endDate); + } + + @Override + public int hashCode() { + return Objects.hash(startDate, endDate); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GuideInfo {\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GuideInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GuideInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GuideInfo is not found in the empty JSON string", GuideInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GuideInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GuideInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GuideInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GuideInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GuideInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GuideInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GuideInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GuideInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of GuideInfo + * @throws IOException if the JSON string is invalid with respect to GuideInfo + */ + public static GuideInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GuideInfo.class); + } + + /** + * Convert an instance of GuideInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HardwareEncodingType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HardwareEncodingType.java new file mode 100644 index 0000000000000..85483d1cd38e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HardwareEncodingType.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum HardwareEncodingType. + */ +@JsonAdapter(HardwareEncodingType.Adapter.class) +public enum HardwareEncodingType { + + AMF("AMF"), + + QSV("QSV"), + + NVENC("NVENC"), + + V4_L2_M2_M("V4L2M2M"), + + VAAPI("VAAPI"), + + VIDEO_TOOL_BOX("VideoToolBox"); + + private String value; + + HardwareEncodingType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static HardwareEncodingType fromValue(String value) { + for (HardwareEncodingType b : HardwareEncodingType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final HardwareEncodingType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public HardwareEncodingType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return HardwareEncodingType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + HardwareEncodingType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HeaderMatchType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HeaderMatchType.java new file mode 100644 index 0000000000000..05db03ef3ac81 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HeaderMatchType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets HeaderMatchType + */ +@JsonAdapter(HeaderMatchType.Adapter.class) +public enum HeaderMatchType { + + EQUALS("Equals"), + + REGEX("Regex"), + + SUBSTRING("Substring"); + + private String value; + + HeaderMatchType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static HeaderMatchType fromValue(String value) { + for (HeaderMatchType b : HeaderMatchType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final HeaderMatchType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public HeaderMatchType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return HeaderMatchType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + HeaderMatchType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HttpHeaderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HttpHeaderInfo.java new file mode 100644 index 0000000000000..06d41917c9850 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/HttpHeaderInfo.java @@ -0,0 +1,280 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.HeaderMatchType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * HttpHeaderInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class HttpHeaderInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public static final String SERIALIZED_NAME_MATCH = "Match"; + @SerializedName(SERIALIZED_NAME_MATCH) + @javax.annotation.Nullable + private HeaderMatchType match; + + public HttpHeaderInfo() { + } + + public HttpHeaderInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public HttpHeaderInfo value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + public HttpHeaderInfo match(@javax.annotation.Nullable HeaderMatchType match) { + this.match = match; + return this; + } + + /** + * Get match + * @return match + */ + @javax.annotation.Nullable + public HeaderMatchType getMatch() { + return match; + } + + public void setMatch(@javax.annotation.Nullable HeaderMatchType match) { + this.match = match; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HttpHeaderInfo httpHeaderInfo = (HttpHeaderInfo) o; + return Objects.equals(this.name, httpHeaderInfo.name) && + Objects.equals(this.value, httpHeaderInfo.value) && + Objects.equals(this.match, httpHeaderInfo.match); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value, match); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HttpHeaderInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" match: ").append(toIndentedString(match)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + openapiFields.add("Match"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to HttpHeaderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!HttpHeaderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in HttpHeaderInfo is not found in the empty JSON string", HttpHeaderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!HttpHeaderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `HttpHeaderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + // validate the optional field `Match` + if (jsonObj.get("Match") != null && !jsonObj.get("Match").isJsonNull()) { + HeaderMatchType.validateJsonElement(jsonObj.get("Match")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!HttpHeaderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'HttpHeaderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(HttpHeaderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, HttpHeaderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public HttpHeaderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of HttpHeaderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of HttpHeaderInfo + * @throws IOException if the JSON string is invalid with respect to HttpHeaderInfo + */ + public static HttpHeaderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, HttpHeaderInfo.class); + } + + /** + * Convert an instance of HttpHeaderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IPlugin.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IPlugin.java new file mode 100644 index 0000000000000..c741277b53422 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IPlugin.java @@ -0,0 +1,359 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Common.Plugins.IPlugin. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class IPlugin { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_ASSEMBLY_FILE_PATH = "AssemblyFilePath"; + @SerializedName(SERIALIZED_NAME_ASSEMBLY_FILE_PATH) + @javax.annotation.Nullable + private String assemblyFilePath; + + public static final String SERIALIZED_NAME_CAN_UNINSTALL = "CanUninstall"; + @SerializedName(SERIALIZED_NAME_CAN_UNINSTALL) + @javax.annotation.Nullable + private Boolean canUninstall; + + public static final String SERIALIZED_NAME_DATA_FOLDER_PATH = "DataFolderPath"; + @SerializedName(SERIALIZED_NAME_DATA_FOLDER_PATH) + @javax.annotation.Nullable + private String dataFolderPath; + + public IPlugin() { + } + + public IPlugin( + String name, + String description, + UUID id, + String version, + String assemblyFilePath, + Boolean canUninstall, + String dataFolderPath + ) { + this(); + this.name = name; + this.description = description; + this.id = id; + this.version = version; + this.assemblyFilePath = assemblyFilePath; + this.canUninstall = canUninstall; + this.dataFolderPath = dataFolderPath; + } + + /** + * Gets the name of the plugin. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + + + /** + * Gets the Description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + + + /** + * Gets the unique id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + + + /** + * Gets the plugin version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + + + /** + * Gets the path to the assembly file. + * @return assemblyFilePath + */ + @javax.annotation.Nullable + public String getAssemblyFilePath() { + return assemblyFilePath; + } + + + + /** + * Gets a value indicating whether the plugin can be uninstalled. + * @return canUninstall + */ + @javax.annotation.Nullable + public Boolean getCanUninstall() { + return canUninstall; + } + + + + /** + * Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. + * @return dataFolderPath + */ + @javax.annotation.Nullable + public String getDataFolderPath() { + return dataFolderPath; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IPlugin iplugin = (IPlugin) o; + return Objects.equals(this.name, iplugin.name) && + Objects.equals(this.description, iplugin.description) && + Objects.equals(this.id, iplugin.id) && + Objects.equals(this.version, iplugin.version) && + Objects.equals(this.assemblyFilePath, iplugin.assemblyFilePath) && + Objects.equals(this.canUninstall, iplugin.canUninstall) && + Objects.equals(this.dataFolderPath, iplugin.dataFolderPath); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, id, version, assemblyFilePath, canUninstall, dataFolderPath); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IPlugin {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" assemblyFilePath: ").append(toIndentedString(assemblyFilePath)).append("\n"); + sb.append(" canUninstall: ").append(toIndentedString(canUninstall)).append("\n"); + sb.append(" dataFolderPath: ").append(toIndentedString(dataFolderPath)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Description"); + openapiFields.add("Id"); + openapiFields.add("Version"); + openapiFields.add("AssemblyFilePath"); + openapiFields.add("CanUninstall"); + openapiFields.add("DataFolderPath"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IPlugin + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IPlugin.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IPlugin is not found in the empty JSON string", IPlugin.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IPlugin.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IPlugin` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("AssemblyFilePath") != null && !jsonObj.get("AssemblyFilePath").isJsonNull()) && !jsonObj.get("AssemblyFilePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AssemblyFilePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AssemblyFilePath").toString())); + } + if ((jsonObj.get("DataFolderPath") != null && !jsonObj.get("DataFolderPath").isJsonNull()) && !jsonObj.get("DataFolderPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DataFolderPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DataFolderPath").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IPlugin.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IPlugin' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IPlugin.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IPlugin value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IPlugin read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IPlugin given an JSON string + * + * @param jsonString JSON string + * @return An instance of IPlugin + * @throws IOException if the JSON string is invalid with respect to IPlugin + */ + public static IPlugin fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IPlugin.class); + } + + /** + * Convert an instance of IPlugin to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java new file mode 100644 index 0000000000000..adcfe7a92fde9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IgnoreWaitRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class IgnoreWaitRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class IgnoreWaitRequestDto { + public static final String SERIALIZED_NAME_IGNORE_WAIT = "IgnoreWait"; + @SerializedName(SERIALIZED_NAME_IGNORE_WAIT) + @javax.annotation.Nullable + private Boolean ignoreWait; + + public IgnoreWaitRequestDto() { + } + + public IgnoreWaitRequestDto ignoreWait(@javax.annotation.Nullable Boolean ignoreWait) { + this.ignoreWait = ignoreWait; + return this; + } + + /** + * Gets or sets a value indicating whether the client should be ignored. + * @return ignoreWait + */ + @javax.annotation.Nullable + public Boolean getIgnoreWait() { + return ignoreWait; + } + + public void setIgnoreWait(@javax.annotation.Nullable Boolean ignoreWait) { + this.ignoreWait = ignoreWait; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IgnoreWaitRequestDto ignoreWaitRequestDto = (IgnoreWaitRequestDto) o; + return Objects.equals(this.ignoreWait, ignoreWaitRequestDto.ignoreWait); + } + + @Override + public int hashCode() { + return Objects.hash(ignoreWait); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IgnoreWaitRequestDto {\n"); + sb.append(" ignoreWait: ").append(toIndentedString(ignoreWait)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IgnoreWait"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IgnoreWaitRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IgnoreWaitRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IgnoreWaitRequestDto is not found in the empty JSON string", IgnoreWaitRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IgnoreWaitRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IgnoreWaitRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IgnoreWaitRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IgnoreWaitRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IgnoreWaitRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IgnoreWaitRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IgnoreWaitRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IgnoreWaitRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of IgnoreWaitRequestDto + * @throws IOException if the JSON string is invalid with respect to IgnoreWaitRequestDto + */ + public static IgnoreWaitRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IgnoreWaitRequestDto.class); + } + + /** + * Convert an instance of IgnoreWaitRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageByNameInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageByNameInfo.java new file mode 100644 index 0000000000000..004d53aea6589 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageByNameInfo.java @@ -0,0 +1,335 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ImageByNameInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageByNameInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_THEME = "Theme"; + @SerializedName(SERIALIZED_NAME_THEME) + @javax.annotation.Nullable + private String theme; + + public static final String SERIALIZED_NAME_CONTEXT = "Context"; + @SerializedName(SERIALIZED_NAME_CONTEXT) + @javax.annotation.Nullable + private String context; + + public static final String SERIALIZED_NAME_FILE_LENGTH = "FileLength"; + @SerializedName(SERIALIZED_NAME_FILE_LENGTH) + @javax.annotation.Nullable + private Long fileLength; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable + private String format; + + public ImageByNameInfo() { + } + + public ImageByNameInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ImageByNameInfo theme(@javax.annotation.Nullable String theme) { + this.theme = theme; + return this; + } + + /** + * Gets or sets the theme. + * @return theme + */ + @javax.annotation.Nullable + public String getTheme() { + return theme; + } + + public void setTheme(@javax.annotation.Nullable String theme) { + this.theme = theme; + } + + + public ImageByNameInfo context(@javax.annotation.Nullable String context) { + this.context = context; + return this; + } + + /** + * Gets or sets the context. + * @return context + */ + @javax.annotation.Nullable + public String getContext() { + return context; + } + + public void setContext(@javax.annotation.Nullable String context) { + this.context = context; + } + + + public ImageByNameInfo fileLength(@javax.annotation.Nullable Long fileLength) { + this.fileLength = fileLength; + return this; + } + + /** + * Gets or sets the length of the file. + * @return fileLength + */ + @javax.annotation.Nullable + public Long getFileLength() { + return fileLength; + } + + public void setFileLength(@javax.annotation.Nullable Long fileLength) { + this.fileLength = fileLength; + } + + + public ImageByNameInfo format(@javax.annotation.Nullable String format) { + this.format = format; + return this; + } + + /** + * Gets or sets the format. + * @return format + */ + @javax.annotation.Nullable + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nullable String format) { + this.format = format; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageByNameInfo imageByNameInfo = (ImageByNameInfo) o; + return Objects.equals(this.name, imageByNameInfo.name) && + Objects.equals(this.theme, imageByNameInfo.theme) && + Objects.equals(this.context, imageByNameInfo.context) && + Objects.equals(this.fileLength, imageByNameInfo.fileLength) && + Objects.equals(this.format, imageByNameInfo.format); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, theme, context, fileLength, format); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageByNameInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" theme: ").append(toIndentedString(theme)).append("\n"); + sb.append(" context: ").append(toIndentedString(context)).append("\n"); + sb.append(" fileLength: ").append(toIndentedString(fileLength)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Theme"); + openapiFields.add("Context"); + openapiFields.add("FileLength"); + openapiFields.add("Format"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageByNameInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageByNameInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageByNameInfo is not found in the empty JSON string", ImageByNameInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageByNameInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageByNameInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Theme") != null && !jsonObj.get("Theme").isJsonNull()) && !jsonObj.get("Theme").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Theme` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Theme").toString())); + } + if ((jsonObj.get("Context") != null && !jsonObj.get("Context").isJsonNull()) && !jsonObj.get("Context").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Context` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Context").toString())); + } + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) && !jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageByNameInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageByNameInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageByNameInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageByNameInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageByNameInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageByNameInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageByNameInfo + * @throws IOException if the JSON string is invalid with respect to ImageByNameInfo + */ + public static ImageByNameInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageByNameInfo.class); + } + + /** + * Convert an instance of ImageByNameInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageFormat.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageFormat.java new file mode 100644 index 0000000000000..78543496c0b74 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageFormat.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ImageOutputFormat. + */ +@JsonAdapter(ImageFormat.Adapter.class) +public enum ImageFormat { + + BMP("Bmp"), + + GIF("Gif"), + + JPG("Jpg"), + + PNG("Png"), + + WEBP("Webp"); + + private String value; + + ImageFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageFormat fromValue(String value) { + for (ImageFormat b : ImageFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageFormat.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageInfo.java new file mode 100644 index 0000000000000..1a73f1d00fb9a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageInfo.java @@ -0,0 +1,418 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ImageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageInfo { + public static final String SERIALIZED_NAME_IMAGE_TYPE = "ImageType"; + @SerializedName(SERIALIZED_NAME_IMAGE_TYPE) + @javax.annotation.Nullable + private ImageType imageType; + + public static final String SERIALIZED_NAME_IMAGE_INDEX = "ImageIndex"; + @SerializedName(SERIALIZED_NAME_IMAGE_INDEX) + @javax.annotation.Nullable + private Integer imageIndex; + + public static final String SERIALIZED_NAME_IMAGE_TAG = "ImageTag"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAG) + @javax.annotation.Nullable + private String imageTag; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_BLUR_HASH = "BlurHash"; + @SerializedName(SERIALIZED_NAME_BLUR_HASH) + @javax.annotation.Nullable + private String blurHash; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public ImageInfo() { + } + + public ImageInfo imageType(@javax.annotation.Nullable ImageType imageType) { + this.imageType = imageType; + return this; + } + + /** + * Gets or sets the type of the image. + * @return imageType + */ + @javax.annotation.Nullable + public ImageType getImageType() { + return imageType; + } + + public void setImageType(@javax.annotation.Nullable ImageType imageType) { + this.imageType = imageType; + } + + + public ImageInfo imageIndex(@javax.annotation.Nullable Integer imageIndex) { + this.imageIndex = imageIndex; + return this; + } + + /** + * Gets or sets the index of the image. + * @return imageIndex + */ + @javax.annotation.Nullable + public Integer getImageIndex() { + return imageIndex; + } + + public void setImageIndex(@javax.annotation.Nullable Integer imageIndex) { + this.imageIndex = imageIndex; + } + + + public ImageInfo imageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + return this; + } + + /** + * Gets or sets the image tag. + * @return imageTag + */ + @javax.annotation.Nullable + public String getImageTag() { + return imageTag; + } + + public void setImageTag(@javax.annotation.Nullable String imageTag) { + this.imageTag = imageTag; + } + + + public ImageInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ImageInfo blurHash(@javax.annotation.Nullable String blurHash) { + this.blurHash = blurHash; + return this; + } + + /** + * Gets or sets the blurhash. + * @return blurHash + */ + @javax.annotation.Nullable + public String getBlurHash() { + return blurHash; + } + + public void setBlurHash(@javax.annotation.Nullable String blurHash) { + this.blurHash = blurHash; + } + + + public ImageInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public ImageInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public ImageInfo size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageInfo imageInfo = (ImageInfo) o; + return Objects.equals(this.imageType, imageInfo.imageType) && + Objects.equals(this.imageIndex, imageInfo.imageIndex) && + Objects.equals(this.imageTag, imageInfo.imageTag) && + Objects.equals(this.path, imageInfo.path) && + Objects.equals(this.blurHash, imageInfo.blurHash) && + Objects.equals(this.height, imageInfo.height) && + Objects.equals(this.width, imageInfo.width) && + Objects.equals(this.size, imageInfo.size); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(imageType, imageIndex, imageTag, path, blurHash, height, width, size); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageInfo {\n"); + sb.append(" imageType: ").append(toIndentedString(imageType)).append("\n"); + sb.append(" imageIndex: ").append(toIndentedString(imageIndex)).append("\n"); + sb.append(" imageTag: ").append(toIndentedString(imageTag)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" blurHash: ").append(toIndentedString(blurHash)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ImageType"); + openapiFields.add("ImageIndex"); + openapiFields.add("ImageTag"); + openapiFields.add("Path"); + openapiFields.add("BlurHash"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("Size"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageInfo is not found in the empty JSON string", ImageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ImageType` + if (jsonObj.get("ImageType") != null && !jsonObj.get("ImageType").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("ImageType")); + } + if ((jsonObj.get("ImageTag") != null && !jsonObj.get("ImageTag").isJsonNull()) && !jsonObj.get("ImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageTag").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("BlurHash") != null && !jsonObj.get("BlurHash").isJsonNull()) && !jsonObj.get("BlurHash").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BlurHash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BlurHash").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageInfo + * @throws IOException if the JSON string is invalid with respect to ImageInfo + */ + public static ImageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageInfo.class); + } + + /** + * Convert an instance of ImageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOption.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOption.java new file mode 100644 index 0000000000000..3334eade54f73 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOption.java @@ -0,0 +1,262 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ImageOption + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageOption { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ImageType type; + + public static final String SERIALIZED_NAME_LIMIT = "Limit"; + @SerializedName(SERIALIZED_NAME_LIMIT) + @javax.annotation.Nullable + private Integer limit; + + public static final String SERIALIZED_NAME_MIN_WIDTH = "MinWidth"; + @SerializedName(SERIALIZED_NAME_MIN_WIDTH) + @javax.annotation.Nullable + private Integer minWidth; + + public ImageOption() { + } + + public ImageOption type(@javax.annotation.Nullable ImageType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public ImageType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ImageType type) { + this.type = type; + } + + + public ImageOption limit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + return this; + } + + /** + * Gets or sets the limit. + * @return limit + */ + @javax.annotation.Nullable + public Integer getLimit() { + return limit; + } + + public void setLimit(@javax.annotation.Nullable Integer limit) { + this.limit = limit; + } + + + public ImageOption minWidth(@javax.annotation.Nullable Integer minWidth) { + this.minWidth = minWidth; + return this; + } + + /** + * Gets or sets the minimum width. + * @return minWidth + */ + @javax.annotation.Nullable + public Integer getMinWidth() { + return minWidth; + } + + public void setMinWidth(@javax.annotation.Nullable Integer minWidth) { + this.minWidth = minWidth; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageOption imageOption = (ImageOption) o; + return Objects.equals(this.type, imageOption.type) && + Objects.equals(this.limit, imageOption.limit) && + Objects.equals(this.minWidth, imageOption.minWidth); + } + + @Override + public int hashCode() { + return Objects.hash(type, limit, minWidth); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageOption {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" minWidth: ").append(toIndentedString(minWidth)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Limit"); + openapiFields.add("MinWidth"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageOption + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageOption.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageOption is not found in the empty JSON string", ImageOption.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageOption.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageOption` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageOption.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageOption' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageOption.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageOption value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageOption read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageOption given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageOption + * @throws IOException if the JSON string is invalid with respect to ImageOption + */ + public static ImageOption fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageOption.class); + } + + /** + * Convert an instance of ImageOption to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOrientation.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOrientation.java new file mode 100644 index 0000000000000..8b30e3d956db7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageOrientation.java @@ -0,0 +1,90 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ImageOrientation + */ +@JsonAdapter(ImageOrientation.Adapter.class) +public enum ImageOrientation { + + TOP_LEFT("TopLeft"), + + TOP_RIGHT("TopRight"), + + BOTTOM_RIGHT("BottomRight"), + + BOTTOM_LEFT("BottomLeft"), + + LEFT_TOP("LeftTop"), + + RIGHT_TOP("RightTop"), + + RIGHT_BOTTOM("RightBottom"), + + LEFT_BOTTOM("LeftBottom"); + + private String value; + + ImageOrientation(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageOrientation fromValue(String value) { + for (ImageOrientation b : ImageOrientation.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageOrientation enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageOrientation read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageOrientation.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageOrientation.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageProviderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageProviderInfo.java new file mode 100644 index 0000000000000..0d39f78877563 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageProviderInfo.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageType; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ImageProviderInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ImageProviderInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SUPPORTED_IMAGES = "SupportedImages"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_IMAGES) + @javax.annotation.Nullable + private List supportedImages = new ArrayList<>(); + + public ImageProviderInfo() { + } + + public ImageProviderInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ImageProviderInfo supportedImages(@javax.annotation.Nullable List supportedImages) { + this.supportedImages = supportedImages; + return this; + } + + public ImageProviderInfo addSupportedImagesItem(ImageType supportedImagesItem) { + if (this.supportedImages == null) { + this.supportedImages = new ArrayList<>(); + } + this.supportedImages.add(supportedImagesItem); + return this; + } + + /** + * Gets the supported image types. + * @return supportedImages + */ + @javax.annotation.Nullable + public List getSupportedImages() { + return supportedImages; + } + + public void setSupportedImages(@javax.annotation.Nullable List supportedImages) { + this.supportedImages = supportedImages; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageProviderInfo imageProviderInfo = (ImageProviderInfo) o; + return Objects.equals(this.name, imageProviderInfo.name) && + Objects.equals(this.supportedImages, imageProviderInfo.supportedImages); + } + + @Override + public int hashCode() { + return Objects.hash(name, supportedImages); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageProviderInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" supportedImages: ").append(toIndentedString(supportedImages)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("SupportedImages"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageProviderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageProviderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImageProviderInfo is not found in the empty JSON string", ImageProviderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageProviderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImageProviderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedImages") != null && !jsonObj.get("SupportedImages").isJsonNull() && !jsonObj.get("SupportedImages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedImages` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedImages").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageProviderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageProviderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImageProviderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageProviderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageProviderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImageProviderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageProviderInfo + * @throws IOException if the JSON string is invalid with respect to ImageProviderInfo + */ + public static ImageProviderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageProviderInfo.class); + } + + /** + * Convert an instance of ImageProviderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageSavingConvention.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageSavingConvention.java new file mode 100644 index 0000000000000..90d06c0e993a5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageSavingConvention.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ImageSavingConvention + */ +@JsonAdapter(ImageSavingConvention.Adapter.class) +public enum ImageSavingConvention { + + LEGACY("Legacy"), + + COMPATIBLE("Compatible"); + + private String value; + + ImageSavingConvention(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageSavingConvention fromValue(String value) { + for (ImageSavingConvention b : ImageSavingConvention.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageSavingConvention enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageSavingConvention read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageSavingConvention.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageSavingConvention.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageType.java new file mode 100644 index 0000000000000..e8c4d6f65b0fd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ImageType.java @@ -0,0 +1,100 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ImageType. + */ +@JsonAdapter(ImageType.Adapter.class) +public enum ImageType { + + PRIMARY("Primary"), + + ART("Art"), + + BACKDROP("Backdrop"), + + BANNER("Banner"), + + LOGO("Logo"), + + THUMB("Thumb"), + + DISC("Disc"), + + BOX("Box"), + + SCREENSHOT("Screenshot"), + + MENU("Menu"), + + CHAPTER("Chapter"), + + BOX_REAR("BoxRear"), + + PROFILE("Profile"); + + private String value; + + ImageType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageType fromValue(String value) { + for (ImageType b : ImageType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ImageType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ImageType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/InstallationInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/InstallationInfo.java new file mode 100644 index 0000000000000..6c4e7b6d8c6cc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/InstallationInfo.java @@ -0,0 +1,401 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PackageInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class InstallationInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class InstallationInfo { + public static final String SERIALIZED_NAME_GUID = "Guid"; + @SerializedName(SERIALIZED_NAME_GUID) + @javax.annotation.Nullable + private UUID guid; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_CHANGELOG = "Changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + @javax.annotation.Nullable + private String changelog; + + public static final String SERIALIZED_NAME_SOURCE_URL = "SourceUrl"; + @SerializedName(SERIALIZED_NAME_SOURCE_URL) + @javax.annotation.Nullable + private String sourceUrl; + + public static final String SERIALIZED_NAME_CHECKSUM = "Checksum"; + @SerializedName(SERIALIZED_NAME_CHECKSUM) + @javax.annotation.Nullable + private String checksum; + + public static final String SERIALIZED_NAME_PACKAGE_INFO = "PackageInfo"; + @SerializedName(SERIALIZED_NAME_PACKAGE_INFO) + @javax.annotation.Nullable + private PackageInfo packageInfo; + + public InstallationInfo() { + } + + public InstallationInfo guid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + return this; + } + + /** + * Gets or sets the Id. + * @return guid + */ + @javax.annotation.Nullable + public UUID getGuid() { + return guid; + } + + public void setGuid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + } + + + public InstallationInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public InstallationInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public InstallationInfo changelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + return this; + } + + /** + * Gets or sets the changelog for this version. + * @return changelog + */ + @javax.annotation.Nullable + public String getChangelog() { + return changelog; + } + + public void setChangelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + } + + + public InstallationInfo sourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + return this; + } + + /** + * Gets or sets the source URL. + * @return sourceUrl + */ + @javax.annotation.Nullable + public String getSourceUrl() { + return sourceUrl; + } + + public void setSourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + } + + + public InstallationInfo checksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + return this; + } + + /** + * Gets or sets a checksum for the binary. + * @return checksum + */ + @javax.annotation.Nullable + public String getChecksum() { + return checksum; + } + + public void setChecksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + } + + + public InstallationInfo packageInfo(@javax.annotation.Nullable PackageInfo packageInfo) { + this.packageInfo = packageInfo; + return this; + } + + /** + * Gets or sets package information for the installation. + * @return packageInfo + */ + @javax.annotation.Nullable + public PackageInfo getPackageInfo() { + return packageInfo; + } + + public void setPackageInfo(@javax.annotation.Nullable PackageInfo packageInfo) { + this.packageInfo = packageInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InstallationInfo installationInfo = (InstallationInfo) o; + return Objects.equals(this.guid, installationInfo.guid) && + Objects.equals(this.name, installationInfo.name) && + Objects.equals(this.version, installationInfo.version) && + Objects.equals(this.changelog, installationInfo.changelog) && + Objects.equals(this.sourceUrl, installationInfo.sourceUrl) && + Objects.equals(this.checksum, installationInfo.checksum) && + Objects.equals(this.packageInfo, installationInfo.packageInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(guid, name, version, changelog, sourceUrl, checksum, packageInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InstallationInfo {\n"); + sb.append(" guid: ").append(toIndentedString(guid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" sourceUrl: ").append(toIndentedString(sourceUrl)).append("\n"); + sb.append(" checksum: ").append(toIndentedString(checksum)).append("\n"); + sb.append(" packageInfo: ").append(toIndentedString(packageInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Guid"); + openapiFields.add("Name"); + openapiFields.add("Version"); + openapiFields.add("Changelog"); + openapiFields.add("SourceUrl"); + openapiFields.add("Checksum"); + openapiFields.add("PackageInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InstallationInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InstallationInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InstallationInfo is not found in the empty JSON string", InstallationInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InstallationInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InstallationInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Guid") != null && !jsonObj.get("Guid").isJsonNull()) && !jsonObj.get("Guid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Guid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Guid").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("Changelog") != null && !jsonObj.get("Changelog").isJsonNull()) && !jsonObj.get("Changelog").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Changelog` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Changelog").toString())); + } + if ((jsonObj.get("SourceUrl") != null && !jsonObj.get("SourceUrl").isJsonNull()) && !jsonObj.get("SourceUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SourceUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SourceUrl").toString())); + } + if ((jsonObj.get("Checksum") != null && !jsonObj.get("Checksum").isJsonNull()) && !jsonObj.get("Checksum").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Checksum` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Checksum").toString())); + } + // validate the optional field `PackageInfo` + if (jsonObj.get("PackageInfo") != null && !jsonObj.get("PackageInfo").isJsonNull()) { + PackageInfo.validateJsonElement(jsonObj.get("PackageInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InstallationInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InstallationInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InstallationInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InstallationInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InstallationInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InstallationInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of InstallationInfo + * @throws IOException if the JSON string is invalid with respect to InstallationInfo + */ + public static InstallationInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InstallationInfo.class); + } + + /** + * Convert an instance of InstallationInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IsoType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IsoType.java new file mode 100644 index 0000000000000..a79f772cf0388 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/IsoType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum IsoType. + */ +@JsonAdapter(IsoType.Adapter.class) +public enum IsoType { + + DVD("Dvd"), + + BLU_RAY("BluRay"); + + private String value; + + IsoType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IsoType fromValue(String value) { + for (IsoType b : IsoType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IsoType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IsoType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IsoType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IsoType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemCounts.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemCounts.java new file mode 100644 index 0000000000000..1491629bd21fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemCounts.java @@ -0,0 +1,500 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class LibrarySummary. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ItemCounts { + public static final String SERIALIZED_NAME_MOVIE_COUNT = "MovieCount"; + @SerializedName(SERIALIZED_NAME_MOVIE_COUNT) + @javax.annotation.Nullable + private Integer movieCount; + + public static final String SERIALIZED_NAME_SERIES_COUNT = "SeriesCount"; + @SerializedName(SERIALIZED_NAME_SERIES_COUNT) + @javax.annotation.Nullable + private Integer seriesCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_ARTIST_COUNT = "ArtistCount"; + @SerializedName(SERIALIZED_NAME_ARTIST_COUNT) + @javax.annotation.Nullable + private Integer artistCount; + + public static final String SERIALIZED_NAME_PROGRAM_COUNT = "ProgramCount"; + @SerializedName(SERIALIZED_NAME_PROGRAM_COUNT) + @javax.annotation.Nullable + private Integer programCount; + + public static final String SERIALIZED_NAME_TRAILER_COUNT = "TrailerCount"; + @SerializedName(SERIALIZED_NAME_TRAILER_COUNT) + @javax.annotation.Nullable + private Integer trailerCount; + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_ALBUM_COUNT = "AlbumCount"; + @SerializedName(SERIALIZED_NAME_ALBUM_COUNT) + @javax.annotation.Nullable + private Integer albumCount; + + public static final String SERIALIZED_NAME_MUSIC_VIDEO_COUNT = "MusicVideoCount"; + @SerializedName(SERIALIZED_NAME_MUSIC_VIDEO_COUNT) + @javax.annotation.Nullable + private Integer musicVideoCount; + + public static final String SERIALIZED_NAME_BOX_SET_COUNT = "BoxSetCount"; + @SerializedName(SERIALIZED_NAME_BOX_SET_COUNT) + @javax.annotation.Nullable + private Integer boxSetCount; + + public static final String SERIALIZED_NAME_BOOK_COUNT = "BookCount"; + @SerializedName(SERIALIZED_NAME_BOOK_COUNT) + @javax.annotation.Nullable + private Integer bookCount; + + public static final String SERIALIZED_NAME_ITEM_COUNT = "ItemCount"; + @SerializedName(SERIALIZED_NAME_ITEM_COUNT) + @javax.annotation.Nullable + private Integer itemCount; + + public ItemCounts() { + } + + public ItemCounts movieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + return this; + } + + /** + * Gets or sets the movie count. + * @return movieCount + */ + @javax.annotation.Nullable + public Integer getMovieCount() { + return movieCount; + } + + public void setMovieCount(@javax.annotation.Nullable Integer movieCount) { + this.movieCount = movieCount; + } + + + public ItemCounts seriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + return this; + } + + /** + * Gets or sets the series count. + * @return seriesCount + */ + @javax.annotation.Nullable + public Integer getSeriesCount() { + return seriesCount; + } + + public void setSeriesCount(@javax.annotation.Nullable Integer seriesCount) { + this.seriesCount = seriesCount; + } + + + public ItemCounts episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public ItemCounts artistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + return this; + } + + /** + * Gets or sets the artist count. + * @return artistCount + */ + @javax.annotation.Nullable + public Integer getArtistCount() { + return artistCount; + } + + public void setArtistCount(@javax.annotation.Nullable Integer artistCount) { + this.artistCount = artistCount; + } + + + public ItemCounts programCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + return this; + } + + /** + * Gets or sets the program count. + * @return programCount + */ + @javax.annotation.Nullable + public Integer getProgramCount() { + return programCount; + } + + public void setProgramCount(@javax.annotation.Nullable Integer programCount) { + this.programCount = programCount; + } + + + public ItemCounts trailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + return this; + } + + /** + * Gets or sets the trailer count. + * @return trailerCount + */ + @javax.annotation.Nullable + public Integer getTrailerCount() { + return trailerCount; + } + + public void setTrailerCount(@javax.annotation.Nullable Integer trailerCount) { + this.trailerCount = trailerCount; + } + + + public ItemCounts songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public ItemCounts albumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + return this; + } + + /** + * Gets or sets the album count. + * @return albumCount + */ + @javax.annotation.Nullable + public Integer getAlbumCount() { + return albumCount; + } + + public void setAlbumCount(@javax.annotation.Nullable Integer albumCount) { + this.albumCount = albumCount; + } + + + public ItemCounts musicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + return this; + } + + /** + * Gets or sets the music video count. + * @return musicVideoCount + */ + @javax.annotation.Nullable + public Integer getMusicVideoCount() { + return musicVideoCount; + } + + public void setMusicVideoCount(@javax.annotation.Nullable Integer musicVideoCount) { + this.musicVideoCount = musicVideoCount; + } + + + public ItemCounts boxSetCount(@javax.annotation.Nullable Integer boxSetCount) { + this.boxSetCount = boxSetCount; + return this; + } + + /** + * Gets or sets the box set count. + * @return boxSetCount + */ + @javax.annotation.Nullable + public Integer getBoxSetCount() { + return boxSetCount; + } + + public void setBoxSetCount(@javax.annotation.Nullable Integer boxSetCount) { + this.boxSetCount = boxSetCount; + } + + + public ItemCounts bookCount(@javax.annotation.Nullable Integer bookCount) { + this.bookCount = bookCount; + return this; + } + + /** + * Gets or sets the book count. + * @return bookCount + */ + @javax.annotation.Nullable + public Integer getBookCount() { + return bookCount; + } + + public void setBookCount(@javax.annotation.Nullable Integer bookCount) { + this.bookCount = bookCount; + } + + + public ItemCounts itemCount(@javax.annotation.Nullable Integer itemCount) { + this.itemCount = itemCount; + return this; + } + + /** + * Gets or sets the item count. + * @return itemCount + */ + @javax.annotation.Nullable + public Integer getItemCount() { + return itemCount; + } + + public void setItemCount(@javax.annotation.Nullable Integer itemCount) { + this.itemCount = itemCount; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ItemCounts itemCounts = (ItemCounts) o; + return Objects.equals(this.movieCount, itemCounts.movieCount) && + Objects.equals(this.seriesCount, itemCounts.seriesCount) && + Objects.equals(this.episodeCount, itemCounts.episodeCount) && + Objects.equals(this.artistCount, itemCounts.artistCount) && + Objects.equals(this.programCount, itemCounts.programCount) && + Objects.equals(this.trailerCount, itemCounts.trailerCount) && + Objects.equals(this.songCount, itemCounts.songCount) && + Objects.equals(this.albumCount, itemCounts.albumCount) && + Objects.equals(this.musicVideoCount, itemCounts.musicVideoCount) && + Objects.equals(this.boxSetCount, itemCounts.boxSetCount) && + Objects.equals(this.bookCount, itemCounts.bookCount) && + Objects.equals(this.itemCount, itemCounts.itemCount); + } + + @Override + public int hashCode() { + return Objects.hash(movieCount, seriesCount, episodeCount, artistCount, programCount, trailerCount, songCount, albumCount, musicVideoCount, boxSetCount, bookCount, itemCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ItemCounts {\n"); + sb.append(" movieCount: ").append(toIndentedString(movieCount)).append("\n"); + sb.append(" seriesCount: ").append(toIndentedString(seriesCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" artistCount: ").append(toIndentedString(artistCount)).append("\n"); + sb.append(" programCount: ").append(toIndentedString(programCount)).append("\n"); + sb.append(" trailerCount: ").append(toIndentedString(trailerCount)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" albumCount: ").append(toIndentedString(albumCount)).append("\n"); + sb.append(" musicVideoCount: ").append(toIndentedString(musicVideoCount)).append("\n"); + sb.append(" boxSetCount: ").append(toIndentedString(boxSetCount)).append("\n"); + sb.append(" bookCount: ").append(toIndentedString(bookCount)).append("\n"); + sb.append(" itemCount: ").append(toIndentedString(itemCount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MovieCount"); + openapiFields.add("SeriesCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("ArtistCount"); + openapiFields.add("ProgramCount"); + openapiFields.add("TrailerCount"); + openapiFields.add("SongCount"); + openapiFields.add("AlbumCount"); + openapiFields.add("MusicVideoCount"); + openapiFields.add("BoxSetCount"); + openapiFields.add("BookCount"); + openapiFields.add("ItemCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ItemCounts + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ItemCounts.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ItemCounts is not found in the empty JSON string", ItemCounts.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ItemCounts.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ItemCounts` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ItemCounts.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ItemCounts' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ItemCounts.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ItemCounts value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ItemCounts read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ItemCounts given an JSON string + * + * @param jsonString JSON string + * @return An instance of ItemCounts + * @throws IOException if the JSON string is invalid with respect to ItemCounts + */ + public static ItemCounts fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ItemCounts.class); + } + + /** + * Convert an instance of ItemCounts to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFields.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFields.java new file mode 100644 index 0000000000000..611c77a551eff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFields.java @@ -0,0 +1,196 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Used to control the data that gets attached to DtoBaseItems. + */ +@JsonAdapter(ItemFields.Adapter.class) +public enum ItemFields { + + AIR_TIME("AirTime"), + + CAN_DELETE("CanDelete"), + + CAN_DOWNLOAD("CanDownload"), + + CHANNEL_INFO("ChannelInfo"), + + CHAPTERS("Chapters"), + + CHILD_COUNT("ChildCount"), + + CUMULATIVE_RUN_TIME_TICKS("CumulativeRunTimeTicks"), + + CUSTOM_RATING("CustomRating"), + + DATE_CREATED("DateCreated"), + + DATE_LAST_MEDIA_ADDED("DateLastMediaAdded"), + + DISPLAY_PREFERENCES_ID("DisplayPreferencesId"), + + ETAG("Etag"), + + EXTERNAL_URLS("ExternalUrls"), + + GENRES("Genres"), + + HOME_PAGE_URL("HomePageUrl"), + + ITEM_COUNTS("ItemCounts"), + + MEDIA_SOURCE_COUNT("MediaSourceCount"), + + MEDIA_SOURCES("MediaSources"), + + ORIGINAL_TITLE("OriginalTitle"), + + OVERVIEW("Overview"), + + PARENT_ID("ParentId"), + + PATH("Path"), + + PEOPLE("People"), + + PLAY_ACCESS("PlayAccess"), + + PRODUCTION_LOCATIONS("ProductionLocations"), + + PROVIDER_IDS("ProviderIds"), + + PRIMARY_IMAGE_ASPECT_RATIO("PrimaryImageAspectRatio"), + + RECURSIVE_ITEM_COUNT("RecursiveItemCount"), + + SETTINGS("Settings"), + + SCREENSHOT_IMAGE_TAGS("ScreenshotImageTags"), + + SERIES_PRIMARY_IMAGE("SeriesPrimaryImage"), + + SERIES_STUDIO("SeriesStudio"), + + SORT_NAME("SortName"), + + SPECIAL_EPISODE_NUMBERS("SpecialEpisodeNumbers"), + + STUDIOS("Studios"), + + BASIC_SYNC_INFO("BasicSyncInfo"), + + SYNC_INFO("SyncInfo"), + + TAGLINES("Taglines"), + + TAGS("Tags"), + + REMOTE_TRAILERS("RemoteTrailers"), + + MEDIA_STREAMS("MediaStreams"), + + SEASON_USER_DATA("SeasonUserData"), + + SERVICE_NAME("ServiceName"), + + THEME_SONG_IDS("ThemeSongIds"), + + THEME_VIDEO_IDS("ThemeVideoIds"), + + EXTERNAL_ETAG("ExternalEtag"), + + PRESENTATION_UNIQUE_KEY("PresentationUniqueKey"), + + INHERITED_PARENTAL_RATING_VALUE("InheritedParentalRatingValue"), + + EXTERNAL_SERIES_ID("ExternalSeriesId"), + + SERIES_PRESENTATION_UNIQUE_KEY("SeriesPresentationUniqueKey"), + + DATE_LAST_REFRESHED("DateLastRefreshed"), + + DATE_LAST_SAVED("DateLastSaved"), + + REFRESH_STATE("RefreshState"), + + CHANNEL_IMAGE("ChannelImage"), + + ENABLE_MEDIA_SOURCE_DISPLAY("EnableMediaSourceDisplay"), + + WIDTH("Width"), + + HEIGHT("Height"), + + EXTRA_IDS("ExtraIds"), + + LOCAL_TRAILER_COUNT("LocalTrailerCount"), + + IS_HD("IsHD"), + + SPECIAL_FEATURE_COUNT("SpecialFeatureCount"); + + private String value; + + ItemFields(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ItemFields fromValue(String value) { + for (ItemFields b : ItemFields.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ItemFields enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ItemFields read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ItemFields.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ItemFields.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFilter.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFilter.java new file mode 100644 index 0000000000000..a83a1744ceca9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ItemFilter.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum ItemFilter. + */ +@JsonAdapter(ItemFilter.Adapter.class) +public enum ItemFilter { + + IS_FOLDER("IsFolder"), + + IS_NOT_FOLDER("IsNotFolder"), + + IS_UNPLAYED("IsUnplayed"), + + IS_PLAYED("IsPlayed"), + + IS_FAVORITE("IsFavorite"), + + IS_RESUMABLE("IsResumable"), + + LIKES("Likes"), + + DISLIKES("Dislikes"), + + IS_FAVORITE_OR_LIKES("IsFavoriteOrLikes"); + + private String value; + + ItemFilter(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ItemFilter fromValue(String value) { + for (ItemFilter b : ItemFilter.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ItemFilter enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ItemFilter read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ItemFilter.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ItemFilter.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java new file mode 100644 index 0000000000000..cb50ebc482786 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/JoinGroupRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class JoinGroupRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class JoinGroupRequestDto { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public JoinGroupRequestDto() { + } + + public JoinGroupRequestDto groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets or sets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JoinGroupRequestDto joinGroupRequestDto = (JoinGroupRequestDto) o; + return Objects.equals(this.groupId, joinGroupRequestDto.groupId); + } + + @Override + public int hashCode() { + return Objects.hash(groupId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JoinGroupRequestDto {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to JoinGroupRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!JoinGroupRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in JoinGroupRequestDto is not found in the empty JSON string", JoinGroupRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!JoinGroupRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `JoinGroupRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!JoinGroupRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'JoinGroupRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(JoinGroupRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, JoinGroupRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public JoinGroupRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of JoinGroupRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of JoinGroupRequestDto + * @throws IOException if the JSON string is invalid with respect to JoinGroupRequestDto + */ + public static JoinGroupRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, JoinGroupRequestDto.class); + } + + /** + * Convert an instance of JoinGroupRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/KeepUntil.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/KeepUntil.java new file mode 100644 index 0000000000000..0b51550f3d988 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/KeepUntil.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets KeepUntil + */ +@JsonAdapter(KeepUntil.Adapter.class) +public enum KeepUntil { + + UNTIL_DELETED("UntilDeleted"), + + UNTIL_SPACE_NEEDED("UntilSpaceNeeded"), + + UNTIL_WATCHED("UntilWatched"), + + UNTIL_DATE("UntilDate"); + + private String value; + + KeepUntil(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static KeepUntil fromValue(String value) { + for (KeepUntil b : KeepUntil.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final KeepUntil enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public KeepUntil read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return KeepUntil.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + KeepUntil.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java new file mode 100644 index 0000000000000..92610b61d292c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionInfoDto.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library option info dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptionInfoDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DEFAULT_ENABLED = "DefaultEnabled"; + @SerializedName(SERIALIZED_NAME_DEFAULT_ENABLED) + @javax.annotation.Nullable + private Boolean defaultEnabled; + + public LibraryOptionInfoDto() { + } + + public LibraryOptionInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LibraryOptionInfoDto defaultEnabled(@javax.annotation.Nullable Boolean defaultEnabled) { + this.defaultEnabled = defaultEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether default enabled. + * @return defaultEnabled + */ + @javax.annotation.Nullable + public Boolean getDefaultEnabled() { + return defaultEnabled; + } + + public void setDefaultEnabled(@javax.annotation.Nullable Boolean defaultEnabled) { + this.defaultEnabled = defaultEnabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptionInfoDto libraryOptionInfoDto = (LibraryOptionInfoDto) o; + return Objects.equals(this.name, libraryOptionInfoDto.name) && + Objects.equals(this.defaultEnabled, libraryOptionInfoDto.defaultEnabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, defaultEnabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptionInfoDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" defaultEnabled: ").append(toIndentedString(defaultEnabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("DefaultEnabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptionInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptionInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptionInfoDto is not found in the empty JSON string", LibraryOptionInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptionInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptionInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptionInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptionInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptionInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptionInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptionInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptionInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptionInfoDto + * @throws IOException if the JSON string is invalid with respect to LibraryOptionInfoDto + */ + public static LibraryOptionInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptionInfoDto.class); + } + + /** + * Convert an instance of LibraryOptionInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptions.java new file mode 100644 index 0000000000000..1ea21cc2b255f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptions.java @@ -0,0 +1,1056 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.EmbeddedSubtitleOptions; +import org.openapitools.client.model.MediaPathInfo; +import org.openapitools.client.model.TypeOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LibraryOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptions { + public static final String SERIALIZED_NAME_ENABLE_PHOTOS = "EnablePhotos"; + @SerializedName(SERIALIZED_NAME_ENABLE_PHOTOS) + @javax.annotation.Nullable + private Boolean enablePhotos; + + public static final String SERIALIZED_NAME_ENABLE_REALTIME_MONITOR = "EnableRealtimeMonitor"; + @SerializedName(SERIALIZED_NAME_ENABLE_REALTIME_MONITOR) + @javax.annotation.Nullable + private Boolean enableRealtimeMonitor; + + public static final String SERIALIZED_NAME_ENABLE_CHAPTER_IMAGE_EXTRACTION = "EnableChapterImageExtraction"; + @SerializedName(SERIALIZED_NAME_ENABLE_CHAPTER_IMAGE_EXTRACTION) + @javax.annotation.Nullable + private Boolean enableChapterImageExtraction; + + public static final String SERIALIZED_NAME_EXTRACT_CHAPTER_IMAGES_DURING_LIBRARY_SCAN = "ExtractChapterImagesDuringLibraryScan"; + @SerializedName(SERIALIZED_NAME_EXTRACT_CHAPTER_IMAGES_DURING_LIBRARY_SCAN) + @javax.annotation.Nullable + private Boolean extractChapterImagesDuringLibraryScan; + + public static final String SERIALIZED_NAME_PATH_INFOS = "PathInfos"; + @SerializedName(SERIALIZED_NAME_PATH_INFOS) + @javax.annotation.Nullable + private List pathInfos = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SAVE_LOCAL_METADATA = "SaveLocalMetadata"; + @SerializedName(SERIALIZED_NAME_SAVE_LOCAL_METADATA) + @javax.annotation.Nullable + private Boolean saveLocalMetadata; + + public static final String SERIALIZED_NAME_ENABLE_INTERNET_PROVIDERS = "EnableInternetProviders"; + @Deprecated + @SerializedName(SERIALIZED_NAME_ENABLE_INTERNET_PROVIDERS) + @javax.annotation.Nullable + private Boolean enableInternetProviders; + + public static final String SERIALIZED_NAME_ENABLE_AUTOMATIC_SERIES_GROUPING = "EnableAutomaticSeriesGrouping"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTOMATIC_SERIES_GROUPING) + @javax.annotation.Nullable + private Boolean enableAutomaticSeriesGrouping; + + public static final String SERIALIZED_NAME_ENABLE_EMBEDDED_TITLES = "EnableEmbeddedTitles"; + @SerializedName(SERIALIZED_NAME_ENABLE_EMBEDDED_TITLES) + @javax.annotation.Nullable + private Boolean enableEmbeddedTitles; + + public static final String SERIALIZED_NAME_ENABLE_EMBEDDED_EPISODE_INFOS = "EnableEmbeddedEpisodeInfos"; + @SerializedName(SERIALIZED_NAME_ENABLE_EMBEDDED_EPISODE_INFOS) + @javax.annotation.Nullable + private Boolean enableEmbeddedEpisodeInfos; + + public static final String SERIALIZED_NAME_AUTOMATIC_REFRESH_INTERVAL_DAYS = "AutomaticRefreshIntervalDays"; + @SerializedName(SERIALIZED_NAME_AUTOMATIC_REFRESH_INTERVAL_DAYS) + @javax.annotation.Nullable + private Integer automaticRefreshIntervalDays; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_SEASON_ZERO_DISPLAY_NAME = "SeasonZeroDisplayName"; + @SerializedName(SERIALIZED_NAME_SEASON_ZERO_DISPLAY_NAME) + @javax.annotation.Nullable + private String seasonZeroDisplayName; + + public static final String SERIALIZED_NAME_METADATA_SAVERS = "MetadataSavers"; + @SerializedName(SERIALIZED_NAME_METADATA_SAVERS) + @javax.annotation.Nullable + private List metadataSavers; + + public static final String SERIALIZED_NAME_DISABLED_LOCAL_METADATA_READERS = "DisabledLocalMetadataReaders"; + @SerializedName(SERIALIZED_NAME_DISABLED_LOCAL_METADATA_READERS) + @javax.annotation.Nullable + private List disabledLocalMetadataReaders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER = "LocalMetadataReaderOrder"; + @SerializedName(SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER) + @javax.annotation.Nullable + private List localMetadataReaderOrder; + + public static final String SERIALIZED_NAME_DISABLED_SUBTITLE_FETCHERS = "DisabledSubtitleFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_SUBTITLE_FETCHERS) + @javax.annotation.Nullable + private List disabledSubtitleFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_FETCHER_ORDER = "SubtitleFetcherOrder"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_FETCHER_ORDER) + @javax.annotation.Nullable + private List subtitleFetcherOrder = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SKIP_SUBTITLES_IF_EMBEDDED_SUBTITLES_PRESENT = "SkipSubtitlesIfEmbeddedSubtitlesPresent"; + @SerializedName(SERIALIZED_NAME_SKIP_SUBTITLES_IF_EMBEDDED_SUBTITLES_PRESENT) + @javax.annotation.Nullable + private Boolean skipSubtitlesIfEmbeddedSubtitlesPresent; + + public static final String SERIALIZED_NAME_SKIP_SUBTITLES_IF_AUDIO_TRACK_MATCHES = "SkipSubtitlesIfAudioTrackMatches"; + @SerializedName(SERIALIZED_NAME_SKIP_SUBTITLES_IF_AUDIO_TRACK_MATCHES) + @javax.annotation.Nullable + private Boolean skipSubtitlesIfAudioTrackMatches; + + public static final String SERIALIZED_NAME_SUBTITLE_DOWNLOAD_LANGUAGES = "SubtitleDownloadLanguages"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_DOWNLOAD_LANGUAGES) + @javax.annotation.Nullable + private List subtitleDownloadLanguages; + + public static final String SERIALIZED_NAME_REQUIRE_PERFECT_SUBTITLE_MATCH = "RequirePerfectSubtitleMatch"; + @SerializedName(SERIALIZED_NAME_REQUIRE_PERFECT_SUBTITLE_MATCH) + @javax.annotation.Nullable + private Boolean requirePerfectSubtitleMatch; + + public static final String SERIALIZED_NAME_SAVE_SUBTITLES_WITH_MEDIA = "SaveSubtitlesWithMedia"; + @SerializedName(SERIALIZED_NAME_SAVE_SUBTITLES_WITH_MEDIA) + @javax.annotation.Nullable + private Boolean saveSubtitlesWithMedia; + + public static final String SERIALIZED_NAME_AUTOMATICALLY_ADD_TO_COLLECTION = "AutomaticallyAddToCollection"; + @SerializedName(SERIALIZED_NAME_AUTOMATICALLY_ADD_TO_COLLECTION) + @javax.annotation.Nullable + private Boolean automaticallyAddToCollection; + + public static final String SERIALIZED_NAME_ALLOW_EMBEDDED_SUBTITLES = "AllowEmbeddedSubtitles"; + @SerializedName(SERIALIZED_NAME_ALLOW_EMBEDDED_SUBTITLES) + @javax.annotation.Nullable + private EmbeddedSubtitleOptions allowEmbeddedSubtitles; + + public static final String SERIALIZED_NAME_TYPE_OPTIONS = "TypeOptions"; + @SerializedName(SERIALIZED_NAME_TYPE_OPTIONS) + @javax.annotation.Nullable + private List typeOptions = new ArrayList<>(); + + public LibraryOptions() { + } + + public LibraryOptions enablePhotos(@javax.annotation.Nullable Boolean enablePhotos) { + this.enablePhotos = enablePhotos; + return this; + } + + /** + * Get enablePhotos + * @return enablePhotos + */ + @javax.annotation.Nullable + public Boolean getEnablePhotos() { + return enablePhotos; + } + + public void setEnablePhotos(@javax.annotation.Nullable Boolean enablePhotos) { + this.enablePhotos = enablePhotos; + } + + + public LibraryOptions enableRealtimeMonitor(@javax.annotation.Nullable Boolean enableRealtimeMonitor) { + this.enableRealtimeMonitor = enableRealtimeMonitor; + return this; + } + + /** + * Get enableRealtimeMonitor + * @return enableRealtimeMonitor + */ + @javax.annotation.Nullable + public Boolean getEnableRealtimeMonitor() { + return enableRealtimeMonitor; + } + + public void setEnableRealtimeMonitor(@javax.annotation.Nullable Boolean enableRealtimeMonitor) { + this.enableRealtimeMonitor = enableRealtimeMonitor; + } + + + public LibraryOptions enableChapterImageExtraction(@javax.annotation.Nullable Boolean enableChapterImageExtraction) { + this.enableChapterImageExtraction = enableChapterImageExtraction; + return this; + } + + /** + * Get enableChapterImageExtraction + * @return enableChapterImageExtraction + */ + @javax.annotation.Nullable + public Boolean getEnableChapterImageExtraction() { + return enableChapterImageExtraction; + } + + public void setEnableChapterImageExtraction(@javax.annotation.Nullable Boolean enableChapterImageExtraction) { + this.enableChapterImageExtraction = enableChapterImageExtraction; + } + + + public LibraryOptions extractChapterImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractChapterImagesDuringLibraryScan) { + this.extractChapterImagesDuringLibraryScan = extractChapterImagesDuringLibraryScan; + return this; + } + + /** + * Get extractChapterImagesDuringLibraryScan + * @return extractChapterImagesDuringLibraryScan + */ + @javax.annotation.Nullable + public Boolean getExtractChapterImagesDuringLibraryScan() { + return extractChapterImagesDuringLibraryScan; + } + + public void setExtractChapterImagesDuringLibraryScan(@javax.annotation.Nullable Boolean extractChapterImagesDuringLibraryScan) { + this.extractChapterImagesDuringLibraryScan = extractChapterImagesDuringLibraryScan; + } + + + public LibraryOptions pathInfos(@javax.annotation.Nullable List pathInfos) { + this.pathInfos = pathInfos; + return this; + } + + public LibraryOptions addPathInfosItem(MediaPathInfo pathInfosItem) { + if (this.pathInfos == null) { + this.pathInfos = new ArrayList<>(); + } + this.pathInfos.add(pathInfosItem); + return this; + } + + /** + * Get pathInfos + * @return pathInfos + */ + @javax.annotation.Nullable + public List getPathInfos() { + return pathInfos; + } + + public void setPathInfos(@javax.annotation.Nullable List pathInfos) { + this.pathInfos = pathInfos; + } + + + public LibraryOptions saveLocalMetadata(@javax.annotation.Nullable Boolean saveLocalMetadata) { + this.saveLocalMetadata = saveLocalMetadata; + return this; + } + + /** + * Get saveLocalMetadata + * @return saveLocalMetadata + */ + @javax.annotation.Nullable + public Boolean getSaveLocalMetadata() { + return saveLocalMetadata; + } + + public void setSaveLocalMetadata(@javax.annotation.Nullable Boolean saveLocalMetadata) { + this.saveLocalMetadata = saveLocalMetadata; + } + + + @Deprecated + public LibraryOptions enableInternetProviders(@javax.annotation.Nullable Boolean enableInternetProviders) { + this.enableInternetProviders = enableInternetProviders; + return this; + } + + /** + * Get enableInternetProviders + * @return enableInternetProviders + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getEnableInternetProviders() { + return enableInternetProviders; + } + + @Deprecated + public void setEnableInternetProviders(@javax.annotation.Nullable Boolean enableInternetProviders) { + this.enableInternetProviders = enableInternetProviders; + } + + + public LibraryOptions enableAutomaticSeriesGrouping(@javax.annotation.Nullable Boolean enableAutomaticSeriesGrouping) { + this.enableAutomaticSeriesGrouping = enableAutomaticSeriesGrouping; + return this; + } + + /** + * Get enableAutomaticSeriesGrouping + * @return enableAutomaticSeriesGrouping + */ + @javax.annotation.Nullable + public Boolean getEnableAutomaticSeriesGrouping() { + return enableAutomaticSeriesGrouping; + } + + public void setEnableAutomaticSeriesGrouping(@javax.annotation.Nullable Boolean enableAutomaticSeriesGrouping) { + this.enableAutomaticSeriesGrouping = enableAutomaticSeriesGrouping; + } + + + public LibraryOptions enableEmbeddedTitles(@javax.annotation.Nullable Boolean enableEmbeddedTitles) { + this.enableEmbeddedTitles = enableEmbeddedTitles; + return this; + } + + /** + * Get enableEmbeddedTitles + * @return enableEmbeddedTitles + */ + @javax.annotation.Nullable + public Boolean getEnableEmbeddedTitles() { + return enableEmbeddedTitles; + } + + public void setEnableEmbeddedTitles(@javax.annotation.Nullable Boolean enableEmbeddedTitles) { + this.enableEmbeddedTitles = enableEmbeddedTitles; + } + + + public LibraryOptions enableEmbeddedEpisodeInfos(@javax.annotation.Nullable Boolean enableEmbeddedEpisodeInfos) { + this.enableEmbeddedEpisodeInfos = enableEmbeddedEpisodeInfos; + return this; + } + + /** + * Get enableEmbeddedEpisodeInfos + * @return enableEmbeddedEpisodeInfos + */ + @javax.annotation.Nullable + public Boolean getEnableEmbeddedEpisodeInfos() { + return enableEmbeddedEpisodeInfos; + } + + public void setEnableEmbeddedEpisodeInfos(@javax.annotation.Nullable Boolean enableEmbeddedEpisodeInfos) { + this.enableEmbeddedEpisodeInfos = enableEmbeddedEpisodeInfos; + } + + + public LibraryOptions automaticRefreshIntervalDays(@javax.annotation.Nullable Integer automaticRefreshIntervalDays) { + this.automaticRefreshIntervalDays = automaticRefreshIntervalDays; + return this; + } + + /** + * Get automaticRefreshIntervalDays + * @return automaticRefreshIntervalDays + */ + @javax.annotation.Nullable + public Integer getAutomaticRefreshIntervalDays() { + return automaticRefreshIntervalDays; + } + + public void setAutomaticRefreshIntervalDays(@javax.annotation.Nullable Integer automaticRefreshIntervalDays) { + this.automaticRefreshIntervalDays = automaticRefreshIntervalDays; + } + + + public LibraryOptions preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred metadata language. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public LibraryOptions metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public LibraryOptions seasonZeroDisplayName(@javax.annotation.Nullable String seasonZeroDisplayName) { + this.seasonZeroDisplayName = seasonZeroDisplayName; + return this; + } + + /** + * Get seasonZeroDisplayName + * @return seasonZeroDisplayName + */ + @javax.annotation.Nullable + public String getSeasonZeroDisplayName() { + return seasonZeroDisplayName; + } + + public void setSeasonZeroDisplayName(@javax.annotation.Nullable String seasonZeroDisplayName) { + this.seasonZeroDisplayName = seasonZeroDisplayName; + } + + + public LibraryOptions metadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + return this; + } + + public LibraryOptions addMetadataSaversItem(String metadataSaversItem) { + if (this.metadataSavers == null) { + this.metadataSavers = new ArrayList<>(); + } + this.metadataSavers.add(metadataSaversItem); + return this; + } + + /** + * Get metadataSavers + * @return metadataSavers + */ + @javax.annotation.Nullable + public List getMetadataSavers() { + return metadataSavers; + } + + public void setMetadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + } + + + public LibraryOptions disabledLocalMetadataReaders(@javax.annotation.Nullable List disabledLocalMetadataReaders) { + this.disabledLocalMetadataReaders = disabledLocalMetadataReaders; + return this; + } + + public LibraryOptions addDisabledLocalMetadataReadersItem(String disabledLocalMetadataReadersItem) { + if (this.disabledLocalMetadataReaders == null) { + this.disabledLocalMetadataReaders = new ArrayList<>(); + } + this.disabledLocalMetadataReaders.add(disabledLocalMetadataReadersItem); + return this; + } + + /** + * Get disabledLocalMetadataReaders + * @return disabledLocalMetadataReaders + */ + @javax.annotation.Nullable + public List getDisabledLocalMetadataReaders() { + return disabledLocalMetadataReaders; + } + + public void setDisabledLocalMetadataReaders(@javax.annotation.Nullable List disabledLocalMetadataReaders) { + this.disabledLocalMetadataReaders = disabledLocalMetadataReaders; + } + + + public LibraryOptions localMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + return this; + } + + public LibraryOptions addLocalMetadataReaderOrderItem(String localMetadataReaderOrderItem) { + if (this.localMetadataReaderOrder == null) { + this.localMetadataReaderOrder = new ArrayList<>(); + } + this.localMetadataReaderOrder.add(localMetadataReaderOrderItem); + return this; + } + + /** + * Get localMetadataReaderOrder + * @return localMetadataReaderOrder + */ + @javax.annotation.Nullable + public List getLocalMetadataReaderOrder() { + return localMetadataReaderOrder; + } + + public void setLocalMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + } + + + public LibraryOptions disabledSubtitleFetchers(@javax.annotation.Nullable List disabledSubtitleFetchers) { + this.disabledSubtitleFetchers = disabledSubtitleFetchers; + return this; + } + + public LibraryOptions addDisabledSubtitleFetchersItem(String disabledSubtitleFetchersItem) { + if (this.disabledSubtitleFetchers == null) { + this.disabledSubtitleFetchers = new ArrayList<>(); + } + this.disabledSubtitleFetchers.add(disabledSubtitleFetchersItem); + return this; + } + + /** + * Get disabledSubtitleFetchers + * @return disabledSubtitleFetchers + */ + @javax.annotation.Nullable + public List getDisabledSubtitleFetchers() { + return disabledSubtitleFetchers; + } + + public void setDisabledSubtitleFetchers(@javax.annotation.Nullable List disabledSubtitleFetchers) { + this.disabledSubtitleFetchers = disabledSubtitleFetchers; + } + + + public LibraryOptions subtitleFetcherOrder(@javax.annotation.Nullable List subtitleFetcherOrder) { + this.subtitleFetcherOrder = subtitleFetcherOrder; + return this; + } + + public LibraryOptions addSubtitleFetcherOrderItem(String subtitleFetcherOrderItem) { + if (this.subtitleFetcherOrder == null) { + this.subtitleFetcherOrder = new ArrayList<>(); + } + this.subtitleFetcherOrder.add(subtitleFetcherOrderItem); + return this; + } + + /** + * Get subtitleFetcherOrder + * @return subtitleFetcherOrder + */ + @javax.annotation.Nullable + public List getSubtitleFetcherOrder() { + return subtitleFetcherOrder; + } + + public void setSubtitleFetcherOrder(@javax.annotation.Nullable List subtitleFetcherOrder) { + this.subtitleFetcherOrder = subtitleFetcherOrder; + } + + + public LibraryOptions skipSubtitlesIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipSubtitlesIfEmbeddedSubtitlesPresent) { + this.skipSubtitlesIfEmbeddedSubtitlesPresent = skipSubtitlesIfEmbeddedSubtitlesPresent; + return this; + } + + /** + * Get skipSubtitlesIfEmbeddedSubtitlesPresent + * @return skipSubtitlesIfEmbeddedSubtitlesPresent + */ + @javax.annotation.Nullable + public Boolean getSkipSubtitlesIfEmbeddedSubtitlesPresent() { + return skipSubtitlesIfEmbeddedSubtitlesPresent; + } + + public void setSkipSubtitlesIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipSubtitlesIfEmbeddedSubtitlesPresent) { + this.skipSubtitlesIfEmbeddedSubtitlesPresent = skipSubtitlesIfEmbeddedSubtitlesPresent; + } + + + public LibraryOptions skipSubtitlesIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipSubtitlesIfAudioTrackMatches) { + this.skipSubtitlesIfAudioTrackMatches = skipSubtitlesIfAudioTrackMatches; + return this; + } + + /** + * Get skipSubtitlesIfAudioTrackMatches + * @return skipSubtitlesIfAudioTrackMatches + */ + @javax.annotation.Nullable + public Boolean getSkipSubtitlesIfAudioTrackMatches() { + return skipSubtitlesIfAudioTrackMatches; + } + + public void setSkipSubtitlesIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipSubtitlesIfAudioTrackMatches) { + this.skipSubtitlesIfAudioTrackMatches = skipSubtitlesIfAudioTrackMatches; + } + + + public LibraryOptions subtitleDownloadLanguages(@javax.annotation.Nullable List subtitleDownloadLanguages) { + this.subtitleDownloadLanguages = subtitleDownloadLanguages; + return this; + } + + public LibraryOptions addSubtitleDownloadLanguagesItem(String subtitleDownloadLanguagesItem) { + if (this.subtitleDownloadLanguages == null) { + this.subtitleDownloadLanguages = new ArrayList<>(); + } + this.subtitleDownloadLanguages.add(subtitleDownloadLanguagesItem); + return this; + } + + /** + * Get subtitleDownloadLanguages + * @return subtitleDownloadLanguages + */ + @javax.annotation.Nullable + public List getSubtitleDownloadLanguages() { + return subtitleDownloadLanguages; + } + + public void setSubtitleDownloadLanguages(@javax.annotation.Nullable List subtitleDownloadLanguages) { + this.subtitleDownloadLanguages = subtitleDownloadLanguages; + } + + + public LibraryOptions requirePerfectSubtitleMatch(@javax.annotation.Nullable Boolean requirePerfectSubtitleMatch) { + this.requirePerfectSubtitleMatch = requirePerfectSubtitleMatch; + return this; + } + + /** + * Get requirePerfectSubtitleMatch + * @return requirePerfectSubtitleMatch + */ + @javax.annotation.Nullable + public Boolean getRequirePerfectSubtitleMatch() { + return requirePerfectSubtitleMatch; + } + + public void setRequirePerfectSubtitleMatch(@javax.annotation.Nullable Boolean requirePerfectSubtitleMatch) { + this.requirePerfectSubtitleMatch = requirePerfectSubtitleMatch; + } + + + public LibraryOptions saveSubtitlesWithMedia(@javax.annotation.Nullable Boolean saveSubtitlesWithMedia) { + this.saveSubtitlesWithMedia = saveSubtitlesWithMedia; + return this; + } + + /** + * Get saveSubtitlesWithMedia + * @return saveSubtitlesWithMedia + */ + @javax.annotation.Nullable + public Boolean getSaveSubtitlesWithMedia() { + return saveSubtitlesWithMedia; + } + + public void setSaveSubtitlesWithMedia(@javax.annotation.Nullable Boolean saveSubtitlesWithMedia) { + this.saveSubtitlesWithMedia = saveSubtitlesWithMedia; + } + + + public LibraryOptions automaticallyAddToCollection(@javax.annotation.Nullable Boolean automaticallyAddToCollection) { + this.automaticallyAddToCollection = automaticallyAddToCollection; + return this; + } + + /** + * Get automaticallyAddToCollection + * @return automaticallyAddToCollection + */ + @javax.annotation.Nullable + public Boolean getAutomaticallyAddToCollection() { + return automaticallyAddToCollection; + } + + public void setAutomaticallyAddToCollection(@javax.annotation.Nullable Boolean automaticallyAddToCollection) { + this.automaticallyAddToCollection = automaticallyAddToCollection; + } + + + public LibraryOptions allowEmbeddedSubtitles(@javax.annotation.Nullable EmbeddedSubtitleOptions allowEmbeddedSubtitles) { + this.allowEmbeddedSubtitles = allowEmbeddedSubtitles; + return this; + } + + /** + * An enum representing the options to disable embedded subs. + * @return allowEmbeddedSubtitles + */ + @javax.annotation.Nullable + public EmbeddedSubtitleOptions getAllowEmbeddedSubtitles() { + return allowEmbeddedSubtitles; + } + + public void setAllowEmbeddedSubtitles(@javax.annotation.Nullable EmbeddedSubtitleOptions allowEmbeddedSubtitles) { + this.allowEmbeddedSubtitles = allowEmbeddedSubtitles; + } + + + public LibraryOptions typeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + return this; + } + + public LibraryOptions addTypeOptionsItem(TypeOptions typeOptionsItem) { + if (this.typeOptions == null) { + this.typeOptions = new ArrayList<>(); + } + this.typeOptions.add(typeOptionsItem); + return this; + } + + /** + * Get typeOptions + * @return typeOptions + */ + @javax.annotation.Nullable + public List getTypeOptions() { + return typeOptions; + } + + public void setTypeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptions libraryOptions = (LibraryOptions) o; + return Objects.equals(this.enablePhotos, libraryOptions.enablePhotos) && + Objects.equals(this.enableRealtimeMonitor, libraryOptions.enableRealtimeMonitor) && + Objects.equals(this.enableChapterImageExtraction, libraryOptions.enableChapterImageExtraction) && + Objects.equals(this.extractChapterImagesDuringLibraryScan, libraryOptions.extractChapterImagesDuringLibraryScan) && + Objects.equals(this.pathInfos, libraryOptions.pathInfos) && + Objects.equals(this.saveLocalMetadata, libraryOptions.saveLocalMetadata) && + Objects.equals(this.enableInternetProviders, libraryOptions.enableInternetProviders) && + Objects.equals(this.enableAutomaticSeriesGrouping, libraryOptions.enableAutomaticSeriesGrouping) && + Objects.equals(this.enableEmbeddedTitles, libraryOptions.enableEmbeddedTitles) && + Objects.equals(this.enableEmbeddedEpisodeInfos, libraryOptions.enableEmbeddedEpisodeInfos) && + Objects.equals(this.automaticRefreshIntervalDays, libraryOptions.automaticRefreshIntervalDays) && + Objects.equals(this.preferredMetadataLanguage, libraryOptions.preferredMetadataLanguage) && + Objects.equals(this.metadataCountryCode, libraryOptions.metadataCountryCode) && + Objects.equals(this.seasonZeroDisplayName, libraryOptions.seasonZeroDisplayName) && + Objects.equals(this.metadataSavers, libraryOptions.metadataSavers) && + Objects.equals(this.disabledLocalMetadataReaders, libraryOptions.disabledLocalMetadataReaders) && + Objects.equals(this.localMetadataReaderOrder, libraryOptions.localMetadataReaderOrder) && + Objects.equals(this.disabledSubtitleFetchers, libraryOptions.disabledSubtitleFetchers) && + Objects.equals(this.subtitleFetcherOrder, libraryOptions.subtitleFetcherOrder) && + Objects.equals(this.skipSubtitlesIfEmbeddedSubtitlesPresent, libraryOptions.skipSubtitlesIfEmbeddedSubtitlesPresent) && + Objects.equals(this.skipSubtitlesIfAudioTrackMatches, libraryOptions.skipSubtitlesIfAudioTrackMatches) && + Objects.equals(this.subtitleDownloadLanguages, libraryOptions.subtitleDownloadLanguages) && + Objects.equals(this.requirePerfectSubtitleMatch, libraryOptions.requirePerfectSubtitleMatch) && + Objects.equals(this.saveSubtitlesWithMedia, libraryOptions.saveSubtitlesWithMedia) && + Objects.equals(this.automaticallyAddToCollection, libraryOptions.automaticallyAddToCollection) && + Objects.equals(this.allowEmbeddedSubtitles, libraryOptions.allowEmbeddedSubtitles) && + Objects.equals(this.typeOptions, libraryOptions.typeOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(enablePhotos, enableRealtimeMonitor, enableChapterImageExtraction, extractChapterImagesDuringLibraryScan, pathInfos, saveLocalMetadata, enableInternetProviders, enableAutomaticSeriesGrouping, enableEmbeddedTitles, enableEmbeddedEpisodeInfos, automaticRefreshIntervalDays, preferredMetadataLanguage, metadataCountryCode, seasonZeroDisplayName, metadataSavers, disabledLocalMetadataReaders, localMetadataReaderOrder, disabledSubtitleFetchers, subtitleFetcherOrder, skipSubtitlesIfEmbeddedSubtitlesPresent, skipSubtitlesIfAudioTrackMatches, subtitleDownloadLanguages, requirePerfectSubtitleMatch, saveSubtitlesWithMedia, automaticallyAddToCollection, allowEmbeddedSubtitles, typeOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptions {\n"); + sb.append(" enablePhotos: ").append(toIndentedString(enablePhotos)).append("\n"); + sb.append(" enableRealtimeMonitor: ").append(toIndentedString(enableRealtimeMonitor)).append("\n"); + sb.append(" enableChapterImageExtraction: ").append(toIndentedString(enableChapterImageExtraction)).append("\n"); + sb.append(" extractChapterImagesDuringLibraryScan: ").append(toIndentedString(extractChapterImagesDuringLibraryScan)).append("\n"); + sb.append(" pathInfos: ").append(toIndentedString(pathInfos)).append("\n"); + sb.append(" saveLocalMetadata: ").append(toIndentedString(saveLocalMetadata)).append("\n"); + sb.append(" enableInternetProviders: ").append(toIndentedString(enableInternetProviders)).append("\n"); + sb.append(" enableAutomaticSeriesGrouping: ").append(toIndentedString(enableAutomaticSeriesGrouping)).append("\n"); + sb.append(" enableEmbeddedTitles: ").append(toIndentedString(enableEmbeddedTitles)).append("\n"); + sb.append(" enableEmbeddedEpisodeInfos: ").append(toIndentedString(enableEmbeddedEpisodeInfos)).append("\n"); + sb.append(" automaticRefreshIntervalDays: ").append(toIndentedString(automaticRefreshIntervalDays)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" seasonZeroDisplayName: ").append(toIndentedString(seasonZeroDisplayName)).append("\n"); + sb.append(" metadataSavers: ").append(toIndentedString(metadataSavers)).append("\n"); + sb.append(" disabledLocalMetadataReaders: ").append(toIndentedString(disabledLocalMetadataReaders)).append("\n"); + sb.append(" localMetadataReaderOrder: ").append(toIndentedString(localMetadataReaderOrder)).append("\n"); + sb.append(" disabledSubtitleFetchers: ").append(toIndentedString(disabledSubtitleFetchers)).append("\n"); + sb.append(" subtitleFetcherOrder: ").append(toIndentedString(subtitleFetcherOrder)).append("\n"); + sb.append(" skipSubtitlesIfEmbeddedSubtitlesPresent: ").append(toIndentedString(skipSubtitlesIfEmbeddedSubtitlesPresent)).append("\n"); + sb.append(" skipSubtitlesIfAudioTrackMatches: ").append(toIndentedString(skipSubtitlesIfAudioTrackMatches)).append("\n"); + sb.append(" subtitleDownloadLanguages: ").append(toIndentedString(subtitleDownloadLanguages)).append("\n"); + sb.append(" requirePerfectSubtitleMatch: ").append(toIndentedString(requirePerfectSubtitleMatch)).append("\n"); + sb.append(" saveSubtitlesWithMedia: ").append(toIndentedString(saveSubtitlesWithMedia)).append("\n"); + sb.append(" automaticallyAddToCollection: ").append(toIndentedString(automaticallyAddToCollection)).append("\n"); + sb.append(" allowEmbeddedSubtitles: ").append(toIndentedString(allowEmbeddedSubtitles)).append("\n"); + sb.append(" typeOptions: ").append(toIndentedString(typeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnablePhotos"); + openapiFields.add("EnableRealtimeMonitor"); + openapiFields.add("EnableChapterImageExtraction"); + openapiFields.add("ExtractChapterImagesDuringLibraryScan"); + openapiFields.add("PathInfos"); + openapiFields.add("SaveLocalMetadata"); + openapiFields.add("EnableInternetProviders"); + openapiFields.add("EnableAutomaticSeriesGrouping"); + openapiFields.add("EnableEmbeddedTitles"); + openapiFields.add("EnableEmbeddedEpisodeInfos"); + openapiFields.add("AutomaticRefreshIntervalDays"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("SeasonZeroDisplayName"); + openapiFields.add("MetadataSavers"); + openapiFields.add("DisabledLocalMetadataReaders"); + openapiFields.add("LocalMetadataReaderOrder"); + openapiFields.add("DisabledSubtitleFetchers"); + openapiFields.add("SubtitleFetcherOrder"); + openapiFields.add("SkipSubtitlesIfEmbeddedSubtitlesPresent"); + openapiFields.add("SkipSubtitlesIfAudioTrackMatches"); + openapiFields.add("SubtitleDownloadLanguages"); + openapiFields.add("RequirePerfectSubtitleMatch"); + openapiFields.add("SaveSubtitlesWithMedia"); + openapiFields.add("AutomaticallyAddToCollection"); + openapiFields.add("AllowEmbeddedSubtitles"); + openapiFields.add("TypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptions is not found in the empty JSON string", LibraryOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("PathInfos") != null && !jsonObj.get("PathInfos").isJsonNull()) { + JsonArray jsonArraypathInfos = jsonObj.getAsJsonArray("PathInfos"); + if (jsonArraypathInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("PathInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PathInfos` to be an array in the JSON string but got `%s`", jsonObj.get("PathInfos").toString())); + } + + // validate the optional field `PathInfos` (array) + for (int i = 0; i < jsonArraypathInfos.size(); i++) { + MediaPathInfo.validateJsonElement(jsonArraypathInfos.get(i)); + }; + } + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("SeasonZeroDisplayName") != null && !jsonObj.get("SeasonZeroDisplayName").isJsonNull()) && !jsonObj.get("SeasonZeroDisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeasonZeroDisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeasonZeroDisplayName").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataSavers") != null && !jsonObj.get("MetadataSavers").isJsonNull() && !jsonObj.get("MetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataSavers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledLocalMetadataReaders") != null && !jsonObj.get("DisabledLocalMetadataReaders").isJsonNull() && !jsonObj.get("DisabledLocalMetadataReaders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledLocalMetadataReaders` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledLocalMetadataReaders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalMetadataReaderOrder") != null && !jsonObj.get("LocalMetadataReaderOrder").isJsonNull() && !jsonObj.get("LocalMetadataReaderOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalMetadataReaderOrder` to be an array in the JSON string but got `%s`", jsonObj.get("LocalMetadataReaderOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledSubtitleFetchers") != null && !jsonObj.get("DisabledSubtitleFetchers").isJsonNull() && !jsonObj.get("DisabledSubtitleFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledSubtitleFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledSubtitleFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SubtitleFetcherOrder") != null && !jsonObj.get("SubtitleFetcherOrder").isJsonNull() && !jsonObj.get("SubtitleFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SubtitleDownloadLanguages") != null && !jsonObj.get("SubtitleDownloadLanguages").isJsonNull() && !jsonObj.get("SubtitleDownloadLanguages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleDownloadLanguages` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleDownloadLanguages").toString())); + } + // validate the optional field `AllowEmbeddedSubtitles` + if (jsonObj.get("AllowEmbeddedSubtitles") != null && !jsonObj.get("AllowEmbeddedSubtitles").isJsonNull()) { + EmbeddedSubtitleOptions.validateJsonElement(jsonObj.get("AllowEmbeddedSubtitles")); + } + if (jsonObj.get("TypeOptions") != null && !jsonObj.get("TypeOptions").isJsonNull()) { + JsonArray jsonArraytypeOptions = jsonObj.getAsJsonArray("TypeOptions"); + if (jsonArraytypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("TypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("TypeOptions").toString())); + } + + // validate the optional field `TypeOptions` (array) + for (int i = 0; i < jsonArraytypeOptions.size(); i++) { + TypeOptions.validateJsonElement(jsonArraytypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptions + * @throws IOException if the JSON string is invalid with respect to LibraryOptions + */ + public static LibraryOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptions.class); + } + + /** + * Convert an instance of LibraryOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java new file mode 100644 index 0000000000000..f752ba5cc40d4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryOptionsResultDto.java @@ -0,0 +1,376 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LibraryOptionInfoDto; +import org.openapitools.client.model.LibraryTypeOptionsDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library options result dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryOptionsResultDto { + public static final String SERIALIZED_NAME_METADATA_SAVERS = "MetadataSavers"; + @SerializedName(SERIALIZED_NAME_METADATA_SAVERS) + @javax.annotation.Nullable + private List metadataSavers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_METADATA_READERS = "MetadataReaders"; + @SerializedName(SERIALIZED_NAME_METADATA_READERS) + @javax.annotation.Nullable + private List metadataReaders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_FETCHERS = "SubtitleFetchers"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_FETCHERS) + @javax.annotation.Nullable + private List subtitleFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TYPE_OPTIONS = "TypeOptions"; + @SerializedName(SERIALIZED_NAME_TYPE_OPTIONS) + @javax.annotation.Nullable + private List typeOptions = new ArrayList<>(); + + public LibraryOptionsResultDto() { + } + + public LibraryOptionsResultDto metadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + return this; + } + + public LibraryOptionsResultDto addMetadataSaversItem(LibraryOptionInfoDto metadataSaversItem) { + if (this.metadataSavers == null) { + this.metadataSavers = new ArrayList<>(); + } + this.metadataSavers.add(metadataSaversItem); + return this; + } + + /** + * Gets or sets the metadata savers. + * @return metadataSavers + */ + @javax.annotation.Nullable + public List getMetadataSavers() { + return metadataSavers; + } + + public void setMetadataSavers(@javax.annotation.Nullable List metadataSavers) { + this.metadataSavers = metadataSavers; + } + + + public LibraryOptionsResultDto metadataReaders(@javax.annotation.Nullable List metadataReaders) { + this.metadataReaders = metadataReaders; + return this; + } + + public LibraryOptionsResultDto addMetadataReadersItem(LibraryOptionInfoDto metadataReadersItem) { + if (this.metadataReaders == null) { + this.metadataReaders = new ArrayList<>(); + } + this.metadataReaders.add(metadataReadersItem); + return this; + } + + /** + * Gets or sets the metadata readers. + * @return metadataReaders + */ + @javax.annotation.Nullable + public List getMetadataReaders() { + return metadataReaders; + } + + public void setMetadataReaders(@javax.annotation.Nullable List metadataReaders) { + this.metadataReaders = metadataReaders; + } + + + public LibraryOptionsResultDto subtitleFetchers(@javax.annotation.Nullable List subtitleFetchers) { + this.subtitleFetchers = subtitleFetchers; + return this; + } + + public LibraryOptionsResultDto addSubtitleFetchersItem(LibraryOptionInfoDto subtitleFetchersItem) { + if (this.subtitleFetchers == null) { + this.subtitleFetchers = new ArrayList<>(); + } + this.subtitleFetchers.add(subtitleFetchersItem); + return this; + } + + /** + * Gets or sets the subtitle fetchers. + * @return subtitleFetchers + */ + @javax.annotation.Nullable + public List getSubtitleFetchers() { + return subtitleFetchers; + } + + public void setSubtitleFetchers(@javax.annotation.Nullable List subtitleFetchers) { + this.subtitleFetchers = subtitleFetchers; + } + + + public LibraryOptionsResultDto typeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + return this; + } + + public LibraryOptionsResultDto addTypeOptionsItem(LibraryTypeOptionsDto typeOptionsItem) { + if (this.typeOptions == null) { + this.typeOptions = new ArrayList<>(); + } + this.typeOptions.add(typeOptionsItem); + return this; + } + + /** + * Gets or sets the type options. + * @return typeOptions + */ + @javax.annotation.Nullable + public List getTypeOptions() { + return typeOptions; + } + + public void setTypeOptions(@javax.annotation.Nullable List typeOptions) { + this.typeOptions = typeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryOptionsResultDto libraryOptionsResultDto = (LibraryOptionsResultDto) o; + return Objects.equals(this.metadataSavers, libraryOptionsResultDto.metadataSavers) && + Objects.equals(this.metadataReaders, libraryOptionsResultDto.metadataReaders) && + Objects.equals(this.subtitleFetchers, libraryOptionsResultDto.subtitleFetchers) && + Objects.equals(this.typeOptions, libraryOptionsResultDto.typeOptions); + } + + @Override + public int hashCode() { + return Objects.hash(metadataSavers, metadataReaders, subtitleFetchers, typeOptions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryOptionsResultDto {\n"); + sb.append(" metadataSavers: ").append(toIndentedString(metadataSavers)).append("\n"); + sb.append(" metadataReaders: ").append(toIndentedString(metadataReaders)).append("\n"); + sb.append(" subtitleFetchers: ").append(toIndentedString(subtitleFetchers)).append("\n"); + sb.append(" typeOptions: ").append(toIndentedString(typeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MetadataSavers"); + openapiFields.add("MetadataReaders"); + openapiFields.add("SubtitleFetchers"); + openapiFields.add("TypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryOptionsResultDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryOptionsResultDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryOptionsResultDto is not found in the empty JSON string", LibraryOptionsResultDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryOptionsResultDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryOptionsResultDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("MetadataSavers") != null && !jsonObj.get("MetadataSavers").isJsonNull()) { + JsonArray jsonArraymetadataSavers = jsonObj.getAsJsonArray("MetadataSavers"); + if (jsonArraymetadataSavers != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataSavers").toString())); + } + + // validate the optional field `MetadataSavers` (array) + for (int i = 0; i < jsonArraymetadataSavers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataSavers.get(i)); + }; + } + } + if (jsonObj.get("MetadataReaders") != null && !jsonObj.get("MetadataReaders").isJsonNull()) { + JsonArray jsonArraymetadataReaders = jsonObj.getAsJsonArray("MetadataReaders"); + if (jsonArraymetadataReaders != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataReaders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataReaders` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataReaders").toString())); + } + + // validate the optional field `MetadataReaders` (array) + for (int i = 0; i < jsonArraymetadataReaders.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataReaders.get(i)); + }; + } + } + if (jsonObj.get("SubtitleFetchers") != null && !jsonObj.get("SubtitleFetchers").isJsonNull()) { + JsonArray jsonArraysubtitleFetchers = jsonObj.getAsJsonArray("SubtitleFetchers"); + if (jsonArraysubtitleFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("SubtitleFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("SubtitleFetchers").toString())); + } + + // validate the optional field `SubtitleFetchers` (array) + for (int i = 0; i < jsonArraysubtitleFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraysubtitleFetchers.get(i)); + }; + } + } + if (jsonObj.get("TypeOptions") != null && !jsonObj.get("TypeOptions").isJsonNull()) { + JsonArray jsonArraytypeOptions = jsonObj.getAsJsonArray("TypeOptions"); + if (jsonArraytypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("TypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("TypeOptions").toString())); + } + + // validate the optional field `TypeOptions` (array) + for (int i = 0; i < jsonArraytypeOptions.size(); i++) { + LibraryTypeOptionsDto.validateJsonElement(jsonArraytypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryOptionsResultDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryOptionsResultDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryOptionsResultDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryOptionsResultDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryOptionsResultDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryOptionsResultDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryOptionsResultDto + * @throws IOException if the JSON string is invalid with respect to LibraryOptionsResultDto + */ + public static LibraryOptionsResultDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryOptionsResultDto.class); + } + + /** + * Convert an instance of LibraryOptionsResultDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java new file mode 100644 index 0000000000000..48343c72052bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryTypeOptionsDto.java @@ -0,0 +1,409 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageOption; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.LibraryOptionInfoDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Library type options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryTypeOptionsDto { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_METADATA_FETCHERS = "MetadataFetchers"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHERS) + @javax.annotation.Nullable + private List metadataFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IMAGE_FETCHERS = "ImageFetchers"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List imageFetchers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUPPORTED_IMAGE_TYPES = "SupportedImageTypes"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_IMAGE_TYPES) + @javax.annotation.Nullable + private List supportedImageTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DEFAULT_IMAGE_OPTIONS = "DefaultImageOptions"; + @SerializedName(SERIALIZED_NAME_DEFAULT_IMAGE_OPTIONS) + @javax.annotation.Nullable + private List defaultImageOptions = new ArrayList<>(); + + public LibraryTypeOptionsDto() { + } + + public LibraryTypeOptionsDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public LibraryTypeOptionsDto metadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + return this; + } + + public LibraryTypeOptionsDto addMetadataFetchersItem(LibraryOptionInfoDto metadataFetchersItem) { + if (this.metadataFetchers == null) { + this.metadataFetchers = new ArrayList<>(); + } + this.metadataFetchers.add(metadataFetchersItem); + return this; + } + + /** + * Gets or sets the metadata fetchers. + * @return metadataFetchers + */ + @javax.annotation.Nullable + public List getMetadataFetchers() { + return metadataFetchers; + } + + public void setMetadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + } + + + public LibraryTypeOptionsDto imageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + return this; + } + + public LibraryTypeOptionsDto addImageFetchersItem(LibraryOptionInfoDto imageFetchersItem) { + if (this.imageFetchers == null) { + this.imageFetchers = new ArrayList<>(); + } + this.imageFetchers.add(imageFetchersItem); + return this; + } + + /** + * Gets or sets the image fetchers. + * @return imageFetchers + */ + @javax.annotation.Nullable + public List getImageFetchers() { + return imageFetchers; + } + + public void setImageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + } + + + public LibraryTypeOptionsDto supportedImageTypes(@javax.annotation.Nullable List supportedImageTypes) { + this.supportedImageTypes = supportedImageTypes; + return this; + } + + public LibraryTypeOptionsDto addSupportedImageTypesItem(ImageType supportedImageTypesItem) { + if (this.supportedImageTypes == null) { + this.supportedImageTypes = new ArrayList<>(); + } + this.supportedImageTypes.add(supportedImageTypesItem); + return this; + } + + /** + * Gets or sets the supported image types. + * @return supportedImageTypes + */ + @javax.annotation.Nullable + public List getSupportedImageTypes() { + return supportedImageTypes; + } + + public void setSupportedImageTypes(@javax.annotation.Nullable List supportedImageTypes) { + this.supportedImageTypes = supportedImageTypes; + } + + + public LibraryTypeOptionsDto defaultImageOptions(@javax.annotation.Nullable List defaultImageOptions) { + this.defaultImageOptions = defaultImageOptions; + return this; + } + + public LibraryTypeOptionsDto addDefaultImageOptionsItem(ImageOption defaultImageOptionsItem) { + if (this.defaultImageOptions == null) { + this.defaultImageOptions = new ArrayList<>(); + } + this.defaultImageOptions.add(defaultImageOptionsItem); + return this; + } + + /** + * Gets or sets the default image options. + * @return defaultImageOptions + */ + @javax.annotation.Nullable + public List getDefaultImageOptions() { + return defaultImageOptions; + } + + public void setDefaultImageOptions(@javax.annotation.Nullable List defaultImageOptions) { + this.defaultImageOptions = defaultImageOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryTypeOptionsDto libraryTypeOptionsDto = (LibraryTypeOptionsDto) o; + return Objects.equals(this.type, libraryTypeOptionsDto.type) && + Objects.equals(this.metadataFetchers, libraryTypeOptionsDto.metadataFetchers) && + Objects.equals(this.imageFetchers, libraryTypeOptionsDto.imageFetchers) && + Objects.equals(this.supportedImageTypes, libraryTypeOptionsDto.supportedImageTypes) && + Objects.equals(this.defaultImageOptions, libraryTypeOptionsDto.defaultImageOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, metadataFetchers, imageFetchers, supportedImageTypes, defaultImageOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryTypeOptionsDto {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" metadataFetchers: ").append(toIndentedString(metadataFetchers)).append("\n"); + sb.append(" imageFetchers: ").append(toIndentedString(imageFetchers)).append("\n"); + sb.append(" supportedImageTypes: ").append(toIndentedString(supportedImageTypes)).append("\n"); + sb.append(" defaultImageOptions: ").append(toIndentedString(defaultImageOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("MetadataFetchers"); + openapiFields.add("ImageFetchers"); + openapiFields.add("SupportedImageTypes"); + openapiFields.add("DefaultImageOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryTypeOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryTypeOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryTypeOptionsDto is not found in the empty JSON string", LibraryTypeOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryTypeOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryTypeOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if (jsonObj.get("MetadataFetchers") != null && !jsonObj.get("MetadataFetchers").isJsonNull()) { + JsonArray jsonArraymetadataFetchers = jsonObj.getAsJsonArray("MetadataFetchers"); + if (jsonArraymetadataFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetchers").toString())); + } + + // validate the optional field `MetadataFetchers` (array) + for (int i = 0; i < jsonArraymetadataFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArraymetadataFetchers.get(i)); + }; + } + } + if (jsonObj.get("ImageFetchers") != null && !jsonObj.get("ImageFetchers").isJsonNull()) { + JsonArray jsonArrayimageFetchers = jsonObj.getAsJsonArray("ImageFetchers"); + if (jsonArrayimageFetchers != null) { + // ensure the json data is an array + if (!jsonObj.get("ImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetchers").toString())); + } + + // validate the optional field `ImageFetchers` (array) + for (int i = 0; i < jsonArrayimageFetchers.size(); i++) { + LibraryOptionInfoDto.validateJsonElement(jsonArrayimageFetchers.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedImageTypes") != null && !jsonObj.get("SupportedImageTypes").isJsonNull() && !jsonObj.get("SupportedImageTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedImageTypes` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedImageTypes").toString())); + } + if (jsonObj.get("DefaultImageOptions") != null && !jsonObj.get("DefaultImageOptions").isJsonNull()) { + JsonArray jsonArraydefaultImageOptions = jsonObj.getAsJsonArray("DefaultImageOptions"); + if (jsonArraydefaultImageOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("DefaultImageOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DefaultImageOptions` to be an array in the JSON string but got `%s`", jsonObj.get("DefaultImageOptions").toString())); + } + + // validate the optional field `DefaultImageOptions` (array) + for (int i = 0; i < jsonArraydefaultImageOptions.size(); i++) { + ImageOption.validateJsonElement(jsonArraydefaultImageOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryTypeOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryTypeOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryTypeOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryTypeOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryTypeOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryTypeOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryTypeOptionsDto + * @throws IOException if the JSON string is invalid with respect to LibraryTypeOptionsDto + */ + public static LibraryTypeOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryTypeOptionsDto.class); + } + + /** + * Convert an instance of LibraryTypeOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java new file mode 100644 index 0000000000000..0eb4f9cb7abea --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LibraryUpdateInfo.java @@ -0,0 +1,438 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class LibraryUpdateInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LibraryUpdateInfo { + public static final String SERIALIZED_NAME_FOLDERS_ADDED_TO = "FoldersAddedTo"; + @SerializedName(SERIALIZED_NAME_FOLDERS_ADDED_TO) + @javax.annotation.Nullable + private List foldersAddedTo = new ArrayList<>(); + + public static final String SERIALIZED_NAME_FOLDERS_REMOVED_FROM = "FoldersRemovedFrom"; + @SerializedName(SERIALIZED_NAME_FOLDERS_REMOVED_FROM) + @javax.annotation.Nullable + private List foldersRemovedFrom = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_ADDED = "ItemsAdded"; + @SerializedName(SERIALIZED_NAME_ITEMS_ADDED) + @javax.annotation.Nullable + private List itemsAdded = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_REMOVED = "ItemsRemoved"; + @SerializedName(SERIALIZED_NAME_ITEMS_REMOVED) + @javax.annotation.Nullable + private List itemsRemoved = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ITEMS_UPDATED = "ItemsUpdated"; + @SerializedName(SERIALIZED_NAME_ITEMS_UPDATED) + @javax.annotation.Nullable + private List itemsUpdated = new ArrayList<>(); + + public static final String SERIALIZED_NAME_COLLECTION_FOLDERS = "CollectionFolders"; + @SerializedName(SERIALIZED_NAME_COLLECTION_FOLDERS) + @javax.annotation.Nullable + private List collectionFolders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_EMPTY = "IsEmpty"; + @SerializedName(SERIALIZED_NAME_IS_EMPTY) + @javax.annotation.Nullable + private Boolean isEmpty; + + public LibraryUpdateInfo() { + } + + public LibraryUpdateInfo( + Boolean isEmpty + ) { + this(); + this.isEmpty = isEmpty; + } + + public LibraryUpdateInfo foldersAddedTo(@javax.annotation.Nullable List foldersAddedTo) { + this.foldersAddedTo = foldersAddedTo; + return this; + } + + public LibraryUpdateInfo addFoldersAddedToItem(String foldersAddedToItem) { + if (this.foldersAddedTo == null) { + this.foldersAddedTo = new ArrayList<>(); + } + this.foldersAddedTo.add(foldersAddedToItem); + return this; + } + + /** + * Gets or sets the folders added to. + * @return foldersAddedTo + */ + @javax.annotation.Nullable + public List getFoldersAddedTo() { + return foldersAddedTo; + } + + public void setFoldersAddedTo(@javax.annotation.Nullable List foldersAddedTo) { + this.foldersAddedTo = foldersAddedTo; + } + + + public LibraryUpdateInfo foldersRemovedFrom(@javax.annotation.Nullable List foldersRemovedFrom) { + this.foldersRemovedFrom = foldersRemovedFrom; + return this; + } + + public LibraryUpdateInfo addFoldersRemovedFromItem(String foldersRemovedFromItem) { + if (this.foldersRemovedFrom == null) { + this.foldersRemovedFrom = new ArrayList<>(); + } + this.foldersRemovedFrom.add(foldersRemovedFromItem); + return this; + } + + /** + * Gets or sets the folders removed from. + * @return foldersRemovedFrom + */ + @javax.annotation.Nullable + public List getFoldersRemovedFrom() { + return foldersRemovedFrom; + } + + public void setFoldersRemovedFrom(@javax.annotation.Nullable List foldersRemovedFrom) { + this.foldersRemovedFrom = foldersRemovedFrom; + } + + + public LibraryUpdateInfo itemsAdded(@javax.annotation.Nullable List itemsAdded) { + this.itemsAdded = itemsAdded; + return this; + } + + public LibraryUpdateInfo addItemsAddedItem(String itemsAddedItem) { + if (this.itemsAdded == null) { + this.itemsAdded = new ArrayList<>(); + } + this.itemsAdded.add(itemsAddedItem); + return this; + } + + /** + * Gets or sets the items added. + * @return itemsAdded + */ + @javax.annotation.Nullable + public List getItemsAdded() { + return itemsAdded; + } + + public void setItemsAdded(@javax.annotation.Nullable List itemsAdded) { + this.itemsAdded = itemsAdded; + } + + + public LibraryUpdateInfo itemsRemoved(@javax.annotation.Nullable List itemsRemoved) { + this.itemsRemoved = itemsRemoved; + return this; + } + + public LibraryUpdateInfo addItemsRemovedItem(String itemsRemovedItem) { + if (this.itemsRemoved == null) { + this.itemsRemoved = new ArrayList<>(); + } + this.itemsRemoved.add(itemsRemovedItem); + return this; + } + + /** + * Gets or sets the items removed. + * @return itemsRemoved + */ + @javax.annotation.Nullable + public List getItemsRemoved() { + return itemsRemoved; + } + + public void setItemsRemoved(@javax.annotation.Nullable List itemsRemoved) { + this.itemsRemoved = itemsRemoved; + } + + + public LibraryUpdateInfo itemsUpdated(@javax.annotation.Nullable List itemsUpdated) { + this.itemsUpdated = itemsUpdated; + return this; + } + + public LibraryUpdateInfo addItemsUpdatedItem(String itemsUpdatedItem) { + if (this.itemsUpdated == null) { + this.itemsUpdated = new ArrayList<>(); + } + this.itemsUpdated.add(itemsUpdatedItem); + return this; + } + + /** + * Gets or sets the items updated. + * @return itemsUpdated + */ + @javax.annotation.Nullable + public List getItemsUpdated() { + return itemsUpdated; + } + + public void setItemsUpdated(@javax.annotation.Nullable List itemsUpdated) { + this.itemsUpdated = itemsUpdated; + } + + + public LibraryUpdateInfo collectionFolders(@javax.annotation.Nullable List collectionFolders) { + this.collectionFolders = collectionFolders; + return this; + } + + public LibraryUpdateInfo addCollectionFoldersItem(String collectionFoldersItem) { + if (this.collectionFolders == null) { + this.collectionFolders = new ArrayList<>(); + } + this.collectionFolders.add(collectionFoldersItem); + return this; + } + + /** + * Get collectionFolders + * @return collectionFolders + */ + @javax.annotation.Nullable + public List getCollectionFolders() { + return collectionFolders; + } + + public void setCollectionFolders(@javax.annotation.Nullable List collectionFolders) { + this.collectionFolders = collectionFolders; + } + + + /** + * Get isEmpty + * @return isEmpty + */ + @javax.annotation.Nullable + public Boolean getIsEmpty() { + return isEmpty; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LibraryUpdateInfo libraryUpdateInfo = (LibraryUpdateInfo) o; + return Objects.equals(this.foldersAddedTo, libraryUpdateInfo.foldersAddedTo) && + Objects.equals(this.foldersRemovedFrom, libraryUpdateInfo.foldersRemovedFrom) && + Objects.equals(this.itemsAdded, libraryUpdateInfo.itemsAdded) && + Objects.equals(this.itemsRemoved, libraryUpdateInfo.itemsRemoved) && + Objects.equals(this.itemsUpdated, libraryUpdateInfo.itemsUpdated) && + Objects.equals(this.collectionFolders, libraryUpdateInfo.collectionFolders) && + Objects.equals(this.isEmpty, libraryUpdateInfo.isEmpty); + } + + @Override + public int hashCode() { + return Objects.hash(foldersAddedTo, foldersRemovedFrom, itemsAdded, itemsRemoved, itemsUpdated, collectionFolders, isEmpty); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LibraryUpdateInfo {\n"); + sb.append(" foldersAddedTo: ").append(toIndentedString(foldersAddedTo)).append("\n"); + sb.append(" foldersRemovedFrom: ").append(toIndentedString(foldersRemovedFrom)).append("\n"); + sb.append(" itemsAdded: ").append(toIndentedString(itemsAdded)).append("\n"); + sb.append(" itemsRemoved: ").append(toIndentedString(itemsRemoved)).append("\n"); + sb.append(" itemsUpdated: ").append(toIndentedString(itemsUpdated)).append("\n"); + sb.append(" collectionFolders: ").append(toIndentedString(collectionFolders)).append("\n"); + sb.append(" isEmpty: ").append(toIndentedString(isEmpty)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FoldersAddedTo"); + openapiFields.add("FoldersRemovedFrom"); + openapiFields.add("ItemsAdded"); + openapiFields.add("ItemsRemoved"); + openapiFields.add("ItemsUpdated"); + openapiFields.add("CollectionFolders"); + openapiFields.add("IsEmpty"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LibraryUpdateInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LibraryUpdateInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LibraryUpdateInfo is not found in the empty JSON string", LibraryUpdateInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LibraryUpdateInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LibraryUpdateInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("FoldersAddedTo") != null && !jsonObj.get("FoldersAddedTo").isJsonNull() && !jsonObj.get("FoldersAddedTo").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `FoldersAddedTo` to be an array in the JSON string but got `%s`", jsonObj.get("FoldersAddedTo").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("FoldersRemovedFrom") != null && !jsonObj.get("FoldersRemovedFrom").isJsonNull() && !jsonObj.get("FoldersRemovedFrom").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `FoldersRemovedFrom` to be an array in the JSON string but got `%s`", jsonObj.get("FoldersRemovedFrom").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsAdded") != null && !jsonObj.get("ItemsAdded").isJsonNull() && !jsonObj.get("ItemsAdded").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsAdded` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsAdded").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsRemoved") != null && !jsonObj.get("ItemsRemoved").isJsonNull() && !jsonObj.get("ItemsRemoved").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsRemoved` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsRemoved").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ItemsUpdated") != null && !jsonObj.get("ItemsUpdated").isJsonNull() && !jsonObj.get("ItemsUpdated").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsUpdated` to be an array in the JSON string but got `%s`", jsonObj.get("ItemsUpdated").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("CollectionFolders") != null && !jsonObj.get("CollectionFolders").isJsonNull() && !jsonObj.get("CollectionFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CollectionFolders` to be an array in the JSON string but got `%s`", jsonObj.get("CollectionFolders").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LibraryUpdateInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LibraryUpdateInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LibraryUpdateInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LibraryUpdateInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LibraryUpdateInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LibraryUpdateInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LibraryUpdateInfo + * @throws IOException if the JSON string is invalid with respect to LibraryUpdateInfo + */ + public static LibraryUpdateInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LibraryUpdateInfo.class); + } + + /** + * Convert an instance of LibraryUpdateInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java new file mode 100644 index 0000000000000..136c70fb8629e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ListingsProviderInfo.java @@ -0,0 +1,792 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ListingsProviderInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ListingsProviderInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_USERNAME = "Username"; + @SerializedName(SERIALIZED_NAME_USERNAME) + @javax.annotation.Nullable + private String username; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public static final String SERIALIZED_NAME_LISTINGS_ID = "ListingsId"; + @SerializedName(SERIALIZED_NAME_LISTINGS_ID) + @javax.annotation.Nullable + private String listingsId; + + public static final String SERIALIZED_NAME_ZIP_CODE = "ZipCode"; + @SerializedName(SERIALIZED_NAME_ZIP_CODE) + @javax.annotation.Nullable + private String zipCode; + + public static final String SERIALIZED_NAME_COUNTRY = "Country"; + @SerializedName(SERIALIZED_NAME_COUNTRY) + @javax.annotation.Nullable + private String country; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENABLED_TUNERS = "EnabledTuners"; + @SerializedName(SERIALIZED_NAME_ENABLED_TUNERS) + @javax.annotation.Nullable + private List enabledTuners; + + public static final String SERIALIZED_NAME_ENABLE_ALL_TUNERS = "EnableAllTuners"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_TUNERS) + @javax.annotation.Nullable + private Boolean enableAllTuners; + + public static final String SERIALIZED_NAME_NEWS_CATEGORIES = "NewsCategories"; + @SerializedName(SERIALIZED_NAME_NEWS_CATEGORIES) + @javax.annotation.Nullable + private List newsCategories; + + public static final String SERIALIZED_NAME_SPORTS_CATEGORIES = "SportsCategories"; + @SerializedName(SERIALIZED_NAME_SPORTS_CATEGORIES) + @javax.annotation.Nullable + private List sportsCategories; + + public static final String SERIALIZED_NAME_KIDS_CATEGORIES = "KidsCategories"; + @SerializedName(SERIALIZED_NAME_KIDS_CATEGORIES) + @javax.annotation.Nullable + private List kidsCategories; + + public static final String SERIALIZED_NAME_MOVIE_CATEGORIES = "MovieCategories"; + @SerializedName(SERIALIZED_NAME_MOVIE_CATEGORIES) + @javax.annotation.Nullable + private List movieCategories; + + public static final String SERIALIZED_NAME_CHANNEL_MAPPINGS = "ChannelMappings"; + @SerializedName(SERIALIZED_NAME_CHANNEL_MAPPINGS) + @javax.annotation.Nullable + private List channelMappings; + + public static final String SERIALIZED_NAME_MOVIE_PREFIX = "MoviePrefix"; + @SerializedName(SERIALIZED_NAME_MOVIE_PREFIX) + @javax.annotation.Nullable + private String moviePrefix; + + public static final String SERIALIZED_NAME_PREFERRED_LANGUAGE = "PreferredLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_LANGUAGE) + @javax.annotation.Nullable + private String preferredLanguage; + + public static final String SERIALIZED_NAME_USER_AGENT = "UserAgent"; + @SerializedName(SERIALIZED_NAME_USER_AGENT) + @javax.annotation.Nullable + private String userAgent; + + public ListingsProviderInfo() { + } + + public ListingsProviderInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public ListingsProviderInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ListingsProviderInfo username(@javax.annotation.Nullable String username) { + this.username = username; + return this; + } + + /** + * Get username + * @return username + */ + @javax.annotation.Nullable + public String getUsername() { + return username; + } + + public void setUsername(@javax.annotation.Nullable String username) { + this.username = username; + } + + + public ListingsProviderInfo password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Get password + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + public ListingsProviderInfo listingsId(@javax.annotation.Nullable String listingsId) { + this.listingsId = listingsId; + return this; + } + + /** + * Get listingsId + * @return listingsId + */ + @javax.annotation.Nullable + public String getListingsId() { + return listingsId; + } + + public void setListingsId(@javax.annotation.Nullable String listingsId) { + this.listingsId = listingsId; + } + + + public ListingsProviderInfo zipCode(@javax.annotation.Nullable String zipCode) { + this.zipCode = zipCode; + return this; + } + + /** + * Get zipCode + * @return zipCode + */ + @javax.annotation.Nullable + public String getZipCode() { + return zipCode; + } + + public void setZipCode(@javax.annotation.Nullable String zipCode) { + this.zipCode = zipCode; + } + + + public ListingsProviderInfo country(@javax.annotation.Nullable String country) { + this.country = country; + return this; + } + + /** + * Get country + * @return country + */ + @javax.annotation.Nullable + public String getCountry() { + return country; + } + + public void setCountry(@javax.annotation.Nullable String country) { + this.country = country; + } + + + public ListingsProviderInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ListingsProviderInfo enabledTuners(@javax.annotation.Nullable List enabledTuners) { + this.enabledTuners = enabledTuners; + return this; + } + + public ListingsProviderInfo addEnabledTunersItem(String enabledTunersItem) { + if (this.enabledTuners == null) { + this.enabledTuners = new ArrayList<>(); + } + this.enabledTuners.add(enabledTunersItem); + return this; + } + + /** + * Get enabledTuners + * @return enabledTuners + */ + @javax.annotation.Nullable + public List getEnabledTuners() { + return enabledTuners; + } + + public void setEnabledTuners(@javax.annotation.Nullable List enabledTuners) { + this.enabledTuners = enabledTuners; + } + + + public ListingsProviderInfo enableAllTuners(@javax.annotation.Nullable Boolean enableAllTuners) { + this.enableAllTuners = enableAllTuners; + return this; + } + + /** + * Get enableAllTuners + * @return enableAllTuners + */ + @javax.annotation.Nullable + public Boolean getEnableAllTuners() { + return enableAllTuners; + } + + public void setEnableAllTuners(@javax.annotation.Nullable Boolean enableAllTuners) { + this.enableAllTuners = enableAllTuners; + } + + + public ListingsProviderInfo newsCategories(@javax.annotation.Nullable List newsCategories) { + this.newsCategories = newsCategories; + return this; + } + + public ListingsProviderInfo addNewsCategoriesItem(String newsCategoriesItem) { + if (this.newsCategories == null) { + this.newsCategories = new ArrayList<>(); + } + this.newsCategories.add(newsCategoriesItem); + return this; + } + + /** + * Get newsCategories + * @return newsCategories + */ + @javax.annotation.Nullable + public List getNewsCategories() { + return newsCategories; + } + + public void setNewsCategories(@javax.annotation.Nullable List newsCategories) { + this.newsCategories = newsCategories; + } + + + public ListingsProviderInfo sportsCategories(@javax.annotation.Nullable List sportsCategories) { + this.sportsCategories = sportsCategories; + return this; + } + + public ListingsProviderInfo addSportsCategoriesItem(String sportsCategoriesItem) { + if (this.sportsCategories == null) { + this.sportsCategories = new ArrayList<>(); + } + this.sportsCategories.add(sportsCategoriesItem); + return this; + } + + /** + * Get sportsCategories + * @return sportsCategories + */ + @javax.annotation.Nullable + public List getSportsCategories() { + return sportsCategories; + } + + public void setSportsCategories(@javax.annotation.Nullable List sportsCategories) { + this.sportsCategories = sportsCategories; + } + + + public ListingsProviderInfo kidsCategories(@javax.annotation.Nullable List kidsCategories) { + this.kidsCategories = kidsCategories; + return this; + } + + public ListingsProviderInfo addKidsCategoriesItem(String kidsCategoriesItem) { + if (this.kidsCategories == null) { + this.kidsCategories = new ArrayList<>(); + } + this.kidsCategories.add(kidsCategoriesItem); + return this; + } + + /** + * Get kidsCategories + * @return kidsCategories + */ + @javax.annotation.Nullable + public List getKidsCategories() { + return kidsCategories; + } + + public void setKidsCategories(@javax.annotation.Nullable List kidsCategories) { + this.kidsCategories = kidsCategories; + } + + + public ListingsProviderInfo movieCategories(@javax.annotation.Nullable List movieCategories) { + this.movieCategories = movieCategories; + return this; + } + + public ListingsProviderInfo addMovieCategoriesItem(String movieCategoriesItem) { + if (this.movieCategories == null) { + this.movieCategories = new ArrayList<>(); + } + this.movieCategories.add(movieCategoriesItem); + return this; + } + + /** + * Get movieCategories + * @return movieCategories + */ + @javax.annotation.Nullable + public List getMovieCategories() { + return movieCategories; + } + + public void setMovieCategories(@javax.annotation.Nullable List movieCategories) { + this.movieCategories = movieCategories; + } + + + public ListingsProviderInfo channelMappings(@javax.annotation.Nullable List channelMappings) { + this.channelMappings = channelMappings; + return this; + } + + public ListingsProviderInfo addChannelMappingsItem(NameValuePair channelMappingsItem) { + if (this.channelMappings == null) { + this.channelMappings = new ArrayList<>(); + } + this.channelMappings.add(channelMappingsItem); + return this; + } + + /** + * Get channelMappings + * @return channelMappings + */ + @javax.annotation.Nullable + public List getChannelMappings() { + return channelMappings; + } + + public void setChannelMappings(@javax.annotation.Nullable List channelMappings) { + this.channelMappings = channelMappings; + } + + + public ListingsProviderInfo moviePrefix(@javax.annotation.Nullable String moviePrefix) { + this.moviePrefix = moviePrefix; + return this; + } + + /** + * Get moviePrefix + * @return moviePrefix + */ + @javax.annotation.Nullable + public String getMoviePrefix() { + return moviePrefix; + } + + public void setMoviePrefix(@javax.annotation.Nullable String moviePrefix) { + this.moviePrefix = moviePrefix; + } + + + public ListingsProviderInfo preferredLanguage(@javax.annotation.Nullable String preferredLanguage) { + this.preferredLanguage = preferredLanguage; + return this; + } + + /** + * Get preferredLanguage + * @return preferredLanguage + */ + @javax.annotation.Nullable + public String getPreferredLanguage() { + return preferredLanguage; + } + + public void setPreferredLanguage(@javax.annotation.Nullable String preferredLanguage) { + this.preferredLanguage = preferredLanguage; + } + + + public ListingsProviderInfo userAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * Get userAgent + * @return userAgent + */ + @javax.annotation.Nullable + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListingsProviderInfo listingsProviderInfo = (ListingsProviderInfo) o; + return Objects.equals(this.id, listingsProviderInfo.id) && + Objects.equals(this.type, listingsProviderInfo.type) && + Objects.equals(this.username, listingsProviderInfo.username) && + Objects.equals(this.password, listingsProviderInfo.password) && + Objects.equals(this.listingsId, listingsProviderInfo.listingsId) && + Objects.equals(this.zipCode, listingsProviderInfo.zipCode) && + Objects.equals(this.country, listingsProviderInfo.country) && + Objects.equals(this.path, listingsProviderInfo.path) && + Objects.equals(this.enabledTuners, listingsProviderInfo.enabledTuners) && + Objects.equals(this.enableAllTuners, listingsProviderInfo.enableAllTuners) && + Objects.equals(this.newsCategories, listingsProviderInfo.newsCategories) && + Objects.equals(this.sportsCategories, listingsProviderInfo.sportsCategories) && + Objects.equals(this.kidsCategories, listingsProviderInfo.kidsCategories) && + Objects.equals(this.movieCategories, listingsProviderInfo.movieCategories) && + Objects.equals(this.channelMappings, listingsProviderInfo.channelMappings) && + Objects.equals(this.moviePrefix, listingsProviderInfo.moviePrefix) && + Objects.equals(this.preferredLanguage, listingsProviderInfo.preferredLanguage) && + Objects.equals(this.userAgent, listingsProviderInfo.userAgent); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, username, password, listingsId, zipCode, country, path, enabledTuners, enableAllTuners, newsCategories, sportsCategories, kidsCategories, movieCategories, channelMappings, moviePrefix, preferredLanguage, userAgent); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListingsProviderInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append(" listingsId: ").append(toIndentedString(listingsId)).append("\n"); + sb.append(" zipCode: ").append(toIndentedString(zipCode)).append("\n"); + sb.append(" country: ").append(toIndentedString(country)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" enabledTuners: ").append(toIndentedString(enabledTuners)).append("\n"); + sb.append(" enableAllTuners: ").append(toIndentedString(enableAllTuners)).append("\n"); + sb.append(" newsCategories: ").append(toIndentedString(newsCategories)).append("\n"); + sb.append(" sportsCategories: ").append(toIndentedString(sportsCategories)).append("\n"); + sb.append(" kidsCategories: ").append(toIndentedString(kidsCategories)).append("\n"); + sb.append(" movieCategories: ").append(toIndentedString(movieCategories)).append("\n"); + sb.append(" channelMappings: ").append(toIndentedString(channelMappings)).append("\n"); + sb.append(" moviePrefix: ").append(toIndentedString(moviePrefix)).append("\n"); + sb.append(" preferredLanguage: ").append(toIndentedString(preferredLanguage)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("Username"); + openapiFields.add("Password"); + openapiFields.add("ListingsId"); + openapiFields.add("ZipCode"); + openapiFields.add("Country"); + openapiFields.add("Path"); + openapiFields.add("EnabledTuners"); + openapiFields.add("EnableAllTuners"); + openapiFields.add("NewsCategories"); + openapiFields.add("SportsCategories"); + openapiFields.add("KidsCategories"); + openapiFields.add("MovieCategories"); + openapiFields.add("ChannelMappings"); + openapiFields.add("MoviePrefix"); + openapiFields.add("PreferredLanguage"); + openapiFields.add("UserAgent"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ListingsProviderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ListingsProviderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ListingsProviderInfo is not found in the empty JSON string", ListingsProviderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ListingsProviderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ListingsProviderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("Username") != null && !jsonObj.get("Username").isJsonNull()) && !jsonObj.get("Username").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Username` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Username").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + if ((jsonObj.get("ListingsId") != null && !jsonObj.get("ListingsId").isJsonNull()) && !jsonObj.get("ListingsId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ListingsId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ListingsId").toString())); + } + if ((jsonObj.get("ZipCode") != null && !jsonObj.get("ZipCode").isJsonNull()) && !jsonObj.get("ZipCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ZipCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ZipCode").toString())); + } + if ((jsonObj.get("Country") != null && !jsonObj.get("Country").isJsonNull()) && !jsonObj.get("Country").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Country` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Country").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledTuners") != null && !jsonObj.get("EnabledTuners").isJsonNull() && !jsonObj.get("EnabledTuners").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledTuners` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledTuners").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("NewsCategories") != null && !jsonObj.get("NewsCategories").isJsonNull() && !jsonObj.get("NewsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NewsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("NewsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SportsCategories") != null && !jsonObj.get("SportsCategories").isJsonNull() && !jsonObj.get("SportsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SportsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("SportsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("KidsCategories") != null && !jsonObj.get("KidsCategories").isJsonNull() && !jsonObj.get("KidsCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `KidsCategories` to be an array in the JSON string but got `%s`", jsonObj.get("KidsCategories").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MovieCategories") != null && !jsonObj.get("MovieCategories").isJsonNull() && !jsonObj.get("MovieCategories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MovieCategories` to be an array in the JSON string but got `%s`", jsonObj.get("MovieCategories").toString())); + } + if (jsonObj.get("ChannelMappings") != null && !jsonObj.get("ChannelMappings").isJsonNull()) { + JsonArray jsonArraychannelMappings = jsonObj.getAsJsonArray("ChannelMappings"); + if (jsonArraychannelMappings != null) { + // ensure the json data is an array + if (!jsonObj.get("ChannelMappings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelMappings` to be an array in the JSON string but got `%s`", jsonObj.get("ChannelMappings").toString())); + } + + // validate the optional field `ChannelMappings` (array) + for (int i = 0; i < jsonArraychannelMappings.size(); i++) { + NameValuePair.validateJsonElement(jsonArraychannelMappings.get(i)); + }; + } + } + if ((jsonObj.get("MoviePrefix") != null && !jsonObj.get("MoviePrefix").isJsonNull()) && !jsonObj.get("MoviePrefix").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MoviePrefix` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MoviePrefix").toString())); + } + if ((jsonObj.get("PreferredLanguage") != null && !jsonObj.get("PreferredLanguage").isJsonNull()) && !jsonObj.get("PreferredLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredLanguage").toString())); + } + if ((jsonObj.get("UserAgent") != null && !jsonObj.get("UserAgent").isJsonNull()) && !jsonObj.get("UserAgent").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserAgent` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserAgent").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ListingsProviderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ListingsProviderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ListingsProviderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ListingsProviderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ListingsProviderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ListingsProviderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ListingsProviderInfo + * @throws IOException if the JSON string is invalid with respect to ListingsProviderInfo + */ + public static ListingsProviderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ListingsProviderInfo.class); + } + + /** + * Convert an instance of ListingsProviderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveStreamResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveStreamResponse.java new file mode 100644 index 0000000000000..7fcfb78a0e172 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveStreamResponse.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaSourceInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveStreamResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveStreamResponse { + public static final String SERIALIZED_NAME_MEDIA_SOURCE = "MediaSource"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE) + @javax.annotation.Nullable + private MediaSourceInfo mediaSource; + + public LiveStreamResponse() { + } + + public LiveStreamResponse mediaSource(@javax.annotation.Nullable MediaSourceInfo mediaSource) { + this.mediaSource = mediaSource; + return this; + } + + /** + * Get mediaSource + * @return mediaSource + */ + @javax.annotation.Nullable + public MediaSourceInfo getMediaSource() { + return mediaSource; + } + + public void setMediaSource(@javax.annotation.Nullable MediaSourceInfo mediaSource) { + this.mediaSource = mediaSource; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveStreamResponse liveStreamResponse = (LiveStreamResponse) o; + return Objects.equals(this.mediaSource, liveStreamResponse.mediaSource); + } + + @Override + public int hashCode() { + return Objects.hash(mediaSource); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveStreamResponse {\n"); + sb.append(" mediaSource: ").append(toIndentedString(mediaSource)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MediaSource"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveStreamResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveStreamResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveStreamResponse is not found in the empty JSON string", LiveStreamResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveStreamResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveStreamResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MediaSource` + if (jsonObj.get("MediaSource") != null && !jsonObj.get("MediaSource").isJsonNull()) { + MediaSourceInfo.validateJsonElement(jsonObj.get("MediaSource")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveStreamResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveStreamResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveStreamResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveStreamResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveStreamResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveStreamResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveStreamResponse + * @throws IOException if the JSON string is invalid with respect to LiveStreamResponse + */ + public static LiveStreamResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveStreamResponse.class); + } + + /** + * Convert an instance of LiveStreamResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvInfo.java new file mode 100644 index 0000000000000..00e77bd806339 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvInfo.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LiveTvServiceInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveTvInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvInfo { + public static final String SERIALIZED_NAME_SERVICES = "Services"; + @SerializedName(SERIALIZED_NAME_SERVICES) + @javax.annotation.Nullable + private List services = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_ENABLED = "IsEnabled"; + @SerializedName(SERIALIZED_NAME_IS_ENABLED) + @javax.annotation.Nullable + private Boolean isEnabled; + + public static final String SERIALIZED_NAME_ENABLED_USERS = "EnabledUsers"; + @SerializedName(SERIALIZED_NAME_ENABLED_USERS) + @javax.annotation.Nullable + private List enabledUsers = new ArrayList<>(); + + public LiveTvInfo() { + } + + public LiveTvInfo services(@javax.annotation.Nullable List services) { + this.services = services; + return this; + } + + public LiveTvInfo addServicesItem(LiveTvServiceInfo servicesItem) { + if (this.services == null) { + this.services = new ArrayList<>(); + } + this.services.add(servicesItem); + return this; + } + + /** + * Gets or sets the services. + * @return services + */ + @javax.annotation.Nullable + public List getServices() { + return services; + } + + public void setServices(@javax.annotation.Nullable List services) { + this.services = services; + } + + + public LiveTvInfo isEnabled(@javax.annotation.Nullable Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is enabled. + * @return isEnabled + */ + @javax.annotation.Nullable + public Boolean getIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(@javax.annotation.Nullable Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + + public LiveTvInfo enabledUsers(@javax.annotation.Nullable List enabledUsers) { + this.enabledUsers = enabledUsers; + return this; + } + + public LiveTvInfo addEnabledUsersItem(String enabledUsersItem) { + if (this.enabledUsers == null) { + this.enabledUsers = new ArrayList<>(); + } + this.enabledUsers.add(enabledUsersItem); + return this; + } + + /** + * Gets or sets the enabled users. + * @return enabledUsers + */ + @javax.annotation.Nullable + public List getEnabledUsers() { + return enabledUsers; + } + + public void setEnabledUsers(@javax.annotation.Nullable List enabledUsers) { + this.enabledUsers = enabledUsers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvInfo liveTvInfo = (LiveTvInfo) o; + return Objects.equals(this.services, liveTvInfo.services) && + Objects.equals(this.isEnabled, liveTvInfo.isEnabled) && + Objects.equals(this.enabledUsers, liveTvInfo.enabledUsers); + } + + @Override + public int hashCode() { + return Objects.hash(services, isEnabled, enabledUsers); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvInfo {\n"); + sb.append(" services: ").append(toIndentedString(services)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" enabledUsers: ").append(toIndentedString(enabledUsers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Services"); + openapiFields.add("IsEnabled"); + openapiFields.add("EnabledUsers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvInfo is not found in the empty JSON string", LiveTvInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Services") != null && !jsonObj.get("Services").isJsonNull()) { + JsonArray jsonArrayservices = jsonObj.getAsJsonArray("Services"); + if (jsonArrayservices != null) { + // ensure the json data is an array + if (!jsonObj.get("Services").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Services` to be an array in the JSON string but got `%s`", jsonObj.get("Services").toString())); + } + + // validate the optional field `Services` (array) + for (int i = 0; i < jsonArrayservices.size(); i++) { + LiveTvServiceInfo.validateJsonElement(jsonArrayservices.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledUsers") != null && !jsonObj.get("EnabledUsers").isJsonNull() && !jsonObj.get("EnabledUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledUsers` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledUsers").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvInfo + * @throws IOException if the JSON string is invalid with respect to LiveTvInfo + */ + public static LiveTvInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvInfo.class); + } + + /** + * Convert an instance of LiveTvInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvOptions.java new file mode 100644 index 0000000000000..f96c3c874870f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvOptions.java @@ -0,0 +1,614 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ListingsProviderInfo; +import org.openapitools.client.model.TunerHostInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LiveTvOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvOptions { + public static final String SERIALIZED_NAME_GUIDE_DAYS = "GuideDays"; + @SerializedName(SERIALIZED_NAME_GUIDE_DAYS) + @javax.annotation.Nullable + private Integer guideDays; + + public static final String SERIALIZED_NAME_RECORDING_PATH = "RecordingPath"; + @SerializedName(SERIALIZED_NAME_RECORDING_PATH) + @javax.annotation.Nullable + private String recordingPath; + + public static final String SERIALIZED_NAME_MOVIE_RECORDING_PATH = "MovieRecordingPath"; + @SerializedName(SERIALIZED_NAME_MOVIE_RECORDING_PATH) + @javax.annotation.Nullable + private String movieRecordingPath; + + public static final String SERIALIZED_NAME_SERIES_RECORDING_PATH = "SeriesRecordingPath"; + @SerializedName(SERIALIZED_NAME_SERIES_RECORDING_PATH) + @javax.annotation.Nullable + private String seriesRecordingPath; + + public static final String SERIALIZED_NAME_ENABLE_RECORDING_SUBFOLDERS = "EnableRecordingSubfolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_RECORDING_SUBFOLDERS) + @javax.annotation.Nullable + private Boolean enableRecordingSubfolders; + + public static final String SERIALIZED_NAME_ENABLE_ORIGINAL_AUDIO_WITH_ENCODED_RECORDINGS = "EnableOriginalAudioWithEncodedRecordings"; + @SerializedName(SERIALIZED_NAME_ENABLE_ORIGINAL_AUDIO_WITH_ENCODED_RECORDINGS) + @javax.annotation.Nullable + private Boolean enableOriginalAudioWithEncodedRecordings; + + public static final String SERIALIZED_NAME_TUNER_HOSTS = "TunerHosts"; + @SerializedName(SERIALIZED_NAME_TUNER_HOSTS) + @javax.annotation.Nullable + private List tunerHosts; + + public static final String SERIALIZED_NAME_LISTING_PROVIDERS = "ListingProviders"; + @SerializedName(SERIALIZED_NAME_LISTING_PROVIDERS) + @javax.annotation.Nullable + private List listingProviders; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_MEDIA_LOCATIONS_CREATED = "MediaLocationsCreated"; + @SerializedName(SERIALIZED_NAME_MEDIA_LOCATIONS_CREATED) + @javax.annotation.Nullable + private List mediaLocationsCreated; + + public static final String SERIALIZED_NAME_RECORDING_POST_PROCESSOR = "RecordingPostProcessor"; + @SerializedName(SERIALIZED_NAME_RECORDING_POST_PROCESSOR) + @javax.annotation.Nullable + private String recordingPostProcessor; + + public static final String SERIALIZED_NAME_RECORDING_POST_PROCESSOR_ARGUMENTS = "RecordingPostProcessorArguments"; + @SerializedName(SERIALIZED_NAME_RECORDING_POST_PROCESSOR_ARGUMENTS) + @javax.annotation.Nullable + private String recordingPostProcessorArguments; + + public LiveTvOptions() { + } + + public LiveTvOptions guideDays(@javax.annotation.Nullable Integer guideDays) { + this.guideDays = guideDays; + return this; + } + + /** + * Get guideDays + * @return guideDays + */ + @javax.annotation.Nullable + public Integer getGuideDays() { + return guideDays; + } + + public void setGuideDays(@javax.annotation.Nullable Integer guideDays) { + this.guideDays = guideDays; + } + + + public LiveTvOptions recordingPath(@javax.annotation.Nullable String recordingPath) { + this.recordingPath = recordingPath; + return this; + } + + /** + * Get recordingPath + * @return recordingPath + */ + @javax.annotation.Nullable + public String getRecordingPath() { + return recordingPath; + } + + public void setRecordingPath(@javax.annotation.Nullable String recordingPath) { + this.recordingPath = recordingPath; + } + + + public LiveTvOptions movieRecordingPath(@javax.annotation.Nullable String movieRecordingPath) { + this.movieRecordingPath = movieRecordingPath; + return this; + } + + /** + * Get movieRecordingPath + * @return movieRecordingPath + */ + @javax.annotation.Nullable + public String getMovieRecordingPath() { + return movieRecordingPath; + } + + public void setMovieRecordingPath(@javax.annotation.Nullable String movieRecordingPath) { + this.movieRecordingPath = movieRecordingPath; + } + + + public LiveTvOptions seriesRecordingPath(@javax.annotation.Nullable String seriesRecordingPath) { + this.seriesRecordingPath = seriesRecordingPath; + return this; + } + + /** + * Get seriesRecordingPath + * @return seriesRecordingPath + */ + @javax.annotation.Nullable + public String getSeriesRecordingPath() { + return seriesRecordingPath; + } + + public void setSeriesRecordingPath(@javax.annotation.Nullable String seriesRecordingPath) { + this.seriesRecordingPath = seriesRecordingPath; + } + + + public LiveTvOptions enableRecordingSubfolders(@javax.annotation.Nullable Boolean enableRecordingSubfolders) { + this.enableRecordingSubfolders = enableRecordingSubfolders; + return this; + } + + /** + * Get enableRecordingSubfolders + * @return enableRecordingSubfolders + */ + @javax.annotation.Nullable + public Boolean getEnableRecordingSubfolders() { + return enableRecordingSubfolders; + } + + public void setEnableRecordingSubfolders(@javax.annotation.Nullable Boolean enableRecordingSubfolders) { + this.enableRecordingSubfolders = enableRecordingSubfolders; + } + + + public LiveTvOptions enableOriginalAudioWithEncodedRecordings(@javax.annotation.Nullable Boolean enableOriginalAudioWithEncodedRecordings) { + this.enableOriginalAudioWithEncodedRecordings = enableOriginalAudioWithEncodedRecordings; + return this; + } + + /** + * Get enableOriginalAudioWithEncodedRecordings + * @return enableOriginalAudioWithEncodedRecordings + */ + @javax.annotation.Nullable + public Boolean getEnableOriginalAudioWithEncodedRecordings() { + return enableOriginalAudioWithEncodedRecordings; + } + + public void setEnableOriginalAudioWithEncodedRecordings(@javax.annotation.Nullable Boolean enableOriginalAudioWithEncodedRecordings) { + this.enableOriginalAudioWithEncodedRecordings = enableOriginalAudioWithEncodedRecordings; + } + + + public LiveTvOptions tunerHosts(@javax.annotation.Nullable List tunerHosts) { + this.tunerHosts = tunerHosts; + return this; + } + + public LiveTvOptions addTunerHostsItem(TunerHostInfo tunerHostsItem) { + if (this.tunerHosts == null) { + this.tunerHosts = new ArrayList<>(); + } + this.tunerHosts.add(tunerHostsItem); + return this; + } + + /** + * Get tunerHosts + * @return tunerHosts + */ + @javax.annotation.Nullable + public List getTunerHosts() { + return tunerHosts; + } + + public void setTunerHosts(@javax.annotation.Nullable List tunerHosts) { + this.tunerHosts = tunerHosts; + } + + + public LiveTvOptions listingProviders(@javax.annotation.Nullable List listingProviders) { + this.listingProviders = listingProviders; + return this; + } + + public LiveTvOptions addListingProvidersItem(ListingsProviderInfo listingProvidersItem) { + if (this.listingProviders == null) { + this.listingProviders = new ArrayList<>(); + } + this.listingProviders.add(listingProvidersItem); + return this; + } + + /** + * Get listingProviders + * @return listingProviders + */ + @javax.annotation.Nullable + public List getListingProviders() { + return listingProviders; + } + + public void setListingProviders(@javax.annotation.Nullable List listingProviders) { + this.listingProviders = listingProviders; + } + + + public LiveTvOptions prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Get prePaddingSeconds + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public LiveTvOptions postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Get postPaddingSeconds + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public LiveTvOptions mediaLocationsCreated(@javax.annotation.Nullable List mediaLocationsCreated) { + this.mediaLocationsCreated = mediaLocationsCreated; + return this; + } + + public LiveTvOptions addMediaLocationsCreatedItem(String mediaLocationsCreatedItem) { + if (this.mediaLocationsCreated == null) { + this.mediaLocationsCreated = new ArrayList<>(); + } + this.mediaLocationsCreated.add(mediaLocationsCreatedItem); + return this; + } + + /** + * Get mediaLocationsCreated + * @return mediaLocationsCreated + */ + @javax.annotation.Nullable + public List getMediaLocationsCreated() { + return mediaLocationsCreated; + } + + public void setMediaLocationsCreated(@javax.annotation.Nullable List mediaLocationsCreated) { + this.mediaLocationsCreated = mediaLocationsCreated; + } + + + public LiveTvOptions recordingPostProcessor(@javax.annotation.Nullable String recordingPostProcessor) { + this.recordingPostProcessor = recordingPostProcessor; + return this; + } + + /** + * Get recordingPostProcessor + * @return recordingPostProcessor + */ + @javax.annotation.Nullable + public String getRecordingPostProcessor() { + return recordingPostProcessor; + } + + public void setRecordingPostProcessor(@javax.annotation.Nullable String recordingPostProcessor) { + this.recordingPostProcessor = recordingPostProcessor; + } + + + public LiveTvOptions recordingPostProcessorArguments(@javax.annotation.Nullable String recordingPostProcessorArguments) { + this.recordingPostProcessorArguments = recordingPostProcessorArguments; + return this; + } + + /** + * Get recordingPostProcessorArguments + * @return recordingPostProcessorArguments + */ + @javax.annotation.Nullable + public String getRecordingPostProcessorArguments() { + return recordingPostProcessorArguments; + } + + public void setRecordingPostProcessorArguments(@javax.annotation.Nullable String recordingPostProcessorArguments) { + this.recordingPostProcessorArguments = recordingPostProcessorArguments; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvOptions liveTvOptions = (LiveTvOptions) o; + return Objects.equals(this.guideDays, liveTvOptions.guideDays) && + Objects.equals(this.recordingPath, liveTvOptions.recordingPath) && + Objects.equals(this.movieRecordingPath, liveTvOptions.movieRecordingPath) && + Objects.equals(this.seriesRecordingPath, liveTvOptions.seriesRecordingPath) && + Objects.equals(this.enableRecordingSubfolders, liveTvOptions.enableRecordingSubfolders) && + Objects.equals(this.enableOriginalAudioWithEncodedRecordings, liveTvOptions.enableOriginalAudioWithEncodedRecordings) && + Objects.equals(this.tunerHosts, liveTvOptions.tunerHosts) && + Objects.equals(this.listingProviders, liveTvOptions.listingProviders) && + Objects.equals(this.prePaddingSeconds, liveTvOptions.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, liveTvOptions.postPaddingSeconds) && + Objects.equals(this.mediaLocationsCreated, liveTvOptions.mediaLocationsCreated) && + Objects.equals(this.recordingPostProcessor, liveTvOptions.recordingPostProcessor) && + Objects.equals(this.recordingPostProcessorArguments, liveTvOptions.recordingPostProcessorArguments); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(guideDays, recordingPath, movieRecordingPath, seriesRecordingPath, enableRecordingSubfolders, enableOriginalAudioWithEncodedRecordings, tunerHosts, listingProviders, prePaddingSeconds, postPaddingSeconds, mediaLocationsCreated, recordingPostProcessor, recordingPostProcessorArguments); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvOptions {\n"); + sb.append(" guideDays: ").append(toIndentedString(guideDays)).append("\n"); + sb.append(" recordingPath: ").append(toIndentedString(recordingPath)).append("\n"); + sb.append(" movieRecordingPath: ").append(toIndentedString(movieRecordingPath)).append("\n"); + sb.append(" seriesRecordingPath: ").append(toIndentedString(seriesRecordingPath)).append("\n"); + sb.append(" enableRecordingSubfolders: ").append(toIndentedString(enableRecordingSubfolders)).append("\n"); + sb.append(" enableOriginalAudioWithEncodedRecordings: ").append(toIndentedString(enableOriginalAudioWithEncodedRecordings)).append("\n"); + sb.append(" tunerHosts: ").append(toIndentedString(tunerHosts)).append("\n"); + sb.append(" listingProviders: ").append(toIndentedString(listingProviders)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" mediaLocationsCreated: ").append(toIndentedString(mediaLocationsCreated)).append("\n"); + sb.append(" recordingPostProcessor: ").append(toIndentedString(recordingPostProcessor)).append("\n"); + sb.append(" recordingPostProcessorArguments: ").append(toIndentedString(recordingPostProcessorArguments)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GuideDays"); + openapiFields.add("RecordingPath"); + openapiFields.add("MovieRecordingPath"); + openapiFields.add("SeriesRecordingPath"); + openapiFields.add("EnableRecordingSubfolders"); + openapiFields.add("EnableOriginalAudioWithEncodedRecordings"); + openapiFields.add("TunerHosts"); + openapiFields.add("ListingProviders"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("MediaLocationsCreated"); + openapiFields.add("RecordingPostProcessor"); + openapiFields.add("RecordingPostProcessorArguments"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvOptions is not found in the empty JSON string", LiveTvOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("RecordingPath") != null && !jsonObj.get("RecordingPath").isJsonNull()) && !jsonObj.get("RecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPath").toString())); + } + if ((jsonObj.get("MovieRecordingPath") != null && !jsonObj.get("MovieRecordingPath").isJsonNull()) && !jsonObj.get("MovieRecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MovieRecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MovieRecordingPath").toString())); + } + if ((jsonObj.get("SeriesRecordingPath") != null && !jsonObj.get("SeriesRecordingPath").isJsonNull()) && !jsonObj.get("SeriesRecordingPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesRecordingPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesRecordingPath").toString())); + } + if (jsonObj.get("TunerHosts") != null && !jsonObj.get("TunerHosts").isJsonNull()) { + JsonArray jsonArraytunerHosts = jsonObj.getAsJsonArray("TunerHosts"); + if (jsonArraytunerHosts != null) { + // ensure the json data is an array + if (!jsonObj.get("TunerHosts").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerHosts` to be an array in the JSON string but got `%s`", jsonObj.get("TunerHosts").toString())); + } + + // validate the optional field `TunerHosts` (array) + for (int i = 0; i < jsonArraytunerHosts.size(); i++) { + TunerHostInfo.validateJsonElement(jsonArraytunerHosts.get(i)); + }; + } + } + if (jsonObj.get("ListingProviders") != null && !jsonObj.get("ListingProviders").isJsonNull()) { + JsonArray jsonArraylistingProviders = jsonObj.getAsJsonArray("ListingProviders"); + if (jsonArraylistingProviders != null) { + // ensure the json data is an array + if (!jsonObj.get("ListingProviders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ListingProviders` to be an array in the JSON string but got `%s`", jsonObj.get("ListingProviders").toString())); + } + + // validate the optional field `ListingProviders` (array) + for (int i = 0; i < jsonArraylistingProviders.size(); i++) { + ListingsProviderInfo.validateJsonElement(jsonArraylistingProviders.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("MediaLocationsCreated") != null && !jsonObj.get("MediaLocationsCreated").isJsonNull() && !jsonObj.get("MediaLocationsCreated").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaLocationsCreated` to be an array in the JSON string but got `%s`", jsonObj.get("MediaLocationsCreated").toString())); + } + if ((jsonObj.get("RecordingPostProcessor") != null && !jsonObj.get("RecordingPostProcessor").isJsonNull()) && !jsonObj.get("RecordingPostProcessor").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPostProcessor` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPostProcessor").toString())); + } + if ((jsonObj.get("RecordingPostProcessorArguments") != null && !jsonObj.get("RecordingPostProcessorArguments").isJsonNull()) && !jsonObj.get("RecordingPostProcessorArguments").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RecordingPostProcessorArguments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RecordingPostProcessorArguments").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvOptions + * @throws IOException if the JSON string is invalid with respect to LiveTvOptions + */ + public static LiveTvOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvOptions.class); + } + + /** + * Convert an instance of LiveTvOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java new file mode 100644 index 0000000000000..ed5542b1cd571 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceInfo.java @@ -0,0 +1,435 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.LiveTvServiceStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ServiceInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LiveTvServiceInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_HOME_PAGE_URL = "HomePageUrl"; + @SerializedName(SERIALIZED_NAME_HOME_PAGE_URL) + @javax.annotation.Nullable + private String homePageUrl; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private LiveTvServiceStatus status; + + public static final String SERIALIZED_NAME_STATUS_MESSAGE = "StatusMessage"; + @SerializedName(SERIALIZED_NAME_STATUS_MESSAGE) + @javax.annotation.Nullable + private String statusMessage; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_HAS_UPDATE_AVAILABLE = "HasUpdateAvailable"; + @SerializedName(SERIALIZED_NAME_HAS_UPDATE_AVAILABLE) + @javax.annotation.Nullable + private Boolean hasUpdateAvailable; + + public static final String SERIALIZED_NAME_IS_VISIBLE = "IsVisible"; + @SerializedName(SERIALIZED_NAME_IS_VISIBLE) + @javax.annotation.Nullable + private Boolean isVisible; + + public static final String SERIALIZED_NAME_TUNERS = "Tuners"; + @SerializedName(SERIALIZED_NAME_TUNERS) + @javax.annotation.Nullable + private List tuners; + + public LiveTvServiceInfo() { + } + + public LiveTvServiceInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LiveTvServiceInfo homePageUrl(@javax.annotation.Nullable String homePageUrl) { + this.homePageUrl = homePageUrl; + return this; + } + + /** + * Gets or sets the home page URL. + * @return homePageUrl + */ + @javax.annotation.Nullable + public String getHomePageUrl() { + return homePageUrl; + } + + public void setHomePageUrl(@javax.annotation.Nullable String homePageUrl) { + this.homePageUrl = homePageUrl; + } + + + public LiveTvServiceInfo status(@javax.annotation.Nullable LiveTvServiceStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public LiveTvServiceStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable LiveTvServiceStatus status) { + this.status = status; + } + + + public LiveTvServiceInfo statusMessage(@javax.annotation.Nullable String statusMessage) { + this.statusMessage = statusMessage; + return this; + } + + /** + * Gets or sets the status message. + * @return statusMessage + */ + @javax.annotation.Nullable + public String getStatusMessage() { + return statusMessage; + } + + public void setStatusMessage(@javax.annotation.Nullable String statusMessage) { + this.statusMessage = statusMessage; + } + + + public LiveTvServiceInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public LiveTvServiceInfo hasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has update available. + * @return hasUpdateAvailable + */ + @javax.annotation.Nullable + public Boolean getHasUpdateAvailable() { + return hasUpdateAvailable; + } + + public void setHasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + } + + + public LiveTvServiceInfo isVisible(@javax.annotation.Nullable Boolean isVisible) { + this.isVisible = isVisible; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is visible. + * @return isVisible + */ + @javax.annotation.Nullable + public Boolean getIsVisible() { + return isVisible; + } + + public void setIsVisible(@javax.annotation.Nullable Boolean isVisible) { + this.isVisible = isVisible; + } + + + public LiveTvServiceInfo tuners(@javax.annotation.Nullable List tuners) { + this.tuners = tuners; + return this; + } + + public LiveTvServiceInfo addTunersItem(String tunersItem) { + if (this.tuners == null) { + this.tuners = new ArrayList<>(); + } + this.tuners.add(tunersItem); + return this; + } + + /** + * Get tuners + * @return tuners + */ + @javax.annotation.Nullable + public List getTuners() { + return tuners; + } + + public void setTuners(@javax.annotation.Nullable List tuners) { + this.tuners = tuners; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LiveTvServiceInfo liveTvServiceInfo = (LiveTvServiceInfo) o; + return Objects.equals(this.name, liveTvServiceInfo.name) && + Objects.equals(this.homePageUrl, liveTvServiceInfo.homePageUrl) && + Objects.equals(this.status, liveTvServiceInfo.status) && + Objects.equals(this.statusMessage, liveTvServiceInfo.statusMessage) && + Objects.equals(this.version, liveTvServiceInfo.version) && + Objects.equals(this.hasUpdateAvailable, liveTvServiceInfo.hasUpdateAvailable) && + Objects.equals(this.isVisible, liveTvServiceInfo.isVisible) && + Objects.equals(this.tuners, liveTvServiceInfo.tuners); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, homePageUrl, status, statusMessage, version, hasUpdateAvailable, isVisible, tuners); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LiveTvServiceInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" homePageUrl: ").append(toIndentedString(homePageUrl)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" statusMessage: ").append(toIndentedString(statusMessage)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" hasUpdateAvailable: ").append(toIndentedString(hasUpdateAvailable)).append("\n"); + sb.append(" isVisible: ").append(toIndentedString(isVisible)).append("\n"); + sb.append(" tuners: ").append(toIndentedString(tuners)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("HomePageUrl"); + openapiFields.add("Status"); + openapiFields.add("StatusMessage"); + openapiFields.add("Version"); + openapiFields.add("HasUpdateAvailable"); + openapiFields.add("IsVisible"); + openapiFields.add("Tuners"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LiveTvServiceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LiveTvServiceInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LiveTvServiceInfo is not found in the empty JSON string", LiveTvServiceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LiveTvServiceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LiveTvServiceInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("HomePageUrl") != null && !jsonObj.get("HomePageUrl").isJsonNull()) && !jsonObj.get("HomePageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `HomePageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("HomePageUrl").toString())); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + LiveTvServiceStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("StatusMessage") != null && !jsonObj.get("StatusMessage").isJsonNull()) && !jsonObj.get("StatusMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `StatusMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("StatusMessage").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tuners") != null && !jsonObj.get("Tuners").isJsonNull() && !jsonObj.get("Tuners").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tuners` to be an array in the JSON string but got `%s`", jsonObj.get("Tuners").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LiveTvServiceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LiveTvServiceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LiveTvServiceInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LiveTvServiceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LiveTvServiceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LiveTvServiceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of LiveTvServiceInfo + * @throws IOException if the JSON string is invalid with respect to LiveTvServiceInfo + */ + public static LiveTvServiceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LiveTvServiceInfo.class); + } + + /** + * Convert an instance of LiveTvServiceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java new file mode 100644 index 0000000000000..b368255a7012b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LiveTvServiceStatus.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets LiveTvServiceStatus + */ +@JsonAdapter(LiveTvServiceStatus.Adapter.class) +public enum LiveTvServiceStatus { + + OK("Ok"), + + UNAVAILABLE("Unavailable"); + + private String value; + + LiveTvServiceStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LiveTvServiceStatus fromValue(String value) { + for (LiveTvServiceStatus b : LiveTvServiceStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LiveTvServiceStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LiveTvServiceStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LiveTvServiceStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LiveTvServiceStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocalizationOption.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocalizationOption.java new file mode 100644 index 0000000000000..29e3ff78ab8ac --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocalizationOption.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LocalizationOption + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LocalizationOption { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public LocalizationOption() { + } + + public LocalizationOption name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public LocalizationOption value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LocalizationOption localizationOption = (LocalizationOption) o; + return Objects.equals(this.name, localizationOption.name) && + Objects.equals(this.value, localizationOption.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LocalizationOption {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LocalizationOption + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LocalizationOption.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LocalizationOption is not found in the empty JSON string", LocalizationOption.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LocalizationOption.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LocalizationOption` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LocalizationOption.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LocalizationOption' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LocalizationOption.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LocalizationOption value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LocalizationOption read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LocalizationOption given an JSON string + * + * @param jsonString JSON string + * @return An instance of LocalizationOption + * @throws IOException if the JSON string is invalid with respect to LocalizationOption + */ + public static LocalizationOption fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LocalizationOption.class); + } + + /** + * Convert an instance of LocalizationOption to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocationType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocationType.java new file mode 100644 index 0000000000000..e53965eb4fedb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LocationType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum LocationType. + */ +@JsonAdapter(LocationType.Adapter.class) +public enum LocationType { + + FILE_SYSTEM("FileSystem"), + + REMOTE("Remote"), + + VIRTUAL("Virtual"), + + OFFLINE("Offline"); + + private String value; + + LocationType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LocationType fromValue(String value) { + for (LocationType b : LocationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LocationType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LocationType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LocationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LocationType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogFile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogFile.java new file mode 100644 index 0000000000000..b6adcca9ff56c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogFile.java @@ -0,0 +1,300 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * LogFile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class LogFile { + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_DATE_MODIFIED = "DateModified"; + @SerializedName(SERIALIZED_NAME_DATE_MODIFIED) + @javax.annotation.Nullable + private OffsetDateTime dateModified; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public LogFile() { + } + + public LogFile dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Gets or sets the date created. + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public LogFile dateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + return this; + } + + /** + * Gets or sets the date modified. + * @return dateModified + */ + @javax.annotation.Nullable + public OffsetDateTime getDateModified() { + return dateModified; + } + + public void setDateModified(@javax.annotation.Nullable OffsetDateTime dateModified) { + this.dateModified = dateModified; + } + + + public LogFile size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Gets or sets the size. + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public LogFile name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogFile logFile = (LogFile) o; + return Objects.equals(this.dateCreated, logFile.dateCreated) && + Objects.equals(this.dateModified, logFile.dateModified) && + Objects.equals(this.size, logFile.size) && + Objects.equals(this.name, logFile.name); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(dateCreated, dateModified, size, name); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogFile {\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" dateModified: ").append(toIndentedString(dateModified)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DateCreated"); + openapiFields.add("DateModified"); + openapiFields.add("Size"); + openapiFields.add("Name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LogFile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LogFile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LogFile is not found in the empty JSON string", LogFile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LogFile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `LogFile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LogFile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LogFile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LogFile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LogFile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LogFile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LogFile given an JSON string + * + * @param jsonString JSON string + * @return An instance of LogFile + * @throws IOException if the JSON string is invalid with respect to LogFile + */ + public static LogFile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LogFile.class); + } + + /** + * Convert an instance of LogFile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogLevel.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogLevel.java new file mode 100644 index 0000000000000..bb546c39170e3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/LogLevel.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets LogLevel + */ +@JsonAdapter(LogLevel.Adapter.class) +public enum LogLevel { + + TRACE("Trace"), + + DEBUG("Debug"), + + INFORMATION("Information"), + + WARNING("Warning"), + + ERROR("Error"), + + CRITICAL("Critical"), + + NONE("None"); + + private String value; + + LogLevel(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LogLevel fromValue(String value) { + for (LogLevel b : LogLevel.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LogLevel enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LogLevel read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LogLevel.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LogLevel.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaAttachment.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaAttachment.java new file mode 100644 index 0000000000000..42be429bc336c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaAttachment.java @@ -0,0 +1,395 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MediaAttachment. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaAttachment { + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CODEC_TAG = "CodecTag"; + @SerializedName(SERIALIZED_NAME_CODEC_TAG) + @javax.annotation.Nullable + private String codecTag; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_INDEX = "Index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @javax.annotation.Nullable + private Integer index; + + public static final String SERIALIZED_NAME_FILE_NAME = "FileName"; + @SerializedName(SERIALIZED_NAME_FILE_NAME) + @javax.annotation.Nullable + private String fileName; + + public static final String SERIALIZED_NAME_MIME_TYPE = "MimeType"; + @SerializedName(SERIALIZED_NAME_MIME_TYPE) + @javax.annotation.Nullable + private String mimeType; + + public static final String SERIALIZED_NAME_DELIVERY_URL = "DeliveryUrl"; + @SerializedName(SERIALIZED_NAME_DELIVERY_URL) + @javax.annotation.Nullable + private String deliveryUrl; + + public MediaAttachment() { + } + + public MediaAttachment codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Gets or sets the codec. + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public MediaAttachment codecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + return this; + } + + /** + * Gets or sets the codec tag. + * @return codecTag + */ + @javax.annotation.Nullable + public String getCodecTag() { + return codecTag; + } + + public void setCodecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + } + + + public MediaAttachment comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Gets or sets the comment. + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public MediaAttachment index(@javax.annotation.Nullable Integer index) { + this.index = index; + return this; + } + + /** + * Gets or sets the index. + * @return index + */ + @javax.annotation.Nullable + public Integer getIndex() { + return index; + } + + public void setIndex(@javax.annotation.Nullable Integer index) { + this.index = index; + } + + + public MediaAttachment fileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + return this; + } + + /** + * Gets or sets the filename. + * @return fileName + */ + @javax.annotation.Nullable + public String getFileName() { + return fileName; + } + + public void setFileName(@javax.annotation.Nullable String fileName) { + this.fileName = fileName; + } + + + public MediaAttachment mimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + return this; + } + + /** + * Gets or sets the MIME type. + * @return mimeType + */ + @javax.annotation.Nullable + public String getMimeType() { + return mimeType; + } + + public void setMimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + } + + + public MediaAttachment deliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + return this; + } + + /** + * Gets or sets the delivery URL. + * @return deliveryUrl + */ + @javax.annotation.Nullable + public String getDeliveryUrl() { + return deliveryUrl; + } + + public void setDeliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaAttachment mediaAttachment = (MediaAttachment) o; + return Objects.equals(this.codec, mediaAttachment.codec) && + Objects.equals(this.codecTag, mediaAttachment.codecTag) && + Objects.equals(this.comment, mediaAttachment.comment) && + Objects.equals(this.index, mediaAttachment.index) && + Objects.equals(this.fileName, mediaAttachment.fileName) && + Objects.equals(this.mimeType, mediaAttachment.mimeType) && + Objects.equals(this.deliveryUrl, mediaAttachment.deliveryUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(codec, codecTag, comment, index, fileName, mimeType, deliveryUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaAttachment {\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" codecTag: ").append(toIndentedString(codecTag)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" fileName: ").append(toIndentedString(fileName)).append("\n"); + sb.append(" mimeType: ").append(toIndentedString(mimeType)).append("\n"); + sb.append(" deliveryUrl: ").append(toIndentedString(deliveryUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Codec"); + openapiFields.add("CodecTag"); + openapiFields.add("Comment"); + openapiFields.add("Index"); + openapiFields.add("FileName"); + openapiFields.add("MimeType"); + openapiFields.add("DeliveryUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaAttachment + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaAttachment.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaAttachment is not found in the empty JSON string", MediaAttachment.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaAttachment.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaAttachment` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("CodecTag") != null && !jsonObj.get("CodecTag").isJsonNull()) && !jsonObj.get("CodecTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTag").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + if ((jsonObj.get("FileName") != null && !jsonObj.get("FileName").isJsonNull()) && !jsonObj.get("FileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FileName").toString())); + } + if ((jsonObj.get("MimeType") != null && !jsonObj.get("MimeType").isJsonNull()) && !jsonObj.get("MimeType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MimeType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MimeType").toString())); + } + if ((jsonObj.get("DeliveryUrl") != null && !jsonObj.get("DeliveryUrl").isJsonNull()) && !jsonObj.get("DeliveryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeliveryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeliveryUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaAttachment.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaAttachment' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaAttachment.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaAttachment value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaAttachment read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaAttachment given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaAttachment + * @throws IOException if the JSON string is invalid with respect to MediaAttachment + */ + public static MediaAttachment fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaAttachment.class); + } + + /** + * Convert an instance of MediaAttachment to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaEncoderPathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaEncoderPathDto.java new file mode 100644 index 0000000000000..4ad2364ad15d0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaEncoderPathDto.java @@ -0,0 +1,236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Media Encoder Path Dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaEncoderPathDto { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_PATH_TYPE = "PathType"; + @SerializedName(SERIALIZED_NAME_PATH_TYPE) + @javax.annotation.Nullable + private String pathType; + + public MediaEncoderPathDto() { + } + + public MediaEncoderPathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets media encoder path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaEncoderPathDto pathType(@javax.annotation.Nullable String pathType) { + this.pathType = pathType; + return this; + } + + /** + * Gets or sets media encoder path type. + * @return pathType + */ + @javax.annotation.Nullable + public String getPathType() { + return pathType; + } + + public void setPathType(@javax.annotation.Nullable String pathType) { + this.pathType = pathType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaEncoderPathDto mediaEncoderPathDto = (MediaEncoderPathDto) o; + return Objects.equals(this.path, mediaEncoderPathDto.path) && + Objects.equals(this.pathType, mediaEncoderPathDto.pathType); + } + + @Override + public int hashCode() { + return Objects.hash(path, pathType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaEncoderPathDto {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" pathType: ").append(toIndentedString(pathType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + openapiFields.add("PathType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaEncoderPathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaEncoderPathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaEncoderPathDto is not found in the empty JSON string", MediaEncoderPathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaEncoderPathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaEncoderPathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("PathType") != null && !jsonObj.get("PathType").isJsonNull()) && !jsonObj.get("PathType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PathType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PathType").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaEncoderPathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaEncoderPathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaEncoderPathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaEncoderPathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaEncoderPathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaEncoderPathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaEncoderPathDto + * @throws IOException if the JSON string is invalid with respect to MediaEncoderPathDto + */ + public static MediaEncoderPathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaEncoderPathDto.class); + } + + /** + * Convert an instance of MediaEncoderPathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathDto.java new file mode 100644 index 0000000000000..2a74bd14e5c76 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathDto.java @@ -0,0 +1,288 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaPathInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Media Path dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaPathDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_PATH_INFO = "PathInfo"; + @SerializedName(SERIALIZED_NAME_PATH_INFO) + @javax.annotation.Nullable + private MediaPathInfo pathInfo; + + public MediaPathDto() { + } + + public MediaPathDto name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the library. + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public MediaPathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path to add. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaPathDto pathInfo(@javax.annotation.Nullable MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + return this; + } + + /** + * Gets or sets the path info. + * @return pathInfo + */ + @javax.annotation.Nullable + public MediaPathInfo getPathInfo() { + return pathInfo; + } + + public void setPathInfo(@javax.annotation.Nullable MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaPathDto mediaPathDto = (MediaPathDto) o; + return Objects.equals(this.name, mediaPathDto.name) && + Objects.equals(this.path, mediaPathDto.path) && + Objects.equals(this.pathInfo, mediaPathDto.pathInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, path, pathInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaPathDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" pathInfo: ").append(toIndentedString(pathInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Path"); + openapiFields.add("PathInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Name"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaPathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaPathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaPathDto is not found in the empty JSON string", MediaPathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaPathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaPathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MediaPathDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + // validate the optional field `PathInfo` + if (jsonObj.get("PathInfo") != null && !jsonObj.get("PathInfo").isJsonNull()) { + MediaPathInfo.validateJsonElement(jsonObj.get("PathInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaPathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaPathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaPathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaPathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaPathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaPathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaPathDto + * @throws IOException if the JSON string is invalid with respect to MediaPathDto + */ + public static MediaPathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaPathDto.class); + } + + /** + * Convert an instance of MediaPathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathInfo.java new file mode 100644 index 0000000000000..85b24a41bf7da --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaPathInfo.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaPathInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaPathInfo { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_NETWORK_PATH = "NetworkPath"; + @SerializedName(SERIALIZED_NAME_NETWORK_PATH) + @javax.annotation.Nullable + private String networkPath; + + public MediaPathInfo() { + } + + public MediaPathInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaPathInfo networkPath(@javax.annotation.Nullable String networkPath) { + this.networkPath = networkPath; + return this; + } + + /** + * Get networkPath + * @return networkPath + */ + @javax.annotation.Nullable + public String getNetworkPath() { + return networkPath; + } + + public void setNetworkPath(@javax.annotation.Nullable String networkPath) { + this.networkPath = networkPath; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaPathInfo mediaPathInfo = (MediaPathInfo) o; + return Objects.equals(this.path, mediaPathInfo.path) && + Objects.equals(this.networkPath, mediaPathInfo.networkPath); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(path, networkPath); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaPathInfo {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" networkPath: ").append(toIndentedString(networkPath)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + openapiFields.add("NetworkPath"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaPathInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaPathInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaPathInfo is not found in the empty JSON string", MediaPathInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaPathInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaPathInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("NetworkPath") != null && !jsonObj.get("NetworkPath").isJsonNull()) && !jsonObj.get("NetworkPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NetworkPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NetworkPath").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaPathInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaPathInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaPathInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaPathInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaPathInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaPathInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaPathInfo + * @throws IOException if the JSON string is invalid with respect to MediaPathInfo + */ + public static MediaPathInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaPathInfo.class); + } + + /** + * Convert an instance of MediaPathInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaProtocol.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaProtocol.java new file mode 100644 index 0000000000000..c3e9ade96f6cf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaProtocol.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MediaProtocol + */ +@JsonAdapter(MediaProtocol.Adapter.class) +public enum MediaProtocol { + + FILE("File"), + + HTTP("Http"), + + RTMP("Rtmp"), + + RTSP("Rtsp"), + + UDP("Udp"), + + RTP("Rtp"), + + FTP("Ftp"); + + private String value; + + MediaProtocol(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaProtocol fromValue(String value) { + for (MediaProtocol b : MediaProtocol.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaProtocol enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaProtocol read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaProtocol.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaProtocol.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceInfo.java new file mode 100644 index 0000000000000..74f2c3fbb3006 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceInfo.java @@ -0,0 +1,1459 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.client.model.IsoType; +import org.openapitools.client.model.MediaAttachment; +import org.openapitools.client.model.MediaProtocol; +import org.openapitools.client.model.MediaSourceType; +import org.openapitools.client.model.MediaStream; +import org.openapitools.client.model.TransportStreamTimestamp; +import org.openapitools.client.model.Video3DFormat; +import org.openapitools.client.model.VideoType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaSourceInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaSourceInfo { + public static final String SERIALIZED_NAME_PROTOCOL = "Protocol"; + @SerializedName(SERIALIZED_NAME_PROTOCOL) + @javax.annotation.Nullable + private MediaProtocol protocol; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_ENCODER_PATH = "EncoderPath"; + @SerializedName(SERIALIZED_NAME_ENCODER_PATH) + @javax.annotation.Nullable + private String encoderPath; + + public static final String SERIALIZED_NAME_ENCODER_PROTOCOL = "EncoderProtocol"; + @SerializedName(SERIALIZED_NAME_ENCODER_PROTOCOL) + @javax.annotation.Nullable + private MediaProtocol encoderProtocol; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private MediaSourceType type; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_SIZE = "Size"; + @SerializedName(SERIALIZED_NAME_SIZE) + @javax.annotation.Nullable + private Long size; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_IS_REMOTE = "IsRemote"; + @SerializedName(SERIALIZED_NAME_IS_REMOTE) + @javax.annotation.Nullable + private Boolean isRemote; + + public static final String SERIALIZED_NAME_ETAG = "ETag"; + @SerializedName(SERIALIZED_NAME_ETAG) + @javax.annotation.Nullable + private String etag; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_READ_AT_NATIVE_FRAMERATE = "ReadAtNativeFramerate"; + @SerializedName(SERIALIZED_NAME_READ_AT_NATIVE_FRAMERATE) + @javax.annotation.Nullable + private Boolean readAtNativeFramerate; + + public static final String SERIALIZED_NAME_IGNORE_DTS = "IgnoreDts"; + @SerializedName(SERIALIZED_NAME_IGNORE_DTS) + @javax.annotation.Nullable + private Boolean ignoreDts; + + public static final String SERIALIZED_NAME_IGNORE_INDEX = "IgnoreIndex"; + @SerializedName(SERIALIZED_NAME_IGNORE_INDEX) + @javax.annotation.Nullable + private Boolean ignoreIndex; + + public static final String SERIALIZED_NAME_GEN_PTS_INPUT = "GenPtsInput"; + @SerializedName(SERIALIZED_NAME_GEN_PTS_INPUT) + @javax.annotation.Nullable + private Boolean genPtsInput; + + public static final String SERIALIZED_NAME_SUPPORTS_TRANSCODING = "SupportsTranscoding"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_TRANSCODING) + @javax.annotation.Nullable + private Boolean supportsTranscoding; + + public static final String SERIALIZED_NAME_SUPPORTS_DIRECT_STREAM = "SupportsDirectStream"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean supportsDirectStream; + + public static final String SERIALIZED_NAME_SUPPORTS_DIRECT_PLAY = "SupportsDirectPlay"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean supportsDirectPlay; + + public static final String SERIALIZED_NAME_IS_INFINITE_STREAM = "IsInfiniteStream"; + @SerializedName(SERIALIZED_NAME_IS_INFINITE_STREAM) + @javax.annotation.Nullable + private Boolean isInfiniteStream; + + public static final String SERIALIZED_NAME_REQUIRES_OPENING = "RequiresOpening"; + @SerializedName(SERIALIZED_NAME_REQUIRES_OPENING) + @javax.annotation.Nullable + private Boolean requiresOpening; + + public static final String SERIALIZED_NAME_OPEN_TOKEN = "OpenToken"; + @SerializedName(SERIALIZED_NAME_OPEN_TOKEN) + @javax.annotation.Nullable + private String openToken; + + public static final String SERIALIZED_NAME_REQUIRES_CLOSING = "RequiresClosing"; + @SerializedName(SERIALIZED_NAME_REQUIRES_CLOSING) + @javax.annotation.Nullable + private Boolean requiresClosing; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_BUFFER_MS = "BufferMs"; + @SerializedName(SERIALIZED_NAME_BUFFER_MS) + @javax.annotation.Nullable + private Integer bufferMs; + + public static final String SERIALIZED_NAME_REQUIRES_LOOPING = "RequiresLooping"; + @SerializedName(SERIALIZED_NAME_REQUIRES_LOOPING) + @javax.annotation.Nullable + private Boolean requiresLooping; + + public static final String SERIALIZED_NAME_SUPPORTS_PROBING = "SupportsProbing"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_PROBING) + @javax.annotation.Nullable + private Boolean supportsProbing; + + public static final String SERIALIZED_NAME_VIDEO_TYPE = "VideoType"; + @SerializedName(SERIALIZED_NAME_VIDEO_TYPE) + @javax.annotation.Nullable + private VideoType videoType; + + public static final String SERIALIZED_NAME_ISO_TYPE = "IsoType"; + @SerializedName(SERIALIZED_NAME_ISO_TYPE) + @javax.annotation.Nullable + private IsoType isoType; + + public static final String SERIALIZED_NAME_VIDEO3_D_FORMAT = "Video3DFormat"; + @SerializedName(SERIALIZED_NAME_VIDEO3_D_FORMAT) + @javax.annotation.Nullable + private Video3DFormat video3DFormat; + + public static final String SERIALIZED_NAME_MEDIA_STREAMS = "MediaStreams"; + @SerializedName(SERIALIZED_NAME_MEDIA_STREAMS) + @javax.annotation.Nullable + private List mediaStreams; + + public static final String SERIALIZED_NAME_MEDIA_ATTACHMENTS = "MediaAttachments"; + @SerializedName(SERIALIZED_NAME_MEDIA_ATTACHMENTS) + @javax.annotation.Nullable + private List mediaAttachments; + + public static final String SERIALIZED_NAME_FORMATS = "Formats"; + @SerializedName(SERIALIZED_NAME_FORMATS) + @javax.annotation.Nullable + private List formats; + + public static final String SERIALIZED_NAME_BITRATE = "Bitrate"; + @SerializedName(SERIALIZED_NAME_BITRATE) + @javax.annotation.Nullable + private Integer bitrate; + + public static final String SERIALIZED_NAME_TIMESTAMP = "Timestamp"; + @SerializedName(SERIALIZED_NAME_TIMESTAMP) + @javax.annotation.Nullable + private TransportStreamTimestamp timestamp; + + public static final String SERIALIZED_NAME_REQUIRED_HTTP_HEADERS = "RequiredHttpHeaders"; + @SerializedName(SERIALIZED_NAME_REQUIRED_HTTP_HEADERS) + @javax.annotation.Nullable + private Map requiredHttpHeaders; + + public static final String SERIALIZED_NAME_TRANSCODING_URL = "TranscodingUrl"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_URL) + @javax.annotation.Nullable + private String transcodingUrl; + + public static final String SERIALIZED_NAME_TRANSCODING_SUB_PROTOCOL = "TranscodingSubProtocol"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_SUB_PROTOCOL) + @javax.annotation.Nullable + private String transcodingSubProtocol; + + public static final String SERIALIZED_NAME_TRANSCODING_CONTAINER = "TranscodingContainer"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_CONTAINER) + @javax.annotation.Nullable + private String transcodingContainer; + + public static final String SERIALIZED_NAME_ANALYZE_DURATION_MS = "AnalyzeDurationMs"; + @SerializedName(SERIALIZED_NAME_ANALYZE_DURATION_MS) + @javax.annotation.Nullable + private Integer analyzeDurationMs; + + public static final String SERIALIZED_NAME_DEFAULT_AUDIO_STREAM_INDEX = "DefaultAudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_DEFAULT_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer defaultAudioStreamIndex; + + public static final String SERIALIZED_NAME_DEFAULT_SUBTITLE_STREAM_INDEX = "DefaultSubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_DEFAULT_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer defaultSubtitleStreamIndex; + + public MediaSourceInfo() { + } + + public MediaSourceInfo protocol(@javax.annotation.Nullable MediaProtocol protocol) { + this.protocol = protocol; + return this; + } + + /** + * Get protocol + * @return protocol + */ + @javax.annotation.Nullable + public MediaProtocol getProtocol() { + return protocol; + } + + public void setProtocol(@javax.annotation.Nullable MediaProtocol protocol) { + this.protocol = protocol; + } + + + public MediaSourceInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public MediaSourceInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaSourceInfo encoderPath(@javax.annotation.Nullable String encoderPath) { + this.encoderPath = encoderPath; + return this; + } + + /** + * Get encoderPath + * @return encoderPath + */ + @javax.annotation.Nullable + public String getEncoderPath() { + return encoderPath; + } + + public void setEncoderPath(@javax.annotation.Nullable String encoderPath) { + this.encoderPath = encoderPath; + } + + + public MediaSourceInfo encoderProtocol(@javax.annotation.Nullable MediaProtocol encoderProtocol) { + this.encoderProtocol = encoderProtocol; + return this; + } + + /** + * Get encoderProtocol + * @return encoderProtocol + */ + @javax.annotation.Nullable + public MediaProtocol getEncoderProtocol() { + return encoderProtocol; + } + + public void setEncoderProtocol(@javax.annotation.Nullable MediaProtocol encoderProtocol) { + this.encoderProtocol = encoderProtocol; + } + + + public MediaSourceInfo type(@javax.annotation.Nullable MediaSourceType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public MediaSourceType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable MediaSourceType type) { + this.type = type; + } + + + public MediaSourceInfo container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public MediaSourceInfo size(@javax.annotation.Nullable Long size) { + this.size = size; + return this; + } + + /** + * Get size + * @return size + */ + @javax.annotation.Nullable + public Long getSize() { + return size; + } + + public void setSize(@javax.annotation.Nullable Long size) { + this.size = size; + } + + + public MediaSourceInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MediaSourceInfo isRemote(@javax.annotation.Nullable Boolean isRemote) { + this.isRemote = isRemote; + return this; + } + + /** + * Gets or sets a value indicating whether the media is remote. Differentiate internet url vs local network. + * @return isRemote + */ + @javax.annotation.Nullable + public Boolean getIsRemote() { + return isRemote; + } + + public void setIsRemote(@javax.annotation.Nullable Boolean isRemote) { + this.isRemote = isRemote; + } + + + public MediaSourceInfo etag(@javax.annotation.Nullable String etag) { + this.etag = etag; + return this; + } + + /** + * Get etag + * @return etag + */ + @javax.annotation.Nullable + public String getEtag() { + return etag; + } + + public void setEtag(@javax.annotation.Nullable String etag) { + this.etag = etag; + } + + + public MediaSourceInfo runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Get runTimeTicks + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public MediaSourceInfo readAtNativeFramerate(@javax.annotation.Nullable Boolean readAtNativeFramerate) { + this.readAtNativeFramerate = readAtNativeFramerate; + return this; + } + + /** + * Get readAtNativeFramerate + * @return readAtNativeFramerate + */ + @javax.annotation.Nullable + public Boolean getReadAtNativeFramerate() { + return readAtNativeFramerate; + } + + public void setReadAtNativeFramerate(@javax.annotation.Nullable Boolean readAtNativeFramerate) { + this.readAtNativeFramerate = readAtNativeFramerate; + } + + + public MediaSourceInfo ignoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + return this; + } + + /** + * Get ignoreDts + * @return ignoreDts + */ + @javax.annotation.Nullable + public Boolean getIgnoreDts() { + return ignoreDts; + } + + public void setIgnoreDts(@javax.annotation.Nullable Boolean ignoreDts) { + this.ignoreDts = ignoreDts; + } + + + public MediaSourceInfo ignoreIndex(@javax.annotation.Nullable Boolean ignoreIndex) { + this.ignoreIndex = ignoreIndex; + return this; + } + + /** + * Get ignoreIndex + * @return ignoreIndex + */ + @javax.annotation.Nullable + public Boolean getIgnoreIndex() { + return ignoreIndex; + } + + public void setIgnoreIndex(@javax.annotation.Nullable Boolean ignoreIndex) { + this.ignoreIndex = ignoreIndex; + } + + + public MediaSourceInfo genPtsInput(@javax.annotation.Nullable Boolean genPtsInput) { + this.genPtsInput = genPtsInput; + return this; + } + + /** + * Get genPtsInput + * @return genPtsInput + */ + @javax.annotation.Nullable + public Boolean getGenPtsInput() { + return genPtsInput; + } + + public void setGenPtsInput(@javax.annotation.Nullable Boolean genPtsInput) { + this.genPtsInput = genPtsInput; + } + + + public MediaSourceInfo supportsTranscoding(@javax.annotation.Nullable Boolean supportsTranscoding) { + this.supportsTranscoding = supportsTranscoding; + return this; + } + + /** + * Get supportsTranscoding + * @return supportsTranscoding + */ + @javax.annotation.Nullable + public Boolean getSupportsTranscoding() { + return supportsTranscoding; + } + + public void setSupportsTranscoding(@javax.annotation.Nullable Boolean supportsTranscoding) { + this.supportsTranscoding = supportsTranscoding; + } + + + public MediaSourceInfo supportsDirectStream(@javax.annotation.Nullable Boolean supportsDirectStream) { + this.supportsDirectStream = supportsDirectStream; + return this; + } + + /** + * Get supportsDirectStream + * @return supportsDirectStream + */ + @javax.annotation.Nullable + public Boolean getSupportsDirectStream() { + return supportsDirectStream; + } + + public void setSupportsDirectStream(@javax.annotation.Nullable Boolean supportsDirectStream) { + this.supportsDirectStream = supportsDirectStream; + } + + + public MediaSourceInfo supportsDirectPlay(@javax.annotation.Nullable Boolean supportsDirectPlay) { + this.supportsDirectPlay = supportsDirectPlay; + return this; + } + + /** + * Get supportsDirectPlay + * @return supportsDirectPlay + */ + @javax.annotation.Nullable + public Boolean getSupportsDirectPlay() { + return supportsDirectPlay; + } + + public void setSupportsDirectPlay(@javax.annotation.Nullable Boolean supportsDirectPlay) { + this.supportsDirectPlay = supportsDirectPlay; + } + + + public MediaSourceInfo isInfiniteStream(@javax.annotation.Nullable Boolean isInfiniteStream) { + this.isInfiniteStream = isInfiniteStream; + return this; + } + + /** + * Get isInfiniteStream + * @return isInfiniteStream + */ + @javax.annotation.Nullable + public Boolean getIsInfiniteStream() { + return isInfiniteStream; + } + + public void setIsInfiniteStream(@javax.annotation.Nullable Boolean isInfiniteStream) { + this.isInfiniteStream = isInfiniteStream; + } + + + public MediaSourceInfo requiresOpening(@javax.annotation.Nullable Boolean requiresOpening) { + this.requiresOpening = requiresOpening; + return this; + } + + /** + * Get requiresOpening + * @return requiresOpening + */ + @javax.annotation.Nullable + public Boolean getRequiresOpening() { + return requiresOpening; + } + + public void setRequiresOpening(@javax.annotation.Nullable Boolean requiresOpening) { + this.requiresOpening = requiresOpening; + } + + + public MediaSourceInfo openToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + return this; + } + + /** + * Get openToken + * @return openToken + */ + @javax.annotation.Nullable + public String getOpenToken() { + return openToken; + } + + public void setOpenToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + } + + + public MediaSourceInfo requiresClosing(@javax.annotation.Nullable Boolean requiresClosing) { + this.requiresClosing = requiresClosing; + return this; + } + + /** + * Get requiresClosing + * @return requiresClosing + */ + @javax.annotation.Nullable + public Boolean getRequiresClosing() { + return requiresClosing; + } + + public void setRequiresClosing(@javax.annotation.Nullable Boolean requiresClosing) { + this.requiresClosing = requiresClosing; + } + + + public MediaSourceInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Get liveStreamId + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public MediaSourceInfo bufferMs(@javax.annotation.Nullable Integer bufferMs) { + this.bufferMs = bufferMs; + return this; + } + + /** + * Get bufferMs + * @return bufferMs + */ + @javax.annotation.Nullable + public Integer getBufferMs() { + return bufferMs; + } + + public void setBufferMs(@javax.annotation.Nullable Integer bufferMs) { + this.bufferMs = bufferMs; + } + + + public MediaSourceInfo requiresLooping(@javax.annotation.Nullable Boolean requiresLooping) { + this.requiresLooping = requiresLooping; + return this; + } + + /** + * Get requiresLooping + * @return requiresLooping + */ + @javax.annotation.Nullable + public Boolean getRequiresLooping() { + return requiresLooping; + } + + public void setRequiresLooping(@javax.annotation.Nullable Boolean requiresLooping) { + this.requiresLooping = requiresLooping; + } + + + public MediaSourceInfo supportsProbing(@javax.annotation.Nullable Boolean supportsProbing) { + this.supportsProbing = supportsProbing; + return this; + } + + /** + * Get supportsProbing + * @return supportsProbing + */ + @javax.annotation.Nullable + public Boolean getSupportsProbing() { + return supportsProbing; + } + + public void setSupportsProbing(@javax.annotation.Nullable Boolean supportsProbing) { + this.supportsProbing = supportsProbing; + } + + + public MediaSourceInfo videoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + return this; + } + + /** + * Get videoType + * @return videoType + */ + @javax.annotation.Nullable + public VideoType getVideoType() { + return videoType; + } + + public void setVideoType(@javax.annotation.Nullable VideoType videoType) { + this.videoType = videoType; + } + + + public MediaSourceInfo isoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + return this; + } + + /** + * Get isoType + * @return isoType + */ + @javax.annotation.Nullable + public IsoType getIsoType() { + return isoType; + } + + public void setIsoType(@javax.annotation.Nullable IsoType isoType) { + this.isoType = isoType; + } + + + public MediaSourceInfo video3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + return this; + } + + /** + * Get video3DFormat + * @return video3DFormat + */ + @javax.annotation.Nullable + public Video3DFormat getVideo3DFormat() { + return video3DFormat; + } + + public void setVideo3DFormat(@javax.annotation.Nullable Video3DFormat video3DFormat) { + this.video3DFormat = video3DFormat; + } + + + public MediaSourceInfo mediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + return this; + } + + public MediaSourceInfo addMediaStreamsItem(MediaStream mediaStreamsItem) { + if (this.mediaStreams == null) { + this.mediaStreams = new ArrayList<>(); + } + this.mediaStreams.add(mediaStreamsItem); + return this; + } + + /** + * Get mediaStreams + * @return mediaStreams + */ + @javax.annotation.Nullable + public List getMediaStreams() { + return mediaStreams; + } + + public void setMediaStreams(@javax.annotation.Nullable List mediaStreams) { + this.mediaStreams = mediaStreams; + } + + + public MediaSourceInfo mediaAttachments(@javax.annotation.Nullable List mediaAttachments) { + this.mediaAttachments = mediaAttachments; + return this; + } + + public MediaSourceInfo addMediaAttachmentsItem(MediaAttachment mediaAttachmentsItem) { + if (this.mediaAttachments == null) { + this.mediaAttachments = new ArrayList<>(); + } + this.mediaAttachments.add(mediaAttachmentsItem); + return this; + } + + /** + * Get mediaAttachments + * @return mediaAttachments + */ + @javax.annotation.Nullable + public List getMediaAttachments() { + return mediaAttachments; + } + + public void setMediaAttachments(@javax.annotation.Nullable List mediaAttachments) { + this.mediaAttachments = mediaAttachments; + } + + + public MediaSourceInfo formats(@javax.annotation.Nullable List formats) { + this.formats = formats; + return this; + } + + public MediaSourceInfo addFormatsItem(String formatsItem) { + if (this.formats == null) { + this.formats = new ArrayList<>(); + } + this.formats.add(formatsItem); + return this; + } + + /** + * Get formats + * @return formats + */ + @javax.annotation.Nullable + public List getFormats() { + return formats; + } + + public void setFormats(@javax.annotation.Nullable List formats) { + this.formats = formats; + } + + + public MediaSourceInfo bitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + /** + * Get bitrate + * @return bitrate + */ + @javax.annotation.Nullable + public Integer getBitrate() { + return bitrate; + } + + public void setBitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + } + + + public MediaSourceInfo timestamp(@javax.annotation.Nullable TransportStreamTimestamp timestamp) { + this.timestamp = timestamp; + return this; + } + + /** + * Get timestamp + * @return timestamp + */ + @javax.annotation.Nullable + public TransportStreamTimestamp getTimestamp() { + return timestamp; + } + + public void setTimestamp(@javax.annotation.Nullable TransportStreamTimestamp timestamp) { + this.timestamp = timestamp; + } + + + public MediaSourceInfo requiredHttpHeaders(@javax.annotation.Nullable Map requiredHttpHeaders) { + this.requiredHttpHeaders = requiredHttpHeaders; + return this; + } + + public MediaSourceInfo putRequiredHttpHeadersItem(String key, String requiredHttpHeadersItem) { + if (this.requiredHttpHeaders == null) { + this.requiredHttpHeaders = new HashMap<>(); + } + this.requiredHttpHeaders.put(key, requiredHttpHeadersItem); + return this; + } + + /** + * Get requiredHttpHeaders + * @return requiredHttpHeaders + */ + @javax.annotation.Nullable + public Map getRequiredHttpHeaders() { + return requiredHttpHeaders; + } + + public void setRequiredHttpHeaders(@javax.annotation.Nullable Map requiredHttpHeaders) { + this.requiredHttpHeaders = requiredHttpHeaders; + } + + + public MediaSourceInfo transcodingUrl(@javax.annotation.Nullable String transcodingUrl) { + this.transcodingUrl = transcodingUrl; + return this; + } + + /** + * Get transcodingUrl + * @return transcodingUrl + */ + @javax.annotation.Nullable + public String getTranscodingUrl() { + return transcodingUrl; + } + + public void setTranscodingUrl(@javax.annotation.Nullable String transcodingUrl) { + this.transcodingUrl = transcodingUrl; + } + + + public MediaSourceInfo transcodingSubProtocol(@javax.annotation.Nullable String transcodingSubProtocol) { + this.transcodingSubProtocol = transcodingSubProtocol; + return this; + } + + /** + * Get transcodingSubProtocol + * @return transcodingSubProtocol + */ + @javax.annotation.Nullable + public String getTranscodingSubProtocol() { + return transcodingSubProtocol; + } + + public void setTranscodingSubProtocol(@javax.annotation.Nullable String transcodingSubProtocol) { + this.transcodingSubProtocol = transcodingSubProtocol; + } + + + public MediaSourceInfo transcodingContainer(@javax.annotation.Nullable String transcodingContainer) { + this.transcodingContainer = transcodingContainer; + return this; + } + + /** + * Get transcodingContainer + * @return transcodingContainer + */ + @javax.annotation.Nullable + public String getTranscodingContainer() { + return transcodingContainer; + } + + public void setTranscodingContainer(@javax.annotation.Nullable String transcodingContainer) { + this.transcodingContainer = transcodingContainer; + } + + + public MediaSourceInfo analyzeDurationMs(@javax.annotation.Nullable Integer analyzeDurationMs) { + this.analyzeDurationMs = analyzeDurationMs; + return this; + } + + /** + * Get analyzeDurationMs + * @return analyzeDurationMs + */ + @javax.annotation.Nullable + public Integer getAnalyzeDurationMs() { + return analyzeDurationMs; + } + + public void setAnalyzeDurationMs(@javax.annotation.Nullable Integer analyzeDurationMs) { + this.analyzeDurationMs = analyzeDurationMs; + } + + + public MediaSourceInfo defaultAudioStreamIndex(@javax.annotation.Nullable Integer defaultAudioStreamIndex) { + this.defaultAudioStreamIndex = defaultAudioStreamIndex; + return this; + } + + /** + * Get defaultAudioStreamIndex + * @return defaultAudioStreamIndex + */ + @javax.annotation.Nullable + public Integer getDefaultAudioStreamIndex() { + return defaultAudioStreamIndex; + } + + public void setDefaultAudioStreamIndex(@javax.annotation.Nullable Integer defaultAudioStreamIndex) { + this.defaultAudioStreamIndex = defaultAudioStreamIndex; + } + + + public MediaSourceInfo defaultSubtitleStreamIndex(@javax.annotation.Nullable Integer defaultSubtitleStreamIndex) { + this.defaultSubtitleStreamIndex = defaultSubtitleStreamIndex; + return this; + } + + /** + * Get defaultSubtitleStreamIndex + * @return defaultSubtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getDefaultSubtitleStreamIndex() { + return defaultSubtitleStreamIndex; + } + + public void setDefaultSubtitleStreamIndex(@javax.annotation.Nullable Integer defaultSubtitleStreamIndex) { + this.defaultSubtitleStreamIndex = defaultSubtitleStreamIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaSourceInfo mediaSourceInfo = (MediaSourceInfo) o; + return Objects.equals(this.protocol, mediaSourceInfo.protocol) && + Objects.equals(this.id, mediaSourceInfo.id) && + Objects.equals(this.path, mediaSourceInfo.path) && + Objects.equals(this.encoderPath, mediaSourceInfo.encoderPath) && + Objects.equals(this.encoderProtocol, mediaSourceInfo.encoderProtocol) && + Objects.equals(this.type, mediaSourceInfo.type) && + Objects.equals(this.container, mediaSourceInfo.container) && + Objects.equals(this.size, mediaSourceInfo.size) && + Objects.equals(this.name, mediaSourceInfo.name) && + Objects.equals(this.isRemote, mediaSourceInfo.isRemote) && + Objects.equals(this.etag, mediaSourceInfo.etag) && + Objects.equals(this.runTimeTicks, mediaSourceInfo.runTimeTicks) && + Objects.equals(this.readAtNativeFramerate, mediaSourceInfo.readAtNativeFramerate) && + Objects.equals(this.ignoreDts, mediaSourceInfo.ignoreDts) && + Objects.equals(this.ignoreIndex, mediaSourceInfo.ignoreIndex) && + Objects.equals(this.genPtsInput, mediaSourceInfo.genPtsInput) && + Objects.equals(this.supportsTranscoding, mediaSourceInfo.supportsTranscoding) && + Objects.equals(this.supportsDirectStream, mediaSourceInfo.supportsDirectStream) && + Objects.equals(this.supportsDirectPlay, mediaSourceInfo.supportsDirectPlay) && + Objects.equals(this.isInfiniteStream, mediaSourceInfo.isInfiniteStream) && + Objects.equals(this.requiresOpening, mediaSourceInfo.requiresOpening) && + Objects.equals(this.openToken, mediaSourceInfo.openToken) && + Objects.equals(this.requiresClosing, mediaSourceInfo.requiresClosing) && + Objects.equals(this.liveStreamId, mediaSourceInfo.liveStreamId) && + Objects.equals(this.bufferMs, mediaSourceInfo.bufferMs) && + Objects.equals(this.requiresLooping, mediaSourceInfo.requiresLooping) && + Objects.equals(this.supportsProbing, mediaSourceInfo.supportsProbing) && + Objects.equals(this.videoType, mediaSourceInfo.videoType) && + Objects.equals(this.isoType, mediaSourceInfo.isoType) && + Objects.equals(this.video3DFormat, mediaSourceInfo.video3DFormat) && + Objects.equals(this.mediaStreams, mediaSourceInfo.mediaStreams) && + Objects.equals(this.mediaAttachments, mediaSourceInfo.mediaAttachments) && + Objects.equals(this.formats, mediaSourceInfo.formats) && + Objects.equals(this.bitrate, mediaSourceInfo.bitrate) && + Objects.equals(this.timestamp, mediaSourceInfo.timestamp) && + Objects.equals(this.requiredHttpHeaders, mediaSourceInfo.requiredHttpHeaders) && + Objects.equals(this.transcodingUrl, mediaSourceInfo.transcodingUrl) && + Objects.equals(this.transcodingSubProtocol, mediaSourceInfo.transcodingSubProtocol) && + Objects.equals(this.transcodingContainer, mediaSourceInfo.transcodingContainer) && + Objects.equals(this.analyzeDurationMs, mediaSourceInfo.analyzeDurationMs) && + Objects.equals(this.defaultAudioStreamIndex, mediaSourceInfo.defaultAudioStreamIndex) && + Objects.equals(this.defaultSubtitleStreamIndex, mediaSourceInfo.defaultSubtitleStreamIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(protocol, id, path, encoderPath, encoderProtocol, type, container, size, name, isRemote, etag, runTimeTicks, readAtNativeFramerate, ignoreDts, ignoreIndex, genPtsInput, supportsTranscoding, supportsDirectStream, supportsDirectPlay, isInfiniteStream, requiresOpening, openToken, requiresClosing, liveStreamId, bufferMs, requiresLooping, supportsProbing, videoType, isoType, video3DFormat, mediaStreams, mediaAttachments, formats, bitrate, timestamp, requiredHttpHeaders, transcodingUrl, transcodingSubProtocol, transcodingContainer, analyzeDurationMs, defaultAudioStreamIndex, defaultSubtitleStreamIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaSourceInfo {\n"); + sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" encoderPath: ").append(toIndentedString(encoderPath)).append("\n"); + sb.append(" encoderProtocol: ").append(toIndentedString(encoderProtocol)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" size: ").append(toIndentedString(size)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" isRemote: ").append(toIndentedString(isRemote)).append("\n"); + sb.append(" etag: ").append(toIndentedString(etag)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" readAtNativeFramerate: ").append(toIndentedString(readAtNativeFramerate)).append("\n"); + sb.append(" ignoreDts: ").append(toIndentedString(ignoreDts)).append("\n"); + sb.append(" ignoreIndex: ").append(toIndentedString(ignoreIndex)).append("\n"); + sb.append(" genPtsInput: ").append(toIndentedString(genPtsInput)).append("\n"); + sb.append(" supportsTranscoding: ").append(toIndentedString(supportsTranscoding)).append("\n"); + sb.append(" supportsDirectStream: ").append(toIndentedString(supportsDirectStream)).append("\n"); + sb.append(" supportsDirectPlay: ").append(toIndentedString(supportsDirectPlay)).append("\n"); + sb.append(" isInfiniteStream: ").append(toIndentedString(isInfiniteStream)).append("\n"); + sb.append(" requiresOpening: ").append(toIndentedString(requiresOpening)).append("\n"); + sb.append(" openToken: ").append(toIndentedString(openToken)).append("\n"); + sb.append(" requiresClosing: ").append(toIndentedString(requiresClosing)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" bufferMs: ").append(toIndentedString(bufferMs)).append("\n"); + sb.append(" requiresLooping: ").append(toIndentedString(requiresLooping)).append("\n"); + sb.append(" supportsProbing: ").append(toIndentedString(supportsProbing)).append("\n"); + sb.append(" videoType: ").append(toIndentedString(videoType)).append("\n"); + sb.append(" isoType: ").append(toIndentedString(isoType)).append("\n"); + sb.append(" video3DFormat: ").append(toIndentedString(video3DFormat)).append("\n"); + sb.append(" mediaStreams: ").append(toIndentedString(mediaStreams)).append("\n"); + sb.append(" mediaAttachments: ").append(toIndentedString(mediaAttachments)).append("\n"); + sb.append(" formats: ").append(toIndentedString(formats)).append("\n"); + sb.append(" bitrate: ").append(toIndentedString(bitrate)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" requiredHttpHeaders: ").append(toIndentedString(requiredHttpHeaders)).append("\n"); + sb.append(" transcodingUrl: ").append(toIndentedString(transcodingUrl)).append("\n"); + sb.append(" transcodingSubProtocol: ").append(toIndentedString(transcodingSubProtocol)).append("\n"); + sb.append(" transcodingContainer: ").append(toIndentedString(transcodingContainer)).append("\n"); + sb.append(" analyzeDurationMs: ").append(toIndentedString(analyzeDurationMs)).append("\n"); + sb.append(" defaultAudioStreamIndex: ").append(toIndentedString(defaultAudioStreamIndex)).append("\n"); + sb.append(" defaultSubtitleStreamIndex: ").append(toIndentedString(defaultSubtitleStreamIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Protocol"); + openapiFields.add("Id"); + openapiFields.add("Path"); + openapiFields.add("EncoderPath"); + openapiFields.add("EncoderProtocol"); + openapiFields.add("Type"); + openapiFields.add("Container"); + openapiFields.add("Size"); + openapiFields.add("Name"); + openapiFields.add("IsRemote"); + openapiFields.add("ETag"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("ReadAtNativeFramerate"); + openapiFields.add("IgnoreDts"); + openapiFields.add("IgnoreIndex"); + openapiFields.add("GenPtsInput"); + openapiFields.add("SupportsTranscoding"); + openapiFields.add("SupportsDirectStream"); + openapiFields.add("SupportsDirectPlay"); + openapiFields.add("IsInfiniteStream"); + openapiFields.add("RequiresOpening"); + openapiFields.add("OpenToken"); + openapiFields.add("RequiresClosing"); + openapiFields.add("LiveStreamId"); + openapiFields.add("BufferMs"); + openapiFields.add("RequiresLooping"); + openapiFields.add("SupportsProbing"); + openapiFields.add("VideoType"); + openapiFields.add("IsoType"); + openapiFields.add("Video3DFormat"); + openapiFields.add("MediaStreams"); + openapiFields.add("MediaAttachments"); + openapiFields.add("Formats"); + openapiFields.add("Bitrate"); + openapiFields.add("Timestamp"); + openapiFields.add("RequiredHttpHeaders"); + openapiFields.add("TranscodingUrl"); + openapiFields.add("TranscodingSubProtocol"); + openapiFields.add("TranscodingContainer"); + openapiFields.add("AnalyzeDurationMs"); + openapiFields.add("DefaultAudioStreamIndex"); + openapiFields.add("DefaultSubtitleStreamIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaSourceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaSourceInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaSourceInfo is not found in the empty JSON string", MediaSourceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaSourceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaSourceInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Protocol` + if (jsonObj.get("Protocol") != null && !jsonObj.get("Protocol").isJsonNull()) { + MediaProtocol.validateJsonElement(jsonObj.get("Protocol")); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("EncoderPath") != null && !jsonObj.get("EncoderPath").isJsonNull()) && !jsonObj.get("EncoderPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EncoderPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EncoderPath").toString())); + } + // validate the optional field `EncoderProtocol` + if (jsonObj.get("EncoderProtocol") != null && !jsonObj.get("EncoderProtocol").isJsonNull()) { + MediaProtocol.validateJsonElement(jsonObj.get("EncoderProtocol")); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + MediaSourceType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ETag") != null && !jsonObj.get("ETag").isJsonNull()) && !jsonObj.get("ETag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ETag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ETag").toString())); + } + if ((jsonObj.get("OpenToken") != null && !jsonObj.get("OpenToken").isJsonNull()) && !jsonObj.get("OpenToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenToken").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + // validate the optional field `VideoType` + if (jsonObj.get("VideoType") != null && !jsonObj.get("VideoType").isJsonNull()) { + VideoType.validateJsonElement(jsonObj.get("VideoType")); + } + // validate the optional field `IsoType` + if (jsonObj.get("IsoType") != null && !jsonObj.get("IsoType").isJsonNull()) { + IsoType.validateJsonElement(jsonObj.get("IsoType")); + } + // validate the optional field `Video3DFormat` + if (jsonObj.get("Video3DFormat") != null && !jsonObj.get("Video3DFormat").isJsonNull()) { + Video3DFormat.validateJsonElement(jsonObj.get("Video3DFormat")); + } + if (jsonObj.get("MediaStreams") != null && !jsonObj.get("MediaStreams").isJsonNull()) { + JsonArray jsonArraymediaStreams = jsonObj.getAsJsonArray("MediaStreams"); + if (jsonArraymediaStreams != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaStreams").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaStreams` to be an array in the JSON string but got `%s`", jsonObj.get("MediaStreams").toString())); + } + + // validate the optional field `MediaStreams` (array) + for (int i = 0; i < jsonArraymediaStreams.size(); i++) { + MediaStream.validateJsonElement(jsonArraymediaStreams.get(i)); + }; + } + } + if (jsonObj.get("MediaAttachments") != null && !jsonObj.get("MediaAttachments").isJsonNull()) { + JsonArray jsonArraymediaAttachments = jsonObj.getAsJsonArray("MediaAttachments"); + if (jsonArraymediaAttachments != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaAttachments").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaAttachments` to be an array in the JSON string but got `%s`", jsonObj.get("MediaAttachments").toString())); + } + + // validate the optional field `MediaAttachments` (array) + for (int i = 0; i < jsonArraymediaAttachments.size(); i++) { + MediaAttachment.validateJsonElement(jsonArraymediaAttachments.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Formats") != null && !jsonObj.get("Formats").isJsonNull() && !jsonObj.get("Formats").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Formats` to be an array in the JSON string but got `%s`", jsonObj.get("Formats").toString())); + } + // validate the optional field `Timestamp` + if (jsonObj.get("Timestamp") != null && !jsonObj.get("Timestamp").isJsonNull()) { + TransportStreamTimestamp.validateJsonElement(jsonObj.get("Timestamp")); + } + if ((jsonObj.get("TranscodingUrl") != null && !jsonObj.get("TranscodingUrl").isJsonNull()) && !jsonObj.get("TranscodingUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingUrl").toString())); + } + if ((jsonObj.get("TranscodingSubProtocol") != null && !jsonObj.get("TranscodingSubProtocol").isJsonNull()) && !jsonObj.get("TranscodingSubProtocol").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingSubProtocol` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingSubProtocol").toString())); + } + if ((jsonObj.get("TranscodingContainer") != null && !jsonObj.get("TranscodingContainer").isJsonNull()) && !jsonObj.get("TranscodingContainer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingContainer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingContainer").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaSourceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaSourceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaSourceInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaSourceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaSourceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaSourceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaSourceInfo + * @throws IOException if the JSON string is invalid with respect to MediaSourceInfo + */ + public static MediaSourceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaSourceInfo.class); + } + + /** + * Convert an instance of MediaSourceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceType.java new file mode 100644 index 0000000000000..ed189794d8b3f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaSourceType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MediaSourceType + */ +@JsonAdapter(MediaSourceType.Adapter.class) +public enum MediaSourceType { + + DEFAULT("Default"), + + GROUPING("Grouping"), + + PLACEHOLDER("Placeholder"); + + private String value; + + MediaSourceType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaSourceType fromValue(String value) { + for (MediaSourceType b : MediaSourceType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaSourceType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaSourceType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaSourceType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaSourceType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStream.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStream.java new file mode 100644 index 0000000000000..14fdcf0c6e150 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStream.java @@ -0,0 +1,1817 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaStreamType; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MediaStream. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaStream { + public static final String SERIALIZED_NAME_CODEC = "Codec"; + @SerializedName(SERIALIZED_NAME_CODEC) + @javax.annotation.Nullable + private String codec; + + public static final String SERIALIZED_NAME_CODEC_TAG = "CodecTag"; + @SerializedName(SERIALIZED_NAME_CODEC_TAG) + @javax.annotation.Nullable + private String codecTag; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_COLOR_RANGE = "ColorRange"; + @SerializedName(SERIALIZED_NAME_COLOR_RANGE) + @javax.annotation.Nullable + private String colorRange; + + public static final String SERIALIZED_NAME_COLOR_SPACE = "ColorSpace"; + @SerializedName(SERIALIZED_NAME_COLOR_SPACE) + @javax.annotation.Nullable + private String colorSpace; + + public static final String SERIALIZED_NAME_COLOR_TRANSFER = "ColorTransfer"; + @SerializedName(SERIALIZED_NAME_COLOR_TRANSFER) + @javax.annotation.Nullable + private String colorTransfer; + + public static final String SERIALIZED_NAME_COLOR_PRIMARIES = "ColorPrimaries"; + @SerializedName(SERIALIZED_NAME_COLOR_PRIMARIES) + @javax.annotation.Nullable + private String colorPrimaries; + + public static final String SERIALIZED_NAME_DV_VERSION_MAJOR = "DvVersionMajor"; + @SerializedName(SERIALIZED_NAME_DV_VERSION_MAJOR) + @javax.annotation.Nullable + private Integer dvVersionMajor; + + public static final String SERIALIZED_NAME_DV_VERSION_MINOR = "DvVersionMinor"; + @SerializedName(SERIALIZED_NAME_DV_VERSION_MINOR) + @javax.annotation.Nullable + private Integer dvVersionMinor; + + public static final String SERIALIZED_NAME_DV_PROFILE = "DvProfile"; + @SerializedName(SERIALIZED_NAME_DV_PROFILE) + @javax.annotation.Nullable + private Integer dvProfile; + + public static final String SERIALIZED_NAME_DV_LEVEL = "DvLevel"; + @SerializedName(SERIALIZED_NAME_DV_LEVEL) + @javax.annotation.Nullable + private Integer dvLevel; + + public static final String SERIALIZED_NAME_RPU_PRESENT_FLAG = "RpuPresentFlag"; + @SerializedName(SERIALIZED_NAME_RPU_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer rpuPresentFlag; + + public static final String SERIALIZED_NAME_EL_PRESENT_FLAG = "ElPresentFlag"; + @SerializedName(SERIALIZED_NAME_EL_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer elPresentFlag; + + public static final String SERIALIZED_NAME_BL_PRESENT_FLAG = "BlPresentFlag"; + @SerializedName(SERIALIZED_NAME_BL_PRESENT_FLAG) + @javax.annotation.Nullable + private Integer blPresentFlag; + + public static final String SERIALIZED_NAME_DV_BL_SIGNAL_COMPATIBILITY_ID = "DvBlSignalCompatibilityId"; + @SerializedName(SERIALIZED_NAME_DV_BL_SIGNAL_COMPATIBILITY_ID) + @javax.annotation.Nullable + private Integer dvBlSignalCompatibilityId; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_TIME_BASE = "TimeBase"; + @SerializedName(SERIALIZED_NAME_TIME_BASE) + @javax.annotation.Nullable + private String timeBase; + + public static final String SERIALIZED_NAME_CODEC_TIME_BASE = "CodecTimeBase"; + @SerializedName(SERIALIZED_NAME_CODEC_TIME_BASE) + @javax.annotation.Nullable + private String codecTimeBase; + + public static final String SERIALIZED_NAME_TITLE = "Title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @javax.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_VIDEO_RANGE = "VideoRange"; + @SerializedName(SERIALIZED_NAME_VIDEO_RANGE) + @javax.annotation.Nullable + private String videoRange; + + public static final String SERIALIZED_NAME_VIDEO_RANGE_TYPE = "VideoRangeType"; + @SerializedName(SERIALIZED_NAME_VIDEO_RANGE_TYPE) + @javax.annotation.Nullable + private String videoRangeType; + + public static final String SERIALIZED_NAME_VIDEO_DO_VI_TITLE = "VideoDoViTitle"; + @SerializedName(SERIALIZED_NAME_VIDEO_DO_VI_TITLE) + @javax.annotation.Nullable + private String videoDoViTitle; + + public static final String SERIALIZED_NAME_LOCALIZED_UNDEFINED = "LocalizedUndefined"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_UNDEFINED) + @javax.annotation.Nullable + private String localizedUndefined; + + public static final String SERIALIZED_NAME_LOCALIZED_DEFAULT = "LocalizedDefault"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_DEFAULT) + @javax.annotation.Nullable + private String localizedDefault; + + public static final String SERIALIZED_NAME_LOCALIZED_FORCED = "LocalizedForced"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_FORCED) + @javax.annotation.Nullable + private String localizedForced; + + public static final String SERIALIZED_NAME_LOCALIZED_EXTERNAL = "LocalizedExternal"; + @SerializedName(SERIALIZED_NAME_LOCALIZED_EXTERNAL) + @javax.annotation.Nullable + private String localizedExternal; + + public static final String SERIALIZED_NAME_DISPLAY_TITLE = "DisplayTitle"; + @SerializedName(SERIALIZED_NAME_DISPLAY_TITLE) + @javax.annotation.Nullable + private String displayTitle; + + public static final String SERIALIZED_NAME_NAL_LENGTH_SIZE = "NalLengthSize"; + @SerializedName(SERIALIZED_NAME_NAL_LENGTH_SIZE) + @javax.annotation.Nullable + private String nalLengthSize; + + public static final String SERIALIZED_NAME_IS_INTERLACED = "IsInterlaced"; + @SerializedName(SERIALIZED_NAME_IS_INTERLACED) + @javax.annotation.Nullable + private Boolean isInterlaced; + + public static final String SERIALIZED_NAME_IS_A_V_C = "IsAVC"; + @SerializedName(SERIALIZED_NAME_IS_A_V_C) + @javax.annotation.Nullable + private Boolean isAVC; + + public static final String SERIALIZED_NAME_CHANNEL_LAYOUT = "ChannelLayout"; + @SerializedName(SERIALIZED_NAME_CHANNEL_LAYOUT) + @javax.annotation.Nullable + private String channelLayout; + + public static final String SERIALIZED_NAME_BIT_RATE = "BitRate"; + @SerializedName(SERIALIZED_NAME_BIT_RATE) + @javax.annotation.Nullable + private Integer bitRate; + + public static final String SERIALIZED_NAME_BIT_DEPTH = "BitDepth"; + @SerializedName(SERIALIZED_NAME_BIT_DEPTH) + @javax.annotation.Nullable + private Integer bitDepth; + + public static final String SERIALIZED_NAME_REF_FRAMES = "RefFrames"; + @SerializedName(SERIALIZED_NAME_REF_FRAMES) + @javax.annotation.Nullable + private Integer refFrames; + + public static final String SERIALIZED_NAME_PACKET_LENGTH = "PacketLength"; + @SerializedName(SERIALIZED_NAME_PACKET_LENGTH) + @javax.annotation.Nullable + private Integer packetLength; + + public static final String SERIALIZED_NAME_CHANNELS = "Channels"; + @SerializedName(SERIALIZED_NAME_CHANNELS) + @javax.annotation.Nullable + private Integer channels; + + public static final String SERIALIZED_NAME_SAMPLE_RATE = "SampleRate"; + @SerializedName(SERIALIZED_NAME_SAMPLE_RATE) + @javax.annotation.Nullable + private Integer sampleRate; + + public static final String SERIALIZED_NAME_IS_DEFAULT = "IsDefault"; + @SerializedName(SERIALIZED_NAME_IS_DEFAULT) + @javax.annotation.Nullable + private Boolean isDefault; + + public static final String SERIALIZED_NAME_IS_FORCED = "IsForced"; + @SerializedName(SERIALIZED_NAME_IS_FORCED) + @javax.annotation.Nullable + private Boolean isForced; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_AVERAGE_FRAME_RATE = "AverageFrameRate"; + @SerializedName(SERIALIZED_NAME_AVERAGE_FRAME_RATE) + @javax.annotation.Nullable + private Float averageFrameRate; + + public static final String SERIALIZED_NAME_REAL_FRAME_RATE = "RealFrameRate"; + @SerializedName(SERIALIZED_NAME_REAL_FRAME_RATE) + @javax.annotation.Nullable + private Float realFrameRate; + + public static final String SERIALIZED_NAME_PROFILE = "Profile"; + @SerializedName(SERIALIZED_NAME_PROFILE) + @javax.annotation.Nullable + private String profile; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private MediaStreamType type; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_INDEX = "Index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @javax.annotation.Nullable + private Integer index; + + public static final String SERIALIZED_NAME_SCORE = "Score"; + @SerializedName(SERIALIZED_NAME_SCORE) + @javax.annotation.Nullable + private Integer score; + + public static final String SERIALIZED_NAME_IS_EXTERNAL = "IsExternal"; + @SerializedName(SERIALIZED_NAME_IS_EXTERNAL) + @javax.annotation.Nullable + private Boolean isExternal; + + public static final String SERIALIZED_NAME_DELIVERY_METHOD = "DeliveryMethod"; + @SerializedName(SERIALIZED_NAME_DELIVERY_METHOD) + @javax.annotation.Nullable + private SubtitleDeliveryMethod deliveryMethod; + + public static final String SERIALIZED_NAME_DELIVERY_URL = "DeliveryUrl"; + @SerializedName(SERIALIZED_NAME_DELIVERY_URL) + @javax.annotation.Nullable + private String deliveryUrl; + + public static final String SERIALIZED_NAME_IS_EXTERNAL_URL = "IsExternalUrl"; + @SerializedName(SERIALIZED_NAME_IS_EXTERNAL_URL) + @javax.annotation.Nullable + private Boolean isExternalUrl; + + public static final String SERIALIZED_NAME_IS_TEXT_SUBTITLE_STREAM = "IsTextSubtitleStream"; + @SerializedName(SERIALIZED_NAME_IS_TEXT_SUBTITLE_STREAM) + @javax.annotation.Nullable + private Boolean isTextSubtitleStream; + + public static final String SERIALIZED_NAME_SUPPORTS_EXTERNAL_STREAM = "SupportsExternalStream"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_EXTERNAL_STREAM) + @javax.annotation.Nullable + private Boolean supportsExternalStream; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_PIXEL_FORMAT = "PixelFormat"; + @SerializedName(SERIALIZED_NAME_PIXEL_FORMAT) + @javax.annotation.Nullable + private String pixelFormat; + + public static final String SERIALIZED_NAME_LEVEL = "Level"; + @SerializedName(SERIALIZED_NAME_LEVEL) + @javax.annotation.Nullable + private Double level; + + public static final String SERIALIZED_NAME_IS_ANAMORPHIC = "IsAnamorphic"; + @SerializedName(SERIALIZED_NAME_IS_ANAMORPHIC) + @javax.annotation.Nullable + private Boolean isAnamorphic; + + public MediaStream() { + } + + public MediaStream( + String videoRange, + String videoRangeType, + String videoDoViTitle, + String displayTitle, + Boolean isTextSubtitleStream + ) { + this(); + this.videoRange = videoRange; + this.videoRangeType = videoRangeType; + this.videoDoViTitle = videoDoViTitle; + this.displayTitle = displayTitle; + this.isTextSubtitleStream = isTextSubtitleStream; + } + + public MediaStream codec(@javax.annotation.Nullable String codec) { + this.codec = codec; + return this; + } + + /** + * Gets or sets the codec. + * @return codec + */ + @javax.annotation.Nullable + public String getCodec() { + return codec; + } + + public void setCodec(@javax.annotation.Nullable String codec) { + this.codec = codec; + } + + + public MediaStream codecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + return this; + } + + /** + * Gets or sets the codec tag. + * @return codecTag + */ + @javax.annotation.Nullable + public String getCodecTag() { + return codecTag; + } + + public void setCodecTag(@javax.annotation.Nullable String codecTag) { + this.codecTag = codecTag; + } + + + public MediaStream language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the language. + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public MediaStream colorRange(@javax.annotation.Nullable String colorRange) { + this.colorRange = colorRange; + return this; + } + + /** + * Gets or sets the color range. + * @return colorRange + */ + @javax.annotation.Nullable + public String getColorRange() { + return colorRange; + } + + public void setColorRange(@javax.annotation.Nullable String colorRange) { + this.colorRange = colorRange; + } + + + public MediaStream colorSpace(@javax.annotation.Nullable String colorSpace) { + this.colorSpace = colorSpace; + return this; + } + + /** + * Gets or sets the color space. + * @return colorSpace + */ + @javax.annotation.Nullable + public String getColorSpace() { + return colorSpace; + } + + public void setColorSpace(@javax.annotation.Nullable String colorSpace) { + this.colorSpace = colorSpace; + } + + + public MediaStream colorTransfer(@javax.annotation.Nullable String colorTransfer) { + this.colorTransfer = colorTransfer; + return this; + } + + /** + * Gets or sets the color transfer. + * @return colorTransfer + */ + @javax.annotation.Nullable + public String getColorTransfer() { + return colorTransfer; + } + + public void setColorTransfer(@javax.annotation.Nullable String colorTransfer) { + this.colorTransfer = colorTransfer; + } + + + public MediaStream colorPrimaries(@javax.annotation.Nullable String colorPrimaries) { + this.colorPrimaries = colorPrimaries; + return this; + } + + /** + * Gets or sets the color primaries. + * @return colorPrimaries + */ + @javax.annotation.Nullable + public String getColorPrimaries() { + return colorPrimaries; + } + + public void setColorPrimaries(@javax.annotation.Nullable String colorPrimaries) { + this.colorPrimaries = colorPrimaries; + } + + + public MediaStream dvVersionMajor(@javax.annotation.Nullable Integer dvVersionMajor) { + this.dvVersionMajor = dvVersionMajor; + return this; + } + + /** + * Gets or sets the Dolby Vision version major. + * @return dvVersionMajor + */ + @javax.annotation.Nullable + public Integer getDvVersionMajor() { + return dvVersionMajor; + } + + public void setDvVersionMajor(@javax.annotation.Nullable Integer dvVersionMajor) { + this.dvVersionMajor = dvVersionMajor; + } + + + public MediaStream dvVersionMinor(@javax.annotation.Nullable Integer dvVersionMinor) { + this.dvVersionMinor = dvVersionMinor; + return this; + } + + /** + * Gets or sets the Dolby Vision version minor. + * @return dvVersionMinor + */ + @javax.annotation.Nullable + public Integer getDvVersionMinor() { + return dvVersionMinor; + } + + public void setDvVersionMinor(@javax.annotation.Nullable Integer dvVersionMinor) { + this.dvVersionMinor = dvVersionMinor; + } + + + public MediaStream dvProfile(@javax.annotation.Nullable Integer dvProfile) { + this.dvProfile = dvProfile; + return this; + } + + /** + * Gets or sets the Dolby Vision profile. + * @return dvProfile + */ + @javax.annotation.Nullable + public Integer getDvProfile() { + return dvProfile; + } + + public void setDvProfile(@javax.annotation.Nullable Integer dvProfile) { + this.dvProfile = dvProfile; + } + + + public MediaStream dvLevel(@javax.annotation.Nullable Integer dvLevel) { + this.dvLevel = dvLevel; + return this; + } + + /** + * Gets or sets the Dolby Vision level. + * @return dvLevel + */ + @javax.annotation.Nullable + public Integer getDvLevel() { + return dvLevel; + } + + public void setDvLevel(@javax.annotation.Nullable Integer dvLevel) { + this.dvLevel = dvLevel; + } + + + public MediaStream rpuPresentFlag(@javax.annotation.Nullable Integer rpuPresentFlag) { + this.rpuPresentFlag = rpuPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision rpu present flag. + * @return rpuPresentFlag + */ + @javax.annotation.Nullable + public Integer getRpuPresentFlag() { + return rpuPresentFlag; + } + + public void setRpuPresentFlag(@javax.annotation.Nullable Integer rpuPresentFlag) { + this.rpuPresentFlag = rpuPresentFlag; + } + + + public MediaStream elPresentFlag(@javax.annotation.Nullable Integer elPresentFlag) { + this.elPresentFlag = elPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision el present flag. + * @return elPresentFlag + */ + @javax.annotation.Nullable + public Integer getElPresentFlag() { + return elPresentFlag; + } + + public void setElPresentFlag(@javax.annotation.Nullable Integer elPresentFlag) { + this.elPresentFlag = elPresentFlag; + } + + + public MediaStream blPresentFlag(@javax.annotation.Nullable Integer blPresentFlag) { + this.blPresentFlag = blPresentFlag; + return this; + } + + /** + * Gets or sets the Dolby Vision bl present flag. + * @return blPresentFlag + */ + @javax.annotation.Nullable + public Integer getBlPresentFlag() { + return blPresentFlag; + } + + public void setBlPresentFlag(@javax.annotation.Nullable Integer blPresentFlag) { + this.blPresentFlag = blPresentFlag; + } + + + public MediaStream dvBlSignalCompatibilityId(@javax.annotation.Nullable Integer dvBlSignalCompatibilityId) { + this.dvBlSignalCompatibilityId = dvBlSignalCompatibilityId; + return this; + } + + /** + * Gets or sets the Dolby Vision bl signal compatibility id. + * @return dvBlSignalCompatibilityId + */ + @javax.annotation.Nullable + public Integer getDvBlSignalCompatibilityId() { + return dvBlSignalCompatibilityId; + } + + public void setDvBlSignalCompatibilityId(@javax.annotation.Nullable Integer dvBlSignalCompatibilityId) { + this.dvBlSignalCompatibilityId = dvBlSignalCompatibilityId; + } + + + public MediaStream comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Gets or sets the comment. + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public MediaStream timeBase(@javax.annotation.Nullable String timeBase) { + this.timeBase = timeBase; + return this; + } + + /** + * Gets or sets the time base. + * @return timeBase + */ + @javax.annotation.Nullable + public String getTimeBase() { + return timeBase; + } + + public void setTimeBase(@javax.annotation.Nullable String timeBase) { + this.timeBase = timeBase; + } + + + public MediaStream codecTimeBase(@javax.annotation.Nullable String codecTimeBase) { + this.codecTimeBase = codecTimeBase; + return this; + } + + /** + * Gets or sets the codec time base. + * @return codecTimeBase + */ + @javax.annotation.Nullable + public String getCodecTimeBase() { + return codecTimeBase; + } + + public void setCodecTimeBase(@javax.annotation.Nullable String codecTimeBase) { + this.codecTimeBase = codecTimeBase; + } + + + public MediaStream title(@javax.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Gets or sets the title. + * @return title + */ + @javax.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@javax.annotation.Nullable String title) { + this.title = title; + } + + + /** + * Gets the video range. + * @return videoRange + */ + @javax.annotation.Nullable + public String getVideoRange() { + return videoRange; + } + + + + /** + * Gets the video range type. + * @return videoRangeType + */ + @javax.annotation.Nullable + public String getVideoRangeType() { + return videoRangeType; + } + + + + /** + * Gets the video dovi title. + * @return videoDoViTitle + */ + @javax.annotation.Nullable + public String getVideoDoViTitle() { + return videoDoViTitle; + } + + + + public MediaStream localizedUndefined(@javax.annotation.Nullable String localizedUndefined) { + this.localizedUndefined = localizedUndefined; + return this; + } + + /** + * Get localizedUndefined + * @return localizedUndefined + */ + @javax.annotation.Nullable + public String getLocalizedUndefined() { + return localizedUndefined; + } + + public void setLocalizedUndefined(@javax.annotation.Nullable String localizedUndefined) { + this.localizedUndefined = localizedUndefined; + } + + + public MediaStream localizedDefault(@javax.annotation.Nullable String localizedDefault) { + this.localizedDefault = localizedDefault; + return this; + } + + /** + * Get localizedDefault + * @return localizedDefault + */ + @javax.annotation.Nullable + public String getLocalizedDefault() { + return localizedDefault; + } + + public void setLocalizedDefault(@javax.annotation.Nullable String localizedDefault) { + this.localizedDefault = localizedDefault; + } + + + public MediaStream localizedForced(@javax.annotation.Nullable String localizedForced) { + this.localizedForced = localizedForced; + return this; + } + + /** + * Get localizedForced + * @return localizedForced + */ + @javax.annotation.Nullable + public String getLocalizedForced() { + return localizedForced; + } + + public void setLocalizedForced(@javax.annotation.Nullable String localizedForced) { + this.localizedForced = localizedForced; + } + + + public MediaStream localizedExternal(@javax.annotation.Nullable String localizedExternal) { + this.localizedExternal = localizedExternal; + return this; + } + + /** + * Get localizedExternal + * @return localizedExternal + */ + @javax.annotation.Nullable + public String getLocalizedExternal() { + return localizedExternal; + } + + public void setLocalizedExternal(@javax.annotation.Nullable String localizedExternal) { + this.localizedExternal = localizedExternal; + } + + + /** + * Get displayTitle + * @return displayTitle + */ + @javax.annotation.Nullable + public String getDisplayTitle() { + return displayTitle; + } + + + + public MediaStream nalLengthSize(@javax.annotation.Nullable String nalLengthSize) { + this.nalLengthSize = nalLengthSize; + return this; + } + + /** + * Get nalLengthSize + * @return nalLengthSize + */ + @javax.annotation.Nullable + public String getNalLengthSize() { + return nalLengthSize; + } + + public void setNalLengthSize(@javax.annotation.Nullable String nalLengthSize) { + this.nalLengthSize = nalLengthSize; + } + + + public MediaStream isInterlaced(@javax.annotation.Nullable Boolean isInterlaced) { + this.isInterlaced = isInterlaced; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is interlaced. + * @return isInterlaced + */ + @javax.annotation.Nullable + public Boolean getIsInterlaced() { + return isInterlaced; + } + + public void setIsInterlaced(@javax.annotation.Nullable Boolean isInterlaced) { + this.isInterlaced = isInterlaced; + } + + + public MediaStream isAVC(@javax.annotation.Nullable Boolean isAVC) { + this.isAVC = isAVC; + return this; + } + + /** + * Get isAVC + * @return isAVC + */ + @javax.annotation.Nullable + public Boolean getIsAVC() { + return isAVC; + } + + public void setIsAVC(@javax.annotation.Nullable Boolean isAVC) { + this.isAVC = isAVC; + } + + + public MediaStream channelLayout(@javax.annotation.Nullable String channelLayout) { + this.channelLayout = channelLayout; + return this; + } + + /** + * Gets or sets the channel layout. + * @return channelLayout + */ + @javax.annotation.Nullable + public String getChannelLayout() { + return channelLayout; + } + + public void setChannelLayout(@javax.annotation.Nullable String channelLayout) { + this.channelLayout = channelLayout; + } + + + public MediaStream bitRate(@javax.annotation.Nullable Integer bitRate) { + this.bitRate = bitRate; + return this; + } + + /** + * Gets or sets the bit rate. + * @return bitRate + */ + @javax.annotation.Nullable + public Integer getBitRate() { + return bitRate; + } + + public void setBitRate(@javax.annotation.Nullable Integer bitRate) { + this.bitRate = bitRate; + } + + + public MediaStream bitDepth(@javax.annotation.Nullable Integer bitDepth) { + this.bitDepth = bitDepth; + return this; + } + + /** + * Gets or sets the bit depth. + * @return bitDepth + */ + @javax.annotation.Nullable + public Integer getBitDepth() { + return bitDepth; + } + + public void setBitDepth(@javax.annotation.Nullable Integer bitDepth) { + this.bitDepth = bitDepth; + } + + + public MediaStream refFrames(@javax.annotation.Nullable Integer refFrames) { + this.refFrames = refFrames; + return this; + } + + /** + * Gets or sets the reference frames. + * @return refFrames + */ + @javax.annotation.Nullable + public Integer getRefFrames() { + return refFrames; + } + + public void setRefFrames(@javax.annotation.Nullable Integer refFrames) { + this.refFrames = refFrames; + } + + + public MediaStream packetLength(@javax.annotation.Nullable Integer packetLength) { + this.packetLength = packetLength; + return this; + } + + /** + * Gets or sets the length of the packet. + * @return packetLength + */ + @javax.annotation.Nullable + public Integer getPacketLength() { + return packetLength; + } + + public void setPacketLength(@javax.annotation.Nullable Integer packetLength) { + this.packetLength = packetLength; + } + + + public MediaStream channels(@javax.annotation.Nullable Integer channels) { + this.channels = channels; + return this; + } + + /** + * Gets or sets the channels. + * @return channels + */ + @javax.annotation.Nullable + public Integer getChannels() { + return channels; + } + + public void setChannels(@javax.annotation.Nullable Integer channels) { + this.channels = channels; + } + + + public MediaStream sampleRate(@javax.annotation.Nullable Integer sampleRate) { + this.sampleRate = sampleRate; + return this; + } + + /** + * Gets or sets the sample rate. + * @return sampleRate + */ + @javax.annotation.Nullable + public Integer getSampleRate() { + return sampleRate; + } + + public void setSampleRate(@javax.annotation.Nullable Integer sampleRate) { + this.sampleRate = sampleRate; + } + + + public MediaStream isDefault(@javax.annotation.Nullable Boolean isDefault) { + this.isDefault = isDefault; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is default. + * @return isDefault + */ + @javax.annotation.Nullable + public Boolean getIsDefault() { + return isDefault; + } + + public void setIsDefault(@javax.annotation.Nullable Boolean isDefault) { + this.isDefault = isDefault; + } + + + public MediaStream isForced(@javax.annotation.Nullable Boolean isForced) { + this.isForced = isForced; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is forced. + * @return isForced + */ + @javax.annotation.Nullable + public Boolean getIsForced() { + return isForced; + } + + public void setIsForced(@javax.annotation.Nullable Boolean isForced) { + this.isForced = isForced; + } + + + public MediaStream height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public MediaStream width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public MediaStream averageFrameRate(@javax.annotation.Nullable Float averageFrameRate) { + this.averageFrameRate = averageFrameRate; + return this; + } + + /** + * Gets or sets the average frame rate. + * @return averageFrameRate + */ + @javax.annotation.Nullable + public Float getAverageFrameRate() { + return averageFrameRate; + } + + public void setAverageFrameRate(@javax.annotation.Nullable Float averageFrameRate) { + this.averageFrameRate = averageFrameRate; + } + + + public MediaStream realFrameRate(@javax.annotation.Nullable Float realFrameRate) { + this.realFrameRate = realFrameRate; + return this; + } + + /** + * Gets or sets the real frame rate. + * @return realFrameRate + */ + @javax.annotation.Nullable + public Float getRealFrameRate() { + return realFrameRate; + } + + public void setRealFrameRate(@javax.annotation.Nullable Float realFrameRate) { + this.realFrameRate = realFrameRate; + } + + + public MediaStream profile(@javax.annotation.Nullable String profile) { + this.profile = profile; + return this; + } + + /** + * Gets or sets the profile. + * @return profile + */ + @javax.annotation.Nullable + public String getProfile() { + return profile; + } + + public void setProfile(@javax.annotation.Nullable String profile) { + this.profile = profile; + } + + + public MediaStream type(@javax.annotation.Nullable MediaStreamType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public MediaStreamType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable MediaStreamType type) { + this.type = type; + } + + + public MediaStream aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Gets or sets the aspect ratio. + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public MediaStream index(@javax.annotation.Nullable Integer index) { + this.index = index; + return this; + } + + /** + * Gets or sets the index. + * @return index + */ + @javax.annotation.Nullable + public Integer getIndex() { + return index; + } + + public void setIndex(@javax.annotation.Nullable Integer index) { + this.index = index; + } + + + public MediaStream score(@javax.annotation.Nullable Integer score) { + this.score = score; + return this; + } + + /** + * Gets or sets the score. + * @return score + */ + @javax.annotation.Nullable + public Integer getScore() { + return score; + } + + public void setScore(@javax.annotation.Nullable Integer score) { + this.score = score; + } + + + public MediaStream isExternal(@javax.annotation.Nullable Boolean isExternal) { + this.isExternal = isExternal; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is external. + * @return isExternal + */ + @javax.annotation.Nullable + public Boolean getIsExternal() { + return isExternal; + } + + public void setIsExternal(@javax.annotation.Nullable Boolean isExternal) { + this.isExternal = isExternal; + } + + + public MediaStream deliveryMethod(@javax.annotation.Nullable SubtitleDeliveryMethod deliveryMethod) { + this.deliveryMethod = deliveryMethod; + return this; + } + + /** + * Gets or sets the method. + * @return deliveryMethod + */ + @javax.annotation.Nullable + public SubtitleDeliveryMethod getDeliveryMethod() { + return deliveryMethod; + } + + public void setDeliveryMethod(@javax.annotation.Nullable SubtitleDeliveryMethod deliveryMethod) { + this.deliveryMethod = deliveryMethod; + } + + + public MediaStream deliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + return this; + } + + /** + * Gets or sets the delivery URL. + * @return deliveryUrl + */ + @javax.annotation.Nullable + public String getDeliveryUrl() { + return deliveryUrl; + } + + public void setDeliveryUrl(@javax.annotation.Nullable String deliveryUrl) { + this.deliveryUrl = deliveryUrl; + } + + + public MediaStream isExternalUrl(@javax.annotation.Nullable Boolean isExternalUrl) { + this.isExternalUrl = isExternalUrl; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is external URL. + * @return isExternalUrl + */ + @javax.annotation.Nullable + public Boolean getIsExternalUrl() { + return isExternalUrl; + } + + public void setIsExternalUrl(@javax.annotation.Nullable Boolean isExternalUrl) { + this.isExternalUrl = isExternalUrl; + } + + + /** + * Get isTextSubtitleStream + * @return isTextSubtitleStream + */ + @javax.annotation.Nullable + public Boolean getIsTextSubtitleStream() { + return isTextSubtitleStream; + } + + + + public MediaStream supportsExternalStream(@javax.annotation.Nullable Boolean supportsExternalStream) { + this.supportsExternalStream = supportsExternalStream; + return this; + } + + /** + * Gets or sets a value indicating whether [supports external stream]. + * @return supportsExternalStream + */ + @javax.annotation.Nullable + public Boolean getSupportsExternalStream() { + return supportsExternalStream; + } + + public void setSupportsExternalStream(@javax.annotation.Nullable Boolean supportsExternalStream) { + this.supportsExternalStream = supportsExternalStream; + } + + + public MediaStream path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the filename. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaStream pixelFormat(@javax.annotation.Nullable String pixelFormat) { + this.pixelFormat = pixelFormat; + return this; + } + + /** + * Gets or sets the pixel format. + * @return pixelFormat + */ + @javax.annotation.Nullable + public String getPixelFormat() { + return pixelFormat; + } + + public void setPixelFormat(@javax.annotation.Nullable String pixelFormat) { + this.pixelFormat = pixelFormat; + } + + + public MediaStream level(@javax.annotation.Nullable Double level) { + this.level = level; + return this; + } + + /** + * Gets or sets the level. + * @return level + */ + @javax.annotation.Nullable + public Double getLevel() { + return level; + } + + public void setLevel(@javax.annotation.Nullable Double level) { + this.level = level; + } + + + public MediaStream isAnamorphic(@javax.annotation.Nullable Boolean isAnamorphic) { + this.isAnamorphic = isAnamorphic; + return this; + } + + /** + * Gets or sets whether this instance is anamorphic. + * @return isAnamorphic + */ + @javax.annotation.Nullable + public Boolean getIsAnamorphic() { + return isAnamorphic; + } + + public void setIsAnamorphic(@javax.annotation.Nullable Boolean isAnamorphic) { + this.isAnamorphic = isAnamorphic; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaStream mediaStream = (MediaStream) o; + return Objects.equals(this.codec, mediaStream.codec) && + Objects.equals(this.codecTag, mediaStream.codecTag) && + Objects.equals(this.language, mediaStream.language) && + Objects.equals(this.colorRange, mediaStream.colorRange) && + Objects.equals(this.colorSpace, mediaStream.colorSpace) && + Objects.equals(this.colorTransfer, mediaStream.colorTransfer) && + Objects.equals(this.colorPrimaries, mediaStream.colorPrimaries) && + Objects.equals(this.dvVersionMajor, mediaStream.dvVersionMajor) && + Objects.equals(this.dvVersionMinor, mediaStream.dvVersionMinor) && + Objects.equals(this.dvProfile, mediaStream.dvProfile) && + Objects.equals(this.dvLevel, mediaStream.dvLevel) && + Objects.equals(this.rpuPresentFlag, mediaStream.rpuPresentFlag) && + Objects.equals(this.elPresentFlag, mediaStream.elPresentFlag) && + Objects.equals(this.blPresentFlag, mediaStream.blPresentFlag) && + Objects.equals(this.dvBlSignalCompatibilityId, mediaStream.dvBlSignalCompatibilityId) && + Objects.equals(this.comment, mediaStream.comment) && + Objects.equals(this.timeBase, mediaStream.timeBase) && + Objects.equals(this.codecTimeBase, mediaStream.codecTimeBase) && + Objects.equals(this.title, mediaStream.title) && + Objects.equals(this.videoRange, mediaStream.videoRange) && + Objects.equals(this.videoRangeType, mediaStream.videoRangeType) && + Objects.equals(this.videoDoViTitle, mediaStream.videoDoViTitle) && + Objects.equals(this.localizedUndefined, mediaStream.localizedUndefined) && + Objects.equals(this.localizedDefault, mediaStream.localizedDefault) && + Objects.equals(this.localizedForced, mediaStream.localizedForced) && + Objects.equals(this.localizedExternal, mediaStream.localizedExternal) && + Objects.equals(this.displayTitle, mediaStream.displayTitle) && + Objects.equals(this.nalLengthSize, mediaStream.nalLengthSize) && + Objects.equals(this.isInterlaced, mediaStream.isInterlaced) && + Objects.equals(this.isAVC, mediaStream.isAVC) && + Objects.equals(this.channelLayout, mediaStream.channelLayout) && + Objects.equals(this.bitRate, mediaStream.bitRate) && + Objects.equals(this.bitDepth, mediaStream.bitDepth) && + Objects.equals(this.refFrames, mediaStream.refFrames) && + Objects.equals(this.packetLength, mediaStream.packetLength) && + Objects.equals(this.channels, mediaStream.channels) && + Objects.equals(this.sampleRate, mediaStream.sampleRate) && + Objects.equals(this.isDefault, mediaStream.isDefault) && + Objects.equals(this.isForced, mediaStream.isForced) && + Objects.equals(this.height, mediaStream.height) && + Objects.equals(this.width, mediaStream.width) && + Objects.equals(this.averageFrameRate, mediaStream.averageFrameRate) && + Objects.equals(this.realFrameRate, mediaStream.realFrameRate) && + Objects.equals(this.profile, mediaStream.profile) && + Objects.equals(this.type, mediaStream.type) && + Objects.equals(this.aspectRatio, mediaStream.aspectRatio) && + Objects.equals(this.index, mediaStream.index) && + Objects.equals(this.score, mediaStream.score) && + Objects.equals(this.isExternal, mediaStream.isExternal) && + Objects.equals(this.deliveryMethod, mediaStream.deliveryMethod) && + Objects.equals(this.deliveryUrl, mediaStream.deliveryUrl) && + Objects.equals(this.isExternalUrl, mediaStream.isExternalUrl) && + Objects.equals(this.isTextSubtitleStream, mediaStream.isTextSubtitleStream) && + Objects.equals(this.supportsExternalStream, mediaStream.supportsExternalStream) && + Objects.equals(this.path, mediaStream.path) && + Objects.equals(this.pixelFormat, mediaStream.pixelFormat) && + Objects.equals(this.level, mediaStream.level) && + Objects.equals(this.isAnamorphic, mediaStream.isAnamorphic); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(codec, codecTag, language, colorRange, colorSpace, colorTransfer, colorPrimaries, dvVersionMajor, dvVersionMinor, dvProfile, dvLevel, rpuPresentFlag, elPresentFlag, blPresentFlag, dvBlSignalCompatibilityId, comment, timeBase, codecTimeBase, title, videoRange, videoRangeType, videoDoViTitle, localizedUndefined, localizedDefault, localizedForced, localizedExternal, displayTitle, nalLengthSize, isInterlaced, isAVC, channelLayout, bitRate, bitDepth, refFrames, packetLength, channels, sampleRate, isDefault, isForced, height, width, averageFrameRate, realFrameRate, profile, type, aspectRatio, index, score, isExternal, deliveryMethod, deliveryUrl, isExternalUrl, isTextSubtitleStream, supportsExternalStream, path, pixelFormat, level, isAnamorphic); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaStream {\n"); + sb.append(" codec: ").append(toIndentedString(codec)).append("\n"); + sb.append(" codecTag: ").append(toIndentedString(codecTag)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" colorRange: ").append(toIndentedString(colorRange)).append("\n"); + sb.append(" colorSpace: ").append(toIndentedString(colorSpace)).append("\n"); + sb.append(" colorTransfer: ").append(toIndentedString(colorTransfer)).append("\n"); + sb.append(" colorPrimaries: ").append(toIndentedString(colorPrimaries)).append("\n"); + sb.append(" dvVersionMajor: ").append(toIndentedString(dvVersionMajor)).append("\n"); + sb.append(" dvVersionMinor: ").append(toIndentedString(dvVersionMinor)).append("\n"); + sb.append(" dvProfile: ").append(toIndentedString(dvProfile)).append("\n"); + sb.append(" dvLevel: ").append(toIndentedString(dvLevel)).append("\n"); + sb.append(" rpuPresentFlag: ").append(toIndentedString(rpuPresentFlag)).append("\n"); + sb.append(" elPresentFlag: ").append(toIndentedString(elPresentFlag)).append("\n"); + sb.append(" blPresentFlag: ").append(toIndentedString(blPresentFlag)).append("\n"); + sb.append(" dvBlSignalCompatibilityId: ").append(toIndentedString(dvBlSignalCompatibilityId)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" timeBase: ").append(toIndentedString(timeBase)).append("\n"); + sb.append(" codecTimeBase: ").append(toIndentedString(codecTimeBase)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" videoRange: ").append(toIndentedString(videoRange)).append("\n"); + sb.append(" videoRangeType: ").append(toIndentedString(videoRangeType)).append("\n"); + sb.append(" videoDoViTitle: ").append(toIndentedString(videoDoViTitle)).append("\n"); + sb.append(" localizedUndefined: ").append(toIndentedString(localizedUndefined)).append("\n"); + sb.append(" localizedDefault: ").append(toIndentedString(localizedDefault)).append("\n"); + sb.append(" localizedForced: ").append(toIndentedString(localizedForced)).append("\n"); + sb.append(" localizedExternal: ").append(toIndentedString(localizedExternal)).append("\n"); + sb.append(" displayTitle: ").append(toIndentedString(displayTitle)).append("\n"); + sb.append(" nalLengthSize: ").append(toIndentedString(nalLengthSize)).append("\n"); + sb.append(" isInterlaced: ").append(toIndentedString(isInterlaced)).append("\n"); + sb.append(" isAVC: ").append(toIndentedString(isAVC)).append("\n"); + sb.append(" channelLayout: ").append(toIndentedString(channelLayout)).append("\n"); + sb.append(" bitRate: ").append(toIndentedString(bitRate)).append("\n"); + sb.append(" bitDepth: ").append(toIndentedString(bitDepth)).append("\n"); + sb.append(" refFrames: ").append(toIndentedString(refFrames)).append("\n"); + sb.append(" packetLength: ").append(toIndentedString(packetLength)).append("\n"); + sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); + sb.append(" sampleRate: ").append(toIndentedString(sampleRate)).append("\n"); + sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n"); + sb.append(" isForced: ").append(toIndentedString(isForced)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" averageFrameRate: ").append(toIndentedString(averageFrameRate)).append("\n"); + sb.append(" realFrameRate: ").append(toIndentedString(realFrameRate)).append("\n"); + sb.append(" profile: ").append(toIndentedString(profile)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" score: ").append(toIndentedString(score)).append("\n"); + sb.append(" isExternal: ").append(toIndentedString(isExternal)).append("\n"); + sb.append(" deliveryMethod: ").append(toIndentedString(deliveryMethod)).append("\n"); + sb.append(" deliveryUrl: ").append(toIndentedString(deliveryUrl)).append("\n"); + sb.append(" isExternalUrl: ").append(toIndentedString(isExternalUrl)).append("\n"); + sb.append(" isTextSubtitleStream: ").append(toIndentedString(isTextSubtitleStream)).append("\n"); + sb.append(" supportsExternalStream: ").append(toIndentedString(supportsExternalStream)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" pixelFormat: ").append(toIndentedString(pixelFormat)).append("\n"); + sb.append(" level: ").append(toIndentedString(level)).append("\n"); + sb.append(" isAnamorphic: ").append(toIndentedString(isAnamorphic)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Codec"); + openapiFields.add("CodecTag"); + openapiFields.add("Language"); + openapiFields.add("ColorRange"); + openapiFields.add("ColorSpace"); + openapiFields.add("ColorTransfer"); + openapiFields.add("ColorPrimaries"); + openapiFields.add("DvVersionMajor"); + openapiFields.add("DvVersionMinor"); + openapiFields.add("DvProfile"); + openapiFields.add("DvLevel"); + openapiFields.add("RpuPresentFlag"); + openapiFields.add("ElPresentFlag"); + openapiFields.add("BlPresentFlag"); + openapiFields.add("DvBlSignalCompatibilityId"); + openapiFields.add("Comment"); + openapiFields.add("TimeBase"); + openapiFields.add("CodecTimeBase"); + openapiFields.add("Title"); + openapiFields.add("VideoRange"); + openapiFields.add("VideoRangeType"); + openapiFields.add("VideoDoViTitle"); + openapiFields.add("LocalizedUndefined"); + openapiFields.add("LocalizedDefault"); + openapiFields.add("LocalizedForced"); + openapiFields.add("LocalizedExternal"); + openapiFields.add("DisplayTitle"); + openapiFields.add("NalLengthSize"); + openapiFields.add("IsInterlaced"); + openapiFields.add("IsAVC"); + openapiFields.add("ChannelLayout"); + openapiFields.add("BitRate"); + openapiFields.add("BitDepth"); + openapiFields.add("RefFrames"); + openapiFields.add("PacketLength"); + openapiFields.add("Channels"); + openapiFields.add("SampleRate"); + openapiFields.add("IsDefault"); + openapiFields.add("IsForced"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("AverageFrameRate"); + openapiFields.add("RealFrameRate"); + openapiFields.add("Profile"); + openapiFields.add("Type"); + openapiFields.add("AspectRatio"); + openapiFields.add("Index"); + openapiFields.add("Score"); + openapiFields.add("IsExternal"); + openapiFields.add("DeliveryMethod"); + openapiFields.add("DeliveryUrl"); + openapiFields.add("IsExternalUrl"); + openapiFields.add("IsTextSubtitleStream"); + openapiFields.add("SupportsExternalStream"); + openapiFields.add("Path"); + openapiFields.add("PixelFormat"); + openapiFields.add("Level"); + openapiFields.add("IsAnamorphic"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaStream + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaStream.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaStream is not found in the empty JSON string", MediaStream.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaStream.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaStream` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Codec") != null && !jsonObj.get("Codec").isJsonNull()) && !jsonObj.get("Codec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Codec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Codec").toString())); + } + if ((jsonObj.get("CodecTag") != null && !jsonObj.get("CodecTag").isJsonNull()) && !jsonObj.get("CodecTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTag").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if ((jsonObj.get("ColorRange") != null && !jsonObj.get("ColorRange").isJsonNull()) && !jsonObj.get("ColorRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorRange").toString())); + } + if ((jsonObj.get("ColorSpace") != null && !jsonObj.get("ColorSpace").isJsonNull()) && !jsonObj.get("ColorSpace").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorSpace` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorSpace").toString())); + } + if ((jsonObj.get("ColorTransfer") != null && !jsonObj.get("ColorTransfer").isJsonNull()) && !jsonObj.get("ColorTransfer").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorTransfer` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorTransfer").toString())); + } + if ((jsonObj.get("ColorPrimaries") != null && !jsonObj.get("ColorPrimaries").isJsonNull()) && !jsonObj.get("ColorPrimaries").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ColorPrimaries` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ColorPrimaries").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + if ((jsonObj.get("TimeBase") != null && !jsonObj.get("TimeBase").isJsonNull()) && !jsonObj.get("TimeBase").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TimeBase` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TimeBase").toString())); + } + if ((jsonObj.get("CodecTimeBase") != null && !jsonObj.get("CodecTimeBase").isJsonNull()) && !jsonObj.get("CodecTimeBase").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecTimeBase` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CodecTimeBase").toString())); + } + if ((jsonObj.get("Title") != null && !jsonObj.get("Title").isJsonNull()) && !jsonObj.get("Title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Title").toString())); + } + if ((jsonObj.get("VideoRange") != null && !jsonObj.get("VideoRange").isJsonNull()) && !jsonObj.get("VideoRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoRange").toString())); + } + if ((jsonObj.get("VideoRangeType") != null && !jsonObj.get("VideoRangeType").isJsonNull()) && !jsonObj.get("VideoRangeType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoRangeType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoRangeType").toString())); + } + if ((jsonObj.get("VideoDoViTitle") != null && !jsonObj.get("VideoDoViTitle").isJsonNull()) && !jsonObj.get("VideoDoViTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoDoViTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoDoViTitle").toString())); + } + if ((jsonObj.get("LocalizedUndefined") != null && !jsonObj.get("LocalizedUndefined").isJsonNull()) && !jsonObj.get("LocalizedUndefined").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedUndefined` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedUndefined").toString())); + } + if ((jsonObj.get("LocalizedDefault") != null && !jsonObj.get("LocalizedDefault").isJsonNull()) && !jsonObj.get("LocalizedDefault").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedDefault` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedDefault").toString())); + } + if ((jsonObj.get("LocalizedForced") != null && !jsonObj.get("LocalizedForced").isJsonNull()) && !jsonObj.get("LocalizedForced").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedForced` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedForced").toString())); + } + if ((jsonObj.get("LocalizedExternal") != null && !jsonObj.get("LocalizedExternal").isJsonNull()) && !jsonObj.get("LocalizedExternal").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalizedExternal` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalizedExternal").toString())); + } + if ((jsonObj.get("DisplayTitle") != null && !jsonObj.get("DisplayTitle").isJsonNull()) && !jsonObj.get("DisplayTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DisplayTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DisplayTitle").toString())); + } + if ((jsonObj.get("NalLengthSize") != null && !jsonObj.get("NalLengthSize").isJsonNull()) && !jsonObj.get("NalLengthSize").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NalLengthSize` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NalLengthSize").toString())); + } + if ((jsonObj.get("ChannelLayout") != null && !jsonObj.get("ChannelLayout").isJsonNull()) && !jsonObj.get("ChannelLayout").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelLayout` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelLayout").toString())); + } + if ((jsonObj.get("Profile") != null && !jsonObj.get("Profile").isJsonNull()) && !jsonObj.get("Profile").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Profile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Profile").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + MediaStreamType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `DeliveryMethod` + if (jsonObj.get("DeliveryMethod") != null && !jsonObj.get("DeliveryMethod").isJsonNull()) { + SubtitleDeliveryMethod.validateJsonElement(jsonObj.get("DeliveryMethod")); + } + if ((jsonObj.get("DeliveryUrl") != null && !jsonObj.get("DeliveryUrl").isJsonNull()) && !jsonObj.get("DeliveryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeliveryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeliveryUrl").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("PixelFormat") != null && !jsonObj.get("PixelFormat").isJsonNull()) && !jsonObj.get("PixelFormat").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PixelFormat` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PixelFormat").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaStream.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaStream' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaStream.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaStream value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaStream read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaStream given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaStream + * @throws IOException if the JSON string is invalid with respect to MediaStream + */ + public static MediaStream fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaStream.class); + } + + /** + * Convert an instance of MediaStream to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStreamType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStreamType.java new file mode 100644 index 0000000000000..ba394dbec98ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaStreamType.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum MediaStreamType. + */ +@JsonAdapter(MediaStreamType.Adapter.class) +public enum MediaStreamType { + + AUDIO("Audio"), + + VIDEO("Video"), + + SUBTITLE("Subtitle"), + + EMBEDDED_IMAGE("EmbeddedImage"), + + DATA("Data"); + + private String value; + + MediaStreamType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MediaStreamType fromValue(String value) { + for (MediaStreamType b : MediaStreamType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MediaStreamType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MediaStreamType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MediaStreamType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MediaStreamType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java new file mode 100644 index 0000000000000..54c45c70777ff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoDto.java @@ -0,0 +1,228 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.MediaUpdateInfoPathDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Media Update Info Dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUpdateInfoDto { + public static final String SERIALIZED_NAME_UPDATES = "Updates"; + @SerializedName(SERIALIZED_NAME_UPDATES) + @javax.annotation.Nullable + private List updates = new ArrayList<>(); + + public MediaUpdateInfoDto() { + } + + public MediaUpdateInfoDto updates(@javax.annotation.Nullable List updates) { + this.updates = updates; + return this; + } + + public MediaUpdateInfoDto addUpdatesItem(MediaUpdateInfoPathDto updatesItem) { + if (this.updates == null) { + this.updates = new ArrayList<>(); + } + this.updates.add(updatesItem); + return this; + } + + /** + * Gets or sets the list of updates. + * @return updates + */ + @javax.annotation.Nullable + public List getUpdates() { + return updates; + } + + public void setUpdates(@javax.annotation.Nullable List updates) { + this.updates = updates; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUpdateInfoDto mediaUpdateInfoDto = (MediaUpdateInfoDto) o; + return Objects.equals(this.updates, mediaUpdateInfoDto.updates); + } + + @Override + public int hashCode() { + return Objects.hash(updates); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUpdateInfoDto {\n"); + sb.append(" updates: ").append(toIndentedString(updates)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Updates"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUpdateInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUpdateInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUpdateInfoDto is not found in the empty JSON string", MediaUpdateInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUpdateInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUpdateInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Updates") != null && !jsonObj.get("Updates").isJsonNull()) { + JsonArray jsonArrayupdates = jsonObj.getAsJsonArray("Updates"); + if (jsonArrayupdates != null) { + // ensure the json data is an array + if (!jsonObj.get("Updates").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Updates` to be an array in the JSON string but got `%s`", jsonObj.get("Updates").toString())); + } + + // validate the optional field `Updates` (array) + for (int i = 0; i < jsonArrayupdates.size(); i++) { + MediaUpdateInfoPathDto.validateJsonElement(jsonArrayupdates.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUpdateInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUpdateInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUpdateInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUpdateInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUpdateInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUpdateInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUpdateInfoDto + * @throws IOException if the JSON string is invalid with respect to MediaUpdateInfoDto + */ + public static MediaUpdateInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUpdateInfoDto.class); + } + + /** + * Convert an instance of MediaUpdateInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java new file mode 100644 index 0000000000000..a9de789bd509e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUpdateInfoPathDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The media update info path. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUpdateInfoPathDto { + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_UPDATE_TYPE = "UpdateType"; + @SerializedName(SERIALIZED_NAME_UPDATE_TYPE) + @javax.annotation.Nullable + private String updateType; + + public MediaUpdateInfoPathDto() { + } + + public MediaUpdateInfoPathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets media path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MediaUpdateInfoPathDto updateType(@javax.annotation.Nullable String updateType) { + this.updateType = updateType; + return this; + } + + /** + * Gets or sets media update type. Created, Modified, Deleted. + * @return updateType + */ + @javax.annotation.Nullable + public String getUpdateType() { + return updateType; + } + + public void setUpdateType(@javax.annotation.Nullable String updateType) { + this.updateType = updateType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUpdateInfoPathDto mediaUpdateInfoPathDto = (MediaUpdateInfoPathDto) o; + return Objects.equals(this.path, mediaUpdateInfoPathDto.path) && + Objects.equals(this.updateType, mediaUpdateInfoPathDto.updateType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(path, updateType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUpdateInfoPathDto {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" updateType: ").append(toIndentedString(updateType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Path"); + openapiFields.add("UpdateType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUpdateInfoPathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUpdateInfoPathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUpdateInfoPathDto is not found in the empty JSON string", MediaUpdateInfoPathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUpdateInfoPathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUpdateInfoPathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("UpdateType") != null && !jsonObj.get("UpdateType").isJsonNull()) && !jsonObj.get("UpdateType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UpdateType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UpdateType").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUpdateInfoPathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUpdateInfoPathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUpdateInfoPathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUpdateInfoPathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUpdateInfoPathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUpdateInfoPathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUpdateInfoPathDto + * @throws IOException if the JSON string is invalid with respect to MediaUpdateInfoPathDto + */ + public static MediaUpdateInfoPathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUpdateInfoPathDto.class); + } + + /** + * Convert an instance of MediaUpdateInfoPathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUrl.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUrl.java new file mode 100644 index 0000000000000..f8f630c5d96d9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MediaUrl.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MediaUrl + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MediaUrl { + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public MediaUrl() { + } + + public MediaUrl url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Get url + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public MediaUrl name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MediaUrl mediaUrl = (MediaUrl) o; + return Objects.equals(this.url, mediaUrl.url) && + Objects.equals(this.name, mediaUrl.name); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(url, name); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MediaUrl {\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Url"); + openapiFields.add("Name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MediaUrl + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MediaUrl.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MediaUrl is not found in the empty JSON string", MediaUrl.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MediaUrl.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MediaUrl` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MediaUrl.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MediaUrl' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MediaUrl.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MediaUrl value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MediaUrl read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MediaUrl given an JSON string + * + * @param jsonString JSON string + * @return An instance of MediaUrl + * @throws IOException if the JSON string is invalid with respect to MediaUrl + */ + public static MediaUrl fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MediaUrl.class); + } + + /** + * Convert an instance of MediaUrl to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MessageCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MessageCommand.java new file mode 100644 index 0000000000000..c912754c20273 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MessageCommand.java @@ -0,0 +1,283 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MessageCommand + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MessageCommand { + public static final String SERIALIZED_NAME_HEADER = "Header"; + @SerializedName(SERIALIZED_NAME_HEADER) + @javax.annotation.Nullable + private String header; + + public static final String SERIALIZED_NAME_TEXT = "Text"; + @SerializedName(SERIALIZED_NAME_TEXT) + @javax.annotation.Nonnull + private String text; + + public static final String SERIALIZED_NAME_TIMEOUT_MS = "TimeoutMs"; + @SerializedName(SERIALIZED_NAME_TIMEOUT_MS) + @javax.annotation.Nullable + private Long timeoutMs; + + public MessageCommand() { + } + + public MessageCommand header(@javax.annotation.Nullable String header) { + this.header = header; + return this; + } + + /** + * Get header + * @return header + */ + @javax.annotation.Nullable + public String getHeader() { + return header; + } + + public void setHeader(@javax.annotation.Nullable String header) { + this.header = header; + } + + + public MessageCommand text(@javax.annotation.Nonnull String text) { + this.text = text; + return this; + } + + /** + * Get text + * @return text + */ + @javax.annotation.Nonnull + public String getText() { + return text; + } + + public void setText(@javax.annotation.Nonnull String text) { + this.text = text; + } + + + public MessageCommand timeoutMs(@javax.annotation.Nullable Long timeoutMs) { + this.timeoutMs = timeoutMs; + return this; + } + + /** + * Get timeoutMs + * @return timeoutMs + */ + @javax.annotation.Nullable + public Long getTimeoutMs() { + return timeoutMs; + } + + public void setTimeoutMs(@javax.annotation.Nullable Long timeoutMs) { + this.timeoutMs = timeoutMs; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MessageCommand messageCommand = (MessageCommand) o; + return Objects.equals(this.header, messageCommand.header) && + Objects.equals(this.text, messageCommand.text) && + Objects.equals(this.timeoutMs, messageCommand.timeoutMs); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(header, text, timeoutMs); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MessageCommand {\n"); + sb.append(" header: ").append(toIndentedString(header)).append("\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" timeoutMs: ").append(toIndentedString(timeoutMs)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Header"); + openapiFields.add("Text"); + openapiFields.add("TimeoutMs"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MessageCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MessageCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MessageCommand is not found in the empty JSON string", MessageCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MessageCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MessageCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MessageCommand.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Header") != null && !jsonObj.get("Header").isJsonNull()) && !jsonObj.get("Header").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Header` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Header").toString())); + } + if (!jsonObj.get("Text").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Text").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MessageCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MessageCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MessageCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MessageCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MessageCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MessageCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of MessageCommand + * @throws IOException if the JSON string is invalid with respect to MessageCommand + */ + public static MessageCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MessageCommand.class); + } + + /** + * Convert an instance of MessageCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataConfiguration.java new file mode 100644 index 0000000000000..57b0cf51b1a2e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataConfiguration.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MetadataConfiguration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataConfiguration { + public static final String SERIALIZED_NAME_USE_FILE_CREATION_TIME_FOR_DATE_ADDED = "UseFileCreationTimeForDateAdded"; + @SerializedName(SERIALIZED_NAME_USE_FILE_CREATION_TIME_FOR_DATE_ADDED) + @javax.annotation.Nullable + private Boolean useFileCreationTimeForDateAdded; + + public MetadataConfiguration() { + } + + public MetadataConfiguration useFileCreationTimeForDateAdded(@javax.annotation.Nullable Boolean useFileCreationTimeForDateAdded) { + this.useFileCreationTimeForDateAdded = useFileCreationTimeForDateAdded; + return this; + } + + /** + * Get useFileCreationTimeForDateAdded + * @return useFileCreationTimeForDateAdded + */ + @javax.annotation.Nullable + public Boolean getUseFileCreationTimeForDateAdded() { + return useFileCreationTimeForDateAdded; + } + + public void setUseFileCreationTimeForDateAdded(@javax.annotation.Nullable Boolean useFileCreationTimeForDateAdded) { + this.useFileCreationTimeForDateAdded = useFileCreationTimeForDateAdded; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataConfiguration metadataConfiguration = (MetadataConfiguration) o; + return Objects.equals(this.useFileCreationTimeForDateAdded, metadataConfiguration.useFileCreationTimeForDateAdded); + } + + @Override + public int hashCode() { + return Objects.hash(useFileCreationTimeForDateAdded); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataConfiguration {\n"); + sb.append(" useFileCreationTimeForDateAdded: ").append(toIndentedString(useFileCreationTimeForDateAdded)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UseFileCreationTimeForDateAdded"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataConfiguration is not found in the empty JSON string", MetadataConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataConfiguration + * @throws IOException if the JSON string is invalid with respect to MetadataConfiguration + */ + public static MetadataConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataConfiguration.class); + } + + /** + * Convert an instance of MetadataConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java new file mode 100644 index 0000000000000..8fbbb22edc34b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataEditorInfo.java @@ -0,0 +1,470 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CountryInfo; +import org.openapitools.client.model.CultureDto; +import org.openapitools.client.model.ExternalIdInfo; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.ParentalRating; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MetadataEditorInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataEditorInfo { + public static final String SERIALIZED_NAME_PARENTAL_RATING_OPTIONS = "ParentalRatingOptions"; + @SerializedName(SERIALIZED_NAME_PARENTAL_RATING_OPTIONS) + @javax.annotation.Nullable + private List parentalRatingOptions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_COUNTRIES = "Countries"; + @SerializedName(SERIALIZED_NAME_COUNTRIES) + @javax.annotation.Nullable + private List countries = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CULTURES = "Cultures"; + @SerializedName(SERIALIZED_NAME_CULTURES) + @javax.annotation.Nullable + private List cultures = new ArrayList<>(); + + public static final String SERIALIZED_NAME_EXTERNAL_ID_INFOS = "ExternalIdInfos"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID_INFOS) + @javax.annotation.Nullable + private List externalIdInfos = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CONTENT_TYPE = "ContentType"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPE) + @javax.annotation.Nullable + private String contentType; + + public static final String SERIALIZED_NAME_CONTENT_TYPE_OPTIONS = "ContentTypeOptions"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPE_OPTIONS) + @javax.annotation.Nullable + private List contentTypeOptions = new ArrayList<>(); + + public MetadataEditorInfo() { + } + + public MetadataEditorInfo parentalRatingOptions(@javax.annotation.Nullable List parentalRatingOptions) { + this.parentalRatingOptions = parentalRatingOptions; + return this; + } + + public MetadataEditorInfo addParentalRatingOptionsItem(ParentalRating parentalRatingOptionsItem) { + if (this.parentalRatingOptions == null) { + this.parentalRatingOptions = new ArrayList<>(); + } + this.parentalRatingOptions.add(parentalRatingOptionsItem); + return this; + } + + /** + * Get parentalRatingOptions + * @return parentalRatingOptions + */ + @javax.annotation.Nullable + public List getParentalRatingOptions() { + return parentalRatingOptions; + } + + public void setParentalRatingOptions(@javax.annotation.Nullable List parentalRatingOptions) { + this.parentalRatingOptions = parentalRatingOptions; + } + + + public MetadataEditorInfo countries(@javax.annotation.Nullable List countries) { + this.countries = countries; + return this; + } + + public MetadataEditorInfo addCountriesItem(CountryInfo countriesItem) { + if (this.countries == null) { + this.countries = new ArrayList<>(); + } + this.countries.add(countriesItem); + return this; + } + + /** + * Get countries + * @return countries + */ + @javax.annotation.Nullable + public List getCountries() { + return countries; + } + + public void setCountries(@javax.annotation.Nullable List countries) { + this.countries = countries; + } + + + public MetadataEditorInfo cultures(@javax.annotation.Nullable List cultures) { + this.cultures = cultures; + return this; + } + + public MetadataEditorInfo addCulturesItem(CultureDto culturesItem) { + if (this.cultures == null) { + this.cultures = new ArrayList<>(); + } + this.cultures.add(culturesItem); + return this; + } + + /** + * Get cultures + * @return cultures + */ + @javax.annotation.Nullable + public List getCultures() { + return cultures; + } + + public void setCultures(@javax.annotation.Nullable List cultures) { + this.cultures = cultures; + } + + + public MetadataEditorInfo externalIdInfos(@javax.annotation.Nullable List externalIdInfos) { + this.externalIdInfos = externalIdInfos; + return this; + } + + public MetadataEditorInfo addExternalIdInfosItem(ExternalIdInfo externalIdInfosItem) { + if (this.externalIdInfos == null) { + this.externalIdInfos = new ArrayList<>(); + } + this.externalIdInfos.add(externalIdInfosItem); + return this; + } + + /** + * Get externalIdInfos + * @return externalIdInfos + */ + @javax.annotation.Nullable + public List getExternalIdInfos() { + return externalIdInfos; + } + + public void setExternalIdInfos(@javax.annotation.Nullable List externalIdInfos) { + this.externalIdInfos = externalIdInfos; + } + + + public MetadataEditorInfo contentType(@javax.annotation.Nullable String contentType) { + this.contentType = contentType; + return this; + } + + /** + * Get contentType + * @return contentType + */ + @javax.annotation.Nullable + public String getContentType() { + return contentType; + } + + public void setContentType(@javax.annotation.Nullable String contentType) { + this.contentType = contentType; + } + + + public MetadataEditorInfo contentTypeOptions(@javax.annotation.Nullable List contentTypeOptions) { + this.contentTypeOptions = contentTypeOptions; + return this; + } + + public MetadataEditorInfo addContentTypeOptionsItem(NameValuePair contentTypeOptionsItem) { + if (this.contentTypeOptions == null) { + this.contentTypeOptions = new ArrayList<>(); + } + this.contentTypeOptions.add(contentTypeOptionsItem); + return this; + } + + /** + * Get contentTypeOptions + * @return contentTypeOptions + */ + @javax.annotation.Nullable + public List getContentTypeOptions() { + return contentTypeOptions; + } + + public void setContentTypeOptions(@javax.annotation.Nullable List contentTypeOptions) { + this.contentTypeOptions = contentTypeOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataEditorInfo metadataEditorInfo = (MetadataEditorInfo) o; + return Objects.equals(this.parentalRatingOptions, metadataEditorInfo.parentalRatingOptions) && + Objects.equals(this.countries, metadataEditorInfo.countries) && + Objects.equals(this.cultures, metadataEditorInfo.cultures) && + Objects.equals(this.externalIdInfos, metadataEditorInfo.externalIdInfos) && + Objects.equals(this.contentType, metadataEditorInfo.contentType) && + Objects.equals(this.contentTypeOptions, metadataEditorInfo.contentTypeOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(parentalRatingOptions, countries, cultures, externalIdInfos, contentType, contentTypeOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataEditorInfo {\n"); + sb.append(" parentalRatingOptions: ").append(toIndentedString(parentalRatingOptions)).append("\n"); + sb.append(" countries: ").append(toIndentedString(countries)).append("\n"); + sb.append(" cultures: ").append(toIndentedString(cultures)).append("\n"); + sb.append(" externalIdInfos: ").append(toIndentedString(externalIdInfos)).append("\n"); + sb.append(" contentType: ").append(toIndentedString(contentType)).append("\n"); + sb.append(" contentTypeOptions: ").append(toIndentedString(contentTypeOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ParentalRatingOptions"); + openapiFields.add("Countries"); + openapiFields.add("Cultures"); + openapiFields.add("ExternalIdInfos"); + openapiFields.add("ContentType"); + openapiFields.add("ContentTypeOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataEditorInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataEditorInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataEditorInfo is not found in the empty JSON string", MetadataEditorInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataEditorInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataEditorInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("ParentalRatingOptions") != null && !jsonObj.get("ParentalRatingOptions").isJsonNull()) { + JsonArray jsonArrayparentalRatingOptions = jsonObj.getAsJsonArray("ParentalRatingOptions"); + if (jsonArrayparentalRatingOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ParentalRatingOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentalRatingOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ParentalRatingOptions").toString())); + } + + // validate the optional field `ParentalRatingOptions` (array) + for (int i = 0; i < jsonArrayparentalRatingOptions.size(); i++) { + ParentalRating.validateJsonElement(jsonArrayparentalRatingOptions.get(i)); + }; + } + } + if (jsonObj.get("Countries") != null && !jsonObj.get("Countries").isJsonNull()) { + JsonArray jsonArraycountries = jsonObj.getAsJsonArray("Countries"); + if (jsonArraycountries != null) { + // ensure the json data is an array + if (!jsonObj.get("Countries").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Countries` to be an array in the JSON string but got `%s`", jsonObj.get("Countries").toString())); + } + + // validate the optional field `Countries` (array) + for (int i = 0; i < jsonArraycountries.size(); i++) { + CountryInfo.validateJsonElement(jsonArraycountries.get(i)); + }; + } + } + if (jsonObj.get("Cultures") != null && !jsonObj.get("Cultures").isJsonNull()) { + JsonArray jsonArraycultures = jsonObj.getAsJsonArray("Cultures"); + if (jsonArraycultures != null) { + // ensure the json data is an array + if (!jsonObj.get("Cultures").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Cultures` to be an array in the JSON string but got `%s`", jsonObj.get("Cultures").toString())); + } + + // validate the optional field `Cultures` (array) + for (int i = 0; i < jsonArraycultures.size(); i++) { + CultureDto.validateJsonElement(jsonArraycultures.get(i)); + }; + } + } + if (jsonObj.get("ExternalIdInfos") != null && !jsonObj.get("ExternalIdInfos").isJsonNull()) { + JsonArray jsonArrayexternalIdInfos = jsonObj.getAsJsonArray("ExternalIdInfos"); + if (jsonArrayexternalIdInfos != null) { + // ensure the json data is an array + if (!jsonObj.get("ExternalIdInfos").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalIdInfos` to be an array in the JSON string but got `%s`", jsonObj.get("ExternalIdInfos").toString())); + } + + // validate the optional field `ExternalIdInfos` (array) + for (int i = 0; i < jsonArrayexternalIdInfos.size(); i++) { + ExternalIdInfo.validateJsonElement(jsonArrayexternalIdInfos.get(i)); + }; + } + } + if ((jsonObj.get("ContentType") != null && !jsonObj.get("ContentType").isJsonNull()) && !jsonObj.get("ContentType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ContentType").toString())); + } + if (jsonObj.get("ContentTypeOptions") != null && !jsonObj.get("ContentTypeOptions").isJsonNull()) { + JsonArray jsonArraycontentTypeOptions = jsonObj.getAsJsonArray("ContentTypeOptions"); + if (jsonArraycontentTypeOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ContentTypeOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypeOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypeOptions").toString())); + } + + // validate the optional field `ContentTypeOptions` (array) + for (int i = 0; i < jsonArraycontentTypeOptions.size(); i++) { + NameValuePair.validateJsonElement(jsonArraycontentTypeOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataEditorInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataEditorInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataEditorInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataEditorInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataEditorInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataEditorInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataEditorInfo + * @throws IOException if the JSON string is invalid with respect to MetadataEditorInfo + */ + public static MetadataEditorInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataEditorInfo.class); + } + + /** + * Convert an instance of MetadataEditorInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataField.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataField.java new file mode 100644 index 0000000000000..852d88e5ae279 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataField.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum MetadataFields. + */ +@JsonAdapter(MetadataField.Adapter.class) +public enum MetadataField { + + CAST("Cast"), + + GENRES("Genres"), + + PRODUCTION_LOCATIONS("ProductionLocations"), + + STUDIOS("Studios"), + + TAGS("Tags"), + + NAME("Name"), + + OVERVIEW("Overview"), + + RUNTIME("Runtime"), + + OFFICIAL_RATING("OfficialRating"); + + private String value; + + MetadataField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MetadataField fromValue(String value) { + for (MetadataField b : MetadataField.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MetadataField enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MetadataField read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MetadataField.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MetadataField.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataOptions.java new file mode 100644 index 0000000000000..3a72eee3fb944 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataOptions.java @@ -0,0 +1,454 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MetadataOptions. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MetadataOptions { + public static final String SERIALIZED_NAME_ITEM_TYPE = "ItemType"; + @SerializedName(SERIALIZED_NAME_ITEM_TYPE) + @javax.annotation.Nullable + private String itemType; + + public static final String SERIALIZED_NAME_DISABLED_METADATA_SAVERS = "DisabledMetadataSavers"; + @SerializedName(SERIALIZED_NAME_DISABLED_METADATA_SAVERS) + @javax.annotation.Nullable + private List disabledMetadataSavers; + + public static final String SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER = "LocalMetadataReaderOrder"; + @SerializedName(SERIALIZED_NAME_LOCAL_METADATA_READER_ORDER) + @javax.annotation.Nullable + private List localMetadataReaderOrder; + + public static final String SERIALIZED_NAME_DISABLED_METADATA_FETCHERS = "DisabledMetadataFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_METADATA_FETCHERS) + @javax.annotation.Nullable + private List disabledMetadataFetchers; + + public static final String SERIALIZED_NAME_METADATA_FETCHER_ORDER = "MetadataFetcherOrder"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHER_ORDER) + @javax.annotation.Nullable + private List metadataFetcherOrder; + + public static final String SERIALIZED_NAME_DISABLED_IMAGE_FETCHERS = "DisabledImageFetchers"; + @SerializedName(SERIALIZED_NAME_DISABLED_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List disabledImageFetchers; + + public static final String SERIALIZED_NAME_IMAGE_FETCHER_ORDER = "ImageFetcherOrder"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHER_ORDER) + @javax.annotation.Nullable + private List imageFetcherOrder; + + public MetadataOptions() { + } + + public MetadataOptions itemType(@javax.annotation.Nullable String itemType) { + this.itemType = itemType; + return this; + } + + /** + * Get itemType + * @return itemType + */ + @javax.annotation.Nullable + public String getItemType() { + return itemType; + } + + public void setItemType(@javax.annotation.Nullable String itemType) { + this.itemType = itemType; + } + + + public MetadataOptions disabledMetadataSavers(@javax.annotation.Nullable List disabledMetadataSavers) { + this.disabledMetadataSavers = disabledMetadataSavers; + return this; + } + + public MetadataOptions addDisabledMetadataSaversItem(String disabledMetadataSaversItem) { + if (this.disabledMetadataSavers == null) { + this.disabledMetadataSavers = new ArrayList<>(); + } + this.disabledMetadataSavers.add(disabledMetadataSaversItem); + return this; + } + + /** + * Get disabledMetadataSavers + * @return disabledMetadataSavers + */ + @javax.annotation.Nullable + public List getDisabledMetadataSavers() { + return disabledMetadataSavers; + } + + public void setDisabledMetadataSavers(@javax.annotation.Nullable List disabledMetadataSavers) { + this.disabledMetadataSavers = disabledMetadataSavers; + } + + + public MetadataOptions localMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + return this; + } + + public MetadataOptions addLocalMetadataReaderOrderItem(String localMetadataReaderOrderItem) { + if (this.localMetadataReaderOrder == null) { + this.localMetadataReaderOrder = new ArrayList<>(); + } + this.localMetadataReaderOrder.add(localMetadataReaderOrderItem); + return this; + } + + /** + * Get localMetadataReaderOrder + * @return localMetadataReaderOrder + */ + @javax.annotation.Nullable + public List getLocalMetadataReaderOrder() { + return localMetadataReaderOrder; + } + + public void setLocalMetadataReaderOrder(@javax.annotation.Nullable List localMetadataReaderOrder) { + this.localMetadataReaderOrder = localMetadataReaderOrder; + } + + + public MetadataOptions disabledMetadataFetchers(@javax.annotation.Nullable List disabledMetadataFetchers) { + this.disabledMetadataFetchers = disabledMetadataFetchers; + return this; + } + + public MetadataOptions addDisabledMetadataFetchersItem(String disabledMetadataFetchersItem) { + if (this.disabledMetadataFetchers == null) { + this.disabledMetadataFetchers = new ArrayList<>(); + } + this.disabledMetadataFetchers.add(disabledMetadataFetchersItem); + return this; + } + + /** + * Get disabledMetadataFetchers + * @return disabledMetadataFetchers + */ + @javax.annotation.Nullable + public List getDisabledMetadataFetchers() { + return disabledMetadataFetchers; + } + + public void setDisabledMetadataFetchers(@javax.annotation.Nullable List disabledMetadataFetchers) { + this.disabledMetadataFetchers = disabledMetadataFetchers; + } + + + public MetadataOptions metadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + return this; + } + + public MetadataOptions addMetadataFetcherOrderItem(String metadataFetcherOrderItem) { + if (this.metadataFetcherOrder == null) { + this.metadataFetcherOrder = new ArrayList<>(); + } + this.metadataFetcherOrder.add(metadataFetcherOrderItem); + return this; + } + + /** + * Get metadataFetcherOrder + * @return metadataFetcherOrder + */ + @javax.annotation.Nullable + public List getMetadataFetcherOrder() { + return metadataFetcherOrder; + } + + public void setMetadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + } + + + public MetadataOptions disabledImageFetchers(@javax.annotation.Nullable List disabledImageFetchers) { + this.disabledImageFetchers = disabledImageFetchers; + return this; + } + + public MetadataOptions addDisabledImageFetchersItem(String disabledImageFetchersItem) { + if (this.disabledImageFetchers == null) { + this.disabledImageFetchers = new ArrayList<>(); + } + this.disabledImageFetchers.add(disabledImageFetchersItem); + return this; + } + + /** + * Get disabledImageFetchers + * @return disabledImageFetchers + */ + @javax.annotation.Nullable + public List getDisabledImageFetchers() { + return disabledImageFetchers; + } + + public void setDisabledImageFetchers(@javax.annotation.Nullable List disabledImageFetchers) { + this.disabledImageFetchers = disabledImageFetchers; + } + + + public MetadataOptions imageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + return this; + } + + public MetadataOptions addImageFetcherOrderItem(String imageFetcherOrderItem) { + if (this.imageFetcherOrder == null) { + this.imageFetcherOrder = new ArrayList<>(); + } + this.imageFetcherOrder.add(imageFetcherOrderItem); + return this; + } + + /** + * Get imageFetcherOrder + * @return imageFetcherOrder + */ + @javax.annotation.Nullable + public List getImageFetcherOrder() { + return imageFetcherOrder; + } + + public void setImageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataOptions metadataOptions = (MetadataOptions) o; + return Objects.equals(this.itemType, metadataOptions.itemType) && + Objects.equals(this.disabledMetadataSavers, metadataOptions.disabledMetadataSavers) && + Objects.equals(this.localMetadataReaderOrder, metadataOptions.localMetadataReaderOrder) && + Objects.equals(this.disabledMetadataFetchers, metadataOptions.disabledMetadataFetchers) && + Objects.equals(this.metadataFetcherOrder, metadataOptions.metadataFetcherOrder) && + Objects.equals(this.disabledImageFetchers, metadataOptions.disabledImageFetchers) && + Objects.equals(this.imageFetcherOrder, metadataOptions.imageFetcherOrder); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemType, disabledMetadataSavers, localMetadataReaderOrder, disabledMetadataFetchers, metadataFetcherOrder, disabledImageFetchers, imageFetcherOrder); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MetadataOptions {\n"); + sb.append(" itemType: ").append(toIndentedString(itemType)).append("\n"); + sb.append(" disabledMetadataSavers: ").append(toIndentedString(disabledMetadataSavers)).append("\n"); + sb.append(" localMetadataReaderOrder: ").append(toIndentedString(localMetadataReaderOrder)).append("\n"); + sb.append(" disabledMetadataFetchers: ").append(toIndentedString(disabledMetadataFetchers)).append("\n"); + sb.append(" metadataFetcherOrder: ").append(toIndentedString(metadataFetcherOrder)).append("\n"); + sb.append(" disabledImageFetchers: ").append(toIndentedString(disabledImageFetchers)).append("\n"); + sb.append(" imageFetcherOrder: ").append(toIndentedString(imageFetcherOrder)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemType"); + openapiFields.add("DisabledMetadataSavers"); + openapiFields.add("LocalMetadataReaderOrder"); + openapiFields.add("DisabledMetadataFetchers"); + openapiFields.add("MetadataFetcherOrder"); + openapiFields.add("DisabledImageFetchers"); + openapiFields.add("ImageFetcherOrder"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MetadataOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MetadataOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MetadataOptions is not found in the empty JSON string", MetadataOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MetadataOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MetadataOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ItemType") != null && !jsonObj.get("ItemType").isJsonNull()) && !jsonObj.get("ItemType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemType").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMetadataSavers") != null && !jsonObj.get("DisabledMetadataSavers").isJsonNull() && !jsonObj.get("DisabledMetadataSavers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMetadataSavers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMetadataSavers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalMetadataReaderOrder") != null && !jsonObj.get("LocalMetadataReaderOrder").isJsonNull() && !jsonObj.get("LocalMetadataReaderOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalMetadataReaderOrder` to be an array in the JSON string but got `%s`", jsonObj.get("LocalMetadataReaderOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMetadataFetchers") != null && !jsonObj.get("DisabledMetadataFetchers").isJsonNull() && !jsonObj.get("DisabledMetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMetadataFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetcherOrder") != null && !jsonObj.get("MetadataFetcherOrder").isJsonNull() && !jsonObj.get("MetadataFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledImageFetchers") != null && !jsonObj.get("DisabledImageFetchers").isJsonNull() && !jsonObj.get("DisabledImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledImageFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetcherOrder") != null && !jsonObj.get("ImageFetcherOrder").isJsonNull() && !jsonObj.get("ImageFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetcherOrder").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MetadataOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MetadataOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MetadataOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MetadataOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MetadataOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MetadataOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of MetadataOptions + * @throws IOException if the JSON string is invalid with respect to MetadataOptions + */ + public static MetadataOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MetadataOptions.class); + } + + /** + * Convert an instance of MetadataOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java new file mode 100644 index 0000000000000..a47bf103edfa6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MetadataRefreshMode.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets MetadataRefreshMode + */ +@JsonAdapter(MetadataRefreshMode.Adapter.class) +public enum MetadataRefreshMode { + + NONE("None"), + + VALIDATION_ONLY("ValidationOnly"), + + DEFAULT("Default"), + + FULL_REFRESH("FullRefresh"); + + private String value; + + MetadataRefreshMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MetadataRefreshMode fromValue(String value) { + for (MetadataRefreshMode b : MetadataRefreshMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MetadataRefreshMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MetadataRefreshMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MetadataRefreshMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MetadataRefreshMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java new file mode 100644 index 0000000000000..2017edcaf3b57 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovePlaylistItemRequestDto.java @@ -0,0 +1,234 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class MovePlaylistItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovePlaylistItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public static final String SERIALIZED_NAME_NEW_INDEX = "NewIndex"; + @SerializedName(SERIALIZED_NAME_NEW_INDEX) + @javax.annotation.Nullable + private Integer newIndex; + + public MovePlaylistItemRequestDto() { + } + + public MovePlaylistItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist identifier of the item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public MovePlaylistItemRequestDto newIndex(@javax.annotation.Nullable Integer newIndex) { + this.newIndex = newIndex; + return this; + } + + /** + * Gets or sets the new position. + * @return newIndex + */ + @javax.annotation.Nullable + public Integer getNewIndex() { + return newIndex; + } + + public void setNewIndex(@javax.annotation.Nullable Integer newIndex) { + this.newIndex = newIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovePlaylistItemRequestDto movePlaylistItemRequestDto = (MovePlaylistItemRequestDto) o; + return Objects.equals(this.playlistItemId, movePlaylistItemRequestDto.playlistItemId) && + Objects.equals(this.newIndex, movePlaylistItemRequestDto.newIndex); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId, newIndex); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovePlaylistItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" newIndex: ").append(toIndentedString(newIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + openapiFields.add("NewIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovePlaylistItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovePlaylistItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovePlaylistItemRequestDto is not found in the empty JSON string", MovePlaylistItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovePlaylistItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovePlaylistItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovePlaylistItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovePlaylistItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovePlaylistItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovePlaylistItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovePlaylistItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovePlaylistItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovePlaylistItemRequestDto + * @throws IOException if the JSON string is invalid with respect to MovePlaylistItemRequestDto + */ + public static MovePlaylistItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovePlaylistItemRequestDto.class); + } + + /** + * Convert an instance of MovePlaylistItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfo.java new file mode 100644 index 0000000000000..0b51adcc0268a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MovieInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovieInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public MovieInfo() { + } + + public MovieInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MovieInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public MovieInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MovieInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public MovieInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public MovieInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public MovieInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public MovieInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public MovieInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public MovieInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public MovieInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public MovieInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovieInfo movieInfo = (MovieInfo) o; + return Objects.equals(this.name, movieInfo.name) && + Objects.equals(this.originalTitle, movieInfo.originalTitle) && + Objects.equals(this.path, movieInfo.path) && + Objects.equals(this.metadataLanguage, movieInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, movieInfo.metadataCountryCode) && + Objects.equals(this.providerIds, movieInfo.providerIds) && + Objects.equals(this.year, movieInfo.year) && + Objects.equals(this.indexNumber, movieInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, movieInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, movieInfo.premiereDate) && + Objects.equals(this.isAutomated, movieInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovieInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovieInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovieInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovieInfo is not found in the empty JSON string", MovieInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovieInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovieInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovieInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovieInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovieInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovieInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovieInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovieInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovieInfo + * @throws IOException if the JSON string is invalid with respect to MovieInfo + */ + public static MovieInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovieInfo.class); + } + + /** + * Convert an instance of MovieInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..670c295a6718c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MovieInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.MovieInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MovieInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MovieInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private MovieInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public MovieInfoRemoteSearchQuery() { + } + + public MovieInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable MovieInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public MovieInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable MovieInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public MovieInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public MovieInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public MovieInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MovieInfoRemoteSearchQuery movieInfoRemoteSearchQuery = (MovieInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, movieInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, movieInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, movieInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, movieInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MovieInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MovieInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MovieInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MovieInfoRemoteSearchQuery is not found in the empty JSON string", MovieInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MovieInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MovieInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + MovieInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MovieInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MovieInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MovieInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MovieInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MovieInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MovieInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of MovieInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to MovieInfoRemoteSearchQuery + */ + public static MovieInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MovieInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of MovieInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfo.java new file mode 100644 index 0000000000000..583fe9c762cce --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfo.java @@ -0,0 +1,552 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MusicVideoInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MusicVideoInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public MusicVideoInfo() { + } + + public MusicVideoInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public MusicVideoInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public MusicVideoInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public MusicVideoInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public MusicVideoInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public MusicVideoInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public MusicVideoInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public MusicVideoInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public MusicVideoInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public MusicVideoInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public MusicVideoInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public MusicVideoInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public MusicVideoInfo artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public MusicVideoInfo addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MusicVideoInfo musicVideoInfo = (MusicVideoInfo) o; + return Objects.equals(this.name, musicVideoInfo.name) && + Objects.equals(this.originalTitle, musicVideoInfo.originalTitle) && + Objects.equals(this.path, musicVideoInfo.path) && + Objects.equals(this.metadataLanguage, musicVideoInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, musicVideoInfo.metadataCountryCode) && + Objects.equals(this.providerIds, musicVideoInfo.providerIds) && + Objects.equals(this.year, musicVideoInfo.year) && + Objects.equals(this.indexNumber, musicVideoInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, musicVideoInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, musicVideoInfo.premiereDate) && + Objects.equals(this.isAutomated, musicVideoInfo.isAutomated) && + Objects.equals(this.artists, musicVideoInfo.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MusicVideoInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MusicVideoInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MusicVideoInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MusicVideoInfo is not found in the empty JSON string", MusicVideoInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MusicVideoInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MusicVideoInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MusicVideoInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MusicVideoInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MusicVideoInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MusicVideoInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MusicVideoInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MusicVideoInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of MusicVideoInfo + * @throws IOException if the JSON string is invalid with respect to MusicVideoInfo + */ + public static MusicVideoInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MusicVideoInfo.class); + } + + /** + * Convert an instance of MusicVideoInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..a043a4e27ea37 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/MusicVideoInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.MusicVideoInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * MusicVideoInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class MusicVideoInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private MusicVideoInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public MusicVideoInfoRemoteSearchQuery() { + } + + public MusicVideoInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable MusicVideoInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public MusicVideoInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable MusicVideoInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public MusicVideoInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public MusicVideoInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public MusicVideoInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MusicVideoInfoRemoteSearchQuery musicVideoInfoRemoteSearchQuery = (MusicVideoInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, musicVideoInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, musicVideoInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, musicVideoInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, musicVideoInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MusicVideoInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MusicVideoInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MusicVideoInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MusicVideoInfoRemoteSearchQuery is not found in the empty JSON string", MusicVideoInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MusicVideoInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MusicVideoInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + MusicVideoInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MusicVideoInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MusicVideoInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MusicVideoInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MusicVideoInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MusicVideoInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MusicVideoInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of MusicVideoInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to MusicVideoInfoRemoteSearchQuery + */ + public static MusicVideoInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MusicVideoInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of MusicVideoInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameGuidPair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameGuidPair.java new file mode 100644 index 0000000000000..764ac626382ea --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameGuidPair.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameGuidPair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameGuidPair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public NameGuidPair() { + } + + public NameGuidPair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameGuidPair id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameGuidPair nameGuidPair = (NameGuidPair) o; + return Objects.equals(this.name, nameGuidPair.name) && + Objects.equals(this.id, nameGuidPair.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameGuidPair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameGuidPair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameGuidPair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameGuidPair is not found in the empty JSON string", NameGuidPair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameGuidPair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameGuidPair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameGuidPair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameGuidPair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameGuidPair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameGuidPair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameGuidPair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameGuidPair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameGuidPair + * @throws IOException if the JSON string is invalid with respect to NameGuidPair + */ + public static NameGuidPair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameGuidPair.class); + } + + /** + * Convert an instance of NameGuidPair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameIdPair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameIdPair.java new file mode 100644 index 0000000000000..0b2c3da4332fa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameIdPair.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameIdPair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameIdPair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public NameIdPair() { + } + + public NameIdPair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameIdPair id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameIdPair nameIdPair = (NameIdPair) o; + return Objects.equals(this.name, nameIdPair.name) && + Objects.equals(this.id, nameIdPair.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameIdPair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameIdPair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameIdPair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameIdPair is not found in the empty JSON string", NameIdPair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameIdPair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameIdPair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameIdPair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameIdPair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameIdPair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameIdPair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameIdPair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameIdPair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameIdPair + * @throws IOException if the JSON string is invalid with respect to NameIdPair + */ + public static NameIdPair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameIdPair.class); + } + + /** + * Convert an instance of NameIdPair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameValuePair.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameValuePair.java new file mode 100644 index 0000000000000..09b23402bbb07 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NameValuePair.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NameValuePair + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NameValuePair { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public NameValuePair() { + } + + public NameValuePair name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NameValuePair value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Gets or sets the value. + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NameValuePair nameValuePair = (NameValuePair) o; + return Objects.equals(this.name, nameValuePair.name) && + Objects.equals(this.value, nameValuePair.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NameValuePair {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NameValuePair + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NameValuePair.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NameValuePair is not found in the empty JSON string", NameValuePair.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NameValuePair.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NameValuePair` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NameValuePair.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NameValuePair' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NameValuePair.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NameValuePair value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NameValuePair read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NameValuePair given an JSON string + * + * @param jsonString JSON string + * @return An instance of NameValuePair + * @throws IOException if the JSON string is invalid with respect to NameValuePair + */ + public static NameValuePair fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NameValuePair.class); + } + + /** + * Convert an instance of NameValuePair to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NetworkConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NetworkConfiguration.java new file mode 100644 index 0000000000000..265b41df5e768 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NetworkConfiguration.java @@ -0,0 +1,1176 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the Jellyfin.Networking.Configuration.NetworkConfiguration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NetworkConfiguration { + public static final String SERIALIZED_NAME_REQUIRE_HTTPS = "RequireHttps"; + @SerializedName(SERIALIZED_NAME_REQUIRE_HTTPS) + @javax.annotation.Nullable + private Boolean requireHttps; + + public static final String SERIALIZED_NAME_CERTIFICATE_PATH = "CertificatePath"; + @SerializedName(SERIALIZED_NAME_CERTIFICATE_PATH) + @javax.annotation.Nullable + private String certificatePath; + + public static final String SERIALIZED_NAME_CERTIFICATE_PASSWORD = "CertificatePassword"; + @SerializedName(SERIALIZED_NAME_CERTIFICATE_PASSWORD) + @javax.annotation.Nullable + private String certificatePassword; + + public static final String SERIALIZED_NAME_BASE_URL = "BaseUrl"; + @SerializedName(SERIALIZED_NAME_BASE_URL) + @javax.annotation.Nullable + private String baseUrl; + + public static final String SERIALIZED_NAME_PUBLIC_HTTPS_PORT = "PublicHttpsPort"; + @SerializedName(SERIALIZED_NAME_PUBLIC_HTTPS_PORT) + @javax.annotation.Nullable + private Integer publicHttpsPort; + + public static final String SERIALIZED_NAME_HTTP_SERVER_PORT_NUMBER = "HttpServerPortNumber"; + @SerializedName(SERIALIZED_NAME_HTTP_SERVER_PORT_NUMBER) + @javax.annotation.Nullable + private Integer httpServerPortNumber; + + public static final String SERIALIZED_NAME_HTTPS_PORT_NUMBER = "HttpsPortNumber"; + @SerializedName(SERIALIZED_NAME_HTTPS_PORT_NUMBER) + @javax.annotation.Nullable + private Integer httpsPortNumber; + + public static final String SERIALIZED_NAME_ENABLE_HTTPS = "EnableHttps"; + @SerializedName(SERIALIZED_NAME_ENABLE_HTTPS) + @javax.annotation.Nullable + private Boolean enableHttps; + + public static final String SERIALIZED_NAME_PUBLIC_PORT = "PublicPort"; + @SerializedName(SERIALIZED_NAME_PUBLIC_PORT) + @javax.annotation.Nullable + private Integer publicPort; + + public static final String SERIALIZED_NAME_UPN_P_CREATE_HTTP_PORT_MAP = "UPnPCreateHttpPortMap"; + @SerializedName(SERIALIZED_NAME_UPN_P_CREATE_HTTP_PORT_MAP) + @javax.annotation.Nullable + private Boolean upnPCreateHttpPortMap; + + public static final String SERIALIZED_NAME_UD_P_PORT_RANGE = "UDPPortRange"; + @SerializedName(SERIALIZED_NAME_UD_P_PORT_RANGE) + @javax.annotation.Nullable + private String udPPortRange; + + public static final String SERIALIZED_NAME_ENABLE_I_P_V6 = "EnableIPV6"; + @SerializedName(SERIALIZED_NAME_ENABLE_I_P_V6) + @javax.annotation.Nullable + private Boolean enableIPV6; + + public static final String SERIALIZED_NAME_ENABLE_I_P_V4 = "EnableIPV4"; + @SerializedName(SERIALIZED_NAME_ENABLE_I_P_V4) + @javax.annotation.Nullable + private Boolean enableIPV4; + + public static final String SERIALIZED_NAME_ENABLE_S_S_D_P_TRACING = "EnableSSDPTracing"; + @SerializedName(SERIALIZED_NAME_ENABLE_S_S_D_P_TRACING) + @javax.annotation.Nullable + private Boolean enableSSDPTracing; + + public static final String SERIALIZED_NAME_SS_D_P_TRACING_FILTER = "SSDPTracingFilter"; + @SerializedName(SERIALIZED_NAME_SS_D_P_TRACING_FILTER) + @javax.annotation.Nullable + private String ssDPTracingFilter; + + public static final String SERIALIZED_NAME_UD_P_SEND_COUNT = "UDPSendCount"; + @SerializedName(SERIALIZED_NAME_UD_P_SEND_COUNT) + @javax.annotation.Nullable + private Integer udPSendCount; + + public static final String SERIALIZED_NAME_UD_P_SEND_DELAY = "UDPSendDelay"; + @SerializedName(SERIALIZED_NAME_UD_P_SEND_DELAY) + @javax.annotation.Nullable + private Integer udPSendDelay; + + public static final String SERIALIZED_NAME_IGNORE_VIRTUAL_INTERFACES = "IgnoreVirtualInterfaces"; + @SerializedName(SERIALIZED_NAME_IGNORE_VIRTUAL_INTERFACES) + @javax.annotation.Nullable + private Boolean ignoreVirtualInterfaces; + + public static final String SERIALIZED_NAME_VIRTUAL_INTERFACE_NAMES = "VirtualInterfaceNames"; + @SerializedName(SERIALIZED_NAME_VIRTUAL_INTERFACE_NAMES) + @javax.annotation.Nullable + private String virtualInterfaceNames; + + public static final String SERIALIZED_NAME_GATEWAY_MONITOR_PERIOD = "GatewayMonitorPeriod"; + @SerializedName(SERIALIZED_NAME_GATEWAY_MONITOR_PERIOD) + @javax.annotation.Nullable + private Integer gatewayMonitorPeriod; + + public static final String SERIALIZED_NAME_ENABLE_MULTI_SOCKET_BINDING = "EnableMultiSocketBinding"; + @SerializedName(SERIALIZED_NAME_ENABLE_MULTI_SOCKET_BINDING) + @javax.annotation.Nullable + private Boolean enableMultiSocketBinding; + + public static final String SERIALIZED_NAME_TRUST_ALL_I_P6_INTERFACES = "TrustAllIP6Interfaces"; + @SerializedName(SERIALIZED_NAME_TRUST_ALL_I_P6_INTERFACES) + @javax.annotation.Nullable + private Boolean trustAllIP6Interfaces; + + public static final String SERIALIZED_NAME_HD_HOMERUN_PORT_RANGE = "HDHomerunPortRange"; + @SerializedName(SERIALIZED_NAME_HD_HOMERUN_PORT_RANGE) + @javax.annotation.Nullable + private String hdHomerunPortRange; + + public static final String SERIALIZED_NAME_PUBLISHED_SERVER_URI_BY_SUBNET = "PublishedServerUriBySubnet"; + @SerializedName(SERIALIZED_NAME_PUBLISHED_SERVER_URI_BY_SUBNET) + @javax.annotation.Nullable + private List publishedServerUriBySubnet = new ArrayList<>(); + + public static final String SERIALIZED_NAME_AUTO_DISCOVERY_TRACING = "AutoDiscoveryTracing"; + @SerializedName(SERIALIZED_NAME_AUTO_DISCOVERY_TRACING) + @javax.annotation.Nullable + private Boolean autoDiscoveryTracing; + + public static final String SERIALIZED_NAME_AUTO_DISCOVERY = "AutoDiscovery"; + @SerializedName(SERIALIZED_NAME_AUTO_DISCOVERY) + @javax.annotation.Nullable + private Boolean autoDiscovery; + + public static final String SERIALIZED_NAME_REMOTE_I_P_FILTER = "RemoteIPFilter"; + @SerializedName(SERIALIZED_NAME_REMOTE_I_P_FILTER) + @javax.annotation.Nullable + private List remoteIPFilter = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IS_REMOTE_I_P_FILTER_BLACKLIST = "IsRemoteIPFilterBlacklist"; + @SerializedName(SERIALIZED_NAME_IS_REMOTE_I_P_FILTER_BLACKLIST) + @javax.annotation.Nullable + private Boolean isRemoteIPFilterBlacklist; + + public static final String SERIALIZED_NAME_ENABLE_U_PN_P = "EnableUPnP"; + @SerializedName(SERIALIZED_NAME_ENABLE_U_PN_P) + @javax.annotation.Nullable + private Boolean enableUPnP; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nullable + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_LOCAL_NETWORK_SUBNETS = "LocalNetworkSubnets"; + @SerializedName(SERIALIZED_NAME_LOCAL_NETWORK_SUBNETS) + @javax.annotation.Nullable + private List localNetworkSubnets = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LOCAL_NETWORK_ADDRESSES = "LocalNetworkAddresses"; + @SerializedName(SERIALIZED_NAME_LOCAL_NETWORK_ADDRESSES) + @javax.annotation.Nullable + private List localNetworkAddresses = new ArrayList<>(); + + public static final String SERIALIZED_NAME_KNOWN_PROXIES = "KnownProxies"; + @SerializedName(SERIALIZED_NAME_KNOWN_PROXIES) + @javax.annotation.Nullable + private List knownProxies = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_PUBLISHED_SERVER_URI_BY_REQUEST = "EnablePublishedServerUriByRequest"; + @SerializedName(SERIALIZED_NAME_ENABLE_PUBLISHED_SERVER_URI_BY_REQUEST) + @javax.annotation.Nullable + private Boolean enablePublishedServerUriByRequest; + + public NetworkConfiguration() { + } + + public NetworkConfiguration( + Boolean enableMultiSocketBinding + ) { + this(); + this.enableMultiSocketBinding = enableMultiSocketBinding; + } + + public NetworkConfiguration requireHttps(@javax.annotation.Nullable Boolean requireHttps) { + this.requireHttps = requireHttps; + return this; + } + + /** + * Gets or sets a value indicating whether the server should force connections over HTTPS. + * @return requireHttps + */ + @javax.annotation.Nullable + public Boolean getRequireHttps() { + return requireHttps; + } + + public void setRequireHttps(@javax.annotation.Nullable Boolean requireHttps) { + this.requireHttps = requireHttps; + } + + + public NetworkConfiguration certificatePath(@javax.annotation.Nullable String certificatePath) { + this.certificatePath = certificatePath; + return this; + } + + /** + * Gets or sets the filesystem path of an X.509 certificate to use for SSL. + * @return certificatePath + */ + @javax.annotation.Nullable + public String getCertificatePath() { + return certificatePath; + } + + public void setCertificatePath(@javax.annotation.Nullable String certificatePath) { + this.certificatePath = certificatePath; + } + + + public NetworkConfiguration certificatePassword(@javax.annotation.Nullable String certificatePassword) { + this.certificatePassword = certificatePassword; + return this; + } + + /** + * Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath. + * @return certificatePassword + */ + @javax.annotation.Nullable + public String getCertificatePassword() { + return certificatePassword; + } + + public void setCertificatePassword(@javax.annotation.Nullable String certificatePassword) { + this.certificatePassword = certificatePassword; + } + + + public NetworkConfiguration baseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + /** + * Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. + * @return baseUrl + */ + @javax.annotation.Nullable + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(@javax.annotation.Nullable String baseUrl) { + this.baseUrl = baseUrl; + } + + + public NetworkConfiguration publicHttpsPort(@javax.annotation.Nullable Integer publicHttpsPort) { + this.publicHttpsPort = publicHttpsPort; + return this; + } + + /** + * Gets or sets the public HTTPS port. + * @return publicHttpsPort + */ + @javax.annotation.Nullable + public Integer getPublicHttpsPort() { + return publicHttpsPort; + } + + public void setPublicHttpsPort(@javax.annotation.Nullable Integer publicHttpsPort) { + this.publicHttpsPort = publicHttpsPort; + } + + + public NetworkConfiguration httpServerPortNumber(@javax.annotation.Nullable Integer httpServerPortNumber) { + this.httpServerPortNumber = httpServerPortNumber; + return this; + } + + /** + * Gets or sets the HTTP server port number. + * @return httpServerPortNumber + */ + @javax.annotation.Nullable + public Integer getHttpServerPortNumber() { + return httpServerPortNumber; + } + + public void setHttpServerPortNumber(@javax.annotation.Nullable Integer httpServerPortNumber) { + this.httpServerPortNumber = httpServerPortNumber; + } + + + public NetworkConfiguration httpsPortNumber(@javax.annotation.Nullable Integer httpsPortNumber) { + this.httpsPortNumber = httpsPortNumber; + return this; + } + + /** + * Gets or sets the HTTPS server port number. + * @return httpsPortNumber + */ + @javax.annotation.Nullable + public Integer getHttpsPortNumber() { + return httpsPortNumber; + } + + public void setHttpsPortNumber(@javax.annotation.Nullable Integer httpsPortNumber) { + this.httpsPortNumber = httpsPortNumber; + } + + + public NetworkConfiguration enableHttps(@javax.annotation.Nullable Boolean enableHttps) { + this.enableHttps = enableHttps; + return this; + } + + /** + * Gets or sets a value indicating whether to use HTTPS. + * @return enableHttps + */ + @javax.annotation.Nullable + public Boolean getEnableHttps() { + return enableHttps; + } + + public void setEnableHttps(@javax.annotation.Nullable Boolean enableHttps) { + this.enableHttps = enableHttps; + } + + + public NetworkConfiguration publicPort(@javax.annotation.Nullable Integer publicPort) { + this.publicPort = publicPort; + return this; + } + + /** + * Gets or sets the public mapped port. + * @return publicPort + */ + @javax.annotation.Nullable + public Integer getPublicPort() { + return publicPort; + } + + public void setPublicPort(@javax.annotation.Nullable Integer publicPort) { + this.publicPort = publicPort; + } + + + public NetworkConfiguration upnPCreateHttpPortMap(@javax.annotation.Nullable Boolean upnPCreateHttpPortMap) { + this.upnPCreateHttpPortMap = upnPCreateHttpPortMap; + return this; + } + + /** + * Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding. + * @return upnPCreateHttpPortMap + */ + @javax.annotation.Nullable + public Boolean getUpnPCreateHttpPortMap() { + return upnPCreateHttpPortMap; + } + + public void setUpnPCreateHttpPortMap(@javax.annotation.Nullable Boolean upnPCreateHttpPortMap) { + this.upnPCreateHttpPortMap = upnPCreateHttpPortMap; + } + + + public NetworkConfiguration udPPortRange(@javax.annotation.Nullable String udPPortRange) { + this.udPPortRange = udPPortRange; + return this; + } + + /** + * Gets or sets the UDPPortRange. + * @return udPPortRange + */ + @javax.annotation.Nullable + public String getUdPPortRange() { + return udPPortRange; + } + + public void setUdPPortRange(@javax.annotation.Nullable String udPPortRange) { + this.udPPortRange = udPPortRange; + } + + + public NetworkConfiguration enableIPV6(@javax.annotation.Nullable Boolean enableIPV6) { + this.enableIPV6 = enableIPV6; + return this; + } + + /** + * Gets or sets a value indicating whether gets or sets IPV6 capability. + * @return enableIPV6 + */ + @javax.annotation.Nullable + public Boolean getEnableIPV6() { + return enableIPV6; + } + + public void setEnableIPV6(@javax.annotation.Nullable Boolean enableIPV6) { + this.enableIPV6 = enableIPV6; + } + + + public NetworkConfiguration enableIPV4(@javax.annotation.Nullable Boolean enableIPV4) { + this.enableIPV4 = enableIPV4; + return this; + } + + /** + * Gets or sets a value indicating whether gets or sets IPV4 capability. + * @return enableIPV4 + */ + @javax.annotation.Nullable + public Boolean getEnableIPV4() { + return enableIPV4; + } + + public void setEnableIPV4(@javax.annotation.Nullable Boolean enableIPV4) { + this.enableIPV4 = enableIPV4; + } + + + public NetworkConfiguration enableSSDPTracing(@javax.annotation.Nullable Boolean enableSSDPTracing) { + this.enableSSDPTracing = enableSSDPTracing; + return this; + } + + /** + * Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log. \"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect. + * @return enableSSDPTracing + */ + @javax.annotation.Nullable + public Boolean getEnableSSDPTracing() { + return enableSSDPTracing; + } + + public void setEnableSSDPTracing(@javax.annotation.Nullable Boolean enableSSDPTracing) { + this.enableSSDPTracing = enableSSDPTracing; + } + + + public NetworkConfiguration ssDPTracingFilter(@javax.annotation.Nullable String ssDPTracingFilter) { + this.ssDPTracingFilter = ssDPTracingFilter; + return this; + } + + /** + * Gets or sets the SSDPTracingFilter Gets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log. If the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work. + * @return ssDPTracingFilter + */ + @javax.annotation.Nullable + public String getSsDPTracingFilter() { + return ssDPTracingFilter; + } + + public void setSsDPTracingFilter(@javax.annotation.Nullable String ssDPTracingFilter) { + this.ssDPTracingFilter = ssDPTracingFilter; + } + + + public NetworkConfiguration udPSendCount(@javax.annotation.Nullable Integer udPSendCount) { + this.udPSendCount = udPSendCount; + return this; + } + + /** + * Gets or sets the number of times SSDP UDP messages are sent. + * @return udPSendCount + */ + @javax.annotation.Nullable + public Integer getUdPSendCount() { + return udPSendCount; + } + + public void setUdPSendCount(@javax.annotation.Nullable Integer udPSendCount) { + this.udPSendCount = udPSendCount; + } + + + public NetworkConfiguration udPSendDelay(@javax.annotation.Nullable Integer udPSendDelay) { + this.udPSendDelay = udPSendDelay; + return this; + } + + /** + * Gets or sets the delay between each groups of SSDP messages (in ms). + * @return udPSendDelay + */ + @javax.annotation.Nullable + public Integer getUdPSendDelay() { + return udPSendDelay; + } + + public void setUdPSendDelay(@javax.annotation.Nullable Integer udPSendDelay) { + this.udPSendDelay = udPSendDelay; + } + + + public NetworkConfiguration ignoreVirtualInterfaces(@javax.annotation.Nullable Boolean ignoreVirtualInterfaces) { + this.ignoreVirtualInterfaces = ignoreVirtualInterfaces; + return this; + } + + /** + * Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding. + * @return ignoreVirtualInterfaces + */ + @javax.annotation.Nullable + public Boolean getIgnoreVirtualInterfaces() { + return ignoreVirtualInterfaces; + } + + public void setIgnoreVirtualInterfaces(@javax.annotation.Nullable Boolean ignoreVirtualInterfaces) { + this.ignoreVirtualInterfaces = ignoreVirtualInterfaces; + } + + + public NetworkConfiguration virtualInterfaceNames(@javax.annotation.Nullable String virtualInterfaceNames) { + this.virtualInterfaceNames = virtualInterfaceNames; + return this; + } + + /** + * Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.IgnoreVirtualInterfaces\" />. + * @return virtualInterfaceNames + */ + @javax.annotation.Nullable + public String getVirtualInterfaceNames() { + return virtualInterfaceNames; + } + + public void setVirtualInterfaceNames(@javax.annotation.Nullable String virtualInterfaceNames) { + this.virtualInterfaceNames = virtualInterfaceNames; + } + + + public NetworkConfiguration gatewayMonitorPeriod(@javax.annotation.Nullable Integer gatewayMonitorPeriod) { + this.gatewayMonitorPeriod = gatewayMonitorPeriod; + return this; + } + + /** + * Gets or sets the time (in seconds) between the pings of SSDP gateway monitor. + * @return gatewayMonitorPeriod + */ + @javax.annotation.Nullable + public Integer getGatewayMonitorPeriod() { + return gatewayMonitorPeriod; + } + + public void setGatewayMonitorPeriod(@javax.annotation.Nullable Integer gatewayMonitorPeriod) { + this.gatewayMonitorPeriod = gatewayMonitorPeriod; + } + + + /** + * Gets a value indicating whether multi-socket binding is available. + * @return enableMultiSocketBinding + */ + @javax.annotation.Nullable + public Boolean getEnableMultiSocketBinding() { + return enableMultiSocketBinding; + } + + + + public NetworkConfiguration trustAllIP6Interfaces(@javax.annotation.Nullable Boolean trustAllIP6Interfaces) { + this.trustAllIP6Interfaces = trustAllIP6Interfaces; + return this; + } + + /** + * Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network. Depending on the address range implemented ULA ranges might not be used. + * @return trustAllIP6Interfaces + */ + @javax.annotation.Nullable + public Boolean getTrustAllIP6Interfaces() { + return trustAllIP6Interfaces; + } + + public void setTrustAllIP6Interfaces(@javax.annotation.Nullable Boolean trustAllIP6Interfaces) { + this.trustAllIP6Interfaces = trustAllIP6Interfaces; + } + + + public NetworkConfiguration hdHomerunPortRange(@javax.annotation.Nullable String hdHomerunPortRange) { + this.hdHomerunPortRange = hdHomerunPortRange; + return this; + } + + /** + * Gets or sets the ports that HDHomerun uses. + * @return hdHomerunPortRange + */ + @javax.annotation.Nullable + public String getHdHomerunPortRange() { + return hdHomerunPortRange; + } + + public void setHdHomerunPortRange(@javax.annotation.Nullable String hdHomerunPortRange) { + this.hdHomerunPortRange = hdHomerunPortRange; + } + + + public NetworkConfiguration publishedServerUriBySubnet(@javax.annotation.Nullable List publishedServerUriBySubnet) { + this.publishedServerUriBySubnet = publishedServerUriBySubnet; + return this; + } + + public NetworkConfiguration addPublishedServerUriBySubnetItem(String publishedServerUriBySubnetItem) { + if (this.publishedServerUriBySubnet == null) { + this.publishedServerUriBySubnet = new ArrayList<>(); + } + this.publishedServerUriBySubnet.add(publishedServerUriBySubnetItem); + return this; + } + + /** + * Gets or sets the PublishedServerUriBySubnet Gets or sets PublishedServerUri to advertise for specific subnets. + * @return publishedServerUriBySubnet + */ + @javax.annotation.Nullable + public List getPublishedServerUriBySubnet() { + return publishedServerUriBySubnet; + } + + public void setPublishedServerUriBySubnet(@javax.annotation.Nullable List publishedServerUriBySubnet) { + this.publishedServerUriBySubnet = publishedServerUriBySubnet; + } + + + public NetworkConfiguration autoDiscoveryTracing(@javax.annotation.Nullable Boolean autoDiscoveryTracing) { + this.autoDiscoveryTracing = autoDiscoveryTracing; + return this; + } + + /** + * Gets or sets a value indicating whether Autodiscovery tracing is enabled. + * @return autoDiscoveryTracing + */ + @javax.annotation.Nullable + public Boolean getAutoDiscoveryTracing() { + return autoDiscoveryTracing; + } + + public void setAutoDiscoveryTracing(@javax.annotation.Nullable Boolean autoDiscoveryTracing) { + this.autoDiscoveryTracing = autoDiscoveryTracing; + } + + + public NetworkConfiguration autoDiscovery(@javax.annotation.Nullable Boolean autoDiscovery) { + this.autoDiscovery = autoDiscovery; + return this; + } + + /** + * Gets or sets a value indicating whether Autodiscovery is enabled. + * @return autoDiscovery + */ + @javax.annotation.Nullable + public Boolean getAutoDiscovery() { + return autoDiscovery; + } + + public void setAutoDiscovery(@javax.annotation.Nullable Boolean autoDiscovery) { + this.autoDiscovery = autoDiscovery; + } + + + public NetworkConfiguration remoteIPFilter(@javax.annotation.Nullable List remoteIPFilter) { + this.remoteIPFilter = remoteIPFilter; + return this; + } + + public NetworkConfiguration addRemoteIPFilterItem(String remoteIPFilterItem) { + if (this.remoteIPFilter == null) { + this.remoteIPFilter = new ArrayList<>(); + } + this.remoteIPFilter.add(remoteIPFilterItem); + return this; + } + + /** + * Gets or sets the filter for remote IP connectivity. Used in conjuntion with <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.IsRemoteIPFilterBlacklist\" />. + * @return remoteIPFilter + */ + @javax.annotation.Nullable + public List getRemoteIPFilter() { + return remoteIPFilter; + } + + public void setRemoteIPFilter(@javax.annotation.Nullable List remoteIPFilter) { + this.remoteIPFilter = remoteIPFilter; + } + + + public NetworkConfiguration isRemoteIPFilterBlacklist(@javax.annotation.Nullable Boolean isRemoteIPFilterBlacklist) { + this.isRemoteIPFilterBlacklist = isRemoteIPFilterBlacklist; + return this; + } + + /** + * Gets or sets a value indicating whether <seealso cref=\"P:Jellyfin.Networking.Configuration.NetworkConfiguration.RemoteIPFilter\" /> contains a blacklist or a whitelist. Default is a whitelist. + * @return isRemoteIPFilterBlacklist + */ + @javax.annotation.Nullable + public Boolean getIsRemoteIPFilterBlacklist() { + return isRemoteIPFilterBlacklist; + } + + public void setIsRemoteIPFilterBlacklist(@javax.annotation.Nullable Boolean isRemoteIPFilterBlacklist) { + this.isRemoteIPFilterBlacklist = isRemoteIPFilterBlacklist; + } + + + public NetworkConfiguration enableUPnP(@javax.annotation.Nullable Boolean enableUPnP) { + this.enableUPnP = enableUPnP; + return this; + } + + /** + * Gets or sets a value indicating whether to enable automatic port forwarding. + * @return enableUPnP + */ + @javax.annotation.Nullable + public Boolean getEnableUPnP() { + return enableUPnP; + } + + public void setEnableUPnP(@javax.annotation.Nullable Boolean enableUPnP) { + this.enableUPnP = enableUPnP; + } + + + public NetworkConfiguration enableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Gets or sets a value indicating whether access outside of the LAN is permitted. + * @return enableRemoteAccess + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public NetworkConfiguration localNetworkSubnets(@javax.annotation.Nullable List localNetworkSubnets) { + this.localNetworkSubnets = localNetworkSubnets; + return this; + } + + public NetworkConfiguration addLocalNetworkSubnetsItem(String localNetworkSubnetsItem) { + if (this.localNetworkSubnets == null) { + this.localNetworkSubnets = new ArrayList<>(); + } + this.localNetworkSubnets.add(localNetworkSubnetsItem); + return this; + } + + /** + * Gets or sets the subnets that are deemed to make up the LAN. + * @return localNetworkSubnets + */ + @javax.annotation.Nullable + public List getLocalNetworkSubnets() { + return localNetworkSubnets; + } + + public void setLocalNetworkSubnets(@javax.annotation.Nullable List localNetworkSubnets) { + this.localNetworkSubnets = localNetworkSubnets; + } + + + public NetworkConfiguration localNetworkAddresses(@javax.annotation.Nullable List localNetworkAddresses) { + this.localNetworkAddresses = localNetworkAddresses; + return this; + } + + public NetworkConfiguration addLocalNetworkAddressesItem(String localNetworkAddressesItem) { + if (this.localNetworkAddresses == null) { + this.localNetworkAddresses = new ArrayList<>(); + } + this.localNetworkAddresses.add(localNetworkAddressesItem); + return this; + } + + /** + * Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. + * @return localNetworkAddresses + */ + @javax.annotation.Nullable + public List getLocalNetworkAddresses() { + return localNetworkAddresses; + } + + public void setLocalNetworkAddresses(@javax.annotation.Nullable List localNetworkAddresses) { + this.localNetworkAddresses = localNetworkAddresses; + } + + + public NetworkConfiguration knownProxies(@javax.annotation.Nullable List knownProxies) { + this.knownProxies = knownProxies; + return this; + } + + public NetworkConfiguration addKnownProxiesItem(String knownProxiesItem) { + if (this.knownProxies == null) { + this.knownProxies = new ArrayList<>(); + } + this.knownProxies.add(knownProxiesItem); + return this; + } + + /** + * Gets or sets the known proxies. If the proxy is a network, it's added to the KnownNetworks. + * @return knownProxies + */ + @javax.annotation.Nullable + public List getKnownProxies() { + return knownProxies; + } + + public void setKnownProxies(@javax.annotation.Nullable List knownProxies) { + this.knownProxies = knownProxies; + } + + + public NetworkConfiguration enablePublishedServerUriByRequest(@javax.annotation.Nullable Boolean enablePublishedServerUriByRequest) { + this.enablePublishedServerUriByRequest = enablePublishedServerUriByRequest; + return this; + } + + /** + * Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. + * @return enablePublishedServerUriByRequest + */ + @javax.annotation.Nullable + public Boolean getEnablePublishedServerUriByRequest() { + return enablePublishedServerUriByRequest; + } + + public void setEnablePublishedServerUriByRequest(@javax.annotation.Nullable Boolean enablePublishedServerUriByRequest) { + this.enablePublishedServerUriByRequest = enablePublishedServerUriByRequest; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NetworkConfiguration networkConfiguration = (NetworkConfiguration) o; + return Objects.equals(this.requireHttps, networkConfiguration.requireHttps) && + Objects.equals(this.certificatePath, networkConfiguration.certificatePath) && + Objects.equals(this.certificatePassword, networkConfiguration.certificatePassword) && + Objects.equals(this.baseUrl, networkConfiguration.baseUrl) && + Objects.equals(this.publicHttpsPort, networkConfiguration.publicHttpsPort) && + Objects.equals(this.httpServerPortNumber, networkConfiguration.httpServerPortNumber) && + Objects.equals(this.httpsPortNumber, networkConfiguration.httpsPortNumber) && + Objects.equals(this.enableHttps, networkConfiguration.enableHttps) && + Objects.equals(this.publicPort, networkConfiguration.publicPort) && + Objects.equals(this.upnPCreateHttpPortMap, networkConfiguration.upnPCreateHttpPortMap) && + Objects.equals(this.udPPortRange, networkConfiguration.udPPortRange) && + Objects.equals(this.enableIPV6, networkConfiguration.enableIPV6) && + Objects.equals(this.enableIPV4, networkConfiguration.enableIPV4) && + Objects.equals(this.enableSSDPTracing, networkConfiguration.enableSSDPTracing) && + Objects.equals(this.ssDPTracingFilter, networkConfiguration.ssDPTracingFilter) && + Objects.equals(this.udPSendCount, networkConfiguration.udPSendCount) && + Objects.equals(this.udPSendDelay, networkConfiguration.udPSendDelay) && + Objects.equals(this.ignoreVirtualInterfaces, networkConfiguration.ignoreVirtualInterfaces) && + Objects.equals(this.virtualInterfaceNames, networkConfiguration.virtualInterfaceNames) && + Objects.equals(this.gatewayMonitorPeriod, networkConfiguration.gatewayMonitorPeriod) && + Objects.equals(this.enableMultiSocketBinding, networkConfiguration.enableMultiSocketBinding) && + Objects.equals(this.trustAllIP6Interfaces, networkConfiguration.trustAllIP6Interfaces) && + Objects.equals(this.hdHomerunPortRange, networkConfiguration.hdHomerunPortRange) && + Objects.equals(this.publishedServerUriBySubnet, networkConfiguration.publishedServerUriBySubnet) && + Objects.equals(this.autoDiscoveryTracing, networkConfiguration.autoDiscoveryTracing) && + Objects.equals(this.autoDiscovery, networkConfiguration.autoDiscovery) && + Objects.equals(this.remoteIPFilter, networkConfiguration.remoteIPFilter) && + Objects.equals(this.isRemoteIPFilterBlacklist, networkConfiguration.isRemoteIPFilterBlacklist) && + Objects.equals(this.enableUPnP, networkConfiguration.enableUPnP) && + Objects.equals(this.enableRemoteAccess, networkConfiguration.enableRemoteAccess) && + Objects.equals(this.localNetworkSubnets, networkConfiguration.localNetworkSubnets) && + Objects.equals(this.localNetworkAddresses, networkConfiguration.localNetworkAddresses) && + Objects.equals(this.knownProxies, networkConfiguration.knownProxies) && + Objects.equals(this.enablePublishedServerUriByRequest, networkConfiguration.enablePublishedServerUriByRequest); + } + + @Override + public int hashCode() { + return Objects.hash(requireHttps, certificatePath, certificatePassword, baseUrl, publicHttpsPort, httpServerPortNumber, httpsPortNumber, enableHttps, publicPort, upnPCreateHttpPortMap, udPPortRange, enableIPV6, enableIPV4, enableSSDPTracing, ssDPTracingFilter, udPSendCount, udPSendDelay, ignoreVirtualInterfaces, virtualInterfaceNames, gatewayMonitorPeriod, enableMultiSocketBinding, trustAllIP6Interfaces, hdHomerunPortRange, publishedServerUriBySubnet, autoDiscoveryTracing, autoDiscovery, remoteIPFilter, isRemoteIPFilterBlacklist, enableUPnP, enableRemoteAccess, localNetworkSubnets, localNetworkAddresses, knownProxies, enablePublishedServerUriByRequest); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NetworkConfiguration {\n"); + sb.append(" requireHttps: ").append(toIndentedString(requireHttps)).append("\n"); + sb.append(" certificatePath: ").append(toIndentedString(certificatePath)).append("\n"); + sb.append(" certificatePassword: ").append(toIndentedString(certificatePassword)).append("\n"); + sb.append(" baseUrl: ").append(toIndentedString(baseUrl)).append("\n"); + sb.append(" publicHttpsPort: ").append(toIndentedString(publicHttpsPort)).append("\n"); + sb.append(" httpServerPortNumber: ").append(toIndentedString(httpServerPortNumber)).append("\n"); + sb.append(" httpsPortNumber: ").append(toIndentedString(httpsPortNumber)).append("\n"); + sb.append(" enableHttps: ").append(toIndentedString(enableHttps)).append("\n"); + sb.append(" publicPort: ").append(toIndentedString(publicPort)).append("\n"); + sb.append(" upnPCreateHttpPortMap: ").append(toIndentedString(upnPCreateHttpPortMap)).append("\n"); + sb.append(" udPPortRange: ").append(toIndentedString(udPPortRange)).append("\n"); + sb.append(" enableIPV6: ").append(toIndentedString(enableIPV6)).append("\n"); + sb.append(" enableIPV4: ").append(toIndentedString(enableIPV4)).append("\n"); + sb.append(" enableSSDPTracing: ").append(toIndentedString(enableSSDPTracing)).append("\n"); + sb.append(" ssDPTracingFilter: ").append(toIndentedString(ssDPTracingFilter)).append("\n"); + sb.append(" udPSendCount: ").append(toIndentedString(udPSendCount)).append("\n"); + sb.append(" udPSendDelay: ").append(toIndentedString(udPSendDelay)).append("\n"); + sb.append(" ignoreVirtualInterfaces: ").append(toIndentedString(ignoreVirtualInterfaces)).append("\n"); + sb.append(" virtualInterfaceNames: ").append(toIndentedString(virtualInterfaceNames)).append("\n"); + sb.append(" gatewayMonitorPeriod: ").append(toIndentedString(gatewayMonitorPeriod)).append("\n"); + sb.append(" enableMultiSocketBinding: ").append(toIndentedString(enableMultiSocketBinding)).append("\n"); + sb.append(" trustAllIP6Interfaces: ").append(toIndentedString(trustAllIP6Interfaces)).append("\n"); + sb.append(" hdHomerunPortRange: ").append(toIndentedString(hdHomerunPortRange)).append("\n"); + sb.append(" publishedServerUriBySubnet: ").append(toIndentedString(publishedServerUriBySubnet)).append("\n"); + sb.append(" autoDiscoveryTracing: ").append(toIndentedString(autoDiscoveryTracing)).append("\n"); + sb.append(" autoDiscovery: ").append(toIndentedString(autoDiscovery)).append("\n"); + sb.append(" remoteIPFilter: ").append(toIndentedString(remoteIPFilter)).append("\n"); + sb.append(" isRemoteIPFilterBlacklist: ").append(toIndentedString(isRemoteIPFilterBlacklist)).append("\n"); + sb.append(" enableUPnP: ").append(toIndentedString(enableUPnP)).append("\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" localNetworkSubnets: ").append(toIndentedString(localNetworkSubnets)).append("\n"); + sb.append(" localNetworkAddresses: ").append(toIndentedString(localNetworkAddresses)).append("\n"); + sb.append(" knownProxies: ").append(toIndentedString(knownProxies)).append("\n"); + sb.append(" enablePublishedServerUriByRequest: ").append(toIndentedString(enablePublishedServerUriByRequest)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RequireHttps"); + openapiFields.add("CertificatePath"); + openapiFields.add("CertificatePassword"); + openapiFields.add("BaseUrl"); + openapiFields.add("PublicHttpsPort"); + openapiFields.add("HttpServerPortNumber"); + openapiFields.add("HttpsPortNumber"); + openapiFields.add("EnableHttps"); + openapiFields.add("PublicPort"); + openapiFields.add("UPnPCreateHttpPortMap"); + openapiFields.add("UDPPortRange"); + openapiFields.add("EnableIPV6"); + openapiFields.add("EnableIPV4"); + openapiFields.add("EnableSSDPTracing"); + openapiFields.add("SSDPTracingFilter"); + openapiFields.add("UDPSendCount"); + openapiFields.add("UDPSendDelay"); + openapiFields.add("IgnoreVirtualInterfaces"); + openapiFields.add("VirtualInterfaceNames"); + openapiFields.add("GatewayMonitorPeriod"); + openapiFields.add("EnableMultiSocketBinding"); + openapiFields.add("TrustAllIP6Interfaces"); + openapiFields.add("HDHomerunPortRange"); + openapiFields.add("PublishedServerUriBySubnet"); + openapiFields.add("AutoDiscoveryTracing"); + openapiFields.add("AutoDiscovery"); + openapiFields.add("RemoteIPFilter"); + openapiFields.add("IsRemoteIPFilterBlacklist"); + openapiFields.add("EnableUPnP"); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("LocalNetworkSubnets"); + openapiFields.add("LocalNetworkAddresses"); + openapiFields.add("KnownProxies"); + openapiFields.add("EnablePublishedServerUriByRequest"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NetworkConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NetworkConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NetworkConfiguration is not found in the empty JSON string", NetworkConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NetworkConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NetworkConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("CertificatePath") != null && !jsonObj.get("CertificatePath").isJsonNull()) && !jsonObj.get("CertificatePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CertificatePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CertificatePath").toString())); + } + if ((jsonObj.get("CertificatePassword") != null && !jsonObj.get("CertificatePassword").isJsonNull()) && !jsonObj.get("CertificatePassword").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CertificatePassword` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CertificatePassword").toString())); + } + if ((jsonObj.get("BaseUrl") != null && !jsonObj.get("BaseUrl").isJsonNull()) && !jsonObj.get("BaseUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaseUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaseUrl").toString())); + } + if ((jsonObj.get("UDPPortRange") != null && !jsonObj.get("UDPPortRange").isJsonNull()) && !jsonObj.get("UDPPortRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UDPPortRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UDPPortRange").toString())); + } + if ((jsonObj.get("SSDPTracingFilter") != null && !jsonObj.get("SSDPTracingFilter").isJsonNull()) && !jsonObj.get("SSDPTracingFilter").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SSDPTracingFilter` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SSDPTracingFilter").toString())); + } + if ((jsonObj.get("VirtualInterfaceNames") != null && !jsonObj.get("VirtualInterfaceNames").isJsonNull()) && !jsonObj.get("VirtualInterfaceNames").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VirtualInterfaceNames` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VirtualInterfaceNames").toString())); + } + if ((jsonObj.get("HDHomerunPortRange") != null && !jsonObj.get("HDHomerunPortRange").isJsonNull()) && !jsonObj.get("HDHomerunPortRange").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `HDHomerunPortRange` to be a primitive type in the JSON string but got `%s`", jsonObj.get("HDHomerunPortRange").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PublishedServerUriBySubnet") != null && !jsonObj.get("PublishedServerUriBySubnet").isJsonNull() && !jsonObj.get("PublishedServerUriBySubnet").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PublishedServerUriBySubnet` to be an array in the JSON string but got `%s`", jsonObj.get("PublishedServerUriBySubnet").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("RemoteIPFilter") != null && !jsonObj.get("RemoteIPFilter").isJsonNull() && !jsonObj.get("RemoteIPFilter").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteIPFilter` to be an array in the JSON string but got `%s`", jsonObj.get("RemoteIPFilter").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalNetworkSubnets") != null && !jsonObj.get("LocalNetworkSubnets").isJsonNull() && !jsonObj.get("LocalNetworkSubnets").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalNetworkSubnets` to be an array in the JSON string but got `%s`", jsonObj.get("LocalNetworkSubnets").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LocalNetworkAddresses") != null && !jsonObj.get("LocalNetworkAddresses").isJsonNull() && !jsonObj.get("LocalNetworkAddresses").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalNetworkAddresses` to be an array in the JSON string but got `%s`", jsonObj.get("LocalNetworkAddresses").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("KnownProxies") != null && !jsonObj.get("KnownProxies").isJsonNull() && !jsonObj.get("KnownProxies").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `KnownProxies` to be an array in the JSON string but got `%s`", jsonObj.get("KnownProxies").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NetworkConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NetworkConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NetworkConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NetworkConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NetworkConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NetworkConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of NetworkConfiguration + * @throws IOException if the JSON string is invalid with respect to NetworkConfiguration + */ + public static NetworkConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NetworkConfiguration.class); + } + + /** + * Convert an instance of NetworkConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java new file mode 100644 index 0000000000000..dfa140c3b91bf --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NewGroupRequestDto.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class NewGroupRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NewGroupRequestDto { + public static final String SERIALIZED_NAME_GROUP_NAME = "GroupName"; + @SerializedName(SERIALIZED_NAME_GROUP_NAME) + @javax.annotation.Nullable + private String groupName; + + public NewGroupRequestDto() { + } + + public NewGroupRequestDto groupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + return this; + } + + /** + * Gets or sets the group name. + * @return groupName + */ + @javax.annotation.Nullable + public String getGroupName() { + return groupName; + } + + public void setGroupName(@javax.annotation.Nullable String groupName) { + this.groupName = groupName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewGroupRequestDto newGroupRequestDto = (NewGroupRequestDto) o; + return Objects.equals(this.groupName, newGroupRequestDto.groupName); + } + + @Override + public int hashCode() { + return Objects.hash(groupName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewGroupRequestDto {\n"); + sb.append(" groupName: ").append(toIndentedString(groupName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewGroupRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewGroupRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewGroupRequestDto is not found in the empty JSON string", NewGroupRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewGroupRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewGroupRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupName") != null && !jsonObj.get("GroupName").isJsonNull()) && !jsonObj.get("GroupName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewGroupRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewGroupRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewGroupRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewGroupRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewGroupRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewGroupRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewGroupRequestDto + * @throws IOException if the JSON string is invalid with respect to NewGroupRequestDto + */ + public static NewGroupRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewGroupRequestDto.class); + } + + /** + * Convert an instance of NewGroupRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NextItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NextItemRequestDto.java new file mode 100644 index 0000000000000..4fe476086f1dd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NextItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class NextItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NextItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public NextItemRequestDto() { + } + + public NextItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playing item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NextItemRequestDto nextItemRequestDto = (NextItemRequestDto) o; + return Objects.equals(this.playlistItemId, nextItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NextItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NextItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NextItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NextItemRequestDto is not found in the empty JSON string", NextItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NextItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NextItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NextItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NextItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NextItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NextItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NextItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NextItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NextItemRequestDto + * @throws IOException if the JSON string is invalid with respect to NextItemRequestDto + */ + public static NextItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NextItemRequestDto.class); + } + + /** + * Convert an instance of NextItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationDto.java new file mode 100644 index 0000000000000..c567b3898e314 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationDto.java @@ -0,0 +1,413 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.client.model.NotificationLevel; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The notification DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private String userId; + + public static final String SERIALIZED_NAME_DATE = "Date"; + @SerializedName(SERIALIZED_NAME_DATE) + @javax.annotation.Nullable + private OffsetDateTime date; + + public static final String SERIALIZED_NAME_IS_READ = "IsRead"; + @SerializedName(SERIALIZED_NAME_IS_READ) + @javax.annotation.Nullable + private Boolean isRead; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_LEVEL = "Level"; + @SerializedName(SERIALIZED_NAME_LEVEL) + @javax.annotation.Nullable + private NotificationLevel level; + + public NotificationDto() { + } + + public NotificationDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the notification ID. Defaults to an empty string. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public NotificationDto userId(@javax.annotation.Nullable String userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the notification's user ID. Defaults to an empty string. + * @return userId + */ + @javax.annotation.Nullable + public String getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable String userId) { + this.userId = userId; + } + + + public NotificationDto date(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + return this; + } + + /** + * Gets or sets the notification date. + * @return date + */ + @javax.annotation.Nullable + public OffsetDateTime getDate() { + return date; + } + + public void setDate(@javax.annotation.Nullable OffsetDateTime date) { + this.date = date; + } + + + public NotificationDto isRead(@javax.annotation.Nullable Boolean isRead) { + this.isRead = isRead; + return this; + } + + /** + * Gets or sets a value indicating whether the notification has been read. Defaults to false. + * @return isRead + */ + @javax.annotation.Nullable + public Boolean getIsRead() { + return isRead; + } + + public void setIsRead(@javax.annotation.Nullable Boolean isRead) { + this.isRead = isRead; + } + + + public NotificationDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the notification's name. Defaults to an empty string. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NotificationDto description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the notification's description. Defaults to an empty string. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public NotificationDto url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the notification's URL. Defaults to an empty string. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public NotificationDto level(@javax.annotation.Nullable NotificationLevel level) { + this.level = level; + return this; + } + + /** + * Gets or sets the notification level. + * @return level + */ + @javax.annotation.Nullable + public NotificationLevel getLevel() { + return level; + } + + public void setLevel(@javax.annotation.Nullable NotificationLevel level) { + this.level = level; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationDto notificationDto = (NotificationDto) o; + return Objects.equals(this.id, notificationDto.id) && + Objects.equals(this.userId, notificationDto.userId) && + Objects.equals(this.date, notificationDto.date) && + Objects.equals(this.isRead, notificationDto.isRead) && + Objects.equals(this.name, notificationDto.name) && + Objects.equals(this.description, notificationDto.description) && + Objects.equals(this.url, notificationDto.url) && + Objects.equals(this.level, notificationDto.level); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId, date, isRead, name, description, url, level); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" isRead: ").append(toIndentedString(isRead)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" level: ").append(toIndentedString(level)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("UserId"); + openapiFields.add("Date"); + openapiFields.add("IsRead"); + openapiFields.add("Name"); + openapiFields.add("Description"); + openapiFields.add("Url"); + openapiFields.add("Level"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationDto is not found in the empty JSON string", NotificationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + // validate the optional field `Level` + if (jsonObj.get("Level") != null && !jsonObj.get("Level").isJsonNull()) { + NotificationLevel.validateJsonElement(jsonObj.get("Level")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationDto + * @throws IOException if the JSON string is invalid with respect to NotificationDto + */ + public static NotificationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationDto.class); + } + + /** + * Convert an instance of NotificationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationLevel.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationLevel.java new file mode 100644 index 0000000000000..113bce57b7b98 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationLevel.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets NotificationLevel + */ +@JsonAdapter(NotificationLevel.Adapter.class) +public enum NotificationLevel { + + NORMAL("Normal"), + + WARNING("Warning"), + + ERROR("Error"); + + private String value; + + NotificationLevel(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationLevel fromValue(String value) { + for (NotificationLevel b : NotificationLevel.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationLevel enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationLevel read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationLevel.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + NotificationLevel.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOption.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOption.java new file mode 100644 index 0000000000000..d1bd701d83098 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOption.java @@ -0,0 +1,396 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SendToUserType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NotificationOption + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationOption { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_DISABLED_MONITOR_USERS = "DisabledMonitorUsers"; + @SerializedName(SERIALIZED_NAME_DISABLED_MONITOR_USERS) + @javax.annotation.Nullable + private List disabledMonitorUsers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SEND_TO_USERS = "SendToUsers"; + @SerializedName(SERIALIZED_NAME_SEND_TO_USERS) + @javax.annotation.Nullable + private List sendToUsers = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLED = "Enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_DISABLED_SERVICES = "DisabledServices"; + @SerializedName(SERIALIZED_NAME_DISABLED_SERVICES) + @javax.annotation.Nullable + private List disabledServices = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SEND_TO_USER_MODE = "SendToUserMode"; + @SerializedName(SERIALIZED_NAME_SEND_TO_USER_MODE) + @javax.annotation.Nullable + private SendToUserType sendToUserMode; + + public NotificationOption() { + } + + public NotificationOption type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public NotificationOption disabledMonitorUsers(@javax.annotation.Nullable List disabledMonitorUsers) { + this.disabledMonitorUsers = disabledMonitorUsers; + return this; + } + + public NotificationOption addDisabledMonitorUsersItem(String disabledMonitorUsersItem) { + if (this.disabledMonitorUsers == null) { + this.disabledMonitorUsers = new ArrayList<>(); + } + this.disabledMonitorUsers.add(disabledMonitorUsersItem); + return this; + } + + /** + * Gets or sets user Ids to not monitor (it's opt out). + * @return disabledMonitorUsers + */ + @javax.annotation.Nullable + public List getDisabledMonitorUsers() { + return disabledMonitorUsers; + } + + public void setDisabledMonitorUsers(@javax.annotation.Nullable List disabledMonitorUsers) { + this.disabledMonitorUsers = disabledMonitorUsers; + } + + + public NotificationOption sendToUsers(@javax.annotation.Nullable List sendToUsers) { + this.sendToUsers = sendToUsers; + return this; + } + + public NotificationOption addSendToUsersItem(String sendToUsersItem) { + if (this.sendToUsers == null) { + this.sendToUsers = new ArrayList<>(); + } + this.sendToUsers.add(sendToUsersItem); + return this; + } + + /** + * Gets or sets user Ids to send to (if SendToUserMode == Custom). + * @return sendToUsers + */ + @javax.annotation.Nullable + public List getSendToUsers() { + return sendToUsers; + } + + public void setSendToUsers(@javax.annotation.Nullable List sendToUsers) { + this.sendToUsers = sendToUsers; + } + + + public NotificationOption enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Notifications.NotificationOption is enabled. + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public NotificationOption disabledServices(@javax.annotation.Nullable List disabledServices) { + this.disabledServices = disabledServices; + return this; + } + + public NotificationOption addDisabledServicesItem(String disabledServicesItem) { + if (this.disabledServices == null) { + this.disabledServices = new ArrayList<>(); + } + this.disabledServices.add(disabledServicesItem); + return this; + } + + /** + * Gets or sets the disabled services. + * @return disabledServices + */ + @javax.annotation.Nullable + public List getDisabledServices() { + return disabledServices; + } + + public void setDisabledServices(@javax.annotation.Nullable List disabledServices) { + this.disabledServices = disabledServices; + } + + + public NotificationOption sendToUserMode(@javax.annotation.Nullable SendToUserType sendToUserMode) { + this.sendToUserMode = sendToUserMode; + return this; + } + + /** + * Gets or sets the send to user mode. + * @return sendToUserMode + */ + @javax.annotation.Nullable + public SendToUserType getSendToUserMode() { + return sendToUserMode; + } + + public void setSendToUserMode(@javax.annotation.Nullable SendToUserType sendToUserMode) { + this.sendToUserMode = sendToUserMode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationOption notificationOption = (NotificationOption) o; + return Objects.equals(this.type, notificationOption.type) && + Objects.equals(this.disabledMonitorUsers, notificationOption.disabledMonitorUsers) && + Objects.equals(this.sendToUsers, notificationOption.sendToUsers) && + Objects.equals(this.enabled, notificationOption.enabled) && + Objects.equals(this.disabledServices, notificationOption.disabledServices) && + Objects.equals(this.sendToUserMode, notificationOption.sendToUserMode); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, disabledMonitorUsers, sendToUsers, enabled, disabledServices, sendToUserMode); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationOption {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" disabledMonitorUsers: ").append(toIndentedString(disabledMonitorUsers)).append("\n"); + sb.append(" sendToUsers: ").append(toIndentedString(sendToUsers)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" disabledServices: ").append(toIndentedString(disabledServices)).append("\n"); + sb.append(" sendToUserMode: ").append(toIndentedString(sendToUserMode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("DisabledMonitorUsers"); + openapiFields.add("SendToUsers"); + openapiFields.add("Enabled"); + openapiFields.add("DisabledServices"); + openapiFields.add("SendToUserMode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationOption + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationOption.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationOption is not found in the empty JSON string", NotificationOption.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationOption.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationOption` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledMonitorUsers") != null && !jsonObj.get("DisabledMonitorUsers").isJsonNull() && !jsonObj.get("DisabledMonitorUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledMonitorUsers` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledMonitorUsers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SendToUsers") != null && !jsonObj.get("SendToUsers").isJsonNull() && !jsonObj.get("SendToUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SendToUsers` to be an array in the JSON string but got `%s`", jsonObj.get("SendToUsers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DisabledServices") != null && !jsonObj.get("DisabledServices").isJsonNull() && !jsonObj.get("DisabledServices").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DisabledServices` to be an array in the JSON string but got `%s`", jsonObj.get("DisabledServices").toString())); + } + // validate the optional field `SendToUserMode` + if (jsonObj.get("SendToUserMode") != null && !jsonObj.get("SendToUserMode").isJsonNull()) { + SendToUserType.validateJsonElement(jsonObj.get("SendToUserMode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationOption.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationOption' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationOption.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationOption value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationOption read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationOption given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationOption + * @throws IOException if the JSON string is invalid with respect to NotificationOption + */ + public static NotificationOption fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationOption.class); + } + + /** + * Convert an instance of NotificationOption to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOptions.java new file mode 100644 index 0000000000000..febe313067e95 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationOptions.java @@ -0,0 +1,240 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NotificationOption; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NotificationOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationOptions { + public static final String SERIALIZED_NAME_OPTIONS = "Options"; + @SerializedName(SERIALIZED_NAME_OPTIONS) + @javax.annotation.Nullable + private List options; + + public NotificationOptions() { + } + + public NotificationOptions options(@javax.annotation.Nullable List options) { + this.options = options; + return this; + } + + public NotificationOptions addOptionsItem(NotificationOption optionsItem) { + if (this.options == null) { + this.options = new ArrayList<>(); + } + this.options.add(optionsItem); + return this; + } + + /** + * Get options + * @return options + */ + @javax.annotation.Nullable + public List getOptions() { + return options; + } + + public void setOptions(@javax.annotation.Nullable List options) { + this.options = options; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationOptions notificationOptions = (NotificationOptions) o; + return Objects.equals(this.options, notificationOptions.options); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(options); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationOptions {\n"); + sb.append(" options: ").append(toIndentedString(options)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Options"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationOptions is not found in the empty JSON string", NotificationOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Options") != null && !jsonObj.get("Options").isJsonNull()) { + JsonArray jsonArrayoptions = jsonObj.getAsJsonArray("Options"); + if (jsonArrayoptions != null) { + // ensure the json data is an array + if (!jsonObj.get("Options").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Options` to be an array in the JSON string but got `%s`", jsonObj.get("Options").toString())); + } + + // validate the optional field `Options` (array) + for (int i = 0; i < jsonArrayoptions.size(); i++) { + NotificationOption.validateJsonElement(jsonArrayoptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationOptions + * @throws IOException if the JSON string is invalid with respect to NotificationOptions + */ + public static NotificationOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationOptions.class); + } + + /** + * Convert an instance of NotificationOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationResultDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationResultDto.java new file mode 100644 index 0000000000000..34966f21ba11d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationResultDto.java @@ -0,0 +1,255 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NotificationDto; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * A list of notifications with the total record count for pagination. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationResultDto { + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nullable + private List notifications = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public NotificationResultDto() { + } + + public NotificationResultDto notifications(@javax.annotation.Nullable List notifications) { + this.notifications = notifications; + return this; + } + + public NotificationResultDto addNotificationsItem(NotificationDto notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * Gets or sets the current page of notifications. + * @return notifications + */ + @javax.annotation.Nullable + public List getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nullable List notifications) { + this.notifications = notifications; + } + + + public NotificationResultDto totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of notifications. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationResultDto notificationResultDto = (NotificationResultDto) o; + return Objects.equals(this.notifications, notificationResultDto.notifications) && + Objects.equals(this.totalRecordCount, notificationResultDto.totalRecordCount); + } + + @Override + public int hashCode() { + return Objects.hash(notifications, totalRecordCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationResultDto {\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Notifications"); + openapiFields.add("TotalRecordCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationResultDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationResultDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationResultDto is not found in the empty JSON string", NotificationResultDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationResultDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationResultDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Notifications") != null && !jsonObj.get("Notifications").isJsonNull()) { + JsonArray jsonArraynotifications = jsonObj.getAsJsonArray("Notifications"); + if (jsonArraynotifications != null) { + // ensure the json data is an array + if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Notifications` to be an array in the JSON string but got `%s`", jsonObj.get("Notifications").toString())); + } + + // validate the optional field `Notifications` (array) + for (int i = 0; i < jsonArraynotifications.size(); i++) { + NotificationDto.validateJsonElement(jsonArraynotifications.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationResultDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationResultDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationResultDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationResultDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationResultDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationResultDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationResultDto + * @throws IOException if the JSON string is invalid with respect to NotificationResultDto + */ + public static NotificationResultDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationResultDto.class); + } + + /** + * Convert an instance of NotificationResultDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationTypeInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationTypeInfo.java new file mode 100644 index 0000000000000..c6c0bdf0c3a2f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationTypeInfo.java @@ -0,0 +1,332 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * NotificationTypeInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationTypeInfo { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ENABLED = "Enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_CATEGORY = "Category"; + @SerializedName(SERIALIZED_NAME_CATEGORY) + @javax.annotation.Nullable + private String category; + + public static final String SERIALIZED_NAME_IS_BASED_ON_USER_EVENT = "IsBasedOnUserEvent"; + @SerializedName(SERIALIZED_NAME_IS_BASED_ON_USER_EVENT) + @javax.annotation.Nullable + private Boolean isBasedOnUserEvent; + + public NotificationTypeInfo() { + } + + public NotificationTypeInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public NotificationTypeInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public NotificationTypeInfo enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Get enabled + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public NotificationTypeInfo category(@javax.annotation.Nullable String category) { + this.category = category; + return this; + } + + /** + * Get category + * @return category + */ + @javax.annotation.Nullable + public String getCategory() { + return category; + } + + public void setCategory(@javax.annotation.Nullable String category) { + this.category = category; + } + + + public NotificationTypeInfo isBasedOnUserEvent(@javax.annotation.Nullable Boolean isBasedOnUserEvent) { + this.isBasedOnUserEvent = isBasedOnUserEvent; + return this; + } + + /** + * Get isBasedOnUserEvent + * @return isBasedOnUserEvent + */ + @javax.annotation.Nullable + public Boolean getIsBasedOnUserEvent() { + return isBasedOnUserEvent; + } + + public void setIsBasedOnUserEvent(@javax.annotation.Nullable Boolean isBasedOnUserEvent) { + this.isBasedOnUserEvent = isBasedOnUserEvent; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationTypeInfo notificationTypeInfo = (NotificationTypeInfo) o; + return Objects.equals(this.type, notificationTypeInfo.type) && + Objects.equals(this.name, notificationTypeInfo.name) && + Objects.equals(this.enabled, notificationTypeInfo.enabled) && + Objects.equals(this.category, notificationTypeInfo.category) && + Objects.equals(this.isBasedOnUserEvent, notificationTypeInfo.isBasedOnUserEvent); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, name, enabled, category, isBasedOnUserEvent); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationTypeInfo {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" isBasedOnUserEvent: ").append(toIndentedString(isBasedOnUserEvent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Name"); + openapiFields.add("Enabled"); + openapiFields.add("Category"); + openapiFields.add("IsBasedOnUserEvent"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationTypeInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationTypeInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationTypeInfo is not found in the empty JSON string", NotificationTypeInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationTypeInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationTypeInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Category") != null && !jsonObj.get("Category").isJsonNull()) && !jsonObj.get("Category").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Category").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationTypeInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationTypeInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationTypeInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationTypeInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationTypeInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationTypeInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationTypeInfo + * @throws IOException if the JSON string is invalid with respect to NotificationTypeInfo + */ + public static NotificationTypeInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationTypeInfo.class); + } + + /** + * Convert an instance of NotificationTypeInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationsSummaryDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationsSummaryDto.java new file mode 100644 index 0000000000000..3f5f004f61e8a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/NotificationsSummaryDto.java @@ -0,0 +1,247 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.NotificationLevel; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The notification summary DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class NotificationsSummaryDto { + public static final String SERIALIZED_NAME_UNREAD_COUNT = "UnreadCount"; + @SerializedName(SERIALIZED_NAME_UNREAD_COUNT) + @javax.annotation.Nullable + private Integer unreadCount; + + public static final String SERIALIZED_NAME_MAX_UNREAD_NOTIFICATION_LEVEL = "MaxUnreadNotificationLevel"; + @SerializedName(SERIALIZED_NAME_MAX_UNREAD_NOTIFICATION_LEVEL) + @javax.annotation.Nullable + private NotificationLevel maxUnreadNotificationLevel; + + public NotificationsSummaryDto() { + } + + public NotificationsSummaryDto unreadCount(@javax.annotation.Nullable Integer unreadCount) { + this.unreadCount = unreadCount; + return this; + } + + /** + * Gets or sets the number of unread notifications. + * @return unreadCount + */ + @javax.annotation.Nullable + public Integer getUnreadCount() { + return unreadCount; + } + + public void setUnreadCount(@javax.annotation.Nullable Integer unreadCount) { + this.unreadCount = unreadCount; + } + + + public NotificationsSummaryDto maxUnreadNotificationLevel(@javax.annotation.Nullable NotificationLevel maxUnreadNotificationLevel) { + this.maxUnreadNotificationLevel = maxUnreadNotificationLevel; + return this; + } + + /** + * Gets or sets the maximum unread notification level. + * @return maxUnreadNotificationLevel + */ + @javax.annotation.Nullable + public NotificationLevel getMaxUnreadNotificationLevel() { + return maxUnreadNotificationLevel; + } + + public void setMaxUnreadNotificationLevel(@javax.annotation.Nullable NotificationLevel maxUnreadNotificationLevel) { + this.maxUnreadNotificationLevel = maxUnreadNotificationLevel; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotificationsSummaryDto notificationsSummaryDto = (NotificationsSummaryDto) o; + return Objects.equals(this.unreadCount, notificationsSummaryDto.unreadCount) && + Objects.equals(this.maxUnreadNotificationLevel, notificationsSummaryDto.maxUnreadNotificationLevel); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(unreadCount, maxUnreadNotificationLevel); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NotificationsSummaryDto {\n"); + sb.append(" unreadCount: ").append(toIndentedString(unreadCount)).append("\n"); + sb.append(" maxUnreadNotificationLevel: ").append(toIndentedString(maxUnreadNotificationLevel)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UnreadCount"); + openapiFields.add("MaxUnreadNotificationLevel"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NotificationsSummaryDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NotificationsSummaryDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NotificationsSummaryDto is not found in the empty JSON string", NotificationsSummaryDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NotificationsSummaryDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NotificationsSummaryDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `MaxUnreadNotificationLevel` + if (jsonObj.get("MaxUnreadNotificationLevel") != null && !jsonObj.get("MaxUnreadNotificationLevel").isJsonNull()) { + NotificationLevel.validateJsonElement(jsonObj.get("MaxUnreadNotificationLevel")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NotificationsSummaryDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NotificationsSummaryDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NotificationsSummaryDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NotificationsSummaryDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NotificationsSummaryDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NotificationsSummaryDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of NotificationsSummaryDto + * @throws IOException if the JSON string is invalid with respect to NotificationsSummaryDto + */ + public static NotificationsSummaryDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NotificationsSummaryDto.class); + } + + /** + * Convert an instance of NotificationsSummaryDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ObjectGroupUpdate.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ObjectGroupUpdate.java new file mode 100644 index 0000000000000..bed2b5b03523a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ObjectGroupUpdate.java @@ -0,0 +1,278 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.GroupUpdateType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class GroupUpdate. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ObjectGroupUpdate { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private GroupUpdateType type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private Object data = null; + + public ObjectGroupUpdate() { + } + + public ObjectGroupUpdate groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + public ObjectGroupUpdate type(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + return this; + } + + /** + * Gets the update type. + * @return type + */ + @javax.annotation.Nullable + public GroupUpdateType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable GroupUpdateType type) { + this.type = type; + } + + + public ObjectGroupUpdate data(@javax.annotation.Nullable Object data) { + this.data = data; + return this; + } + + /** + * Gets the update data. + * @return data + */ + @javax.annotation.Nullable + public Object getData() { + return data; + } + + public void setData(@javax.annotation.Nullable Object data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObjectGroupUpdate objectGroupUpdate = (ObjectGroupUpdate) o; + return Objects.equals(this.groupId, objectGroupUpdate.groupId) && + Objects.equals(this.type, objectGroupUpdate.type) && + Objects.equals(this.data, objectGroupUpdate.data); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, type, data); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObjectGroupUpdate {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ObjectGroupUpdate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ObjectGroupUpdate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ObjectGroupUpdate is not found in the empty JSON string", ObjectGroupUpdate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ObjectGroupUpdate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ObjectGroupUpdate` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + GroupUpdateType.validateJsonElement(jsonObj.get("Type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ObjectGroupUpdate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ObjectGroupUpdate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ObjectGroupUpdate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ObjectGroupUpdate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ObjectGroupUpdate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ObjectGroupUpdate given an JSON string + * + * @param jsonString JSON string + * @return An instance of ObjectGroupUpdate + * @throws IOException if the JSON string is invalid with respect to ObjectGroupUpdate + */ + public static ObjectGroupUpdate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ObjectGroupUpdate.class); + } + + /** + * Convert an instance of ObjectGroupUpdate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java new file mode 100644 index 0000000000000..34c9435efc4b5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/OpenLiveStreamDto.java @@ -0,0 +1,572 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.client.model.MediaProtocol; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Open live stream dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class OpenLiveStreamDto { + public static final String SERIALIZED_NAME_OPEN_TOKEN = "OpenToken"; + @SerializedName(SERIALIZED_NAME_OPEN_TOKEN) + @javax.annotation.Nullable + private String openToken; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_START_TIME_TICKS = "StartTimeTicks"; + @SerializedName(SERIALIZED_NAME_START_TIME_TICKS) + @javax.annotation.Nullable + private Long startTimeTicks; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer maxAudioChannels; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_PLAY = "EnableDirectPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean enableDirectPlay; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_STREAM = "EnableDirectStream"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean enableDirectStream; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_DIRECT_PLAY_PROTOCOLS = "DirectPlayProtocols"; + @SerializedName(SERIALIZED_NAME_DIRECT_PLAY_PROTOCOLS) + @javax.annotation.Nullable + private List directPlayProtocols = new ArrayList<>(); + + public OpenLiveStreamDto() { + } + + public OpenLiveStreamDto openToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + return this; + } + + /** + * Gets or sets the open token. + * @return openToken + */ + @javax.annotation.Nullable + public String getOpenToken() { + return openToken; + } + + public void setOpenToken(@javax.annotation.Nullable String openToken) { + this.openToken = openToken; + } + + + public OpenLiveStreamDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public OpenLiveStreamDto playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session id. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public OpenLiveStreamDto maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the max streaming bitrate. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public OpenLiveStreamDto startTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + return this; + } + + /** + * Gets or sets the start time in ticks. + * @return startTimeTicks + */ + @javax.annotation.Nullable + public Long getStartTimeTicks() { + return startTimeTicks; + } + + public void setStartTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + } + + + public OpenLiveStreamDto audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the audio stream index. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public OpenLiveStreamDto subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the subtitle stream index. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public OpenLiveStreamDto maxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Gets or sets the max audio channels. + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public Integer getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public OpenLiveStreamDto itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item id. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public OpenLiveStreamDto enableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct play. + * @return enableDirectPlay + */ + @javax.annotation.Nullable + public Boolean getEnableDirectPlay() { + return enableDirectPlay; + } + + public void setEnableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + } + + + public OpenLiveStreamDto enableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + return this; + } + + /** + * Gets or sets a value indicating whether to enale direct stream. + * @return enableDirectStream + */ + @javax.annotation.Nullable + public Boolean getEnableDirectStream() { + return enableDirectStream; + } + + public void setEnableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + } + + + public OpenLiveStreamDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public OpenLiveStreamDto directPlayProtocols(@javax.annotation.Nullable List directPlayProtocols) { + this.directPlayProtocols = directPlayProtocols; + return this; + } + + public OpenLiveStreamDto addDirectPlayProtocolsItem(MediaProtocol directPlayProtocolsItem) { + if (this.directPlayProtocols == null) { + this.directPlayProtocols = new ArrayList<>(); + } + this.directPlayProtocols.add(directPlayProtocolsItem); + return this; + } + + /** + * Gets or sets the device play protocols. + * @return directPlayProtocols + */ + @javax.annotation.Nullable + public List getDirectPlayProtocols() { + return directPlayProtocols; + } + + public void setDirectPlayProtocols(@javax.annotation.Nullable List directPlayProtocols) { + this.directPlayProtocols = directPlayProtocols; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OpenLiveStreamDto openLiveStreamDto = (OpenLiveStreamDto) o; + return Objects.equals(this.openToken, openLiveStreamDto.openToken) && + Objects.equals(this.userId, openLiveStreamDto.userId) && + Objects.equals(this.playSessionId, openLiveStreamDto.playSessionId) && + Objects.equals(this.maxStreamingBitrate, openLiveStreamDto.maxStreamingBitrate) && + Objects.equals(this.startTimeTicks, openLiveStreamDto.startTimeTicks) && + Objects.equals(this.audioStreamIndex, openLiveStreamDto.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, openLiveStreamDto.subtitleStreamIndex) && + Objects.equals(this.maxAudioChannels, openLiveStreamDto.maxAudioChannels) && + Objects.equals(this.itemId, openLiveStreamDto.itemId) && + Objects.equals(this.enableDirectPlay, openLiveStreamDto.enableDirectPlay) && + Objects.equals(this.enableDirectStream, openLiveStreamDto.enableDirectStream) && + Objects.equals(this.deviceProfile, openLiveStreamDto.deviceProfile) && + Objects.equals(this.directPlayProtocols, openLiveStreamDto.directPlayProtocols); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(openToken, userId, playSessionId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, itemId, enableDirectPlay, enableDirectStream, deviceProfile, directPlayProtocols); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OpenLiveStreamDto {\n"); + sb.append(" openToken: ").append(toIndentedString(openToken)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" startTimeTicks: ").append(toIndentedString(startTimeTicks)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" enableDirectPlay: ").append(toIndentedString(enableDirectPlay)).append("\n"); + sb.append(" enableDirectStream: ").append(toIndentedString(enableDirectStream)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" directPlayProtocols: ").append(toIndentedString(directPlayProtocols)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OpenToken"); + openapiFields.add("UserId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("StartTimeTicks"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("ItemId"); + openapiFields.add("EnableDirectPlay"); + openapiFields.add("EnableDirectStream"); + openapiFields.add("DeviceProfile"); + openapiFields.add("DirectPlayProtocols"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OpenLiveStreamDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OpenLiveStreamDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OpenLiveStreamDto is not found in the empty JSON string", OpenLiveStreamDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OpenLiveStreamDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OpenLiveStreamDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("OpenToken") != null && !jsonObj.get("OpenToken").isJsonNull()) && !jsonObj.get("OpenToken").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenToken` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenToken").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("DirectPlayProtocols") != null && !jsonObj.get("DirectPlayProtocols").isJsonNull() && !jsonObj.get("DirectPlayProtocols").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DirectPlayProtocols` to be an array in the JSON string but got `%s`", jsonObj.get("DirectPlayProtocols").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OpenLiveStreamDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OpenLiveStreamDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OpenLiveStreamDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OpenLiveStreamDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OpenLiveStreamDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OpenLiveStreamDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of OpenLiveStreamDto + * @throws IOException if the JSON string is invalid with respect to OpenLiveStreamDto + */ + public static OpenLiveStreamDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OpenLiveStreamDto.class); + } + + /** + * Convert an instance of OpenLiveStreamDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PackageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PackageInfo.java new file mode 100644 index 0000000000000..aa8cae477bfa9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PackageInfo.java @@ -0,0 +1,451 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.VersionInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PackageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PackageInfo { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_OVERVIEW = "overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_OWNER = "owner"; + @SerializedName(SERIALIZED_NAME_OWNER) + @javax.annotation.Nullable + private String owner; + + public static final String SERIALIZED_NAME_CATEGORY = "category"; + @SerializedName(SERIALIZED_NAME_CATEGORY) + @javax.annotation.Nullable + private String category; + + public static final String SERIALIZED_NAME_GUID = "guid"; + @SerializedName(SERIALIZED_NAME_GUID) + @javax.annotation.Nullable + private UUID guid; + + public static final String SERIALIZED_NAME_VERSIONS = "versions"; + @SerializedName(SERIALIZED_NAME_VERSIONS) + @javax.annotation.Nullable + private List versions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_IMAGE_URL = "imageUrl"; + @SerializedName(SERIALIZED_NAME_IMAGE_URL) + @javax.annotation.Nullable + private String imageUrl; + + public PackageInfo() { + } + + public PackageInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PackageInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets a long description of the plugin containing features or helpful explanations. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public PackageInfo overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets a short overview of what the plugin does. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public PackageInfo owner(@javax.annotation.Nullable String owner) { + this.owner = owner; + return this; + } + + /** + * Gets or sets the owner. + * @return owner + */ + @javax.annotation.Nullable + public String getOwner() { + return owner; + } + + public void setOwner(@javax.annotation.Nullable String owner) { + this.owner = owner; + } + + + public PackageInfo category(@javax.annotation.Nullable String category) { + this.category = category; + return this; + } + + /** + * Gets or sets the category. + * @return category + */ + @javax.annotation.Nullable + public String getCategory() { + return category; + } + + public void setCategory(@javax.annotation.Nullable String category) { + this.category = category; + } + + + public PackageInfo guid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + return this; + } + + /** + * Gets or sets the guid of the assembly associated with this plugin. This is used to identify the proper item for automatic updates. + * @return guid + */ + @javax.annotation.Nullable + public UUID getGuid() { + return guid; + } + + public void setGuid(@javax.annotation.Nullable UUID guid) { + this.guid = guid; + } + + + public PackageInfo versions(@javax.annotation.Nullable List versions) { + this.versions = versions; + return this; + } + + public PackageInfo addVersionsItem(VersionInfo versionsItem) { + if (this.versions == null) { + this.versions = new ArrayList<>(); + } + this.versions.add(versionsItem); + return this; + } + + /** + * Gets or sets the versions. + * @return versions + */ + @javax.annotation.Nullable + public List getVersions() { + return versions; + } + + public void setVersions(@javax.annotation.Nullable List versions) { + this.versions = versions; + } + + + public PackageInfo imageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + /** + * Gets or sets the image url for the package. + * @return imageUrl + */ + @javax.annotation.Nullable + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PackageInfo packageInfo = (PackageInfo) o; + return Objects.equals(this.name, packageInfo.name) && + Objects.equals(this.description, packageInfo.description) && + Objects.equals(this.overview, packageInfo.overview) && + Objects.equals(this.owner, packageInfo.owner) && + Objects.equals(this.category, packageInfo.category) && + Objects.equals(this.guid, packageInfo.guid) && + Objects.equals(this.versions, packageInfo.versions) && + Objects.equals(this.imageUrl, packageInfo.imageUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, overview, owner, category, guid, versions, imageUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PackageInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" owner: ").append(toIndentedString(owner)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" guid: ").append(toIndentedString(guid)).append("\n"); + sb.append(" versions: ").append(toIndentedString(versions)).append("\n"); + sb.append(" imageUrl: ").append(toIndentedString(imageUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("overview"); + openapiFields.add("owner"); + openapiFields.add("category"); + openapiFields.add("guid"); + openapiFields.add("versions"); + openapiFields.add("imageUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PackageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PackageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PackageInfo is not found in the empty JSON string", PackageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PackageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PackageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("overview") != null && !jsonObj.get("overview").isJsonNull()) && !jsonObj.get("overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("overview").toString())); + } + if ((jsonObj.get("owner") != null && !jsonObj.get("owner").isJsonNull()) && !jsonObj.get("owner").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `owner` to be a primitive type in the JSON string but got `%s`", jsonObj.get("owner").toString())); + } + if ((jsonObj.get("category") != null && !jsonObj.get("category").isJsonNull()) && !jsonObj.get("category").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("category").toString())); + } + if ((jsonObj.get("guid") != null && !jsonObj.get("guid").isJsonNull()) && !jsonObj.get("guid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `guid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("guid").toString())); + } + if (jsonObj.get("versions") != null && !jsonObj.get("versions").isJsonNull()) { + JsonArray jsonArrayversions = jsonObj.getAsJsonArray("versions"); + if (jsonArrayversions != null) { + // ensure the json data is an array + if (!jsonObj.get("versions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `versions` to be an array in the JSON string but got `%s`", jsonObj.get("versions").toString())); + } + + // validate the optional field `versions` (array) + for (int i = 0; i < jsonArrayversions.size(); i++) { + VersionInfo.validateJsonElement(jsonArrayversions.get(i)); + }; + } + } + if ((jsonObj.get("imageUrl") != null && !jsonObj.get("imageUrl").isJsonNull()) && !jsonObj.get("imageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `imageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("imageUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PackageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PackageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PackageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PackageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PackageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PackageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PackageInfo + * @throws IOException if the JSON string is invalid with respect to PackageInfo + */ + public static PackageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PackageInfo.class); + } + + /** + * Convert an instance of PackageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ParentalRating.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ParentalRating.java new file mode 100644 index 0000000000000..a723e068986e8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ParentalRating.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ParentalRating. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ParentalRating { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private Integer value; + + public ParentalRating() { + } + + public ParentalRating name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ParentalRating value(@javax.annotation.Nullable Integer value) { + this.value = value; + return this; + } + + /** + * Gets or sets the value. + * @return value + */ + @javax.annotation.Nullable + public Integer getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable Integer value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ParentalRating parentalRating = (ParentalRating) o; + return Objects.equals(this.name, parentalRating.name) && + Objects.equals(this.value, parentalRating.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ParentalRating {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ParentalRating + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ParentalRating.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ParentalRating is not found in the empty JSON string", ParentalRating.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ParentalRating.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ParentalRating` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ParentalRating.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ParentalRating' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ParentalRating.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ParentalRating value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ParentalRating read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ParentalRating given an JSON string + * + * @param jsonString JSON string + * @return An instance of ParentalRating + * @throws IOException if the JSON string is invalid with respect to ParentalRating + */ + public static ParentalRating fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ParentalRating.class); + } + + /** + * Convert an instance of ParentalRating to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PathSubstitution.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PathSubstitution.java new file mode 100644 index 0000000000000..2603831aea777 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PathSubstitution.java @@ -0,0 +1,236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Configuration.PathSubstitution. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PathSubstitution { + public static final String SERIALIZED_NAME_FROM = "From"; + @SerializedName(SERIALIZED_NAME_FROM) + @javax.annotation.Nullable + private String from; + + public static final String SERIALIZED_NAME_TO = "To"; + @SerializedName(SERIALIZED_NAME_TO) + @javax.annotation.Nullable + private String to; + + public PathSubstitution() { + } + + public PathSubstitution from(@javax.annotation.Nullable String from) { + this.from = from; + return this; + } + + /** + * Gets or sets the value to substitute. + * @return from + */ + @javax.annotation.Nullable + public String getFrom() { + return from; + } + + public void setFrom(@javax.annotation.Nullable String from) { + this.from = from; + } + + + public PathSubstitution to(@javax.annotation.Nullable String to) { + this.to = to; + return this; + } + + /** + * Gets or sets the value to substitution with. + * @return to + */ + @javax.annotation.Nullable + public String getTo() { + return to; + } + + public void setTo(@javax.annotation.Nullable String to) { + this.to = to; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PathSubstitution pathSubstitution = (PathSubstitution) o; + return Objects.equals(this.from, pathSubstitution.from) && + Objects.equals(this.to, pathSubstitution.to); + } + + @Override + public int hashCode() { + return Objects.hash(from, to); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PathSubstitution {\n"); + sb.append(" from: ").append(toIndentedString(from)).append("\n"); + sb.append(" to: ").append(toIndentedString(to)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("From"); + openapiFields.add("To"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PathSubstitution + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PathSubstitution.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PathSubstitution is not found in the empty JSON string", PathSubstitution.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PathSubstitution.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PathSubstitution` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("From") != null && !jsonObj.get("From").isJsonNull()) && !jsonObj.get("From").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `From` to be a primitive type in the JSON string but got `%s`", jsonObj.get("From").toString())); + } + if ((jsonObj.get("To") != null && !jsonObj.get("To").isJsonNull()) && !jsonObj.get("To").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `To` to be a primitive type in the JSON string but got `%s`", jsonObj.get("To").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PathSubstitution.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PathSubstitution' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PathSubstitution.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PathSubstitution value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PathSubstitution read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PathSubstitution given an JSON string + * + * @param jsonString JSON string + * @return An instance of PathSubstitution + * @throws IOException if the JSON string is invalid with respect to PathSubstitution + */ + public static PathSubstitution fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PathSubstitution.class); + } + + /** + * Convert an instance of PathSubstitution to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfo.java new file mode 100644 index 0000000000000..d0d4006e63b4a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PersonLookupInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PersonLookupInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public PersonLookupInfo() { + } + + public PersonLookupInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PersonLookupInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public PersonLookupInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public PersonLookupInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public PersonLookupInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public PersonLookupInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public PersonLookupInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public PersonLookupInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public PersonLookupInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public PersonLookupInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public PersonLookupInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public PersonLookupInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PersonLookupInfo personLookupInfo = (PersonLookupInfo) o; + return Objects.equals(this.name, personLookupInfo.name) && + Objects.equals(this.originalTitle, personLookupInfo.originalTitle) && + Objects.equals(this.path, personLookupInfo.path) && + Objects.equals(this.metadataLanguage, personLookupInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, personLookupInfo.metadataCountryCode) && + Objects.equals(this.providerIds, personLookupInfo.providerIds) && + Objects.equals(this.year, personLookupInfo.year) && + Objects.equals(this.indexNumber, personLookupInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, personLookupInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, personLookupInfo.premiereDate) && + Objects.equals(this.isAutomated, personLookupInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PersonLookupInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PersonLookupInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PersonLookupInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PersonLookupInfo is not found in the empty JSON string", PersonLookupInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PersonLookupInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PersonLookupInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PersonLookupInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PersonLookupInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PersonLookupInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PersonLookupInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PersonLookupInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PersonLookupInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PersonLookupInfo + * @throws IOException if the JSON string is invalid with respect to PersonLookupInfo + */ + public static PersonLookupInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PersonLookupInfo.class); + } + + /** + * Convert an instance of PersonLookupInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..7de7aca985442 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PersonLookupInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PersonLookupInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PersonLookupInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PersonLookupInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private PersonLookupInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public PersonLookupInfoRemoteSearchQuery() { + } + + public PersonLookupInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable PersonLookupInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public PersonLookupInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable PersonLookupInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public PersonLookupInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PersonLookupInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public PersonLookupInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PersonLookupInfoRemoteSearchQuery personLookupInfoRemoteSearchQuery = (PersonLookupInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, personLookupInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, personLookupInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, personLookupInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, personLookupInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PersonLookupInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PersonLookupInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PersonLookupInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PersonLookupInfoRemoteSearchQuery is not found in the empty JSON string", PersonLookupInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PersonLookupInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PersonLookupInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + PersonLookupInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PersonLookupInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PersonLookupInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PersonLookupInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PersonLookupInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PersonLookupInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PersonLookupInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of PersonLookupInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to PersonLookupInfoRemoteSearchQuery + */ + public static PersonLookupInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PersonLookupInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of PersonLookupInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PinRedeemResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PinRedeemResult.java new file mode 100644 index 0000000000000..bad32c2b2259e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PinRedeemResult.java @@ -0,0 +1,244 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PinRedeemResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PinRedeemResult { + public static final String SERIALIZED_NAME_SUCCESS = "Success"; + @SerializedName(SERIALIZED_NAME_SUCCESS) + @javax.annotation.Nullable + private Boolean success; + + public static final String SERIALIZED_NAME_USERS_RESET = "UsersReset"; + @SerializedName(SERIALIZED_NAME_USERS_RESET) + @javax.annotation.Nullable + private List usersReset = new ArrayList<>(); + + public PinRedeemResult() { + } + + public PinRedeemResult success(@javax.annotation.Nullable Boolean success) { + this.success = success; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. + * @return success + */ + @javax.annotation.Nullable + public Boolean getSuccess() { + return success; + } + + public void setSuccess(@javax.annotation.Nullable Boolean success) { + this.success = success; + } + + + public PinRedeemResult usersReset(@javax.annotation.Nullable List usersReset) { + this.usersReset = usersReset; + return this; + } + + public PinRedeemResult addUsersResetItem(String usersResetItem) { + if (this.usersReset == null) { + this.usersReset = new ArrayList<>(); + } + this.usersReset.add(usersResetItem); + return this; + } + + /** + * Gets or sets the users reset. + * @return usersReset + */ + @javax.annotation.Nullable + public List getUsersReset() { + return usersReset; + } + + public void setUsersReset(@javax.annotation.Nullable List usersReset) { + this.usersReset = usersReset; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PinRedeemResult pinRedeemResult = (PinRedeemResult) o; + return Objects.equals(this.success, pinRedeemResult.success) && + Objects.equals(this.usersReset, pinRedeemResult.usersReset); + } + + @Override + public int hashCode() { + return Objects.hash(success, usersReset); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PinRedeemResult {\n"); + sb.append(" success: ").append(toIndentedString(success)).append("\n"); + sb.append(" usersReset: ").append(toIndentedString(usersReset)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Success"); + openapiFields.add("UsersReset"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PinRedeemResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PinRedeemResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PinRedeemResult is not found in the empty JSON string", PinRedeemResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PinRedeemResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PinRedeemResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("UsersReset") != null && !jsonObj.get("UsersReset").isJsonNull() && !jsonObj.get("UsersReset").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `UsersReset` to be an array in the JSON string but got `%s`", jsonObj.get("UsersReset").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PinRedeemResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PinRedeemResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PinRedeemResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PinRedeemResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PinRedeemResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PinRedeemResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of PinRedeemResult + * @throws IOException if the JSON string is invalid with respect to PinRedeemResult + */ + public static PinRedeemResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PinRedeemResult.class); + } + + /** + * Convert an instance of PinRedeemResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PingRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PingRequestDto.java new file mode 100644 index 0000000000000..3c5e4b63c12aa --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PingRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PingRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PingRequestDto { + public static final String SERIALIZED_NAME_PING = "Ping"; + @SerializedName(SERIALIZED_NAME_PING) + @javax.annotation.Nullable + private Long ping; + + public PingRequestDto() { + } + + public PingRequestDto ping(@javax.annotation.Nullable Long ping) { + this.ping = ping; + return this; + } + + /** + * Gets or sets the ping time. + * @return ping + */ + @javax.annotation.Nullable + public Long getPing() { + return ping; + } + + public void setPing(@javax.annotation.Nullable Long ping) { + this.ping = ping; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PingRequestDto pingRequestDto = (PingRequestDto) o; + return Objects.equals(this.ping, pingRequestDto.ping); + } + + @Override + public int hashCode() { + return Objects.hash(ping); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PingRequestDto {\n"); + sb.append(" ping: ").append(toIndentedString(ping)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Ping"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PingRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PingRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PingRequestDto is not found in the empty JSON string", PingRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PingRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PingRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PingRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PingRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PingRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PingRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PingRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PingRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PingRequestDto + * @throws IOException if the JSON string is invalid with respect to PingRequestDto + */ + public static PingRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PingRequestDto.class); + } + + /** + * Convert an instance of PingRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayAccess.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayAccess.java new file mode 100644 index 0000000000000..9014df678b3ee --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayAccess.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlayAccess + */ +@JsonAdapter(PlayAccess.Adapter.class) +public enum PlayAccess { + + FULL("Full"), + + NONE("None"); + + private String value; + + PlayAccess(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayAccess fromValue(String value) { + for (PlayAccess b : PlayAccess.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayAccess enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayAccess read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayAccess.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayAccess.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayCommand.java new file mode 100644 index 0000000000000..eb8b4d7ea5883 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayCommand.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlayCommand. + */ +@JsonAdapter(PlayCommand.Adapter.class) +public enum PlayCommand { + + PLAY_NOW("PlayNow"), + + PLAY_NEXT("PlayNext"), + + PLAY_LAST("PlayLast"), + + PLAY_INSTANT_MIX("PlayInstantMix"), + + PLAY_SHUFFLE("PlayShuffle"); + + private String value; + + PlayCommand(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayCommand fromValue(String value) { + for (PlayCommand b : PlayCommand.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayCommand enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayCommand read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayCommand.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayCommand.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayMethod.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayMethod.java new file mode 100644 index 0000000000000..3859658f950e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayMethod.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlayMethod + */ +@JsonAdapter(PlayMethod.Adapter.class) +public enum PlayMethod { + + TRANSCODE("Transcode"), + + DIRECT_STREAM("DirectStream"), + + DIRECT_PLAY("DirectPlay"); + + private String value; + + PlayMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlayMethod fromValue(String value) { + for (PlayMethod b : PlayMethod.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlayMethod enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlayMethod read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlayMethod.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlayMethod.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequest.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequest.java new file mode 100644 index 0000000000000..96a25d9cb3229 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequest.java @@ -0,0 +1,430 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.PlayCommand; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlayRequest. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayRequest { + public static final String SERIALIZED_NAME_ITEM_IDS = "ItemIds"; + @SerializedName(SERIALIZED_NAME_ITEM_IDS) + @javax.annotation.Nullable + private List itemIds; + + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public static final String SERIALIZED_NAME_PLAY_COMMAND = "PlayCommand"; + @SerializedName(SERIALIZED_NAME_PLAY_COMMAND) + @javax.annotation.Nullable + private PlayCommand playCommand; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private UUID controllingUserId; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public PlayRequest() { + } + + public PlayRequest itemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + return this; + } + + public PlayRequest addItemIdsItem(UUID itemIdsItem) { + if (this.itemIds == null) { + this.itemIds = new ArrayList<>(); + } + this.itemIds.add(itemIdsItem); + return this; + } + + /** + * Gets or sets the item ids. + * @return itemIds + */ + @javax.annotation.Nullable + public List getItemIds() { + return itemIds; + } + + public void setItemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + } + + + public PlayRequest startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks that the first item should be played at. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + public PlayRequest playCommand(@javax.annotation.Nullable PlayCommand playCommand) { + this.playCommand = playCommand; + return this; + } + + /** + * Gets or sets the play command. + * @return playCommand + */ + @javax.annotation.Nullable + public PlayCommand getPlayCommand() { + return playCommand; + } + + public void setPlayCommand(@javax.annotation.Nullable PlayCommand playCommand) { + this.playCommand = playCommand; + } + + + public PlayRequest controllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Gets or sets the controlling user identifier. + * @return controllingUserId + */ + @javax.annotation.Nullable + public UUID getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable UUID controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + public PlayRequest subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Get subtitleStreamIndex + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlayRequest audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Get audioStreamIndex + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlayRequest mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Get mediaSourceId + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlayRequest startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Get startIndex + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayRequest playRequest = (PlayRequest) o; + return Objects.equals(this.itemIds, playRequest.itemIds) && + Objects.equals(this.startPositionTicks, playRequest.startPositionTicks) && + Objects.equals(this.playCommand, playRequest.playCommand) && + Objects.equals(this.controllingUserId, playRequest.controllingUserId) && + Objects.equals(this.subtitleStreamIndex, playRequest.subtitleStreamIndex) && + Objects.equals(this.audioStreamIndex, playRequest.audioStreamIndex) && + Objects.equals(this.mediaSourceId, playRequest.mediaSourceId) && + Objects.equals(this.startIndex, playRequest.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemIds, startPositionTicks, playCommand, controllingUserId, subtitleStreamIndex, audioStreamIndex, mediaSourceId, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayRequest {\n"); + sb.append(" itemIds: ").append(toIndentedString(itemIds)).append("\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append(" playCommand: ").append(toIndentedString(playCommand)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemIds"); + openapiFields.add("StartPositionTicks"); + openapiFields.add("PlayCommand"); + openapiFields.add("ControllingUserId"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("MediaSourceId"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayRequest is not found in the empty JSON string", PlayRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ItemIds") != null && !jsonObj.get("ItemIds").isJsonNull() && !jsonObj.get("ItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("ItemIds").toString())); + } + // validate the optional field `PlayCommand` + if (jsonObj.get("PlayCommand") != null && !jsonObj.get("PlayCommand").isJsonNull()) { + PlayCommand.validateJsonElement(jsonObj.get("PlayCommand")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayRequest + * @throws IOException if the JSON string is invalid with respect to PlayRequest + */ + public static PlayRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayRequest.class); + } + + /** + * Convert an instance of PlayRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequestDto.java new file mode 100644 index 0000000000000..f45dd3e309298 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayRequestDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlayRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayRequestDto { + public static final String SERIALIZED_NAME_PLAYING_QUEUE = "PlayingQueue"; + @SerializedName(SERIALIZED_NAME_PLAYING_QUEUE) + @javax.annotation.Nullable + private List playingQueue = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLAYING_ITEM_POSITION = "PlayingItemPosition"; + @SerializedName(SERIALIZED_NAME_PLAYING_ITEM_POSITION) + @javax.annotation.Nullable + private Integer playingItemPosition; + + public static final String SERIALIZED_NAME_START_POSITION_TICKS = "StartPositionTicks"; + @SerializedName(SERIALIZED_NAME_START_POSITION_TICKS) + @javax.annotation.Nullable + private Long startPositionTicks; + + public PlayRequestDto() { + } + + public PlayRequestDto playingQueue(@javax.annotation.Nullable List playingQueue) { + this.playingQueue = playingQueue; + return this; + } + + public PlayRequestDto addPlayingQueueItem(UUID playingQueueItem) { + if (this.playingQueue == null) { + this.playingQueue = new ArrayList<>(); + } + this.playingQueue.add(playingQueueItem); + return this; + } + + /** + * Gets or sets the playing queue. + * @return playingQueue + */ + @javax.annotation.Nullable + public List getPlayingQueue() { + return playingQueue; + } + + public void setPlayingQueue(@javax.annotation.Nullable List playingQueue) { + this.playingQueue = playingQueue; + } + + + public PlayRequestDto playingItemPosition(@javax.annotation.Nullable Integer playingItemPosition) { + this.playingItemPosition = playingItemPosition; + return this; + } + + /** + * Gets or sets the position of the playing item in the queue. + * @return playingItemPosition + */ + @javax.annotation.Nullable + public Integer getPlayingItemPosition() { + return playingItemPosition; + } + + public void setPlayingItemPosition(@javax.annotation.Nullable Integer playingItemPosition) { + this.playingItemPosition = playingItemPosition; + } + + + public PlayRequestDto startPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + return this; + } + + /** + * Gets or sets the start position ticks. + * @return startPositionTicks + */ + @javax.annotation.Nullable + public Long getStartPositionTicks() { + return startPositionTicks; + } + + public void setStartPositionTicks(@javax.annotation.Nullable Long startPositionTicks) { + this.startPositionTicks = startPositionTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayRequestDto playRequestDto = (PlayRequestDto) o; + return Objects.equals(this.playingQueue, playRequestDto.playingQueue) && + Objects.equals(this.playingItemPosition, playRequestDto.playingItemPosition) && + Objects.equals(this.startPositionTicks, playRequestDto.startPositionTicks); + } + + @Override + public int hashCode() { + return Objects.hash(playingQueue, playingItemPosition, startPositionTicks); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayRequestDto {\n"); + sb.append(" playingQueue: ").append(toIndentedString(playingQueue)).append("\n"); + sb.append(" playingItemPosition: ").append(toIndentedString(playingItemPosition)).append("\n"); + sb.append(" startPositionTicks: ").append(toIndentedString(startPositionTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayingQueue"); + openapiFields.add("PlayingItemPosition"); + openapiFields.add("StartPositionTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayRequestDto is not found in the empty JSON string", PlayRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlayingQueue") != null && !jsonObj.get("PlayingQueue").isJsonNull() && !jsonObj.get("PlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("PlayingQueue").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayRequestDto + * @throws IOException if the JSON string is invalid with respect to PlayRequestDto + */ + public static PlayRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayRequestDto.class); + } + + /** + * Convert an instance of PlayRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java new file mode 100644 index 0000000000000..110e8feb0f2e4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackErrorCode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets PlaybackErrorCode + */ +@JsonAdapter(PlaybackErrorCode.Adapter.class) +public enum PlaybackErrorCode { + + NOT_ALLOWED("NotAllowed"), + + NO_COMPATIBLE_STREAM("NoCompatibleStream"), + + RATE_LIMIT_EXCEEDED("RateLimitExceeded"); + + private String value; + + PlaybackErrorCode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaybackErrorCode fromValue(String value) { + for (PlaybackErrorCode b : PlaybackErrorCode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaybackErrorCode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaybackErrorCode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaybackErrorCode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaybackErrorCode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java new file mode 100644 index 0000000000000..5b6ddd4e96cd9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoDto.java @@ -0,0 +1,608 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.DeviceProfile; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Plabyback info dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackInfoDto { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_MAX_STREAMING_BITRATE = "MaxStreamingBitrate"; + @SerializedName(SERIALIZED_NAME_MAX_STREAMING_BITRATE) + @javax.annotation.Nullable + private Integer maxStreamingBitrate; + + public static final String SERIALIZED_NAME_START_TIME_TICKS = "StartTimeTicks"; + @SerializedName(SERIALIZED_NAME_START_TIME_TICKS) + @javax.annotation.Nullable + private Long startTimeTicks; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer maxAudioChannels; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_DEVICE_PROFILE = "DeviceProfile"; + @SerializedName(SERIALIZED_NAME_DEVICE_PROFILE) + @javax.annotation.Nullable + private DeviceProfile deviceProfile; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_PLAY = "EnableDirectPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_PLAY) + @javax.annotation.Nullable + private Boolean enableDirectPlay; + + public static final String SERIALIZED_NAME_ENABLE_DIRECT_STREAM = "EnableDirectStream"; + @SerializedName(SERIALIZED_NAME_ENABLE_DIRECT_STREAM) + @javax.annotation.Nullable + private Boolean enableDirectStream; + + public static final String SERIALIZED_NAME_ENABLE_TRANSCODING = "EnableTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableTranscoding; + + public static final String SERIALIZED_NAME_ALLOW_VIDEO_STREAM_COPY = "AllowVideoStreamCopy"; + @SerializedName(SERIALIZED_NAME_ALLOW_VIDEO_STREAM_COPY) + @javax.annotation.Nullable + private Boolean allowVideoStreamCopy; + + public static final String SERIALIZED_NAME_ALLOW_AUDIO_STREAM_COPY = "AllowAudioStreamCopy"; + @SerializedName(SERIALIZED_NAME_ALLOW_AUDIO_STREAM_COPY) + @javax.annotation.Nullable + private Boolean allowAudioStreamCopy; + + public static final String SERIALIZED_NAME_AUTO_OPEN_LIVE_STREAM = "AutoOpenLiveStream"; + @SerializedName(SERIALIZED_NAME_AUTO_OPEN_LIVE_STREAM) + @javax.annotation.Nullable + private Boolean autoOpenLiveStream; + + public PlaybackInfoDto() { + } + + public PlaybackInfoDto userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the playback userId. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public PlaybackInfoDto maxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + return this; + } + + /** + * Gets or sets the max streaming bitrate. + * @return maxStreamingBitrate + */ + @javax.annotation.Nullable + public Integer getMaxStreamingBitrate() { + return maxStreamingBitrate; + } + + public void setMaxStreamingBitrate(@javax.annotation.Nullable Integer maxStreamingBitrate) { + this.maxStreamingBitrate = maxStreamingBitrate; + } + + + public PlaybackInfoDto startTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + return this; + } + + /** + * Gets or sets the start time in ticks. + * @return startTimeTicks + */ + @javax.annotation.Nullable + public Long getStartTimeTicks() { + return startTimeTicks; + } + + public void setStartTimeTicks(@javax.annotation.Nullable Long startTimeTicks) { + this.startTimeTicks = startTimeTicks; + } + + + public PlaybackInfoDto audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the audio stream index. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackInfoDto subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the subtitle stream index. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackInfoDto maxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Gets or sets the max audio channels. + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public Integer getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable Integer maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public PlaybackInfoDto mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media source id. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackInfoDto liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream id. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackInfoDto deviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + return this; + } + + /** + * A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play. <br /> Specifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels) the device is able to direct play (without transcoding or remuxing), as well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't. + * @return deviceProfile + */ + @javax.annotation.Nullable + public DeviceProfile getDeviceProfile() { + return deviceProfile; + } + + public void setDeviceProfile(@javax.annotation.Nullable DeviceProfile deviceProfile) { + this.deviceProfile = deviceProfile; + } + + + public PlaybackInfoDto enableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct play. + * @return enableDirectPlay + */ + @javax.annotation.Nullable + public Boolean getEnableDirectPlay() { + return enableDirectPlay; + } + + public void setEnableDirectPlay(@javax.annotation.Nullable Boolean enableDirectPlay) { + this.enableDirectPlay = enableDirectPlay; + } + + + public PlaybackInfoDto enableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + return this; + } + + /** + * Gets or sets a value indicating whether to enable direct stream. + * @return enableDirectStream + */ + @javax.annotation.Nullable + public Boolean getEnableDirectStream() { + return enableDirectStream; + } + + public void setEnableDirectStream(@javax.annotation.Nullable Boolean enableDirectStream) { + this.enableDirectStream = enableDirectStream; + } + + + public PlaybackInfoDto enableTranscoding(@javax.annotation.Nullable Boolean enableTranscoding) { + this.enableTranscoding = enableTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether to enable transcoding. + * @return enableTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableTranscoding() { + return enableTranscoding; + } + + public void setEnableTranscoding(@javax.annotation.Nullable Boolean enableTranscoding) { + this.enableTranscoding = enableTranscoding; + } + + + public PlaybackInfoDto allowVideoStreamCopy(@javax.annotation.Nullable Boolean allowVideoStreamCopy) { + this.allowVideoStreamCopy = allowVideoStreamCopy; + return this; + } + + /** + * Gets or sets a value indicating whether to enable video stream copy. + * @return allowVideoStreamCopy + */ + @javax.annotation.Nullable + public Boolean getAllowVideoStreamCopy() { + return allowVideoStreamCopy; + } + + public void setAllowVideoStreamCopy(@javax.annotation.Nullable Boolean allowVideoStreamCopy) { + this.allowVideoStreamCopy = allowVideoStreamCopy; + } + + + public PlaybackInfoDto allowAudioStreamCopy(@javax.annotation.Nullable Boolean allowAudioStreamCopy) { + this.allowAudioStreamCopy = allowAudioStreamCopy; + return this; + } + + /** + * Gets or sets a value indicating whether to allow audio stream copy. + * @return allowAudioStreamCopy + */ + @javax.annotation.Nullable + public Boolean getAllowAudioStreamCopy() { + return allowAudioStreamCopy; + } + + public void setAllowAudioStreamCopy(@javax.annotation.Nullable Boolean allowAudioStreamCopy) { + this.allowAudioStreamCopy = allowAudioStreamCopy; + } + + + public PlaybackInfoDto autoOpenLiveStream(@javax.annotation.Nullable Boolean autoOpenLiveStream) { + this.autoOpenLiveStream = autoOpenLiveStream; + return this; + } + + /** + * Gets or sets a value indicating whether to auto open the live stream. + * @return autoOpenLiveStream + */ + @javax.annotation.Nullable + public Boolean getAutoOpenLiveStream() { + return autoOpenLiveStream; + } + + public void setAutoOpenLiveStream(@javax.annotation.Nullable Boolean autoOpenLiveStream) { + this.autoOpenLiveStream = autoOpenLiveStream; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackInfoDto playbackInfoDto = (PlaybackInfoDto) o; + return Objects.equals(this.userId, playbackInfoDto.userId) && + Objects.equals(this.maxStreamingBitrate, playbackInfoDto.maxStreamingBitrate) && + Objects.equals(this.startTimeTicks, playbackInfoDto.startTimeTicks) && + Objects.equals(this.audioStreamIndex, playbackInfoDto.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackInfoDto.subtitleStreamIndex) && + Objects.equals(this.maxAudioChannels, playbackInfoDto.maxAudioChannels) && + Objects.equals(this.mediaSourceId, playbackInfoDto.mediaSourceId) && + Objects.equals(this.liveStreamId, playbackInfoDto.liveStreamId) && + Objects.equals(this.deviceProfile, playbackInfoDto.deviceProfile) && + Objects.equals(this.enableDirectPlay, playbackInfoDto.enableDirectPlay) && + Objects.equals(this.enableDirectStream, playbackInfoDto.enableDirectStream) && + Objects.equals(this.enableTranscoding, playbackInfoDto.enableTranscoding) && + Objects.equals(this.allowVideoStreamCopy, playbackInfoDto.allowVideoStreamCopy) && + Objects.equals(this.allowAudioStreamCopy, playbackInfoDto.allowAudioStreamCopy) && + Objects.equals(this.autoOpenLiveStream, playbackInfoDto.autoOpenLiveStream); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, maxStreamingBitrate, startTimeTicks, audioStreamIndex, subtitleStreamIndex, maxAudioChannels, mediaSourceId, liveStreamId, deviceProfile, enableDirectPlay, enableDirectStream, enableTranscoding, allowVideoStreamCopy, allowAudioStreamCopy, autoOpenLiveStream); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackInfoDto {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" maxStreamingBitrate: ").append(toIndentedString(maxStreamingBitrate)).append("\n"); + sb.append(" startTimeTicks: ").append(toIndentedString(startTimeTicks)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" deviceProfile: ").append(toIndentedString(deviceProfile)).append("\n"); + sb.append(" enableDirectPlay: ").append(toIndentedString(enableDirectPlay)).append("\n"); + sb.append(" enableDirectStream: ").append(toIndentedString(enableDirectStream)).append("\n"); + sb.append(" enableTranscoding: ").append(toIndentedString(enableTranscoding)).append("\n"); + sb.append(" allowVideoStreamCopy: ").append(toIndentedString(allowVideoStreamCopy)).append("\n"); + sb.append(" allowAudioStreamCopy: ").append(toIndentedString(allowAudioStreamCopy)).append("\n"); + sb.append(" autoOpenLiveStream: ").append(toIndentedString(autoOpenLiveStream)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("MaxStreamingBitrate"); + openapiFields.add("StartTimeTicks"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("MediaSourceId"); + openapiFields.add("LiveStreamId"); + openapiFields.add("DeviceProfile"); + openapiFields.add("EnableDirectPlay"); + openapiFields.add("EnableDirectStream"); + openapiFields.add("EnableTranscoding"); + openapiFields.add("AllowVideoStreamCopy"); + openapiFields.add("AllowAudioStreamCopy"); + openapiFields.add("AutoOpenLiveStream"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackInfoDto is not found in the empty JSON string", PlaybackInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + // validate the optional field `DeviceProfile` + if (jsonObj.get("DeviceProfile") != null && !jsonObj.get("DeviceProfile").isJsonNull()) { + DeviceProfile.validateJsonElement(jsonObj.get("DeviceProfile")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackInfoDto + * @throws IOException if the JSON string is invalid with respect to PlaybackInfoDto + */ + public static PlaybackInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackInfoDto.class); + } + + /** + * Convert an instance of PlaybackInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java new file mode 100644 index 0000000000000..ac51b43dd97bc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackInfoResponse.java @@ -0,0 +1,302 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.MediaSourceInfo; +import org.openapitools.client.model.PlaybackErrorCode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackInfoResponse. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackInfoResponse { + public static final String SERIALIZED_NAME_MEDIA_SOURCES = "MediaSources"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCES) + @javax.annotation.Nullable + private List mediaSources = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_ERROR_CODE = "ErrorCode"; + @SerializedName(SERIALIZED_NAME_ERROR_CODE) + @javax.annotation.Nullable + private PlaybackErrorCode errorCode; + + public PlaybackInfoResponse() { + } + + public PlaybackInfoResponse mediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + return this; + } + + public PlaybackInfoResponse addMediaSourcesItem(MediaSourceInfo mediaSourcesItem) { + if (this.mediaSources == null) { + this.mediaSources = new ArrayList<>(); + } + this.mediaSources.add(mediaSourcesItem); + return this; + } + + /** + * Gets or sets the media sources. + * @return mediaSources + */ + @javax.annotation.Nullable + public List getMediaSources() { + return mediaSources; + } + + public void setMediaSources(@javax.annotation.Nullable List mediaSources) { + this.mediaSources = mediaSources; + } + + + public PlaybackInfoResponse playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackInfoResponse errorCode(@javax.annotation.Nullable PlaybackErrorCode errorCode) { + this.errorCode = errorCode; + return this; + } + + /** + * Gets or sets the error code. + * @return errorCode + */ + @javax.annotation.Nullable + public PlaybackErrorCode getErrorCode() { + return errorCode; + } + + public void setErrorCode(@javax.annotation.Nullable PlaybackErrorCode errorCode) { + this.errorCode = errorCode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackInfoResponse playbackInfoResponse = (PlaybackInfoResponse) o; + return Objects.equals(this.mediaSources, playbackInfoResponse.mediaSources) && + Objects.equals(this.playSessionId, playbackInfoResponse.playSessionId) && + Objects.equals(this.errorCode, playbackInfoResponse.errorCode); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(mediaSources, playSessionId, errorCode); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackInfoResponse {\n"); + sb.append(" mediaSources: ").append(toIndentedString(mediaSources)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MediaSources"); + openapiFields.add("PlaySessionId"); + openapiFields.add("ErrorCode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackInfoResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackInfoResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackInfoResponse is not found in the empty JSON string", PlaybackInfoResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackInfoResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackInfoResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("MediaSources") != null && !jsonObj.get("MediaSources").isJsonNull()) { + JsonArray jsonArraymediaSources = jsonObj.getAsJsonArray("MediaSources"); + if (jsonArraymediaSources != null) { + // ensure the json data is an array + if (!jsonObj.get("MediaSources").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSources` to be an array in the JSON string but got `%s`", jsonObj.get("MediaSources").toString())); + } + + // validate the optional field `MediaSources` (array) + for (int i = 0; i < jsonArraymediaSources.size(); i++) { + MediaSourceInfo.validateJsonElement(jsonArraymediaSources.get(i)); + }; + } + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `ErrorCode` + if (jsonObj.get("ErrorCode") != null && !jsonObj.get("ErrorCode").isJsonNull()) { + PlaybackErrorCode.validateJsonElement(jsonObj.get("ErrorCode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackInfoResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackInfoResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackInfoResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackInfoResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackInfoResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackInfoResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackInfoResponse + * @throws IOException if the JSON string is invalid with respect to PlaybackInfoResponse + */ + public static PlaybackInfoResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackInfoResponse.class); + } + + /** + * Convert an instance of PlaybackInfoResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java new file mode 100644 index 0000000000000..b521c0af61548 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackProgressInfo.java @@ -0,0 +1,790 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackProgressInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackProgressInfo { + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS = "PlaybackStartTimeTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS) + @javax.annotation.Nullable + private Long playbackStartTimeTicks; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_BRIGHTNESS = "Brightness"; + @SerializedName(SERIALIZED_NAME_BRIGHTNESS) + @javax.annotation.Nullable + private Integer brightness; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public PlaybackProgressInfo() { + } + + public PlaybackProgressInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlaybackProgressInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackProgressInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackProgressInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackProgressInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackProgressInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackProgressInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackProgressInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlaybackProgressInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlaybackProgressInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackProgressInfo playbackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + return this; + } + + /** + * Get playbackStartTimeTicks + * @return playbackStartTimeTicks + */ + @javax.annotation.Nullable + public Long getPlaybackStartTimeTicks() { + return playbackStartTimeTicks; + } + + public void setPlaybackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + } + + + public PlaybackProgressInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlaybackProgressInfo brightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + return this; + } + + /** + * Get brightness + * @return brightness + */ + @javax.annotation.Nullable + public Integer getBrightness() { + return brightness; + } + + public void setBrightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + } + + + public PlaybackProgressInfo aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Get aspectRatio + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public PlaybackProgressInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlaybackProgressInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackProgressInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackProgressInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlaybackProgressInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackProgressInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public PlaybackProgressInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackProgressInfo playbackProgressInfo = (PlaybackProgressInfo) o; + return Objects.equals(this.canSeek, playbackProgressInfo.canSeek) && + Objects.equals(this.item, playbackProgressInfo.item) && + Objects.equals(this.itemId, playbackProgressInfo.itemId) && + Objects.equals(this.sessionId, playbackProgressInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackProgressInfo.mediaSourceId) && + Objects.equals(this.audioStreamIndex, playbackProgressInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackProgressInfo.subtitleStreamIndex) && + Objects.equals(this.isPaused, playbackProgressInfo.isPaused) && + Objects.equals(this.isMuted, playbackProgressInfo.isMuted) && + Objects.equals(this.positionTicks, playbackProgressInfo.positionTicks) && + Objects.equals(this.playbackStartTimeTicks, playbackProgressInfo.playbackStartTimeTicks) && + Objects.equals(this.volumeLevel, playbackProgressInfo.volumeLevel) && + Objects.equals(this.brightness, playbackProgressInfo.brightness) && + Objects.equals(this.aspectRatio, playbackProgressInfo.aspectRatio) && + Objects.equals(this.playMethod, playbackProgressInfo.playMethod) && + Objects.equals(this.liveStreamId, playbackProgressInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackProgressInfo.playSessionId) && + Objects.equals(this.repeatMode, playbackProgressInfo.repeatMode) && + Objects.equals(this.nowPlayingQueue, playbackProgressInfo.nowPlayingQueue) && + Objects.equals(this.playlistItemId, playbackProgressInfo.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(canSeek, item, itemId, sessionId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, isPaused, isMuted, positionTicks, playbackStartTimeTicks, volumeLevel, brightness, aspectRatio, playMethod, liveStreamId, playSessionId, repeatMode, nowPlayingQueue, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackProgressInfo {\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" playbackStartTimeTicks: ").append(toIndentedString(playbackStartTimeTicks)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" brightness: ").append(toIndentedString(brightness)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CanSeek"); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("PositionTicks"); + openapiFields.add("PlaybackStartTimeTicks"); + openapiFields.add("VolumeLevel"); + openapiFields.add("Brightness"); + openapiFields.add("AspectRatio"); + openapiFields.add("PlayMethod"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("RepeatMode"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackProgressInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackProgressInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackProgressInfo is not found in the empty JSON string", PlaybackProgressInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackProgressInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackProgressInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackProgressInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackProgressInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackProgressInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackProgressInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackProgressInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackProgressInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackProgressInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackProgressInfo + */ + public static PlaybackProgressInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackProgressInfo.class); + } + + /** + * Convert an instance of PlaybackProgressInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java new file mode 100644 index 0000000000000..ece23505a06d6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStartInfo.java @@ -0,0 +1,790 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackStartInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackStartInfo { + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS = "PlaybackStartTimeTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_START_TIME_TICKS) + @javax.annotation.Nullable + private Long playbackStartTimeTicks; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_BRIGHTNESS = "Brightness"; + @SerializedName(SERIALIZED_NAME_BRIGHTNESS) + @javax.annotation.Nullable + private Integer brightness; + + public static final String SERIALIZED_NAME_ASPECT_RATIO = "AspectRatio"; + @SerializedName(SERIALIZED_NAME_ASPECT_RATIO) + @javax.annotation.Nullable + private String aspectRatio; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public PlaybackStartInfo() { + } + + public PlaybackStartInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlaybackStartInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackStartInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackStartInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackStartInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackStartInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlaybackStartInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlaybackStartInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlaybackStartInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlaybackStartInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackStartInfo playbackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + return this; + } + + /** + * Get playbackStartTimeTicks + * @return playbackStartTimeTicks + */ + @javax.annotation.Nullable + public Long getPlaybackStartTimeTicks() { + return playbackStartTimeTicks; + } + + public void setPlaybackStartTimeTicks(@javax.annotation.Nullable Long playbackStartTimeTicks) { + this.playbackStartTimeTicks = playbackStartTimeTicks; + } + + + public PlaybackStartInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlaybackStartInfo brightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + return this; + } + + /** + * Get brightness + * @return brightness + */ + @javax.annotation.Nullable + public Integer getBrightness() { + return brightness; + } + + public void setBrightness(@javax.annotation.Nullable Integer brightness) { + this.brightness = brightness; + } + + + public PlaybackStartInfo aspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + /** + * Get aspectRatio + * @return aspectRatio + */ + @javax.annotation.Nullable + public String getAspectRatio() { + return aspectRatio; + } + + public void setAspectRatio(@javax.annotation.Nullable String aspectRatio) { + this.aspectRatio = aspectRatio; + } + + + public PlaybackStartInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlaybackStartInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackStartInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackStartInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlaybackStartInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackStartInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public PlaybackStartInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackStartInfo playbackStartInfo = (PlaybackStartInfo) o; + return Objects.equals(this.canSeek, playbackStartInfo.canSeek) && + Objects.equals(this.item, playbackStartInfo.item) && + Objects.equals(this.itemId, playbackStartInfo.itemId) && + Objects.equals(this.sessionId, playbackStartInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackStartInfo.mediaSourceId) && + Objects.equals(this.audioStreamIndex, playbackStartInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playbackStartInfo.subtitleStreamIndex) && + Objects.equals(this.isPaused, playbackStartInfo.isPaused) && + Objects.equals(this.isMuted, playbackStartInfo.isMuted) && + Objects.equals(this.positionTicks, playbackStartInfo.positionTicks) && + Objects.equals(this.playbackStartTimeTicks, playbackStartInfo.playbackStartTimeTicks) && + Objects.equals(this.volumeLevel, playbackStartInfo.volumeLevel) && + Objects.equals(this.brightness, playbackStartInfo.brightness) && + Objects.equals(this.aspectRatio, playbackStartInfo.aspectRatio) && + Objects.equals(this.playMethod, playbackStartInfo.playMethod) && + Objects.equals(this.liveStreamId, playbackStartInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackStartInfo.playSessionId) && + Objects.equals(this.repeatMode, playbackStartInfo.repeatMode) && + Objects.equals(this.nowPlayingQueue, playbackStartInfo.nowPlayingQueue) && + Objects.equals(this.playlistItemId, playbackStartInfo.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(canSeek, item, itemId, sessionId, mediaSourceId, audioStreamIndex, subtitleStreamIndex, isPaused, isMuted, positionTicks, playbackStartTimeTicks, volumeLevel, brightness, aspectRatio, playMethod, liveStreamId, playSessionId, repeatMode, nowPlayingQueue, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackStartInfo {\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" playbackStartTimeTicks: ").append(toIndentedString(playbackStartTimeTicks)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" brightness: ").append(toIndentedString(brightness)).append("\n"); + sb.append(" aspectRatio: ").append(toIndentedString(aspectRatio)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CanSeek"); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("PositionTicks"); + openapiFields.add("PlaybackStartTimeTicks"); + openapiFields.add("VolumeLevel"); + openapiFields.add("Brightness"); + openapiFields.add("AspectRatio"); + openapiFields.add("PlayMethod"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("RepeatMode"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackStartInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackStartInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackStartInfo is not found in the empty JSON string", PlaybackStartInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackStartInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackStartInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("AspectRatio") != null && !jsonObj.get("AspectRatio").isJsonNull()) && !jsonObj.get("AspectRatio").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AspectRatio` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AspectRatio").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackStartInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackStartInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackStartInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackStartInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackStartInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackStartInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackStartInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackStartInfo + */ + public static PlaybackStartInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackStartInfo.class); + } + + /** + * Convert an instance of PlaybackStartInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java new file mode 100644 index 0000000000000..6ed742ec4bad1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaybackStopInfo.java @@ -0,0 +1,537 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.QueueItem; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PlaybackStopInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaybackStopInfo { + public static final String SERIALIZED_NAME_ITEM = "Item"; + @SerializedName(SERIALIZED_NAME_ITEM) + @javax.annotation.Nullable + private BaseItemDto item; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SESSION_ID = "SessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @javax.annotation.Nullable + private String sessionId; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public static final String SERIALIZED_NAME_PLAY_SESSION_ID = "PlaySessionId"; + @SerializedName(SERIALIZED_NAME_PLAY_SESSION_ID) + @javax.annotation.Nullable + private String playSessionId; + + public static final String SERIALIZED_NAME_FAILED = "Failed"; + @SerializedName(SERIALIZED_NAME_FAILED) + @javax.annotation.Nullable + private Boolean failed; + + public static final String SERIALIZED_NAME_NEXT_MEDIA_TYPE = "NextMediaType"; + @SerializedName(SERIALIZED_NAME_NEXT_MEDIA_TYPE) + @javax.annotation.Nullable + private String nextMediaType; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public PlaybackStopInfo() { + } + + public PlaybackStopInfo item(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + return this; + } + + /** + * Gets or sets the item. + * @return item + */ + @javax.annotation.Nullable + public BaseItemDto getItem() { + return item; + } + + public void setItem(@javax.annotation.Nullable BaseItemDto item) { + this.item = item; + } + + + public PlaybackStopInfo itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public PlaybackStopInfo sessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Gets or sets the session id. + * @return sessionId + */ + @javax.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@javax.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + + public PlaybackStopInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlaybackStopInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlaybackStopInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + public PlaybackStopInfo playSessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + return this; + } + + /** + * Gets or sets the play session identifier. + * @return playSessionId + */ + @javax.annotation.Nullable + public String getPlaySessionId() { + return playSessionId; + } + + public void setPlaySessionId(@javax.annotation.Nullable String playSessionId) { + this.playSessionId = playSessionId; + } + + + public PlaybackStopInfo failed(@javax.annotation.Nullable Boolean failed) { + this.failed = failed; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. + * @return failed + */ + @javax.annotation.Nullable + public Boolean getFailed() { + return failed; + } + + public void setFailed(@javax.annotation.Nullable Boolean failed) { + this.failed = failed; + } + + + public PlaybackStopInfo nextMediaType(@javax.annotation.Nullable String nextMediaType) { + this.nextMediaType = nextMediaType; + return this; + } + + /** + * Get nextMediaType + * @return nextMediaType + */ + @javax.annotation.Nullable + public String getNextMediaType() { + return nextMediaType; + } + + public void setNextMediaType(@javax.annotation.Nullable String nextMediaType) { + this.nextMediaType = nextMediaType; + } + + + public PlaybackStopInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public PlaybackStopInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public PlaybackStopInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaybackStopInfo playbackStopInfo = (PlaybackStopInfo) o; + return Objects.equals(this.item, playbackStopInfo.item) && + Objects.equals(this.itemId, playbackStopInfo.itemId) && + Objects.equals(this.sessionId, playbackStopInfo.sessionId) && + Objects.equals(this.mediaSourceId, playbackStopInfo.mediaSourceId) && + Objects.equals(this.positionTicks, playbackStopInfo.positionTicks) && + Objects.equals(this.liveStreamId, playbackStopInfo.liveStreamId) && + Objects.equals(this.playSessionId, playbackStopInfo.playSessionId) && + Objects.equals(this.failed, playbackStopInfo.failed) && + Objects.equals(this.nextMediaType, playbackStopInfo.nextMediaType) && + Objects.equals(this.playlistItemId, playbackStopInfo.playlistItemId) && + Objects.equals(this.nowPlayingQueue, playbackStopInfo.nowPlayingQueue); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(item, itemId, sessionId, mediaSourceId, positionTicks, liveStreamId, playSessionId, failed, nextMediaType, playlistItemId, nowPlayingQueue); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaybackStopInfo {\n"); + sb.append(" item: ").append(toIndentedString(item)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append(" playSessionId: ").append(toIndentedString(playSessionId)).append("\n"); + sb.append(" failed: ").append(toIndentedString(failed)).append("\n"); + sb.append(" nextMediaType: ").append(toIndentedString(nextMediaType)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Item"); + openapiFields.add("ItemId"); + openapiFields.add("SessionId"); + openapiFields.add("MediaSourceId"); + openapiFields.add("PositionTicks"); + openapiFields.add("LiveStreamId"); + openapiFields.add("PlaySessionId"); + openapiFields.add("Failed"); + openapiFields.add("NextMediaType"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("NowPlayingQueue"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaybackStopInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaybackStopInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaybackStopInfo is not found in the empty JSON string", PlaybackStopInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaybackStopInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaybackStopInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Item` + if (jsonObj.get("Item") != null && !jsonObj.get("Item").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("Item")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SessionId") != null && !jsonObj.get("SessionId").isJsonNull()) && !jsonObj.get("SessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SessionId").toString())); + } + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + if ((jsonObj.get("PlaySessionId") != null && !jsonObj.get("PlaySessionId").isJsonNull()) && !jsonObj.get("PlaySessionId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaySessionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaySessionId").toString())); + } + if ((jsonObj.get("NextMediaType") != null && !jsonObj.get("NextMediaType").isJsonNull()) && !jsonObj.get("NextMediaType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NextMediaType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NextMediaType").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaybackStopInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaybackStopInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaybackStopInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaybackStopInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaybackStopInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaybackStopInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaybackStopInfo + * @throws IOException if the JSON string is invalid with respect to PlaybackStopInfo + */ + public static PlaybackStopInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaybackStopInfo.class); + } + + /** + * Convert an instance of PlaybackStopInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayerStateInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayerStateInfo.java new file mode 100644 index 0000000000000..79f427e6081f4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlayerStateInfo.java @@ -0,0 +1,501 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.PlayMethod; +import org.openapitools.client.model.RepeatMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlayerStateInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlayerStateInfo { + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_CAN_SEEK = "CanSeek"; + @SerializedName(SERIALIZED_NAME_CAN_SEEK) + @javax.annotation.Nullable + private Boolean canSeek; + + public static final String SERIALIZED_NAME_IS_PAUSED = "IsPaused"; + @SerializedName(SERIALIZED_NAME_IS_PAUSED) + @javax.annotation.Nullable + private Boolean isPaused; + + public static final String SERIALIZED_NAME_IS_MUTED = "IsMuted"; + @SerializedName(SERIALIZED_NAME_IS_MUTED) + @javax.annotation.Nullable + private Boolean isMuted; + + public static final String SERIALIZED_NAME_VOLUME_LEVEL = "VolumeLevel"; + @SerializedName(SERIALIZED_NAME_VOLUME_LEVEL) + @javax.annotation.Nullable + private Integer volumeLevel; + + public static final String SERIALIZED_NAME_AUDIO_STREAM_INDEX = "AudioStreamIndex"; + @SerializedName(SERIALIZED_NAME_AUDIO_STREAM_INDEX) + @javax.annotation.Nullable + private Integer audioStreamIndex; + + public static final String SERIALIZED_NAME_SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_STREAM_INDEX) + @javax.annotation.Nullable + private Integer subtitleStreamIndex; + + public static final String SERIALIZED_NAME_MEDIA_SOURCE_ID = "MediaSourceId"; + @SerializedName(SERIALIZED_NAME_MEDIA_SOURCE_ID) + @javax.annotation.Nullable + private String mediaSourceId; + + public static final String SERIALIZED_NAME_PLAY_METHOD = "PlayMethod"; + @SerializedName(SERIALIZED_NAME_PLAY_METHOD) + @javax.annotation.Nullable + private PlayMethod playMethod; + + public static final String SERIALIZED_NAME_REPEAT_MODE = "RepeatMode"; + @SerializedName(SERIALIZED_NAME_REPEAT_MODE) + @javax.annotation.Nullable + private RepeatMode repeatMode; + + public static final String SERIALIZED_NAME_LIVE_STREAM_ID = "LiveStreamId"; + @SerializedName(SERIALIZED_NAME_LIVE_STREAM_ID) + @javax.annotation.Nullable + private String liveStreamId; + + public PlayerStateInfo() { + } + + public PlayerStateInfo positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the now playing position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public PlayerStateInfo canSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can seek. + * @return canSeek + */ + @javax.annotation.Nullable + public Boolean getCanSeek() { + return canSeek; + } + + public void setCanSeek(@javax.annotation.Nullable Boolean canSeek) { + this.canSeek = canSeek; + } + + + public PlayerStateInfo isPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is paused. + * @return isPaused + */ + @javax.annotation.Nullable + public Boolean getIsPaused() { + return isPaused; + } + + public void setIsPaused(@javax.annotation.Nullable Boolean isPaused) { + this.isPaused = isPaused; + } + + + public PlayerStateInfo isMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is muted. + * @return isMuted + */ + @javax.annotation.Nullable + public Boolean getIsMuted() { + return isMuted; + } + + public void setIsMuted(@javax.annotation.Nullable Boolean isMuted) { + this.isMuted = isMuted; + } + + + public PlayerStateInfo volumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + return this; + } + + /** + * Gets or sets the volume level. + * @return volumeLevel + */ + @javax.annotation.Nullable + public Integer getVolumeLevel() { + return volumeLevel; + } + + public void setVolumeLevel(@javax.annotation.Nullable Integer volumeLevel) { + this.volumeLevel = volumeLevel; + } + + + public PlayerStateInfo audioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + return this; + } + + /** + * Gets or sets the index of the now playing audio stream. + * @return audioStreamIndex + */ + @javax.annotation.Nullable + public Integer getAudioStreamIndex() { + return audioStreamIndex; + } + + public void setAudioStreamIndex(@javax.annotation.Nullable Integer audioStreamIndex) { + this.audioStreamIndex = audioStreamIndex; + } + + + public PlayerStateInfo subtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + return this; + } + + /** + * Gets or sets the index of the now playing subtitle stream. + * @return subtitleStreamIndex + */ + @javax.annotation.Nullable + public Integer getSubtitleStreamIndex() { + return subtitleStreamIndex; + } + + public void setSubtitleStreamIndex(@javax.annotation.Nullable Integer subtitleStreamIndex) { + this.subtitleStreamIndex = subtitleStreamIndex; + } + + + public PlayerStateInfo mediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + return this; + } + + /** + * Gets or sets the now playing media version identifier. + * @return mediaSourceId + */ + @javax.annotation.Nullable + public String getMediaSourceId() { + return mediaSourceId; + } + + public void setMediaSourceId(@javax.annotation.Nullable String mediaSourceId) { + this.mediaSourceId = mediaSourceId; + } + + + public PlayerStateInfo playMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + return this; + } + + /** + * Gets or sets the play method. + * @return playMethod + */ + @javax.annotation.Nullable + public PlayMethod getPlayMethod() { + return playMethod; + } + + public void setPlayMethod(@javax.annotation.Nullable PlayMethod playMethod) { + this.playMethod = playMethod; + } + + + public PlayerStateInfo repeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + return this; + } + + /** + * Gets or sets the repeat mode. + * @return repeatMode + */ + @javax.annotation.Nullable + public RepeatMode getRepeatMode() { + return repeatMode; + } + + public void setRepeatMode(@javax.annotation.Nullable RepeatMode repeatMode) { + this.repeatMode = repeatMode; + } + + + public PlayerStateInfo liveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + return this; + } + + /** + * Gets or sets the now playing live stream identifier. + * @return liveStreamId + */ + @javax.annotation.Nullable + public String getLiveStreamId() { + return liveStreamId; + } + + public void setLiveStreamId(@javax.annotation.Nullable String liveStreamId) { + this.liveStreamId = liveStreamId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlayerStateInfo playerStateInfo = (PlayerStateInfo) o; + return Objects.equals(this.positionTicks, playerStateInfo.positionTicks) && + Objects.equals(this.canSeek, playerStateInfo.canSeek) && + Objects.equals(this.isPaused, playerStateInfo.isPaused) && + Objects.equals(this.isMuted, playerStateInfo.isMuted) && + Objects.equals(this.volumeLevel, playerStateInfo.volumeLevel) && + Objects.equals(this.audioStreamIndex, playerStateInfo.audioStreamIndex) && + Objects.equals(this.subtitleStreamIndex, playerStateInfo.subtitleStreamIndex) && + Objects.equals(this.mediaSourceId, playerStateInfo.mediaSourceId) && + Objects.equals(this.playMethod, playerStateInfo.playMethod) && + Objects.equals(this.repeatMode, playerStateInfo.repeatMode) && + Objects.equals(this.liveStreamId, playerStateInfo.liveStreamId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(positionTicks, canSeek, isPaused, isMuted, volumeLevel, audioStreamIndex, subtitleStreamIndex, mediaSourceId, playMethod, repeatMode, liveStreamId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlayerStateInfo {\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" canSeek: ").append(toIndentedString(canSeek)).append("\n"); + sb.append(" isPaused: ").append(toIndentedString(isPaused)).append("\n"); + sb.append(" isMuted: ").append(toIndentedString(isMuted)).append("\n"); + sb.append(" volumeLevel: ").append(toIndentedString(volumeLevel)).append("\n"); + sb.append(" audioStreamIndex: ").append(toIndentedString(audioStreamIndex)).append("\n"); + sb.append(" subtitleStreamIndex: ").append(toIndentedString(subtitleStreamIndex)).append("\n"); + sb.append(" mediaSourceId: ").append(toIndentedString(mediaSourceId)).append("\n"); + sb.append(" playMethod: ").append(toIndentedString(playMethod)).append("\n"); + sb.append(" repeatMode: ").append(toIndentedString(repeatMode)).append("\n"); + sb.append(" liveStreamId: ").append(toIndentedString(liveStreamId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PositionTicks"); + openapiFields.add("CanSeek"); + openapiFields.add("IsPaused"); + openapiFields.add("IsMuted"); + openapiFields.add("VolumeLevel"); + openapiFields.add("AudioStreamIndex"); + openapiFields.add("SubtitleStreamIndex"); + openapiFields.add("MediaSourceId"); + openapiFields.add("PlayMethod"); + openapiFields.add("RepeatMode"); + openapiFields.add("LiveStreamId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlayerStateInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlayerStateInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlayerStateInfo is not found in the empty JSON string", PlayerStateInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlayerStateInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlayerStateInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MediaSourceId") != null && !jsonObj.get("MediaSourceId").isJsonNull()) && !jsonObj.get("MediaSourceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaSourceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaSourceId").toString())); + } + // validate the optional field `PlayMethod` + if (jsonObj.get("PlayMethod") != null && !jsonObj.get("PlayMethod").isJsonNull()) { + PlayMethod.validateJsonElement(jsonObj.get("PlayMethod")); + } + // validate the optional field `RepeatMode` + if (jsonObj.get("RepeatMode") != null && !jsonObj.get("RepeatMode").isJsonNull()) { + RepeatMode.validateJsonElement(jsonObj.get("RepeatMode")); + } + if ((jsonObj.get("LiveStreamId") != null && !jsonObj.get("LiveStreamId").isJsonNull()) && !jsonObj.get("LiveStreamId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LiveStreamId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LiveStreamId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlayerStateInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlayerStateInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlayerStateInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlayerStateInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlayerStateInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlayerStateInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlayerStateInfo + * @throws IOException if the JSON string is invalid with respect to PlayerStateInfo + */ + public static PlayerStateInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlayerStateInfo.class); + } + + /** + * Convert an instance of PlayerStateInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java new file mode 100644 index 0000000000000..19b57746baad1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaylistCreationResult.java @@ -0,0 +1,206 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlaylistCreationResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaylistCreationResult { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public PlaylistCreationResult() { + } + + public PlaylistCreationResult id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaylistCreationResult playlistCreationResult = (PlaylistCreationResult) o; + return Objects.equals(this.id, playlistCreationResult.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaylistCreationResult {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaylistCreationResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaylistCreationResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaylistCreationResult is not found in the empty JSON string", PlaylistCreationResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaylistCreationResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaylistCreationResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaylistCreationResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaylistCreationResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaylistCreationResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaylistCreationResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaylistCreationResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaylistCreationResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaylistCreationResult + * @throws IOException if the JSON string is invalid with respect to PlaylistCreationResult + */ + public static PlaylistCreationResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaylistCreationResult.class); + } + + /** + * Convert an instance of PlaylistCreationResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateCommand.java new file mode 100644 index 0000000000000..2909a6ffe2f24 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateCommand.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum PlaystateCommand. + */ +@JsonAdapter(PlaystateCommand.Adapter.class) +public enum PlaystateCommand { + + STOP("Stop"), + + PAUSE("Pause"), + + UNPAUSE("Unpause"), + + NEXT_TRACK("NextTrack"), + + PREVIOUS_TRACK("PreviousTrack"), + + SEEK("Seek"), + + REWIND("Rewind"), + + FAST_FORWARD("FastForward"), + + PLAY_PAUSE("PlayPause"); + + private String value; + + PlaystateCommand(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlaystateCommand fromValue(String value) { + for (PlaystateCommand b : PlaystateCommand.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlaystateCommand enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlaystateCommand read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlaystateCommand.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlaystateCommand.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateRequest.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateRequest.java new file mode 100644 index 0000000000000..e3a65ad8d4547 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PlaystateRequest.java @@ -0,0 +1,277 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.PlaystateCommand; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PlaystateRequest + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PlaystateRequest { + public static final String SERIALIZED_NAME_COMMAND = "Command"; + @SerializedName(SERIALIZED_NAME_COMMAND) + @javax.annotation.Nullable + private PlaystateCommand command; + + public static final String SERIALIZED_NAME_SEEK_POSITION_TICKS = "SeekPositionTicks"; + @SerializedName(SERIALIZED_NAME_SEEK_POSITION_TICKS) + @javax.annotation.Nullable + private Long seekPositionTicks; + + public static final String SERIALIZED_NAME_CONTROLLING_USER_ID = "ControllingUserId"; + @SerializedName(SERIALIZED_NAME_CONTROLLING_USER_ID) + @javax.annotation.Nullable + private String controllingUserId; + + public PlaystateRequest() { + } + + public PlaystateRequest command(@javax.annotation.Nullable PlaystateCommand command) { + this.command = command; + return this; + } + + /** + * Enum PlaystateCommand. + * @return command + */ + @javax.annotation.Nullable + public PlaystateCommand getCommand() { + return command; + } + + public void setCommand(@javax.annotation.Nullable PlaystateCommand command) { + this.command = command; + } + + + public PlaystateRequest seekPositionTicks(@javax.annotation.Nullable Long seekPositionTicks) { + this.seekPositionTicks = seekPositionTicks; + return this; + } + + /** + * Get seekPositionTicks + * @return seekPositionTicks + */ + @javax.annotation.Nullable + public Long getSeekPositionTicks() { + return seekPositionTicks; + } + + public void setSeekPositionTicks(@javax.annotation.Nullable Long seekPositionTicks) { + this.seekPositionTicks = seekPositionTicks; + } + + + public PlaystateRequest controllingUserId(@javax.annotation.Nullable String controllingUserId) { + this.controllingUserId = controllingUserId; + return this; + } + + /** + * Gets or sets the controlling user identifier. + * @return controllingUserId + */ + @javax.annotation.Nullable + public String getControllingUserId() { + return controllingUserId; + } + + public void setControllingUserId(@javax.annotation.Nullable String controllingUserId) { + this.controllingUserId = controllingUserId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PlaystateRequest playstateRequest = (PlaystateRequest) o; + return Objects.equals(this.command, playstateRequest.command) && + Objects.equals(this.seekPositionTicks, playstateRequest.seekPositionTicks) && + Objects.equals(this.controllingUserId, playstateRequest.controllingUserId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(command, seekPositionTicks, controllingUserId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PlaystateRequest {\n"); + sb.append(" command: ").append(toIndentedString(command)).append("\n"); + sb.append(" seekPositionTicks: ").append(toIndentedString(seekPositionTicks)).append("\n"); + sb.append(" controllingUserId: ").append(toIndentedString(controllingUserId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Command"); + openapiFields.add("SeekPositionTicks"); + openapiFields.add("ControllingUserId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PlaystateRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PlaystateRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PlaystateRequest is not found in the empty JSON string", PlaystateRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PlaystateRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PlaystateRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Command` + if (jsonObj.get("Command") != null && !jsonObj.get("Command").isJsonNull()) { + PlaystateCommand.validateJsonElement(jsonObj.get("Command")); + } + if ((jsonObj.get("ControllingUserId") != null && !jsonObj.get("ControllingUserId").isJsonNull()) && !jsonObj.get("ControllingUserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ControllingUserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ControllingUserId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PlaystateRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PlaystateRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PlaystateRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PlaystateRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PlaystateRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PlaystateRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of PlaystateRequest + * @throws IOException if the JSON string is invalid with respect to PlaystateRequest + */ + public static PlaystateRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PlaystateRequest.class); + } + + /** + * Convert an instance of PlaystateRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginInfo.java new file mode 100644 index 0000000000000..c54aded297959 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginInfo.java @@ -0,0 +1,425 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.PluginStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * This is a serializable stub class that is used by the api to provide information about installed plugins. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PluginInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_CONFIGURATION_FILE_NAME = "ConfigurationFileName"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION_FILE_NAME) + @javax.annotation.Nullable + private String configurationFileName; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_CAN_UNINSTALL = "CanUninstall"; + @SerializedName(SERIALIZED_NAME_CAN_UNINSTALL) + @javax.annotation.Nullable + private Boolean canUninstall; + + public static final String SERIALIZED_NAME_HAS_IMAGE = "HasImage"; + @SerializedName(SERIALIZED_NAME_HAS_IMAGE) + @javax.annotation.Nullable + private Boolean hasImage; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private PluginStatus status; + + public PluginInfo() { + } + + public PluginInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public PluginInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public PluginInfo configurationFileName(@javax.annotation.Nullable String configurationFileName) { + this.configurationFileName = configurationFileName; + return this; + } + + /** + * Gets or sets the name of the configuration file. + * @return configurationFileName + */ + @javax.annotation.Nullable + public String getConfigurationFileName() { + return configurationFileName; + } + + public void setConfigurationFileName(@javax.annotation.Nullable String configurationFileName) { + this.configurationFileName = configurationFileName; + } + + + public PluginInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public PluginInfo id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the unique id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public PluginInfo canUninstall(@javax.annotation.Nullable Boolean canUninstall) { + this.canUninstall = canUninstall; + return this; + } + + /** + * Gets or sets a value indicating whether the plugin can be uninstalled. + * @return canUninstall + */ + @javax.annotation.Nullable + public Boolean getCanUninstall() { + return canUninstall; + } + + public void setCanUninstall(@javax.annotation.Nullable Boolean canUninstall) { + this.canUninstall = canUninstall; + } + + + public PluginInfo hasImage(@javax.annotation.Nullable Boolean hasImage) { + this.hasImage = hasImage; + return this; + } + + /** + * Gets or sets a value indicating whether this plugin has a valid image. + * @return hasImage + */ + @javax.annotation.Nullable + public Boolean getHasImage() { + return hasImage; + } + + public void setHasImage(@javax.annotation.Nullable Boolean hasImage) { + this.hasImage = hasImage; + } + + + public PluginInfo status(@javax.annotation.Nullable PluginStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets a value indicating the status of the plugin. + * @return status + */ + @javax.annotation.Nullable + public PluginStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable PluginStatus status) { + this.status = status; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PluginInfo pluginInfo = (PluginInfo) o; + return Objects.equals(this.name, pluginInfo.name) && + Objects.equals(this.version, pluginInfo.version) && + Objects.equals(this.configurationFileName, pluginInfo.configurationFileName) && + Objects.equals(this.description, pluginInfo.description) && + Objects.equals(this.id, pluginInfo.id) && + Objects.equals(this.canUninstall, pluginInfo.canUninstall) && + Objects.equals(this.hasImage, pluginInfo.hasImage) && + Objects.equals(this.status, pluginInfo.status); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, version, configurationFileName, description, id, canUninstall, hasImage, status); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PluginInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" configurationFileName: ").append(toIndentedString(configurationFileName)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" canUninstall: ").append(toIndentedString(canUninstall)).append("\n"); + sb.append(" hasImage: ").append(toIndentedString(hasImage)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Version"); + openapiFields.add("ConfigurationFileName"); + openapiFields.add("Description"); + openapiFields.add("Id"); + openapiFields.add("CanUninstall"); + openapiFields.add("HasImage"); + openapiFields.add("Status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PluginInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PluginInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PluginInfo is not found in the empty JSON string", PluginInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PluginInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PluginInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ConfigurationFileName") != null && !jsonObj.get("ConfigurationFileName").isJsonNull()) && !jsonObj.get("ConfigurationFileName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ConfigurationFileName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ConfigurationFileName").toString())); + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + PluginStatus.validateJsonElement(jsonObj.get("Status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PluginInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PluginInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PluginInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PluginInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PluginInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PluginInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PluginInfo + * @throws IOException if the JSON string is invalid with respect to PluginInfo + */ + public static PluginInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PluginInfo.class); + } + + /** + * Convert an instance of PluginInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginStatus.java new file mode 100644 index 0000000000000..a17af3f09f928 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PluginStatus.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Plugin load status. + */ +@JsonAdapter(PluginStatus.Adapter.class) +public enum PluginStatus { + + ACTIVE("Active"), + + RESTART("Restart"), + + DELETED("Deleted"), + + SUPERCEDED("Superceded"), + + MALFUNCTIONED("Malfunctioned"), + + NOT_SUPPORTED("NotSupported"), + + DISABLED("Disabled"); + + private String value; + + PluginStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PluginStatus fromValue(String value) { + for (PluginStatus b : PluginStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PluginStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PluginStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PluginStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PluginStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java new file mode 100644 index 0000000000000..c2127dec385bb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PreviousItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class PreviousItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PreviousItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public PreviousItemRequestDto() { + } + + public PreviousItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playing item identifier. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PreviousItemRequestDto previousItemRequestDto = (PreviousItemRequestDto) o; + return Objects.equals(this.playlistItemId, previousItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PreviousItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PreviousItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PreviousItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PreviousItemRequestDto is not found in the empty JSON string", PreviousItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PreviousItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PreviousItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PreviousItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PreviousItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PreviousItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PreviousItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PreviousItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PreviousItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of PreviousItemRequestDto + * @throws IOException if the JSON string is invalid with respect to PreviousItemRequestDto + */ + public static PreviousItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PreviousItemRequestDto.class); + } + + /** + * Convert an instance of PreviousItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProblemDetails.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProblemDetails.java new file mode 100644 index 0000000000000..ded28c1e29d8f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProblemDetails.java @@ -0,0 +1,416 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ProblemDetails + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ProblemDetails { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @javax.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private Integer status; + + public static final String SERIALIZED_NAME_DETAIL = "detail"; + @SerializedName(SERIALIZED_NAME_DETAIL) + @javax.annotation.Nullable + private String detail; + + public static final String SERIALIZED_NAME_INSTANCE = "instance"; + @SerializedName(SERIALIZED_NAME_INSTANCE) + @javax.annotation.Nullable + private String instance; + + public ProblemDetails() { + } + + public ProblemDetails type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ProblemDetails title(@javax.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @javax.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@javax.annotation.Nullable String title) { + this.title = title; + } + + + public ProblemDetails status(@javax.annotation.Nullable Integer status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + */ + @javax.annotation.Nullable + public Integer getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable Integer status) { + this.status = status; + } + + + public ProblemDetails detail(@javax.annotation.Nullable String detail) { + this.detail = detail; + return this; + } + + /** + * Get detail + * @return detail + */ + @javax.annotation.Nullable + public String getDetail() { + return detail; + } + + public void setDetail(@javax.annotation.Nullable String detail) { + this.detail = detail; + } + + + public ProblemDetails instance(@javax.annotation.Nullable String instance) { + this.instance = instance; + return this; + } + + /** + * Get instance + * @return instance + */ + @javax.annotation.Nullable + public String getInstance() { + return instance; + } + + public void setInstance(@javax.annotation.Nullable String instance) { + this.instance = instance; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the ProblemDetails instance itself + */ + public ProblemDetails putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProblemDetails problemDetails = (ProblemDetails) o; + return Objects.equals(this.type, problemDetails.type) && + Objects.equals(this.title, problemDetails.title) && + Objects.equals(this.status, problemDetails.status) && + Objects.equals(this.detail, problemDetails.detail) && + Objects.equals(this.instance, problemDetails.instance)&& + Objects.equals(this.additionalProperties, problemDetails.additionalProperties); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, title, status, detail, instance, additionalProperties); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProblemDetails {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" detail: ").append(toIndentedString(detail)).append("\n"); + sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("title"); + openapiFields.add("status"); + openapiFields.add("detail"); + openapiFields.add("instance"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProblemDetails + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProblemDetails.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ProblemDetails is not found in the empty JSON string", ProblemDetails.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("detail") != null && !jsonObj.get("detail").isJsonNull()) && !jsonObj.get("detail").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `detail` to be a primitive type in the JSON string but got `%s`", jsonObj.get("detail").toString())); + } + if ((jsonObj.get("instance") != null && !jsonObj.get("instance").isJsonNull()) && !jsonObj.get("instance").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `instance` to be a primitive type in the JSON string but got `%s`", jsonObj.get("instance").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProblemDetails.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProblemDetails' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ProblemDetails.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ProblemDetails value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ProblemDetails read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ProblemDetails instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ProblemDetails given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProblemDetails + * @throws IOException if the JSON string is invalid with respect to ProblemDetails + */ + public static ProblemDetails fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProblemDetails.class); + } + + /** + * Convert an instance of ProblemDetails to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileCondition.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileCondition.java new file mode 100644 index 0000000000000..bfde5bf8e933f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileCondition.java @@ -0,0 +1,309 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ProfileConditionType; +import org.openapitools.client.model.ProfileConditionValue; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ProfileCondition + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ProfileCondition { + public static final String SERIALIZED_NAME_CONDITION = "Condition"; + @SerializedName(SERIALIZED_NAME_CONDITION) + @javax.annotation.Nullable + private ProfileConditionType condition; + + public static final String SERIALIZED_NAME_PROPERTY = "Property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private ProfileConditionValue property; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public static final String SERIALIZED_NAME_IS_REQUIRED = "IsRequired"; + @SerializedName(SERIALIZED_NAME_IS_REQUIRED) + @javax.annotation.Nullable + private Boolean isRequired; + + public ProfileCondition() { + } + + public ProfileCondition condition(@javax.annotation.Nullable ProfileConditionType condition) { + this.condition = condition; + return this; + } + + /** + * Get condition + * @return condition + */ + @javax.annotation.Nullable + public ProfileConditionType getCondition() { + return condition; + } + + public void setCondition(@javax.annotation.Nullable ProfileConditionType condition) { + this.condition = condition; + } + + + public ProfileCondition property(@javax.annotation.Nullable ProfileConditionValue property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public ProfileConditionValue getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable ProfileConditionValue property) { + this.property = property; + } + + + public ProfileCondition value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + public ProfileCondition isRequired(@javax.annotation.Nullable Boolean isRequired) { + this.isRequired = isRequired; + return this; + } + + /** + * Get isRequired + * @return isRequired + */ + @javax.annotation.Nullable + public Boolean getIsRequired() { + return isRequired; + } + + public void setIsRequired(@javax.annotation.Nullable Boolean isRequired) { + this.isRequired = isRequired; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProfileCondition profileCondition = (ProfileCondition) o; + return Objects.equals(this.condition, profileCondition.condition) && + Objects.equals(this.property, profileCondition.property) && + Objects.equals(this.value, profileCondition.value) && + Objects.equals(this.isRequired, profileCondition.isRequired); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(condition, property, value, isRequired); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProfileCondition {\n"); + sb.append(" condition: ").append(toIndentedString(condition)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" isRequired: ").append(toIndentedString(isRequired)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Condition"); + openapiFields.add("Property"); + openapiFields.add("Value"); + openapiFields.add("IsRequired"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProfileCondition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProfileCondition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ProfileCondition is not found in the empty JSON string", ProfileCondition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProfileCondition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ProfileCondition` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Condition` + if (jsonObj.get("Condition") != null && !jsonObj.get("Condition").isJsonNull()) { + ProfileConditionType.validateJsonElement(jsonObj.get("Condition")); + } + // validate the optional field `Property` + if (jsonObj.get("Property") != null && !jsonObj.get("Property").isJsonNull()) { + ProfileConditionValue.validateJsonElement(jsonObj.get("Property")); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProfileCondition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProfileCondition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ProfileCondition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ProfileCondition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProfileCondition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ProfileCondition given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProfileCondition + * @throws IOException if the JSON string is invalid with respect to ProfileCondition + */ + public static ProfileCondition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProfileCondition.class); + } + + /** + * Convert an instance of ProfileCondition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionType.java new file mode 100644 index 0000000000000..73d4a2c8fc08a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionType.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProfileConditionType + */ +@JsonAdapter(ProfileConditionType.Adapter.class) +public enum ProfileConditionType { + + EQUALS("Equals"), + + NOT_EQUALS("NotEquals"), + + LESS_THAN_EQUAL("LessThanEqual"), + + GREATER_THAN_EQUAL("GreaterThanEqual"), + + EQUALS_ANY("EqualsAny"); + + private String value; + + ProfileConditionType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProfileConditionType fromValue(String value) { + for (ProfileConditionType b : ProfileConditionType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProfileConditionType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProfileConditionType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProfileConditionType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProfileConditionType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionValue.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionValue.java new file mode 100644 index 0000000000000..6dabc378953e9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProfileConditionValue.java @@ -0,0 +1,122 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProfileConditionValue + */ +@JsonAdapter(ProfileConditionValue.Adapter.class) +public enum ProfileConditionValue { + + AUDIO_CHANNELS("AudioChannels"), + + AUDIO_BITRATE("AudioBitrate"), + + AUDIO_PROFILE("AudioProfile"), + + WIDTH("Width"), + + HEIGHT("Height"), + + HAS64_BIT_OFFSETS("Has64BitOffsets"), + + PACKET_LENGTH("PacketLength"), + + VIDEO_BIT_DEPTH("VideoBitDepth"), + + VIDEO_BITRATE("VideoBitrate"), + + VIDEO_FRAMERATE("VideoFramerate"), + + VIDEO_LEVEL("VideoLevel"), + + VIDEO_PROFILE("VideoProfile"), + + VIDEO_TIMESTAMP("VideoTimestamp"), + + IS_ANAMORPHIC("IsAnamorphic"), + + REF_FRAMES("RefFrames"), + + NUM_AUDIO_STREAMS("NumAudioStreams"), + + NUM_VIDEO_STREAMS("NumVideoStreams"), + + IS_SECONDARY_AUDIO("IsSecondaryAudio"), + + VIDEO_CODEC_TAG("VideoCodecTag"), + + IS_AVC("IsAvc"), + + IS_INTERLACED("IsInterlaced"), + + AUDIO_SAMPLE_RATE("AudioSampleRate"), + + AUDIO_BIT_DEPTH("AudioBitDepth"), + + VIDEO_RANGE_TYPE("VideoRangeType"); + + private String value; + + ProfileConditionValue(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProfileConditionValue fromValue(String value) { + for (ProfileConditionValue b : ProfileConditionValue.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProfileConditionValue enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProfileConditionValue read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProfileConditionValue.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProfileConditionValue.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProgramAudio.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProgramAudio.java new file mode 100644 index 0000000000000..bd6c7ed78313a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ProgramAudio.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets ProgramAudio + */ +@JsonAdapter(ProgramAudio.Adapter.class) +public enum ProgramAudio { + + MONO("Mono"), + + STEREO("Stereo"), + + DOLBY("Dolby"), + + DOLBY_DIGITAL("DolbyDigital"), + + THX("Thx"), + + ATMOS("Atmos"); + + private String value; + + ProgramAudio(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProgramAudio fromValue(String value) { + for (ProgramAudio b : ProgramAudio.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProgramAudio enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProgramAudio read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ProgramAudio.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ProgramAudio.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PublicSystemInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PublicSystemInfo.java new file mode 100644 index 0000000000000..23e98744b96ab --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/PublicSystemInfo.java @@ -0,0 +1,395 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * PublicSystemInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class PublicSystemInfo { + public static final String SERIALIZED_NAME_LOCAL_ADDRESS = "LocalAddress"; + @SerializedName(SERIALIZED_NAME_LOCAL_ADDRESS) + @javax.annotation.Nullable + private String localAddress; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_PRODUCT_NAME = "ProductName"; + @SerializedName(SERIALIZED_NAME_PRODUCT_NAME) + @javax.annotation.Nullable + private String productName; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM = "OperatingSystem"; + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM) + @javax.annotation.Nullable + private String operatingSystem; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED = "StartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean startupWizardCompleted; + + public PublicSystemInfo() { + } + + public PublicSystemInfo localAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + return this; + } + + /** + * Gets or sets the local address. + * @return localAddress + */ + @javax.annotation.Nullable + public String getLocalAddress() { + return localAddress; + } + + public void setLocalAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + } + + + public PublicSystemInfo serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public PublicSystemInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the server version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public PublicSystemInfo productName(@javax.annotation.Nullable String productName) { + this.productName = productName; + return this; + } + + /** + * Gets or sets the product name. This is the AssemblyProduct name. + * @return productName + */ + @javax.annotation.Nullable + public String getProductName() { + return productName; + } + + public void setProductName(@javax.annotation.Nullable String productName) { + this.productName = productName; + } + + + public PublicSystemInfo operatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + return this; + } + + /** + * Gets or sets the operating system. + * @return operatingSystem + */ + @javax.annotation.Nullable + public String getOperatingSystem() { + return operatingSystem; + } + + public void setOperatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + } + + + public PublicSystemInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public PublicSystemInfo startupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether the startup wizard is completed. + * @return startupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getStartupWizardCompleted() { + return startupWizardCompleted; + } + + public void setStartupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PublicSystemInfo publicSystemInfo = (PublicSystemInfo) o; + return Objects.equals(this.localAddress, publicSystemInfo.localAddress) && + Objects.equals(this.serverName, publicSystemInfo.serverName) && + Objects.equals(this.version, publicSystemInfo.version) && + Objects.equals(this.productName, publicSystemInfo.productName) && + Objects.equals(this.operatingSystem, publicSystemInfo.operatingSystem) && + Objects.equals(this.id, publicSystemInfo.id) && + Objects.equals(this.startupWizardCompleted, publicSystemInfo.startupWizardCompleted); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(localAddress, serverName, version, productName, operatingSystem, id, startupWizardCompleted); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PublicSystemInfo {\n"); + sb.append(" localAddress: ").append(toIndentedString(localAddress)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productName: ").append(toIndentedString(productName)).append("\n"); + sb.append(" operatingSystem: ").append(toIndentedString(operatingSystem)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" startupWizardCompleted: ").append(toIndentedString(startupWizardCompleted)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LocalAddress"); + openapiFields.add("ServerName"); + openapiFields.add("Version"); + openapiFields.add("ProductName"); + openapiFields.add("OperatingSystem"); + openapiFields.add("Id"); + openapiFields.add("StartupWizardCompleted"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PublicSystemInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PublicSystemInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PublicSystemInfo is not found in the empty JSON string", PublicSystemInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PublicSystemInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PublicSystemInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LocalAddress") != null && !jsonObj.get("LocalAddress").isJsonNull()) && !jsonObj.get("LocalAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalAddress").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ProductName") != null && !jsonObj.get("ProductName").isJsonNull()) && !jsonObj.get("ProductName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProductName").toString())); + } + if ((jsonObj.get("OperatingSystem") != null && !jsonObj.get("OperatingSystem").isJsonNull()) && !jsonObj.get("OperatingSystem").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystem` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystem").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PublicSystemInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PublicSystemInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PublicSystemInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PublicSystemInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PublicSystemInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PublicSystemInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of PublicSystemInfo + * @throws IOException if the JSON string is invalid with respect to PublicSystemInfo + */ + public static PublicSystemInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PublicSystemInfo.class); + } + + /** + * Convert an instance of PublicSystemInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFilters.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFilters.java new file mode 100644 index 0000000000000..4c757c26f3f20 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFilters.java @@ -0,0 +1,279 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.NameGuidPair; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueryFilters + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueryFilters { + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public QueryFilters() { + } + + public QueryFilters genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public QueryFilters addGenresItem(NameGuidPair genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Get genres + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public QueryFilters tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public QueryFilters addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Get tags + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryFilters queryFilters = (QueryFilters) o; + return Objects.equals(this.genres, queryFilters.genres) && + Objects.equals(this.tags, queryFilters.tags); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(genres, tags); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueryFilters {\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Genres"); + openapiFields.add("Tags"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueryFilters + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueryFilters.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueryFilters is not found in the empty JSON string", QueryFilters.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueryFilters.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueryFilters` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull()) { + JsonArray jsonArraygenres = jsonObj.getAsJsonArray("Genres"); + if (jsonArraygenres != null) { + // ensure the json data is an array + if (!jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + + // validate the optional field `Genres` (array) + for (int i = 0; i < jsonArraygenres.size(); i++) { + NameGuidPair.validateJsonElement(jsonArraygenres.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueryFilters.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueryFilters' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueryFilters.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueryFilters value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueryFilters read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueryFilters given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueryFilters + * @throws IOException if the JSON string is invalid with respect to QueryFilters + */ + public static QueryFilters fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueryFilters.class); + } + + /** + * Convert an instance of QueryFilters to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java new file mode 100644 index 0000000000000..4e31eb0988424 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueryFiltersLegacy.java @@ -0,0 +1,346 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueryFiltersLegacy + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueryFiltersLegacy { + public static final String SERIALIZED_NAME_GENRES = "Genres"; + @SerializedName(SERIALIZED_NAME_GENRES) + @javax.annotation.Nullable + private List genres; + + public static final String SERIALIZED_NAME_TAGS = "Tags"; + @SerializedName(SERIALIZED_NAME_TAGS) + @javax.annotation.Nullable + private List tags; + + public static final String SERIALIZED_NAME_OFFICIAL_RATINGS = "OfficialRatings"; + @SerializedName(SERIALIZED_NAME_OFFICIAL_RATINGS) + @javax.annotation.Nullable + private List officialRatings; + + public static final String SERIALIZED_NAME_YEARS = "Years"; + @SerializedName(SERIALIZED_NAME_YEARS) + @javax.annotation.Nullable + private List years; + + public QueryFiltersLegacy() { + } + + public QueryFiltersLegacy genres(@javax.annotation.Nullable List genres) { + this.genres = genres; + return this; + } + + public QueryFiltersLegacy addGenresItem(String genresItem) { + if (this.genres == null) { + this.genres = new ArrayList<>(); + } + this.genres.add(genresItem); + return this; + } + + /** + * Get genres + * @return genres + */ + @javax.annotation.Nullable + public List getGenres() { + return genres; + } + + public void setGenres(@javax.annotation.Nullable List genres) { + this.genres = genres; + } + + + public QueryFiltersLegacy tags(@javax.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public QueryFiltersLegacy addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Get tags + * @return tags + */ + @javax.annotation.Nullable + public List getTags() { + return tags; + } + + public void setTags(@javax.annotation.Nullable List tags) { + this.tags = tags; + } + + + public QueryFiltersLegacy officialRatings(@javax.annotation.Nullable List officialRatings) { + this.officialRatings = officialRatings; + return this; + } + + public QueryFiltersLegacy addOfficialRatingsItem(String officialRatingsItem) { + if (this.officialRatings == null) { + this.officialRatings = new ArrayList<>(); + } + this.officialRatings.add(officialRatingsItem); + return this; + } + + /** + * Get officialRatings + * @return officialRatings + */ + @javax.annotation.Nullable + public List getOfficialRatings() { + return officialRatings; + } + + public void setOfficialRatings(@javax.annotation.Nullable List officialRatings) { + this.officialRatings = officialRatings; + } + + + public QueryFiltersLegacy years(@javax.annotation.Nullable List years) { + this.years = years; + return this; + } + + public QueryFiltersLegacy addYearsItem(Integer yearsItem) { + if (this.years == null) { + this.years = new ArrayList<>(); + } + this.years.add(yearsItem); + return this; + } + + /** + * Get years + * @return years + */ + @javax.annotation.Nullable + public List getYears() { + return years; + } + + public void setYears(@javax.annotation.Nullable List years) { + this.years = years; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryFiltersLegacy queryFiltersLegacy = (QueryFiltersLegacy) o; + return Objects.equals(this.genres, queryFiltersLegacy.genres) && + Objects.equals(this.tags, queryFiltersLegacy.tags) && + Objects.equals(this.officialRatings, queryFiltersLegacy.officialRatings) && + Objects.equals(this.years, queryFiltersLegacy.years); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(genres, tags, officialRatings, years); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueryFiltersLegacy {\n"); + sb.append(" genres: ").append(toIndentedString(genres)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" officialRatings: ").append(toIndentedString(officialRatings)).append("\n"); + sb.append(" years: ").append(toIndentedString(years)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Genres"); + openapiFields.add("Tags"); + openapiFields.add("OfficialRatings"); + openapiFields.add("Years"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueryFiltersLegacy + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueryFiltersLegacy.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueryFiltersLegacy is not found in the empty JSON string", QueryFiltersLegacy.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueryFiltersLegacy.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueryFiltersLegacy` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("Genres") != null && !jsonObj.get("Genres").isJsonNull() && !jsonObj.get("Genres").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Genres` to be an array in the JSON string but got `%s`", jsonObj.get("Genres").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Tags") != null && !jsonObj.get("Tags").isJsonNull() && !jsonObj.get("Tags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Tags` to be an array in the JSON string but got `%s`", jsonObj.get("Tags").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("OfficialRatings") != null && !jsonObj.get("OfficialRatings").isJsonNull() && !jsonObj.get("OfficialRatings").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `OfficialRatings` to be an array in the JSON string but got `%s`", jsonObj.get("OfficialRatings").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Years") != null && !jsonObj.get("Years").isJsonNull() && !jsonObj.get("Years").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Years` to be an array in the JSON string but got `%s`", jsonObj.get("Years").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueryFiltersLegacy.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueryFiltersLegacy' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueryFiltersLegacy.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueryFiltersLegacy value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueryFiltersLegacy read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueryFiltersLegacy given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueryFiltersLegacy + * @throws IOException if the JSON string is invalid with respect to QueryFiltersLegacy + */ + public static QueryFiltersLegacy fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueryFiltersLegacy.class); + } + + /** + * Convert an instance of QueryFiltersLegacy to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueItem.java new file mode 100644 index 0000000000000..0ccda776e9967 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueItem.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * QueueItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueueItem { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public QueueItem() { + } + + public QueueItem id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public QueueItem playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueueItem queueItem = (QueueItem) o; + return Objects.equals(this.id, queueItem.id) && + Objects.equals(this.playlistItemId, queueItem.playlistItemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, playlistItemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueueItem {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueueItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueueItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueueItem is not found in the empty JSON string", QueueItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueueItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueueItem` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueueItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueueItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueueItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueueItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueueItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueueItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueueItem + * @throws IOException if the JSON string is invalid with respect to QueueItem + */ + public static QueueItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueueItem.class); + } + + /** + * Convert an instance of QueueItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueRequestDto.java new file mode 100644 index 0000000000000..4b6ab0435c138 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QueueRequestDto.java @@ -0,0 +1,250 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.GroupQueueMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class QueueRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QueueRequestDto { + public static final String SERIALIZED_NAME_ITEM_IDS = "ItemIds"; + @SerializedName(SERIALIZED_NAME_ITEM_IDS) + @javax.annotation.Nullable + private List itemIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupQueueMode mode; + + public QueueRequestDto() { + } + + public QueueRequestDto itemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + return this; + } + + public QueueRequestDto addItemIdsItem(UUID itemIdsItem) { + if (this.itemIds == null) { + this.itemIds = new ArrayList<>(); + } + this.itemIds.add(itemIdsItem); + return this; + } + + /** + * Gets or sets the items to enqueue. + * @return itemIds + */ + @javax.annotation.Nullable + public List getItemIds() { + return itemIds; + } + + public void setItemIds(@javax.annotation.Nullable List itemIds) { + this.itemIds = itemIds; + } + + + public QueueRequestDto mode(@javax.annotation.Nullable GroupQueueMode mode) { + this.mode = mode; + return this; + } + + /** + * Enum GroupQueueMode. + * @return mode + */ + @javax.annotation.Nullable + public GroupQueueMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupQueueMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueueRequestDto queueRequestDto = (QueueRequestDto) o; + return Objects.equals(this.itemIds, queueRequestDto.itemIds) && + Objects.equals(this.mode, queueRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(itemIds, mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QueueRequestDto {\n"); + sb.append(" itemIds: ").append(toIndentedString(itemIds)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemIds"); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QueueRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QueueRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QueueRequestDto is not found in the empty JSON string", QueueRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QueueRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QueueRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ItemIds") != null && !jsonObj.get("ItemIds").isJsonNull() && !jsonObj.get("ItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("ItemIds").toString())); + } + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupQueueMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QueueRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QueueRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QueueRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QueueRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QueueRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QueueRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of QueueRequestDto + * @throws IOException if the JSON string is invalid with respect to QueueRequestDto + */ + public static QueueRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QueueRequestDto.class); + } + + /** + * Convert an instance of QueueRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectDto.java new file mode 100644 index 0000000000000..6ff0ca4ab5394 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectDto.java @@ -0,0 +1,214 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The quick connect request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QuickConnectDto { + public static final String SERIALIZED_NAME_SECRET = "Secret"; + @SerializedName(SERIALIZED_NAME_SECRET) + @javax.annotation.Nonnull + private String secret; + + public QuickConnectDto() { + } + + public QuickConnectDto secret(@javax.annotation.Nonnull String secret) { + this.secret = secret; + return this; + } + + /** + * Gets or sets the quick connect secret. + * @return secret + */ + @javax.annotation.Nonnull + public String getSecret() { + return secret; + } + + public void setSecret(@javax.annotation.Nonnull String secret) { + this.secret = secret; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuickConnectDto quickConnectDto = (QuickConnectDto) o; + return Objects.equals(this.secret, quickConnectDto.secret); + } + + @Override + public int hashCode() { + return Objects.hash(secret); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuickConnectDto {\n"); + sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Secret"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Secret"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QuickConnectDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QuickConnectDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QuickConnectDto is not found in the empty JSON string", QuickConnectDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QuickConnectDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QuickConnectDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : QuickConnectDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Secret").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Secret` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Secret").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QuickConnectDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QuickConnectDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QuickConnectDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QuickConnectDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QuickConnectDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QuickConnectDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of QuickConnectDto + * @throws IOException if the JSON string is invalid with respect to QuickConnectDto + */ + public static QuickConnectDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QuickConnectDto.class); + } + + /** + * Convert an instance of QuickConnectDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectResult.java new file mode 100644 index 0000000000000..27a86fd8131ff --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/QuickConnectResult.java @@ -0,0 +1,411 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Stores the state of an quick connect request. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class QuickConnectResult { + public static final String SERIALIZED_NAME_AUTHENTICATED = "Authenticated"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATED) + @javax.annotation.Nullable + private Boolean authenticated; + + public static final String SERIALIZED_NAME_SECRET = "Secret"; + @SerializedName(SERIALIZED_NAME_SECRET) + @javax.annotation.Nullable + private String secret; + + public static final String SERIALIZED_NAME_CODE = "Code"; + @SerializedName(SERIALIZED_NAME_CODE) + @javax.annotation.Nullable + private String code; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_APP_NAME = "AppName"; + @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable + private String appName; + + public static final String SERIALIZED_NAME_APP_VERSION = "AppVersion"; + @SerializedName(SERIALIZED_NAME_APP_VERSION) + @javax.annotation.Nullable + private String appVersion; + + public static final String SERIALIZED_NAME_DATE_ADDED = "DateAdded"; + @SerializedName(SERIALIZED_NAME_DATE_ADDED) + @javax.annotation.Nullable + private OffsetDateTime dateAdded; + + public QuickConnectResult() { + } + + public QuickConnectResult authenticated(@javax.annotation.Nullable Boolean authenticated) { + this.authenticated = authenticated; + return this; + } + + /** + * Gets or sets a value indicating whether this request is authorized. + * @return authenticated + */ + @javax.annotation.Nullable + public Boolean getAuthenticated() { + return authenticated; + } + + public void setAuthenticated(@javax.annotation.Nullable Boolean authenticated) { + this.authenticated = authenticated; + } + + + public QuickConnectResult secret(@javax.annotation.Nullable String secret) { + this.secret = secret; + return this; + } + + /** + * Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. + * @return secret + */ + @javax.annotation.Nullable + public String getSecret() { + return secret; + } + + public void setSecret(@javax.annotation.Nullable String secret) { + this.secret = secret; + } + + + public QuickConnectResult code(@javax.annotation.Nullable String code) { + this.code = code; + return this; + } + + /** + * Gets the user facing code used so the user can quickly differentiate this request from others. + * @return code + */ + @javax.annotation.Nullable + public String getCode() { + return code; + } + + public void setCode(@javax.annotation.Nullable String code) { + this.code = code; + } + + + public QuickConnectResult deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets the requesting device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public QuickConnectResult deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets the requesting device name. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public QuickConnectResult appName(@javax.annotation.Nullable String appName) { + this.appName = appName; + return this; + } + + /** + * Gets the requesting app name. + * @return appName + */ + @javax.annotation.Nullable + public String getAppName() { + return appName; + } + + public void setAppName(@javax.annotation.Nullable String appName) { + this.appName = appName; + } + + + public QuickConnectResult appVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Gets the requesting app version. + * @return appVersion + */ + @javax.annotation.Nullable + public String getAppVersion() { + return appVersion; + } + + public void setAppVersion(@javax.annotation.Nullable String appVersion) { + this.appVersion = appVersion; + } + + + public QuickConnectResult dateAdded(@javax.annotation.Nullable OffsetDateTime dateAdded) { + this.dateAdded = dateAdded; + return this; + } + + /** + * Gets or sets the DateTime that this request was created. + * @return dateAdded + */ + @javax.annotation.Nullable + public OffsetDateTime getDateAdded() { + return dateAdded; + } + + public void setDateAdded(@javax.annotation.Nullable OffsetDateTime dateAdded) { + this.dateAdded = dateAdded; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QuickConnectResult quickConnectResult = (QuickConnectResult) o; + return Objects.equals(this.authenticated, quickConnectResult.authenticated) && + Objects.equals(this.secret, quickConnectResult.secret) && + Objects.equals(this.code, quickConnectResult.code) && + Objects.equals(this.deviceId, quickConnectResult.deviceId) && + Objects.equals(this.deviceName, quickConnectResult.deviceName) && + Objects.equals(this.appName, quickConnectResult.appName) && + Objects.equals(this.appVersion, quickConnectResult.appVersion) && + Objects.equals(this.dateAdded, quickConnectResult.dateAdded); + } + + @Override + public int hashCode() { + return Objects.hash(authenticated, secret, code, deviceId, deviceName, appName, appVersion, dateAdded); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class QuickConnectResult {\n"); + sb.append(" authenticated: ").append(toIndentedString(authenticated)).append("\n"); + sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" appName: ").append(toIndentedString(appName)).append("\n"); + sb.append(" appVersion: ").append(toIndentedString(appVersion)).append("\n"); + sb.append(" dateAdded: ").append(toIndentedString(dateAdded)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Authenticated"); + openapiFields.add("Secret"); + openapiFields.add("Code"); + openapiFields.add("DeviceId"); + openapiFields.add("DeviceName"); + openapiFields.add("AppName"); + openapiFields.add("AppVersion"); + openapiFields.add("DateAdded"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to QuickConnectResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!QuickConnectResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in QuickConnectResult is not found in the empty JSON string", QuickConnectResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!QuickConnectResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `QuickConnectResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Secret") != null && !jsonObj.get("Secret").isJsonNull()) && !jsonObj.get("Secret").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Secret` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Secret").toString())); + } + if ((jsonObj.get("Code") != null && !jsonObj.get("Code").isJsonNull()) && !jsonObj.get("Code").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Code").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("AppName") != null && !jsonObj.get("AppName").isJsonNull()) && !jsonObj.get("AppName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppName").toString())); + } + if ((jsonObj.get("AppVersion") != null && !jsonObj.get("AppVersion").isJsonNull()) && !jsonObj.get("AppVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AppVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AppVersion").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!QuickConnectResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'QuickConnectResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(QuickConnectResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, QuickConnectResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public QuickConnectResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of QuickConnectResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of QuickConnectResult + * @throws IOException if the JSON string is invalid with respect to QuickConnectResult + */ + public static QuickConnectResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, QuickConnectResult.class); + } + + /** + * Convert an instance of QuickConnectResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RatingType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RatingType.java new file mode 100644 index 0000000000000..c2860041e5562 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RatingType.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RatingType + */ +@JsonAdapter(RatingType.Adapter.class) +public enum RatingType { + + SCORE("Score"), + + LIKES("Likes"); + + private String value; + + RatingType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RatingType fromValue(String value) { + for (RatingType b : RatingType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RatingType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RatingType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RatingType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RatingType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ReadyRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ReadyRequestDto.java new file mode 100644 index 0000000000000..b55c1c6237c1f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ReadyRequestDto.java @@ -0,0 +1,289 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ReadyRequest. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ReadyRequestDto { + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_IS_PLAYING = "IsPlaying"; + @SerializedName(SERIALIZED_NAME_IS_PLAYING) + @javax.annotation.Nullable + private Boolean isPlaying; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public ReadyRequestDto() { + } + + public ReadyRequestDto when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets when the request has been made by the client. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public ReadyRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public ReadyRequestDto isPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + return this; + } + + /** + * Gets or sets a value indicating whether the client playback is unpaused. + * @return isPlaying + */ + @javax.annotation.Nullable + public Boolean getIsPlaying() { + return isPlaying; + } + + public void setIsPlaying(@javax.annotation.Nullable Boolean isPlaying) { + this.isPlaying = isPlaying; + } + + + public ReadyRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist item identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReadyRequestDto readyRequestDto = (ReadyRequestDto) o; + return Objects.equals(this.when, readyRequestDto.when) && + Objects.equals(this.positionTicks, readyRequestDto.positionTicks) && + Objects.equals(this.isPlaying, readyRequestDto.isPlaying) && + Objects.equals(this.playlistItemId, readyRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(when, positionTicks, isPlaying, playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReadyRequestDto {\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" isPlaying: ").append(toIndentedString(isPlaying)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("IsPlaying"); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ReadyRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ReadyRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ReadyRequestDto is not found in the empty JSON string", ReadyRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ReadyRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ReadyRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ReadyRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ReadyRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ReadyRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ReadyRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ReadyRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ReadyRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ReadyRequestDto + * @throws IOException if the JSON string is invalid with respect to ReadyRequestDto + */ + public static ReadyRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ReadyRequestDto.class); + } + + /** + * Convert an instance of ReadyRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationDto.java new file mode 100644 index 0000000000000..ec7e9afbc7744 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationDto.java @@ -0,0 +1,333 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.RecommendationType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RecommendationDto + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RecommendationDto { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_RECOMMENDATION_TYPE = "RecommendationType"; + @SerializedName(SERIALIZED_NAME_RECOMMENDATION_TYPE) + @javax.annotation.Nullable + private RecommendationType recommendationType; + + public static final String SERIALIZED_NAME_BASELINE_ITEM_NAME = "BaselineItemName"; + @SerializedName(SERIALIZED_NAME_BASELINE_ITEM_NAME) + @javax.annotation.Nullable + private String baselineItemName; + + public static final String SERIALIZED_NAME_CATEGORY_ID = "CategoryId"; + @SerializedName(SERIALIZED_NAME_CATEGORY_ID) + @javax.annotation.Nullable + private UUID categoryId; + + public RecommendationDto() { + } + + public RecommendationDto items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public RecommendationDto addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Get items + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public RecommendationDto recommendationType(@javax.annotation.Nullable RecommendationType recommendationType) { + this.recommendationType = recommendationType; + return this; + } + + /** + * Get recommendationType + * @return recommendationType + */ + @javax.annotation.Nullable + public RecommendationType getRecommendationType() { + return recommendationType; + } + + public void setRecommendationType(@javax.annotation.Nullable RecommendationType recommendationType) { + this.recommendationType = recommendationType; + } + + + public RecommendationDto baselineItemName(@javax.annotation.Nullable String baselineItemName) { + this.baselineItemName = baselineItemName; + return this; + } + + /** + * Get baselineItemName + * @return baselineItemName + */ + @javax.annotation.Nullable + public String getBaselineItemName() { + return baselineItemName; + } + + public void setBaselineItemName(@javax.annotation.Nullable String baselineItemName) { + this.baselineItemName = baselineItemName; + } + + + public RecommendationDto categoryId(@javax.annotation.Nullable UUID categoryId) { + this.categoryId = categoryId; + return this; + } + + /** + * Get categoryId + * @return categoryId + */ + @javax.annotation.Nullable + public UUID getCategoryId() { + return categoryId; + } + + public void setCategoryId(@javax.annotation.Nullable UUID categoryId) { + this.categoryId = categoryId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RecommendationDto recommendationDto = (RecommendationDto) o; + return Objects.equals(this.items, recommendationDto.items) && + Objects.equals(this.recommendationType, recommendationDto.recommendationType) && + Objects.equals(this.baselineItemName, recommendationDto.baselineItemName) && + Objects.equals(this.categoryId, recommendationDto.categoryId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, recommendationType, baselineItemName, categoryId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RecommendationDto {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" recommendationType: ").append(toIndentedString(recommendationType)).append("\n"); + sb.append(" baselineItemName: ").append(toIndentedString(baselineItemName)).append("\n"); + sb.append(" categoryId: ").append(toIndentedString(categoryId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("RecommendationType"); + openapiFields.add("BaselineItemName"); + openapiFields.add("CategoryId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RecommendationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RecommendationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RecommendationDto is not found in the empty JSON string", RecommendationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RecommendationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RecommendationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + // validate the optional field `RecommendationType` + if (jsonObj.get("RecommendationType") != null && !jsonObj.get("RecommendationType").isJsonNull()) { + RecommendationType.validateJsonElement(jsonObj.get("RecommendationType")); + } + if ((jsonObj.get("BaselineItemName") != null && !jsonObj.get("BaselineItemName").isJsonNull()) && !jsonObj.get("BaselineItemName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BaselineItemName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BaselineItemName").toString())); + } + if ((jsonObj.get("CategoryId") != null && !jsonObj.get("CategoryId").isJsonNull()) && !jsonObj.get("CategoryId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CategoryId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CategoryId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RecommendationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RecommendationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RecommendationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RecommendationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RecommendationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RecommendationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of RecommendationDto + * @throws IOException if the JSON string is invalid with respect to RecommendationDto + */ + public static RecommendationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RecommendationDto.class); + } + + /** + * Convert an instance of RecommendationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationType.java new file mode 100644 index 0000000000000..7f4daaf4ebb5f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecommendationType.java @@ -0,0 +1,86 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RecommendationType + */ +@JsonAdapter(RecommendationType.Adapter.class) +public enum RecommendationType { + + SIMILAR_TO_RECENTLY_PLAYED("SimilarToRecentlyPlayed"), + + SIMILAR_TO_LIKED_ITEM("SimilarToLikedItem"), + + HAS_DIRECTOR_FROM_RECENTLY_PLAYED("HasDirectorFromRecentlyPlayed"), + + HAS_ACTOR_FROM_RECENTLY_PLAYED("HasActorFromRecentlyPlayed"), + + HAS_LIKED_DIRECTOR("HasLikedDirector"), + + HAS_LIKED_ACTOR("HasLikedActor"); + + private String value; + + RecommendationType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecommendationType fromValue(String value) { + for (RecommendationType b : RecommendationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecommendationType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecommendationType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecommendationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecommendationType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecordingStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecordingStatus.java new file mode 100644 index 0000000000000..afe4dfb0815d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RecordingStatus.java @@ -0,0 +1,88 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RecordingStatus + */ +@JsonAdapter(RecordingStatus.Adapter.class) +public enum RecordingStatus { + + NEW("New"), + + IN_PROGRESS("InProgress"), + + COMPLETED("Completed"), + + CANCELLED("Cancelled"), + + CONFLICTED_OK("ConflictedOk"), + + CONFLICTED_NOT_OK("ConflictedNotOk"), + + ERROR("Error"); + + private String value; + + RecordingStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingStatus fromValue(String value) { + for (RecordingStatus b : RecordingStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageInfo.java new file mode 100644 index 0000000000000..4042d105dcc28 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageInfo.java @@ -0,0 +1,480 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.ImageType; +import org.openapitools.client.model.RatingType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoteImageInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteImageInfo { + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_THUMBNAIL_URL = "ThumbnailUrl"; + @SerializedName(SERIALIZED_NAME_THUMBNAIL_URL) + @javax.annotation.Nullable + private String thumbnailUrl; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Double communityRating; + + public static final String SERIALIZED_NAME_VOTE_COUNT = "VoteCount"; + @SerializedName(SERIALIZED_NAME_VOTE_COUNT) + @javax.annotation.Nullable + private Integer voteCount; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private ImageType type; + + public static final String SERIALIZED_NAME_RATING_TYPE = "RatingType"; + @SerializedName(SERIALIZED_NAME_RATING_TYPE) + @javax.annotation.Nullable + private RatingType ratingType; + + public RemoteImageInfo() { + } + + public RemoteImageInfo providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Gets or sets the name of the provider. + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + public RemoteImageInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the URL. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public RemoteImageInfo thumbnailUrl(@javax.annotation.Nullable String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + return this; + } + + /** + * Gets or sets a url used for previewing a smaller version. + * @return thumbnailUrl + */ + @javax.annotation.Nullable + public String getThumbnailUrl() { + return thumbnailUrl; + } + + public void setThumbnailUrl(@javax.annotation.Nullable String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + } + + + public RemoteImageInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Gets or sets the height. + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public RemoteImageInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Gets or sets the width. + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public RemoteImageInfo communityRating(@javax.annotation.Nullable Double communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Gets or sets the community rating. + * @return communityRating + */ + @javax.annotation.Nullable + public Double getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Double communityRating) { + this.communityRating = communityRating; + } + + + public RemoteImageInfo voteCount(@javax.annotation.Nullable Integer voteCount) { + this.voteCount = voteCount; + return this; + } + + /** + * Gets or sets the vote count. + * @return voteCount + */ + @javax.annotation.Nullable + public Integer getVoteCount() { + return voteCount; + } + + public void setVoteCount(@javax.annotation.Nullable Integer voteCount) { + this.voteCount = voteCount; + } + + + public RemoteImageInfo language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the language. + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public RemoteImageInfo type(@javax.annotation.Nullable ImageType type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public ImageType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable ImageType type) { + this.type = type; + } + + + public RemoteImageInfo ratingType(@javax.annotation.Nullable RatingType ratingType) { + this.ratingType = ratingType; + return this; + } + + /** + * Gets or sets the type of the rating. + * @return ratingType + */ + @javax.annotation.Nullable + public RatingType getRatingType() { + return ratingType; + } + + public void setRatingType(@javax.annotation.Nullable RatingType ratingType) { + this.ratingType = ratingType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteImageInfo remoteImageInfo = (RemoteImageInfo) o; + return Objects.equals(this.providerName, remoteImageInfo.providerName) && + Objects.equals(this.url, remoteImageInfo.url) && + Objects.equals(this.thumbnailUrl, remoteImageInfo.thumbnailUrl) && + Objects.equals(this.height, remoteImageInfo.height) && + Objects.equals(this.width, remoteImageInfo.width) && + Objects.equals(this.communityRating, remoteImageInfo.communityRating) && + Objects.equals(this.voteCount, remoteImageInfo.voteCount) && + Objects.equals(this.language, remoteImageInfo.language) && + Objects.equals(this.type, remoteImageInfo.type) && + Objects.equals(this.ratingType, remoteImageInfo.ratingType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(providerName, url, thumbnailUrl, height, width, communityRating, voteCount, language, type, ratingType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteImageInfo {\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" thumbnailUrl: ").append(toIndentedString(thumbnailUrl)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" voteCount: ").append(toIndentedString(voteCount)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" ratingType: ").append(toIndentedString(ratingType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ProviderName"); + openapiFields.add("Url"); + openapiFields.add("ThumbnailUrl"); + openapiFields.add("Height"); + openapiFields.add("Width"); + openapiFields.add("CommunityRating"); + openapiFields.add("VoteCount"); + openapiFields.add("Language"); + openapiFields.add("Type"); + openapiFields.add("RatingType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteImageInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteImageInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteImageInfo is not found in the empty JSON string", RemoteImageInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteImageInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteImageInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("ThumbnailUrl") != null && !jsonObj.get("ThumbnailUrl").isJsonNull()) && !jsonObj.get("ThumbnailUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbnailUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbnailUrl").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + ImageType.validateJsonElement(jsonObj.get("Type")); + } + // validate the optional field `RatingType` + if (jsonObj.get("RatingType") != null && !jsonObj.get("RatingType").isJsonNull()) { + RatingType.validateJsonElement(jsonObj.get("RatingType")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteImageInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteImageInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteImageInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteImageInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteImageInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteImageInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteImageInfo + * @throws IOException if the JSON string is invalid with respect to RemoteImageInfo + */ + public static RemoteImageInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteImageInfo.class); + } + + /** + * Convert an instance of RemoteImageInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageResult.java new file mode 100644 index 0000000000000..f72958858e8d2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteImageResult.java @@ -0,0 +1,306 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.RemoteImageInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoteImageResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteImageResult { + public static final String SERIALIZED_NAME_IMAGES = "Images"; + @SerializedName(SERIALIZED_NAME_IMAGES) + @javax.annotation.Nullable + private List images; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_PROVIDERS = "Providers"; + @SerializedName(SERIALIZED_NAME_PROVIDERS) + @javax.annotation.Nullable + private List providers; + + public RemoteImageResult() { + } + + public RemoteImageResult images(@javax.annotation.Nullable List images) { + this.images = images; + return this; + } + + public RemoteImageResult addImagesItem(RemoteImageInfo imagesItem) { + if (this.images == null) { + this.images = new ArrayList<>(); + } + this.images.add(imagesItem); + return this; + } + + /** + * Gets or sets the images. + * @return images + */ + @javax.annotation.Nullable + public List getImages() { + return images; + } + + public void setImages(@javax.annotation.Nullable List images) { + this.images = images; + } + + + public RemoteImageResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total record count. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public RemoteImageResult providers(@javax.annotation.Nullable List providers) { + this.providers = providers; + return this; + } + + public RemoteImageResult addProvidersItem(String providersItem) { + if (this.providers == null) { + this.providers = new ArrayList<>(); + } + this.providers.add(providersItem); + return this; + } + + /** + * Gets or sets the providers. + * @return providers + */ + @javax.annotation.Nullable + public List getProviders() { + return providers; + } + + public void setProviders(@javax.annotation.Nullable List providers) { + this.providers = providers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteImageResult remoteImageResult = (RemoteImageResult) o; + return Objects.equals(this.images, remoteImageResult.images) && + Objects.equals(this.totalRecordCount, remoteImageResult.totalRecordCount) && + Objects.equals(this.providers, remoteImageResult.providers); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(images, totalRecordCount, providers); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteImageResult {\n"); + sb.append(" images: ").append(toIndentedString(images)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" providers: ").append(toIndentedString(providers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Images"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("Providers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteImageResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteImageResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteImageResult is not found in the empty JSON string", RemoteImageResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteImageResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteImageResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Images") != null && !jsonObj.get("Images").isJsonNull()) { + JsonArray jsonArrayimages = jsonObj.getAsJsonArray("Images"); + if (jsonArrayimages != null) { + // ensure the json data is an array + if (!jsonObj.get("Images").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Images` to be an array in the JSON string but got `%s`", jsonObj.get("Images").toString())); + } + + // validate the optional field `Images` (array) + for (int i = 0; i < jsonArrayimages.size(); i++) { + RemoteImageInfo.validateJsonElement(jsonArrayimages.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("Providers") != null && !jsonObj.get("Providers").isJsonNull() && !jsonObj.get("Providers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Providers` to be an array in the JSON string but got `%s`", jsonObj.get("Providers").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteImageResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteImageResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteImageResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteImageResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteImageResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteImageResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteImageResult + * @throws IOException if the JSON string is invalid with respect to RemoteImageResult + */ + public static RemoteImageResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteImageResult.class); + } + + /** + * Convert an instance of RemoteImageResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSearchResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSearchResult.java new file mode 100644 index 0000000000000..40b9e44b4911c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSearchResult.java @@ -0,0 +1,563 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RemoteSearchResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteSearchResult { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_INDEX_NUMBER_END = "IndexNumberEnd"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER_END) + @javax.annotation.Nullable + private Integer indexNumberEnd; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IMAGE_URL = "ImageUrl"; + @SerializedName(SERIALIZED_NAME_IMAGE_URL) + @javax.annotation.Nullable + private String imageUrl; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private RemoteSearchResult albumArtist; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public RemoteSearchResult() { + } + + public RemoteSearchResult name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RemoteSearchResult providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public RemoteSearchResult putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public RemoteSearchResult productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public RemoteSearchResult indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public RemoteSearchResult indexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + return this; + } + + /** + * Get indexNumberEnd + * @return indexNumberEnd + */ + @javax.annotation.Nullable + public Integer getIndexNumberEnd() { + return indexNumberEnd; + } + + public void setIndexNumberEnd(@javax.annotation.Nullable Integer indexNumberEnd) { + this.indexNumberEnd = indexNumberEnd; + } + + + public RemoteSearchResult parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public RemoteSearchResult premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public RemoteSearchResult imageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + /** + * Get imageUrl + * @return imageUrl + */ + @javax.annotation.Nullable + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(@javax.annotation.Nullable String imageUrl) { + this.imageUrl = imageUrl; + } + + + public RemoteSearchResult searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Get searchProviderName + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public RemoteSearchResult overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Get overview + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public RemoteSearchResult albumArtist(@javax.annotation.Nullable RemoteSearchResult albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Get albumArtist + * @return albumArtist + */ + @javax.annotation.Nullable + public RemoteSearchResult getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable RemoteSearchResult albumArtist) { + this.albumArtist = albumArtist; + } + + + public RemoteSearchResult artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public RemoteSearchResult addArtistsItem(RemoteSearchResult artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteSearchResult remoteSearchResult = (RemoteSearchResult) o; + return Objects.equals(this.name, remoteSearchResult.name) && + Objects.equals(this.providerIds, remoteSearchResult.providerIds) && + Objects.equals(this.productionYear, remoteSearchResult.productionYear) && + Objects.equals(this.indexNumber, remoteSearchResult.indexNumber) && + Objects.equals(this.indexNumberEnd, remoteSearchResult.indexNumberEnd) && + Objects.equals(this.parentIndexNumber, remoteSearchResult.parentIndexNumber) && + Objects.equals(this.premiereDate, remoteSearchResult.premiereDate) && + Objects.equals(this.imageUrl, remoteSearchResult.imageUrl) && + Objects.equals(this.searchProviderName, remoteSearchResult.searchProviderName) && + Objects.equals(this.overview, remoteSearchResult.overview) && + Objects.equals(this.albumArtist, remoteSearchResult.albumArtist) && + Objects.equals(this.artists, remoteSearchResult.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, providerIds, productionYear, indexNumber, indexNumberEnd, parentIndexNumber, premiereDate, imageUrl, searchProviderName, overview, albumArtist, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteSearchResult {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" indexNumberEnd: ").append(toIndentedString(indexNumberEnd)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" imageUrl: ").append(toIndentedString(imageUrl)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ProviderIds"); + openapiFields.add("ProductionYear"); + openapiFields.add("IndexNumber"); + openapiFields.add("IndexNumberEnd"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("ImageUrl"); + openapiFields.add("SearchProviderName"); + openapiFields.add("Overview"); + openapiFields.add("AlbumArtist"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteSearchResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteSearchResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteSearchResult is not found in the empty JSON string", RemoteSearchResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteSearchResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteSearchResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ImageUrl") != null && !jsonObj.get("ImageUrl").isJsonNull()) && !jsonObj.get("ImageUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ImageUrl").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + // validate the optional field `AlbumArtist` + if (jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) { + RemoteSearchResult.validateJsonElement(jsonObj.get("AlbumArtist")); + } + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull()) { + JsonArray jsonArrayartists = jsonObj.getAsJsonArray("Artists"); + if (jsonArrayartists != null) { + // ensure the json data is an array + if (!jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + + // validate the optional field `Artists` (array) + for (int i = 0; i < jsonArrayartists.size(); i++) { + RemoteSearchResult.validateJsonElement(jsonArrayartists.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteSearchResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteSearchResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteSearchResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteSearchResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteSearchResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteSearchResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteSearchResult + * @throws IOException if the JSON string is invalid with respect to RemoteSearchResult + */ + public static RemoteSearchResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteSearchResult.class); + } + + /** + * Convert an instance of RemoteSearchResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java new file mode 100644 index 0000000000000..3b694ac28dff6 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoteSubtitleInfo.java @@ -0,0 +1,507 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * RemoteSubtitleInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoteSubtitleInfo { + public static final String SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME = "ThreeLetterISOLanguageName"; + @SerializedName(SERIALIZED_NAME_THREE_LETTER_I_S_O_LANGUAGE_NAME) + @javax.annotation.Nullable + private String threeLetterISOLanguageName; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PROVIDER_NAME = "ProviderName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_NAME) + @javax.annotation.Nullable + private String providerName; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable + private String format; + + public static final String SERIALIZED_NAME_AUTHOR = "Author"; + @SerializedName(SERIALIZED_NAME_AUTHOR) + @javax.annotation.Nullable + private String author; + + public static final String SERIALIZED_NAME_COMMENT = "Comment"; + @SerializedName(SERIALIZED_NAME_COMMENT) + @javax.annotation.Nullable + private String comment; + + public static final String SERIALIZED_NAME_DATE_CREATED = "DateCreated"; + @SerializedName(SERIALIZED_NAME_DATE_CREATED) + @javax.annotation.Nullable + private OffsetDateTime dateCreated; + + public static final String SERIALIZED_NAME_COMMUNITY_RATING = "CommunityRating"; + @SerializedName(SERIALIZED_NAME_COMMUNITY_RATING) + @javax.annotation.Nullable + private Float communityRating; + + public static final String SERIALIZED_NAME_DOWNLOAD_COUNT = "DownloadCount"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_COUNT) + @javax.annotation.Nullable + private Integer downloadCount; + + public static final String SERIALIZED_NAME_IS_HASH_MATCH = "IsHashMatch"; + @SerializedName(SERIALIZED_NAME_IS_HASH_MATCH) + @javax.annotation.Nullable + private Boolean isHashMatch; + + public RemoteSubtitleInfo() { + } + + public RemoteSubtitleInfo threeLetterISOLanguageName(@javax.annotation.Nullable String threeLetterISOLanguageName) { + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + return this; + } + + /** + * Get threeLetterISOLanguageName + * @return threeLetterISOLanguageName + */ + @javax.annotation.Nullable + public String getThreeLetterISOLanguageName() { + return threeLetterISOLanguageName; + } + + public void setThreeLetterISOLanguageName(@javax.annotation.Nullable String threeLetterISOLanguageName) { + this.threeLetterISOLanguageName = threeLetterISOLanguageName; + } + + + public RemoteSubtitleInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public RemoteSubtitleInfo providerName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + return this; + } + + /** + * Get providerName + * @return providerName + */ + @javax.annotation.Nullable + public String getProviderName() { + return providerName; + } + + public void setProviderName(@javax.annotation.Nullable String providerName) { + this.providerName = providerName; + } + + + public RemoteSubtitleInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RemoteSubtitleInfo format(@javax.annotation.Nullable String format) { + this.format = format; + return this; + } + + /** + * Get format + * @return format + */ + @javax.annotation.Nullable + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nullable String format) { + this.format = format; + } + + + public RemoteSubtitleInfo author(@javax.annotation.Nullable String author) { + this.author = author; + return this; + } + + /** + * Get author + * @return author + */ + @javax.annotation.Nullable + public String getAuthor() { + return author; + } + + public void setAuthor(@javax.annotation.Nullable String author) { + this.author = author; + } + + + public RemoteSubtitleInfo comment(@javax.annotation.Nullable String comment) { + this.comment = comment; + return this; + } + + /** + * Get comment + * @return comment + */ + @javax.annotation.Nullable + public String getComment() { + return comment; + } + + public void setComment(@javax.annotation.Nullable String comment) { + this.comment = comment; + } + + + public RemoteSubtitleInfo dateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Get dateCreated + * @return dateCreated + */ + @javax.annotation.Nullable + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(@javax.annotation.Nullable OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + + public RemoteSubtitleInfo communityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + return this; + } + + /** + * Get communityRating + * @return communityRating + */ + @javax.annotation.Nullable + public Float getCommunityRating() { + return communityRating; + } + + public void setCommunityRating(@javax.annotation.Nullable Float communityRating) { + this.communityRating = communityRating; + } + + + public RemoteSubtitleInfo downloadCount(@javax.annotation.Nullable Integer downloadCount) { + this.downloadCount = downloadCount; + return this; + } + + /** + * Get downloadCount + * @return downloadCount + */ + @javax.annotation.Nullable + public Integer getDownloadCount() { + return downloadCount; + } + + public void setDownloadCount(@javax.annotation.Nullable Integer downloadCount) { + this.downloadCount = downloadCount; + } + + + public RemoteSubtitleInfo isHashMatch(@javax.annotation.Nullable Boolean isHashMatch) { + this.isHashMatch = isHashMatch; + return this; + } + + /** + * Get isHashMatch + * @return isHashMatch + */ + @javax.annotation.Nullable + public Boolean getIsHashMatch() { + return isHashMatch; + } + + public void setIsHashMatch(@javax.annotation.Nullable Boolean isHashMatch) { + this.isHashMatch = isHashMatch; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoteSubtitleInfo remoteSubtitleInfo = (RemoteSubtitleInfo) o; + return Objects.equals(this.threeLetterISOLanguageName, remoteSubtitleInfo.threeLetterISOLanguageName) && + Objects.equals(this.id, remoteSubtitleInfo.id) && + Objects.equals(this.providerName, remoteSubtitleInfo.providerName) && + Objects.equals(this.name, remoteSubtitleInfo.name) && + Objects.equals(this.format, remoteSubtitleInfo.format) && + Objects.equals(this.author, remoteSubtitleInfo.author) && + Objects.equals(this.comment, remoteSubtitleInfo.comment) && + Objects.equals(this.dateCreated, remoteSubtitleInfo.dateCreated) && + Objects.equals(this.communityRating, remoteSubtitleInfo.communityRating) && + Objects.equals(this.downloadCount, remoteSubtitleInfo.downloadCount) && + Objects.equals(this.isHashMatch, remoteSubtitleInfo.isHashMatch); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(threeLetterISOLanguageName, id, providerName, name, format, author, comment, dateCreated, communityRating, downloadCount, isHashMatch); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoteSubtitleInfo {\n"); + sb.append(" threeLetterISOLanguageName: ").append(toIndentedString(threeLetterISOLanguageName)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" providerName: ").append(toIndentedString(providerName)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" author: ").append(toIndentedString(author)).append("\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" dateCreated: ").append(toIndentedString(dateCreated)).append("\n"); + sb.append(" communityRating: ").append(toIndentedString(communityRating)).append("\n"); + sb.append(" downloadCount: ").append(toIndentedString(downloadCount)).append("\n"); + sb.append(" isHashMatch: ").append(toIndentedString(isHashMatch)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ThreeLetterISOLanguageName"); + openapiFields.add("Id"); + openapiFields.add("ProviderName"); + openapiFields.add("Name"); + openapiFields.add("Format"); + openapiFields.add("Author"); + openapiFields.add("Comment"); + openapiFields.add("DateCreated"); + openapiFields.add("CommunityRating"); + openapiFields.add("DownloadCount"); + openapiFields.add("IsHashMatch"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoteSubtitleInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoteSubtitleInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoteSubtitleInfo is not found in the empty JSON string", RemoteSubtitleInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoteSubtitleInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoteSubtitleInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ThreeLetterISOLanguageName") != null && !jsonObj.get("ThreeLetterISOLanguageName").isJsonNull()) && !jsonObj.get("ThreeLetterISOLanguageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThreeLetterISOLanguageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThreeLetterISOLanguageName").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ProviderName") != null && !jsonObj.get("ProviderName").isJsonNull()) && !jsonObj.get("ProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderName").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) && !jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + if ((jsonObj.get("Author") != null && !jsonObj.get("Author").isJsonNull()) && !jsonObj.get("Author").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Author` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Author").toString())); + } + if ((jsonObj.get("Comment") != null && !jsonObj.get("Comment").isJsonNull()) && !jsonObj.get("Comment").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Comment` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Comment").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoteSubtitleInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoteSubtitleInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoteSubtitleInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoteSubtitleInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoteSubtitleInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoteSubtitleInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoteSubtitleInfo + * @throws IOException if the JSON string is invalid with respect to RemoteSubtitleInfo + */ + public static RemoteSubtitleInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoteSubtitleInfo.class); + } + + /** + * Convert an instance of RemoteSubtitleInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java new file mode 100644 index 0000000000000..6f1f6ddac82e3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RemoveFromPlaylistRequestDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RemoveFromPlaylistRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RemoveFromPlaylistRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_IDS = "PlaylistItemIds"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_IDS) + @javax.annotation.Nullable + private List playlistItemIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CLEAR_PLAYLIST = "ClearPlaylist"; + @SerializedName(SERIALIZED_NAME_CLEAR_PLAYLIST) + @javax.annotation.Nullable + private Boolean clearPlaylist; + + public static final String SERIALIZED_NAME_CLEAR_PLAYING_ITEM = "ClearPlayingItem"; + @SerializedName(SERIALIZED_NAME_CLEAR_PLAYING_ITEM) + @javax.annotation.Nullable + private Boolean clearPlayingItem; + + public RemoveFromPlaylistRequestDto() { + } + + public RemoveFromPlaylistRequestDto playlistItemIds(@javax.annotation.Nullable List playlistItemIds) { + this.playlistItemIds = playlistItemIds; + return this; + } + + public RemoveFromPlaylistRequestDto addPlaylistItemIdsItem(UUID playlistItemIdsItem) { + if (this.playlistItemIds == null) { + this.playlistItemIds = new ArrayList<>(); + } + this.playlistItemIds.add(playlistItemIdsItem); + return this; + } + + /** + * Gets or sets the playlist identifiers ot the items. Ignored when clearing the playlist. + * @return playlistItemIds + */ + @javax.annotation.Nullable + public List getPlaylistItemIds() { + return playlistItemIds; + } + + public void setPlaylistItemIds(@javax.annotation.Nullable List playlistItemIds) { + this.playlistItemIds = playlistItemIds; + } + + + public RemoveFromPlaylistRequestDto clearPlaylist(@javax.annotation.Nullable Boolean clearPlaylist) { + this.clearPlaylist = clearPlaylist; + return this; + } + + /** + * Gets or sets a value indicating whether the entire playlist should be cleared. + * @return clearPlaylist + */ + @javax.annotation.Nullable + public Boolean getClearPlaylist() { + return clearPlaylist; + } + + public void setClearPlaylist(@javax.annotation.Nullable Boolean clearPlaylist) { + this.clearPlaylist = clearPlaylist; + } + + + public RemoveFromPlaylistRequestDto clearPlayingItem(@javax.annotation.Nullable Boolean clearPlayingItem) { + this.clearPlayingItem = clearPlayingItem; + return this; + } + + /** + * Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. + * @return clearPlayingItem + */ + @javax.annotation.Nullable + public Boolean getClearPlayingItem() { + return clearPlayingItem; + } + + public void setClearPlayingItem(@javax.annotation.Nullable Boolean clearPlayingItem) { + this.clearPlayingItem = clearPlayingItem; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveFromPlaylistRequestDto removeFromPlaylistRequestDto = (RemoveFromPlaylistRequestDto) o; + return Objects.equals(this.playlistItemIds, removeFromPlaylistRequestDto.playlistItemIds) && + Objects.equals(this.clearPlaylist, removeFromPlaylistRequestDto.clearPlaylist) && + Objects.equals(this.clearPlayingItem, removeFromPlaylistRequestDto.clearPlayingItem); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemIds, clearPlaylist, clearPlayingItem); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RemoveFromPlaylistRequestDto {\n"); + sb.append(" playlistItemIds: ").append(toIndentedString(playlistItemIds)).append("\n"); + sb.append(" clearPlaylist: ").append(toIndentedString(clearPlaylist)).append("\n"); + sb.append(" clearPlayingItem: ").append(toIndentedString(clearPlayingItem)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemIds"); + openapiFields.add("ClearPlaylist"); + openapiFields.add("ClearPlayingItem"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RemoveFromPlaylistRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RemoveFromPlaylistRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RemoveFromPlaylistRequestDto is not found in the empty JSON string", RemoveFromPlaylistRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RemoveFromPlaylistRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RemoveFromPlaylistRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("PlaylistItemIds") != null && !jsonObj.get("PlaylistItemIds").isJsonNull() && !jsonObj.get("PlaylistItemIds").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemIds` to be an array in the JSON string but got `%s`", jsonObj.get("PlaylistItemIds").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RemoveFromPlaylistRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RemoveFromPlaylistRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RemoveFromPlaylistRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RemoveFromPlaylistRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RemoveFromPlaylistRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RemoveFromPlaylistRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of RemoveFromPlaylistRequestDto + * @throws IOException if the JSON string is invalid with respect to RemoveFromPlaylistRequestDto + */ + public static RemoveFromPlaylistRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RemoveFromPlaylistRequestDto.class); + } + + /** + * Convert an instance of RemoveFromPlaylistRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepeatMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepeatMode.java new file mode 100644 index 0000000000000..ae1cf9033e63e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepeatMode.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets RepeatMode + */ +@JsonAdapter(RepeatMode.Adapter.class) +public enum RepeatMode { + + REPEAT_NONE("RepeatNone"), + + REPEAT_ALL("RepeatAll"), + + REPEAT_ONE("RepeatOne"); + + private String value; + + RepeatMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RepeatMode fromValue(String value) { + for (RepeatMode b : RepeatMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RepeatMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RepeatMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RepeatMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RepeatMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepositoryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepositoryInfo.java new file mode 100644 index 0000000000000..b835fc244c513 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/RepositoryInfo.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class RepositoryInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class RepositoryInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_ENABLED = "Enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public RepositoryInfo() { + } + + public RepositoryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public RepositoryInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Gets or sets the URL. + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public RepositoryInfo enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Gets or sets a value indicating whether the repository is enabled. + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RepositoryInfo repositoryInfo = (RepositoryInfo) o; + return Objects.equals(this.name, repositoryInfo.name) && + Objects.equals(this.url, repositoryInfo.url) && + Objects.equals(this.enabled, repositoryInfo.enabled); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, url, enabled); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RepositoryInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Url"); + openapiFields.add("Enabled"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RepositoryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RepositoryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RepositoryInfo is not found in the empty JSON string", RepositoryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RepositoryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RepositoryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RepositoryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RepositoryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RepositoryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RepositoryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RepositoryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RepositoryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RepositoryInfo + * @throws IOException if the JSON string is invalid with respect to RepositoryInfo + */ + public static RepositoryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RepositoryInfo.class); + } + + /** + * Convert an instance of RepositoryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ResponseProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ResponseProfile.java new file mode 100644 index 0000000000000..2313fd4f2c26c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ResponseProfile.java @@ -0,0 +1,422 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * ResponseProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ResponseProfile { + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public static final String SERIALIZED_NAME_ORG_PN = "OrgPn"; + @SerializedName(SERIALIZED_NAME_ORG_PN) + @javax.annotation.Nullable + private String orgPn; + + public static final String SERIALIZED_NAME_MIME_TYPE = "MimeType"; + @SerializedName(SERIALIZED_NAME_MIME_TYPE) + @javax.annotation.Nullable + private String mimeType; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions; + + public ResponseProfile() { + } + + public ResponseProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public ResponseProfile audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Get audioCodec + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public ResponseProfile videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Get videoCodec + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public ResponseProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + public ResponseProfile orgPn(@javax.annotation.Nullable String orgPn) { + this.orgPn = orgPn; + return this; + } + + /** + * Get orgPn + * @return orgPn + */ + @javax.annotation.Nullable + public String getOrgPn() { + return orgPn; + } + + public void setOrgPn(@javax.annotation.Nullable String orgPn) { + this.orgPn = orgPn; + } + + + public ResponseProfile mimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + return this; + } + + /** + * Get mimeType + * @return mimeType + */ + @javax.annotation.Nullable + public String getMimeType() { + return mimeType; + } + + public void setMimeType(@javax.annotation.Nullable String mimeType) { + this.mimeType = mimeType; + } + + + public ResponseProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public ResponseProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Get conditions + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResponseProfile responseProfile = (ResponseProfile) o; + return Objects.equals(this.container, responseProfile.container) && + Objects.equals(this.audioCodec, responseProfile.audioCodec) && + Objects.equals(this.videoCodec, responseProfile.videoCodec) && + Objects.equals(this.type, responseProfile.type) && + Objects.equals(this.orgPn, responseProfile.orgPn) && + Objects.equals(this.mimeType, responseProfile.mimeType) && + Objects.equals(this.conditions, responseProfile.conditions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(container, audioCodec, videoCodec, type, orgPn, mimeType, conditions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResponseProfile {\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" orgPn: ").append(toIndentedString(orgPn)).append("\n"); + sb.append(" mimeType: ").append(toIndentedString(mimeType)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Container"); + openapiFields.add("AudioCodec"); + openapiFields.add("VideoCodec"); + openapiFields.add("Type"); + openapiFields.add("OrgPn"); + openapiFields.add("MimeType"); + openapiFields.add("Conditions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ResponseProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ResponseProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ResponseProfile is not found in the empty JSON string", ResponseProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ResponseProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ResponseProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("OrgPn") != null && !jsonObj.get("OrgPn").isJsonNull()) && !jsonObj.get("OrgPn").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OrgPn` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OrgPn").toString())); + } + if ((jsonObj.get("MimeType") != null && !jsonObj.get("MimeType").isJsonNull()) && !jsonObj.get("MimeType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MimeType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MimeType").toString())); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ResponseProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ResponseProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ResponseProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ResponseProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ResponseProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ResponseProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of ResponseProfile + * @throws IOException if the JSON string is invalid with respect to ResponseProfile + */ + public static ResponseProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ResponseProfile.class); + } + + /** + * Convert an instance of ResponseProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ScrollDirection.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ScrollDirection.java new file mode 100644 index 0000000000000..02df75c6146d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ScrollDirection.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the axis that should be scrolled. + */ +@JsonAdapter(ScrollDirection.Adapter.class) +public enum ScrollDirection { + + HORIZONTAL("Horizontal"), + + VERTICAL("Vertical"); + + private String value; + + ScrollDirection(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScrollDirection fromValue(String value) { + for (ScrollDirection b : ScrollDirection.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ScrollDirection enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScrollDirection read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScrollDirection.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ScrollDirection.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHint.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHint.java new file mode 100644 index 0000000000000..b8170120fbb2d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHint.java @@ -0,0 +1,1041 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SearchHintResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SearchHint { + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_MATCHED_TERM = "MatchedTerm"; + @SerializedName(SERIALIZED_NAME_MATCHED_TERM) + @javax.annotation.Nullable + private String matchedTerm; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PRODUCTION_YEAR = "ProductionYear"; + @SerializedName(SERIALIZED_NAME_PRODUCTION_YEAR) + @javax.annotation.Nullable + private Integer productionYear; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_THUMB_IMAGE_TAG = "ThumbImageTag"; + @SerializedName(SERIALIZED_NAME_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String thumbImageTag; + + public static final String SERIALIZED_NAME_THUMB_IMAGE_ITEM_ID = "ThumbImageItemId"; + @SerializedName(SERIALIZED_NAME_THUMB_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String thumbImageItemId; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_TAG = "BackdropImageTag"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_TAG) + @javax.annotation.Nullable + private String backdropImageTag; + + public static final String SERIALIZED_NAME_BACKDROP_IMAGE_ITEM_ID = "BackdropImageItemId"; + @SerializedName(SERIALIZED_NAME_BACKDROP_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String backdropImageItemId; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_IS_FOLDER = "IsFolder"; + @SerializedName(SERIALIZED_NAME_IS_FOLDER) + @javax.annotation.Nullable + private Boolean isFolder; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_MEDIA_TYPE = "MediaType"; + @SerializedName(SERIALIZED_NAME_MEDIA_TYPE) + @javax.annotation.Nullable + private String mediaType; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERIES = "Series"; + @SerializedName(SERIALIZED_NAME_SERIES) + @javax.annotation.Nullable + private String series; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_ALBUM_ID = "AlbumId"; + @SerializedName(SERIALIZED_NAME_ALBUM_ID) + @javax.annotation.Nullable + private UUID albumId; + + public static final String SERIALIZED_NAME_ALBUM_ARTIST = "AlbumArtist"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTIST) + @javax.annotation.Nullable + private String albumArtist; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public static final String SERIALIZED_NAME_SONG_COUNT = "SongCount"; + @SerializedName(SERIALIZED_NAME_SONG_COUNT) + @javax.annotation.Nullable + private Integer songCount; + + public static final String SERIALIZED_NAME_EPISODE_COUNT = "EpisodeCount"; + @SerializedName(SERIALIZED_NAME_EPISODE_COUNT) + @javax.annotation.Nullable + private Integer episodeCount; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public SearchHint() { + } + + public SearchHint itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item id. + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public SearchHint id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public SearchHint name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SearchHint matchedTerm(@javax.annotation.Nullable String matchedTerm) { + this.matchedTerm = matchedTerm; + return this; + } + + /** + * Gets or sets the matched term. + * @return matchedTerm + */ + @javax.annotation.Nullable + public String getMatchedTerm() { + return matchedTerm; + } + + public void setMatchedTerm(@javax.annotation.Nullable String matchedTerm) { + this.matchedTerm = matchedTerm; + } + + + public SearchHint indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Gets or sets the index number. + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SearchHint productionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + return this; + } + + /** + * Gets or sets the production year. + * @return productionYear + */ + @javax.annotation.Nullable + public Integer getProductionYear() { + return productionYear; + } + + public void setProductionYear(@javax.annotation.Nullable Integer productionYear) { + this.productionYear = productionYear; + } + + + public SearchHint parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Gets or sets the parent index number. + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SearchHint primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public SearchHint thumbImageTag(@javax.annotation.Nullable String thumbImageTag) { + this.thumbImageTag = thumbImageTag; + return this; + } + + /** + * Gets or sets the thumb image tag. + * @return thumbImageTag + */ + @javax.annotation.Nullable + public String getThumbImageTag() { + return thumbImageTag; + } + + public void setThumbImageTag(@javax.annotation.Nullable String thumbImageTag) { + this.thumbImageTag = thumbImageTag; + } + + + public SearchHint thumbImageItemId(@javax.annotation.Nullable String thumbImageItemId) { + this.thumbImageItemId = thumbImageItemId; + return this; + } + + /** + * Gets or sets the thumb image item identifier. + * @return thumbImageItemId + */ + @javax.annotation.Nullable + public String getThumbImageItemId() { + return thumbImageItemId; + } + + public void setThumbImageItemId(@javax.annotation.Nullable String thumbImageItemId) { + this.thumbImageItemId = thumbImageItemId; + } + + + public SearchHint backdropImageTag(@javax.annotation.Nullable String backdropImageTag) { + this.backdropImageTag = backdropImageTag; + return this; + } + + /** + * Gets or sets the backdrop image tag. + * @return backdropImageTag + */ + @javax.annotation.Nullable + public String getBackdropImageTag() { + return backdropImageTag; + } + + public void setBackdropImageTag(@javax.annotation.Nullable String backdropImageTag) { + this.backdropImageTag = backdropImageTag; + } + + + public SearchHint backdropImageItemId(@javax.annotation.Nullable String backdropImageItemId) { + this.backdropImageItemId = backdropImageItemId; + return this; + } + + /** + * Gets or sets the backdrop image item identifier. + * @return backdropImageItemId + */ + @javax.annotation.Nullable + public String getBackdropImageItemId() { + return backdropImageItemId; + } + + public void setBackdropImageItemId(@javax.annotation.Nullable String backdropImageItemId) { + this.backdropImageItemId = backdropImageItemId; + } + + + public SearchHint type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public SearchHint isFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + return this; + } + + /** + * Get isFolder + * @return isFolder + */ + @javax.annotation.Nullable + public Boolean getIsFolder() { + return isFolder; + } + + public void setIsFolder(@javax.annotation.Nullable Boolean isFolder) { + this.isFolder = isFolder; + } + + + public SearchHint runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public SearchHint mediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + return this; + } + + /** + * Gets or sets the type of the media. + * @return mediaType + */ + @javax.annotation.Nullable + public String getMediaType() { + return mediaType; + } + + public void setMediaType(@javax.annotation.Nullable String mediaType) { + this.mediaType = mediaType; + } + + + public SearchHint startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Get startDate + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public SearchHint endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Get endDate + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public SearchHint series(@javax.annotation.Nullable String series) { + this.series = series; + return this; + } + + /** + * Gets or sets the series. + * @return series + */ + @javax.annotation.Nullable + public String getSeries() { + return series; + } + + public void setSeries(@javax.annotation.Nullable String series) { + this.series = series; + } + + + public SearchHint status(@javax.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + */ + @javax.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable String status) { + this.status = status; + } + + + public SearchHint album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Gets or sets the album. + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public SearchHint albumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + return this; + } + + /** + * Get albumId + * @return albumId + */ + @javax.annotation.Nullable + public UUID getAlbumId() { + return albumId; + } + + public void setAlbumId(@javax.annotation.Nullable UUID albumId) { + this.albumId = albumId; + } + + + public SearchHint albumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + return this; + } + + /** + * Gets or sets the album artist. + * @return albumArtist + */ + @javax.annotation.Nullable + public String getAlbumArtist() { + return albumArtist; + } + + public void setAlbumArtist(@javax.annotation.Nullable String albumArtist) { + this.albumArtist = albumArtist; + } + + + public SearchHint artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public SearchHint addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Gets or sets the artists. + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + public SearchHint songCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + return this; + } + + /** + * Gets or sets the song count. + * @return songCount + */ + @javax.annotation.Nullable + public Integer getSongCount() { + return songCount; + } + + public void setSongCount(@javax.annotation.Nullable Integer songCount) { + this.songCount = songCount; + } + + + public SearchHint episodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + return this; + } + + /** + * Gets or sets the episode count. + * @return episodeCount + */ + @javax.annotation.Nullable + public Integer getEpisodeCount() { + return episodeCount; + } + + public void setEpisodeCount(@javax.annotation.Nullable Integer episodeCount) { + this.episodeCount = episodeCount; + } + + + public SearchHint channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel identifier. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public SearchHint channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the name of the channel. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public SearchHint primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchHint searchHint = (SearchHint) o; + return Objects.equals(this.itemId, searchHint.itemId) && + Objects.equals(this.id, searchHint.id) && + Objects.equals(this.name, searchHint.name) && + Objects.equals(this.matchedTerm, searchHint.matchedTerm) && + Objects.equals(this.indexNumber, searchHint.indexNumber) && + Objects.equals(this.productionYear, searchHint.productionYear) && + Objects.equals(this.parentIndexNumber, searchHint.parentIndexNumber) && + Objects.equals(this.primaryImageTag, searchHint.primaryImageTag) && + Objects.equals(this.thumbImageTag, searchHint.thumbImageTag) && + Objects.equals(this.thumbImageItemId, searchHint.thumbImageItemId) && + Objects.equals(this.backdropImageTag, searchHint.backdropImageTag) && + Objects.equals(this.backdropImageItemId, searchHint.backdropImageItemId) && + Objects.equals(this.type, searchHint.type) && + Objects.equals(this.isFolder, searchHint.isFolder) && + Objects.equals(this.runTimeTicks, searchHint.runTimeTicks) && + Objects.equals(this.mediaType, searchHint.mediaType) && + Objects.equals(this.startDate, searchHint.startDate) && + Objects.equals(this.endDate, searchHint.endDate) && + Objects.equals(this.series, searchHint.series) && + Objects.equals(this.status, searchHint.status) && + Objects.equals(this.album, searchHint.album) && + Objects.equals(this.albumId, searchHint.albumId) && + Objects.equals(this.albumArtist, searchHint.albumArtist) && + Objects.equals(this.artists, searchHint.artists) && + Objects.equals(this.songCount, searchHint.songCount) && + Objects.equals(this.episodeCount, searchHint.episodeCount) && + Objects.equals(this.channelId, searchHint.channelId) && + Objects.equals(this.channelName, searchHint.channelName) && + Objects.equals(this.primaryImageAspectRatio, searchHint.primaryImageAspectRatio); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(itemId, id, name, matchedTerm, indexNumber, productionYear, parentIndexNumber, primaryImageTag, thumbImageTag, thumbImageItemId, backdropImageTag, backdropImageItemId, type, isFolder, runTimeTicks, mediaType, startDate, endDate, series, status, album, albumId, albumArtist, artists, songCount, episodeCount, channelId, channelName, primaryImageAspectRatio); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchHint {\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" matchedTerm: ").append(toIndentedString(matchedTerm)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" productionYear: ").append(toIndentedString(productionYear)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" thumbImageTag: ").append(toIndentedString(thumbImageTag)).append("\n"); + sb.append(" thumbImageItemId: ").append(toIndentedString(thumbImageItemId)).append("\n"); + sb.append(" backdropImageTag: ").append(toIndentedString(backdropImageTag)).append("\n"); + sb.append(" backdropImageItemId: ").append(toIndentedString(backdropImageItemId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" isFolder: ").append(toIndentedString(isFolder)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" mediaType: ").append(toIndentedString(mediaType)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" series: ").append(toIndentedString(series)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" albumId: ").append(toIndentedString(albumId)).append("\n"); + sb.append(" albumArtist: ").append(toIndentedString(albumArtist)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append(" songCount: ").append(toIndentedString(songCount)).append("\n"); + sb.append(" episodeCount: ").append(toIndentedString(episodeCount)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ItemId"); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("MatchedTerm"); + openapiFields.add("IndexNumber"); + openapiFields.add("ProductionYear"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("ThumbImageTag"); + openapiFields.add("ThumbImageItemId"); + openapiFields.add("BackdropImageTag"); + openapiFields.add("BackdropImageItemId"); + openapiFields.add("Type"); + openapiFields.add("IsFolder"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("MediaType"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("Series"); + openapiFields.add("Status"); + openapiFields.add("Album"); + openapiFields.add("AlbumId"); + openapiFields.add("AlbumArtist"); + openapiFields.add("Artists"); + openapiFields.add("SongCount"); + openapiFields.add("EpisodeCount"); + openapiFields.add("ChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("PrimaryImageAspectRatio"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SearchHint + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SearchHint.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SearchHint is not found in the empty JSON string", SearchHint.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SearchHint.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SearchHint` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("MatchedTerm") != null && !jsonObj.get("MatchedTerm").isJsonNull()) && !jsonObj.get("MatchedTerm").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MatchedTerm` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MatchedTerm").toString())); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + if ((jsonObj.get("ThumbImageTag") != null && !jsonObj.get("ThumbImageTag").isJsonNull()) && !jsonObj.get("ThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbImageTag").toString())); + } + if ((jsonObj.get("ThumbImageItemId") != null && !jsonObj.get("ThumbImageItemId").isJsonNull()) && !jsonObj.get("ThumbImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ThumbImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ThumbImageItemId").toString())); + } + if ((jsonObj.get("BackdropImageTag") != null && !jsonObj.get("BackdropImageTag").isJsonNull()) && !jsonObj.get("BackdropImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BackdropImageTag").toString())); + } + if ((jsonObj.get("BackdropImageItemId") != null && !jsonObj.get("BackdropImageItemId").isJsonNull()) && !jsonObj.get("BackdropImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `BackdropImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("BackdropImageItemId").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("MediaType") != null && !jsonObj.get("MediaType").isJsonNull()) && !jsonObj.get("MediaType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MediaType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MediaType").toString())); + } + if ((jsonObj.get("Series") != null && !jsonObj.get("Series").isJsonNull()) && !jsonObj.get("Series").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Series` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Series").toString())); + } + if ((jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) && !jsonObj.get("Status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Status").toString())); + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + if ((jsonObj.get("AlbumId") != null && !jsonObj.get("AlbumId").isJsonNull()) && !jsonObj.get("AlbumId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumId").toString())); + } + if ((jsonObj.get("AlbumArtist") != null && !jsonObj.get("AlbumArtist").isJsonNull()) && !jsonObj.get("AlbumArtist").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtist` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AlbumArtist").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SearchHint.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SearchHint' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SearchHint.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SearchHint value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SearchHint read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SearchHint given an JSON string + * + * @param jsonString JSON string + * @return An instance of SearchHint + * @throws IOException if the JSON string is invalid with respect to SearchHint + */ + public static SearchHint fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SearchHint.class); + } + + /** + * Convert an instance of SearchHint to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHintResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHintResult.java new file mode 100644 index 0000000000000..6aa47bfee7054 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SearchHintResult.java @@ -0,0 +1,255 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SearchHint; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SearchHintResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SearchHintResult { + public static final String SERIALIZED_NAME_SEARCH_HINTS = "SearchHints"; + @SerializedName(SERIALIZED_NAME_SEARCH_HINTS) + @javax.annotation.Nullable + private List searchHints = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public SearchHintResult() { + } + + public SearchHintResult searchHints(@javax.annotation.Nullable List searchHints) { + this.searchHints = searchHints; + return this; + } + + public SearchHintResult addSearchHintsItem(SearchHint searchHintsItem) { + if (this.searchHints == null) { + this.searchHints = new ArrayList<>(); + } + this.searchHints.add(searchHintsItem); + return this; + } + + /** + * Gets the search hints. + * @return searchHints + */ + @javax.annotation.Nullable + public List getSearchHints() { + return searchHints; + } + + public void setSearchHints(@javax.annotation.Nullable List searchHints) { + this.searchHints = searchHints; + } + + + public SearchHintResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets the total record count. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchHintResult searchHintResult = (SearchHintResult) o; + return Objects.equals(this.searchHints, searchHintResult.searchHints) && + Objects.equals(this.totalRecordCount, searchHintResult.totalRecordCount); + } + + @Override + public int hashCode() { + return Objects.hash(searchHints, totalRecordCount); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SearchHintResult {\n"); + sb.append(" searchHints: ").append(toIndentedString(searchHints)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchHints"); + openapiFields.add("TotalRecordCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SearchHintResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SearchHintResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SearchHintResult is not found in the empty JSON string", SearchHintResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SearchHintResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SearchHintResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("SearchHints") != null && !jsonObj.get("SearchHints").isJsonNull()) { + JsonArray jsonArraysearchHints = jsonObj.getAsJsonArray("SearchHints"); + if (jsonArraysearchHints != null) { + // ensure the json data is an array + if (!jsonObj.get("SearchHints").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchHints` to be an array in the JSON string but got `%s`", jsonObj.get("SearchHints").toString())); + } + + // validate the optional field `SearchHints` (array) + for (int i = 0; i < jsonArraysearchHints.size(); i++) { + SearchHint.validateJsonElement(jsonArraysearchHints.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SearchHintResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SearchHintResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SearchHintResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SearchHintResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SearchHintResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SearchHintResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SearchHintResult + * @throws IOException if the JSON string is invalid with respect to SearchHintResult + */ + public static SearchHintResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SearchHintResult.class); + } + + /** + * Convert an instance of SearchHintResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeekRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeekRequestDto.java new file mode 100644 index 0000000000000..ab343674b886a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeekRequestDto.java @@ -0,0 +1,203 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SeekRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeekRequestDto { + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public SeekRequestDto() { + } + + public SeekRequestDto positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets or sets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeekRequestDto seekRequestDto = (SeekRequestDto) o; + return Objects.equals(this.positionTicks, seekRequestDto.positionTicks); + } + + @Override + public int hashCode() { + return Objects.hash(positionTicks); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeekRequestDto {\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PositionTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeekRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeekRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeekRequestDto is not found in the empty JSON string", SeekRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeekRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeekRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeekRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeekRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeekRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeekRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeekRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeekRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeekRequestDto + * @throws IOException if the JSON string is invalid with respect to SeekRequestDto + */ + public static SeekRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeekRequestDto.class); + } + + /** + * Convert an instance of SeekRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommand.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommand.java new file mode 100644 index 0000000000000..311e2821922cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommand.java @@ -0,0 +1,363 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SendCommandType; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SendCommand. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SendCommand { + public static final String SERIALIZED_NAME_GROUP_ID = "GroupId"; + @SerializedName(SERIALIZED_NAME_GROUP_ID) + @javax.annotation.Nullable + private UUID groupId; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public static final String SERIALIZED_NAME_WHEN = "When"; + @SerializedName(SERIALIZED_NAME_WHEN) + @javax.annotation.Nullable + private OffsetDateTime when; + + public static final String SERIALIZED_NAME_POSITION_TICKS = "PositionTicks"; + @SerializedName(SERIALIZED_NAME_POSITION_TICKS) + @javax.annotation.Nullable + private Long positionTicks; + + public static final String SERIALIZED_NAME_COMMAND = "Command"; + @SerializedName(SERIALIZED_NAME_COMMAND) + @javax.annotation.Nullable + private SendCommandType command; + + public static final String SERIALIZED_NAME_EMITTED_AT = "EmittedAt"; + @SerializedName(SERIALIZED_NAME_EMITTED_AT) + @javax.annotation.Nullable + private OffsetDateTime emittedAt; + + public SendCommand() { + } + + public SendCommand groupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + return this; + } + + /** + * Gets the group identifier. + * @return groupId + */ + @javax.annotation.Nullable + public UUID getGroupId() { + return groupId; + } + + public void setGroupId(@javax.annotation.Nullable UUID groupId) { + this.groupId = groupId; + } + + + public SendCommand playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets the playlist identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public SendCommand when(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + return this; + } + + /** + * Gets or sets the UTC time when to execute the command. + * @return when + */ + @javax.annotation.Nullable + public OffsetDateTime getWhen() { + return when; + } + + public void setWhen(@javax.annotation.Nullable OffsetDateTime when) { + this.when = when; + } + + + public SendCommand positionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + return this; + } + + /** + * Gets the position ticks. + * @return positionTicks + */ + @javax.annotation.Nullable + public Long getPositionTicks() { + return positionTicks; + } + + public void setPositionTicks(@javax.annotation.Nullable Long positionTicks) { + this.positionTicks = positionTicks; + } + + + public SendCommand command(@javax.annotation.Nullable SendCommandType command) { + this.command = command; + return this; + } + + /** + * Gets the command. + * @return command + */ + @javax.annotation.Nullable + public SendCommandType getCommand() { + return command; + } + + public void setCommand(@javax.annotation.Nullable SendCommandType command) { + this.command = command; + } + + + public SendCommand emittedAt(@javax.annotation.Nullable OffsetDateTime emittedAt) { + this.emittedAt = emittedAt; + return this; + } + + /** + * Gets the UTC time when this command has been emitted. + * @return emittedAt + */ + @javax.annotation.Nullable + public OffsetDateTime getEmittedAt() { + return emittedAt; + } + + public void setEmittedAt(@javax.annotation.Nullable OffsetDateTime emittedAt) { + this.emittedAt = emittedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SendCommand sendCommand = (SendCommand) o; + return Objects.equals(this.groupId, sendCommand.groupId) && + Objects.equals(this.playlistItemId, sendCommand.playlistItemId) && + Objects.equals(this.when, sendCommand.when) && + Objects.equals(this.positionTicks, sendCommand.positionTicks) && + Objects.equals(this.command, sendCommand.command) && + Objects.equals(this.emittedAt, sendCommand.emittedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(groupId, playlistItemId, when, positionTicks, command, emittedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SendCommand {\n"); + sb.append(" groupId: ").append(toIndentedString(groupId)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" when: ").append(toIndentedString(when)).append("\n"); + sb.append(" positionTicks: ").append(toIndentedString(positionTicks)).append("\n"); + sb.append(" command: ").append(toIndentedString(command)).append("\n"); + sb.append(" emittedAt: ").append(toIndentedString(emittedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("GroupId"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("When"); + openapiFields.add("PositionTicks"); + openapiFields.add("Command"); + openapiFields.add("EmittedAt"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendCommand + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SendCommand.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SendCommand is not found in the empty JSON string", SendCommand.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SendCommand.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendCommand` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("GroupId") != null && !jsonObj.get("GroupId").isJsonNull()) && !jsonObj.get("GroupId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("GroupId").toString())); + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + // validate the optional field `Command` + if (jsonObj.get("Command") != null && !jsonObj.get("Command").isJsonNull()) { + SendCommandType.validateJsonElement(jsonObj.get("Command")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendCommand.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendCommand' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SendCommand.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendCommand value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SendCommand read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SendCommand given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendCommand + * @throws IOException if the JSON string is invalid with respect to SendCommand + */ + public static SendCommand fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendCommand.class); + } + + /** + * Convert an instance of SendCommand to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommandType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommandType.java new file mode 100644 index 0000000000000..71b2cdc71f67a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendCommandType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum SendCommandType. + */ +@JsonAdapter(SendCommandType.Adapter.class) +public enum SendCommandType { + + UNPAUSE("Unpause"), + + PAUSE("Pause"), + + STOP("Stop"), + + SEEK("Seek"); + + private String value; + + SendCommandType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SendCommandType fromValue(String value) { + for (SendCommandType b : SendCommandType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SendCommandType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SendCommandType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SendCommandType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SendCommandType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendToUserType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendToUserType.java new file mode 100644 index 0000000000000..ad08655c1a3ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SendToUserType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets SendToUserType + */ +@JsonAdapter(SendToUserType.Adapter.class) +public enum SendToUserType { + + ALL("All"), + + ADMINS("Admins"), + + CUSTOM("Custom"); + + private String value; + + SendToUserType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SendToUserType fromValue(String value) { + for (SendToUserType b : SendToUserType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SendToUserType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SendToUserType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SendToUserType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SendToUserType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfo.java new file mode 100644 index 0000000000000..608c02a379a64 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SeriesInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public SeriesInfo() { + } + + public SeriesInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SeriesInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public SeriesInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public SeriesInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public SeriesInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public SeriesInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public SeriesInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public SeriesInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public SeriesInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SeriesInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SeriesInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public SeriesInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesInfo seriesInfo = (SeriesInfo) o; + return Objects.equals(this.name, seriesInfo.name) && + Objects.equals(this.originalTitle, seriesInfo.originalTitle) && + Objects.equals(this.path, seriesInfo.path) && + Objects.equals(this.metadataLanguage, seriesInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, seriesInfo.metadataCountryCode) && + Objects.equals(this.providerIds, seriesInfo.providerIds) && + Objects.equals(this.year, seriesInfo.year) && + Objects.equals(this.indexNumber, seriesInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, seriesInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, seriesInfo.premiereDate) && + Objects.equals(this.isAutomated, seriesInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesInfo is not found in the empty JSON string", SeriesInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesInfo + * @throws IOException if the JSON string is invalid with respect to SeriesInfo + */ + public static SeriesInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesInfo.class); + } + + /** + * Convert an instance of SeriesInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..c9ac90c3bac9a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.SeriesInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SeriesInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private SeriesInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public SeriesInfoRemoteSearchQuery() { + } + + public SeriesInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable SeriesInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public SeriesInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable SeriesInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public SeriesInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public SeriesInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public SeriesInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesInfoRemoteSearchQuery seriesInfoRemoteSearchQuery = (SeriesInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, seriesInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, seriesInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, seriesInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, seriesInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesInfoRemoteSearchQuery is not found in the empty JSON string", SeriesInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + SeriesInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to SeriesInfoRemoteSearchQuery + */ + public static SeriesInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of SeriesInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesStatus.java new file mode 100644 index 0000000000000..8b21194945c55 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesStatus.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum SeriesStatus. + */ +@JsonAdapter(SeriesStatus.Adapter.class) +public enum SeriesStatus { + + CONTINUING("Continuing"), + + ENDED("Ended"); + + private String value; + + SeriesStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SeriesStatus fromValue(String value) { + for (SeriesStatus b : SeriesStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SeriesStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SeriesStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SeriesStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SeriesStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java new file mode 100644 index 0000000000000..b0591329defdb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDto.java @@ -0,0 +1,1236 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.client.model.DayPattern; +import org.openapitools.client.model.KeepUntil; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SeriesTimerInfoDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerInfoDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "ExternalId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @javax.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_EXTERNAL_CHANNEL_ID = "ExternalChannelId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_CHANNEL_ID) + @javax.annotation.Nullable + private String externalChannelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_EXTERNAL_PROGRAM_ID = "ExternalProgramId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_PROGRAM_ID) + @javax.annotation.Nullable + private String externalProgramId; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERVICE_NAME = "ServiceName"; + @SerializedName(SERIALIZED_NAME_SERVICE_NAME) + @javax.annotation.Nullable + private String serviceName; + + public static final String SERIALIZED_NAME_PRIORITY = "Priority"; + @SerializedName(SERIALIZED_NAME_PRIORITY) + @javax.annotation.Nullable + private Integer priority; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED = "IsPrePaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPrePaddingRequired; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private String parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_IS_POST_PADDING_REQUIRED = "IsPostPaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_POST_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPostPaddingRequired; + + public static final String SERIALIZED_NAME_KEEP_UNTIL = "KeepUntil"; + @SerializedName(SERIALIZED_NAME_KEEP_UNTIL) + @javax.annotation.Nullable + private KeepUntil keepUntil; + + public static final String SERIALIZED_NAME_RECORD_ANY_TIME = "RecordAnyTime"; + @SerializedName(SERIALIZED_NAME_RECORD_ANY_TIME) + @javax.annotation.Nullable + private Boolean recordAnyTime; + + public static final String SERIALIZED_NAME_SKIP_EPISODES_IN_LIBRARY = "SkipEpisodesInLibrary"; + @SerializedName(SERIALIZED_NAME_SKIP_EPISODES_IN_LIBRARY) + @javax.annotation.Nullable + private Boolean skipEpisodesInLibrary; + + public static final String SERIALIZED_NAME_RECORD_ANY_CHANNEL = "RecordAnyChannel"; + @SerializedName(SERIALIZED_NAME_RECORD_ANY_CHANNEL) + @javax.annotation.Nullable + private Boolean recordAnyChannel; + + public static final String SERIALIZED_NAME_KEEP_UP_TO = "KeepUpTo"; + @SerializedName(SERIALIZED_NAME_KEEP_UP_TO) + @javax.annotation.Nullable + private Integer keepUpTo; + + public static final String SERIALIZED_NAME_RECORD_NEW_ONLY = "RecordNewOnly"; + @SerializedName(SERIALIZED_NAME_RECORD_NEW_ONLY) + @javax.annotation.Nullable + private Boolean recordNewOnly; + + public static final String SERIALIZED_NAME_DAYS = "Days"; + @SerializedName(SERIALIZED_NAME_DAYS) + @javax.annotation.Nullable + private List days; + + public static final String SERIALIZED_NAME_DAY_PATTERN = "DayPattern"; + @SerializedName(SERIALIZED_NAME_DAY_PATTERN) + @javax.annotation.Nullable + private DayPattern dayPattern; + + public static final String SERIALIZED_NAME_IMAGE_TAGS = "ImageTags"; + @SerializedName(SERIALIZED_NAME_IMAGE_TAGS) + @javax.annotation.Nullable + private Map imageTags; + + public static final String SERIALIZED_NAME_PARENT_THUMB_ITEM_ID = "ParentThumbItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_ITEM_ID) + @javax.annotation.Nullable + private String parentThumbItemId; + + public static final String SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG = "ParentThumbImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_THUMB_IMAGE_TAG) + @javax.annotation.Nullable + private String parentThumbImageTag; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID = "ParentPrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String parentPrimaryImageItemId; + + public static final String SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG = "ParentPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PARENT_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String parentPrimaryImageTag; + + public SeriesTimerInfoDto() { + } + + public SeriesTimerInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the Id of the recording. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SeriesTimerInfoDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public SeriesTimerInfoDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public SeriesTimerInfoDto externalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Gets or sets the external identifier. + * @return externalId + */ + @javax.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public SeriesTimerInfoDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel id of the recording. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public SeriesTimerInfoDto externalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + return this; + } + + /** + * Gets or sets the external channel identifier. + * @return externalChannelId + */ + @javax.annotation.Nullable + public String getExternalChannelId() { + return externalChannelId; + } + + public void setExternalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + } + + + public SeriesTimerInfoDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the channel name of the recording. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public SeriesTimerInfoDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Get channelPrimaryImageTag + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public SeriesTimerInfoDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public SeriesTimerInfoDto externalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + return this; + } + + /** + * Gets or sets the external program identifier. + * @return externalProgramId + */ + @javax.annotation.Nullable + public String getExternalProgramId() { + return externalProgramId; + } + + public void setExternalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + } + + + public SeriesTimerInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the recording. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SeriesTimerInfoDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the description of the recording. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public SeriesTimerInfoDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public SeriesTimerInfoDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date of the recording, in UTC. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public SeriesTimerInfoDto serviceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + return this; + } + + /** + * Gets or sets the name of the service. + * @return serviceName + */ + @javax.annotation.Nullable + public String getServiceName() { + return serviceName; + } + + public void setServiceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + } + + + public SeriesTimerInfoDto priority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + return this; + } + + /** + * Gets or sets the priority. + * @return priority + */ + @javax.annotation.Nullable + public Integer getPriority() { + return priority; + } + + public void setPriority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + } + + + public SeriesTimerInfoDto prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Gets or sets the pre padding seconds. + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public SeriesTimerInfoDto postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Gets or sets the post padding seconds. + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public SeriesTimerInfoDto isPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is pre padding required. + * @return isPrePaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPrePaddingRequired() { + return isPrePaddingRequired; + } + + public void setIsPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + } + + + public SeriesTimerInfoDto parentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public String getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public SeriesTimerInfoDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public SeriesTimerInfoDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public SeriesTimerInfoDto isPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is post padding required. + * @return isPostPaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPostPaddingRequired() { + return isPostPaddingRequired; + } + + public void setIsPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + } + + + public SeriesTimerInfoDto keepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + return this; + } + + /** + * Get keepUntil + * @return keepUntil + */ + @javax.annotation.Nullable + public KeepUntil getKeepUntil() { + return keepUntil; + } + + public void setKeepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + } + + + public SeriesTimerInfoDto recordAnyTime(@javax.annotation.Nullable Boolean recordAnyTime) { + this.recordAnyTime = recordAnyTime; + return this; + } + + /** + * Gets or sets a value indicating whether [record any time]. + * @return recordAnyTime + */ + @javax.annotation.Nullable + public Boolean getRecordAnyTime() { + return recordAnyTime; + } + + public void setRecordAnyTime(@javax.annotation.Nullable Boolean recordAnyTime) { + this.recordAnyTime = recordAnyTime; + } + + + public SeriesTimerInfoDto skipEpisodesInLibrary(@javax.annotation.Nullable Boolean skipEpisodesInLibrary) { + this.skipEpisodesInLibrary = skipEpisodesInLibrary; + return this; + } + + /** + * Get skipEpisodesInLibrary + * @return skipEpisodesInLibrary + */ + @javax.annotation.Nullable + public Boolean getSkipEpisodesInLibrary() { + return skipEpisodesInLibrary; + } + + public void setSkipEpisodesInLibrary(@javax.annotation.Nullable Boolean skipEpisodesInLibrary) { + this.skipEpisodesInLibrary = skipEpisodesInLibrary; + } + + + public SeriesTimerInfoDto recordAnyChannel(@javax.annotation.Nullable Boolean recordAnyChannel) { + this.recordAnyChannel = recordAnyChannel; + return this; + } + + /** + * Gets or sets a value indicating whether [record any channel]. + * @return recordAnyChannel + */ + @javax.annotation.Nullable + public Boolean getRecordAnyChannel() { + return recordAnyChannel; + } + + public void setRecordAnyChannel(@javax.annotation.Nullable Boolean recordAnyChannel) { + this.recordAnyChannel = recordAnyChannel; + } + + + public SeriesTimerInfoDto keepUpTo(@javax.annotation.Nullable Integer keepUpTo) { + this.keepUpTo = keepUpTo; + return this; + } + + /** + * Get keepUpTo + * @return keepUpTo + */ + @javax.annotation.Nullable + public Integer getKeepUpTo() { + return keepUpTo; + } + + public void setKeepUpTo(@javax.annotation.Nullable Integer keepUpTo) { + this.keepUpTo = keepUpTo; + } + + + public SeriesTimerInfoDto recordNewOnly(@javax.annotation.Nullable Boolean recordNewOnly) { + this.recordNewOnly = recordNewOnly; + return this; + } + + /** + * Gets or sets a value indicating whether [record new only]. + * @return recordNewOnly + */ + @javax.annotation.Nullable + public Boolean getRecordNewOnly() { + return recordNewOnly; + } + + public void setRecordNewOnly(@javax.annotation.Nullable Boolean recordNewOnly) { + this.recordNewOnly = recordNewOnly; + } + + + public SeriesTimerInfoDto days(@javax.annotation.Nullable List days) { + this.days = days; + return this; + } + + public SeriesTimerInfoDto addDaysItem(DayOfWeek daysItem) { + if (this.days == null) { + this.days = new ArrayList<>(); + } + this.days.add(daysItem); + return this; + } + + /** + * Gets or sets the days. + * @return days + */ + @javax.annotation.Nullable + public List getDays() { + return days; + } + + public void setDays(@javax.annotation.Nullable List days) { + this.days = days; + } + + + public SeriesTimerInfoDto dayPattern(@javax.annotation.Nullable DayPattern dayPattern) { + this.dayPattern = dayPattern; + return this; + } + + /** + * Gets or sets the day pattern. + * @return dayPattern + */ + @javax.annotation.Nullable + public DayPattern getDayPattern() { + return dayPattern; + } + + public void setDayPattern(@javax.annotation.Nullable DayPattern dayPattern) { + this.dayPattern = dayPattern; + } + + + public SeriesTimerInfoDto imageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + return this; + } + + public SeriesTimerInfoDto putImageTagsItem(String key, String imageTagsItem) { + if (this.imageTags == null) { + this.imageTags = new HashMap<>(); + } + this.imageTags.put(key, imageTagsItem); + return this; + } + + /** + * Gets or sets the image tags. + * @return imageTags + */ + @javax.annotation.Nullable + public Map getImageTags() { + return imageTags; + } + + public void setImageTags(@javax.annotation.Nullable Map imageTags) { + this.imageTags = imageTags; + } + + + public SeriesTimerInfoDto parentThumbItemId(@javax.annotation.Nullable String parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + return this; + } + + /** + * Gets or sets the parent thumb item id. + * @return parentThumbItemId + */ + @javax.annotation.Nullable + public String getParentThumbItemId() { + return parentThumbItemId; + } + + public void setParentThumbItemId(@javax.annotation.Nullable String parentThumbItemId) { + this.parentThumbItemId = parentThumbItemId; + } + + + public SeriesTimerInfoDto parentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + return this; + } + + /** + * Gets or sets the parent thumb image tag. + * @return parentThumbImageTag + */ + @javax.annotation.Nullable + public String getParentThumbImageTag() { + return parentThumbImageTag; + } + + public void setParentThumbImageTag(@javax.annotation.Nullable String parentThumbImageTag) { + this.parentThumbImageTag = parentThumbImageTag; + } + + + public SeriesTimerInfoDto parentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + return this; + } + + /** + * Gets or sets the parent primary image item identifier. + * @return parentPrimaryImageItemId + */ + @javax.annotation.Nullable + public String getParentPrimaryImageItemId() { + return parentPrimaryImageItemId; + } + + public void setParentPrimaryImageItemId(@javax.annotation.Nullable String parentPrimaryImageItemId) { + this.parentPrimaryImageItemId = parentPrimaryImageItemId; + } + + + public SeriesTimerInfoDto parentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + return this; + } + + /** + * Gets or sets the parent primary image tag. + * @return parentPrimaryImageTag + */ + @javax.annotation.Nullable + public String getParentPrimaryImageTag() { + return parentPrimaryImageTag; + } + + public void setParentPrimaryImageTag(@javax.annotation.Nullable String parentPrimaryImageTag) { + this.parentPrimaryImageTag = parentPrimaryImageTag; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerInfoDto seriesTimerInfoDto = (SeriesTimerInfoDto) o; + return Objects.equals(this.id, seriesTimerInfoDto.id) && + Objects.equals(this.type, seriesTimerInfoDto.type) && + Objects.equals(this.serverId, seriesTimerInfoDto.serverId) && + Objects.equals(this.externalId, seriesTimerInfoDto.externalId) && + Objects.equals(this.channelId, seriesTimerInfoDto.channelId) && + Objects.equals(this.externalChannelId, seriesTimerInfoDto.externalChannelId) && + Objects.equals(this.channelName, seriesTimerInfoDto.channelName) && + Objects.equals(this.channelPrimaryImageTag, seriesTimerInfoDto.channelPrimaryImageTag) && + Objects.equals(this.programId, seriesTimerInfoDto.programId) && + Objects.equals(this.externalProgramId, seriesTimerInfoDto.externalProgramId) && + Objects.equals(this.name, seriesTimerInfoDto.name) && + Objects.equals(this.overview, seriesTimerInfoDto.overview) && + Objects.equals(this.startDate, seriesTimerInfoDto.startDate) && + Objects.equals(this.endDate, seriesTimerInfoDto.endDate) && + Objects.equals(this.serviceName, seriesTimerInfoDto.serviceName) && + Objects.equals(this.priority, seriesTimerInfoDto.priority) && + Objects.equals(this.prePaddingSeconds, seriesTimerInfoDto.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, seriesTimerInfoDto.postPaddingSeconds) && + Objects.equals(this.isPrePaddingRequired, seriesTimerInfoDto.isPrePaddingRequired) && + Objects.equals(this.parentBackdropItemId, seriesTimerInfoDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, seriesTimerInfoDto.parentBackdropImageTags) && + Objects.equals(this.isPostPaddingRequired, seriesTimerInfoDto.isPostPaddingRequired) && + Objects.equals(this.keepUntil, seriesTimerInfoDto.keepUntil) && + Objects.equals(this.recordAnyTime, seriesTimerInfoDto.recordAnyTime) && + Objects.equals(this.skipEpisodesInLibrary, seriesTimerInfoDto.skipEpisodesInLibrary) && + Objects.equals(this.recordAnyChannel, seriesTimerInfoDto.recordAnyChannel) && + Objects.equals(this.keepUpTo, seriesTimerInfoDto.keepUpTo) && + Objects.equals(this.recordNewOnly, seriesTimerInfoDto.recordNewOnly) && + Objects.equals(this.days, seriesTimerInfoDto.days) && + Objects.equals(this.dayPattern, seriesTimerInfoDto.dayPattern) && + Objects.equals(this.imageTags, seriesTimerInfoDto.imageTags) && + Objects.equals(this.parentThumbItemId, seriesTimerInfoDto.parentThumbItemId) && + Objects.equals(this.parentThumbImageTag, seriesTimerInfoDto.parentThumbImageTag) && + Objects.equals(this.parentPrimaryImageItemId, seriesTimerInfoDto.parentPrimaryImageItemId) && + Objects.equals(this.parentPrimaryImageTag, seriesTimerInfoDto.parentPrimaryImageTag); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, serverId, externalId, channelId, externalChannelId, channelName, channelPrimaryImageTag, programId, externalProgramId, name, overview, startDate, endDate, serviceName, priority, prePaddingSeconds, postPaddingSeconds, isPrePaddingRequired, parentBackdropItemId, parentBackdropImageTags, isPostPaddingRequired, keepUntil, recordAnyTime, skipEpisodesInLibrary, recordAnyChannel, keepUpTo, recordNewOnly, days, dayPattern, imageTags, parentThumbItemId, parentThumbImageTag, parentPrimaryImageItemId, parentPrimaryImageTag); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerInfoDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" externalChannelId: ").append(toIndentedString(externalChannelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" externalProgramId: ").append(toIndentedString(externalProgramId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" isPrePaddingRequired: ").append(toIndentedString(isPrePaddingRequired)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" isPostPaddingRequired: ").append(toIndentedString(isPostPaddingRequired)).append("\n"); + sb.append(" keepUntil: ").append(toIndentedString(keepUntil)).append("\n"); + sb.append(" recordAnyTime: ").append(toIndentedString(recordAnyTime)).append("\n"); + sb.append(" skipEpisodesInLibrary: ").append(toIndentedString(skipEpisodesInLibrary)).append("\n"); + sb.append(" recordAnyChannel: ").append(toIndentedString(recordAnyChannel)).append("\n"); + sb.append(" keepUpTo: ").append(toIndentedString(keepUpTo)).append("\n"); + sb.append(" recordNewOnly: ").append(toIndentedString(recordNewOnly)).append("\n"); + sb.append(" days: ").append(toIndentedString(days)).append("\n"); + sb.append(" dayPattern: ").append(toIndentedString(dayPattern)).append("\n"); + sb.append(" imageTags: ").append(toIndentedString(imageTags)).append("\n"); + sb.append(" parentThumbItemId: ").append(toIndentedString(parentThumbItemId)).append("\n"); + sb.append(" parentThumbImageTag: ").append(toIndentedString(parentThumbImageTag)).append("\n"); + sb.append(" parentPrimaryImageItemId: ").append(toIndentedString(parentPrimaryImageItemId)).append("\n"); + sb.append(" parentPrimaryImageTag: ").append(toIndentedString(parentPrimaryImageTag)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("ServerId"); + openapiFields.add("ExternalId"); + openapiFields.add("ChannelId"); + openapiFields.add("ExternalChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("ProgramId"); + openapiFields.add("ExternalProgramId"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("ServiceName"); + openapiFields.add("Priority"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("IsPrePaddingRequired"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("IsPostPaddingRequired"); + openapiFields.add("KeepUntil"); + openapiFields.add("RecordAnyTime"); + openapiFields.add("SkipEpisodesInLibrary"); + openapiFields.add("RecordAnyChannel"); + openapiFields.add("KeepUpTo"); + openapiFields.add("RecordNewOnly"); + openapiFields.add("Days"); + openapiFields.add("DayPattern"); + openapiFields.add("ImageTags"); + openapiFields.add("ParentThumbItemId"); + openapiFields.add("ParentThumbImageTag"); + openapiFields.add("ParentPrimaryImageItemId"); + openapiFields.add("ParentPrimaryImageTag"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerInfoDto is not found in the empty JSON string", SeriesTimerInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ExternalId") != null && !jsonObj.get("ExternalId").isJsonNull()) && !jsonObj.get("ExternalId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalId").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ExternalChannelId") != null && !jsonObj.get("ExternalChannelId").isJsonNull()) && !jsonObj.get("ExternalChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ExternalProgramId") != null && !jsonObj.get("ExternalProgramId").isJsonNull()) && !jsonObj.get("ExternalProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalProgramId").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ServiceName") != null && !jsonObj.get("ServiceName").isJsonNull()) && !jsonObj.get("ServiceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServiceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServiceName").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `KeepUntil` + if (jsonObj.get("KeepUntil") != null && !jsonObj.get("KeepUntil").isJsonNull()) { + KeepUntil.validateJsonElement(jsonObj.get("KeepUntil")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Days") != null && !jsonObj.get("Days").isJsonNull() && !jsonObj.get("Days").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Days` to be an array in the JSON string but got `%s`", jsonObj.get("Days").toString())); + } + // validate the optional field `DayPattern` + if (jsonObj.get("DayPattern") != null && !jsonObj.get("DayPattern").isJsonNull()) { + DayPattern.validateJsonElement(jsonObj.get("DayPattern")); + } + if ((jsonObj.get("ParentThumbItemId") != null && !jsonObj.get("ParentThumbItemId").isJsonNull()) && !jsonObj.get("ParentThumbItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbItemId").toString())); + } + if ((jsonObj.get("ParentThumbImageTag") != null && !jsonObj.get("ParentThumbImageTag").isJsonNull()) && !jsonObj.get("ParentThumbImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentThumbImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentThumbImageTag").toString())); + } + if ((jsonObj.get("ParentPrimaryImageItemId") != null && !jsonObj.get("ParentPrimaryImageItemId").isJsonNull()) && !jsonObj.get("ParentPrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageItemId").toString())); + } + if ((jsonObj.get("ParentPrimaryImageTag") != null && !jsonObj.get("ParentPrimaryImageTag").isJsonNull()) && !jsonObj.get("ParentPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentPrimaryImageTag").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerInfoDto + * @throws IOException if the JSON string is invalid with respect to SeriesTimerInfoDto + */ + public static SeriesTimerInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerInfoDto.class); + } + + /** + * Convert an instance of SeriesTimerInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java new file mode 100644 index 0000000000000..03172f5b11a62 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SeriesTimerInfoDtoQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SeriesTimerInfoDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SeriesTimerInfoDtoQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SeriesTimerInfoDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public SeriesTimerInfoDtoQueryResult() { + } + + public SeriesTimerInfoDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public SeriesTimerInfoDtoQueryResult addItemsItem(SeriesTimerInfoDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public SeriesTimerInfoDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public SeriesTimerInfoDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeriesTimerInfoDtoQueryResult seriesTimerInfoDtoQueryResult = (SeriesTimerInfoDtoQueryResult) o; + return Objects.equals(this.items, seriesTimerInfoDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, seriesTimerInfoDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, seriesTimerInfoDtoQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeriesTimerInfoDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SeriesTimerInfoDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SeriesTimerInfoDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SeriesTimerInfoDtoQueryResult is not found in the empty JSON string", SeriesTimerInfoDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SeriesTimerInfoDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SeriesTimerInfoDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + SeriesTimerInfoDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SeriesTimerInfoDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SeriesTimerInfoDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SeriesTimerInfoDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SeriesTimerInfoDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SeriesTimerInfoDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SeriesTimerInfoDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SeriesTimerInfoDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to SeriesTimerInfoDtoQueryResult + */ + public static SeriesTimerInfoDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SeriesTimerInfoDtoQueryResult.class); + } + + /** + * Convert an instance of SeriesTimerInfoDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerConfiguration.java new file mode 100644 index 0000000000000..d8a6572e68282 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerConfiguration.java @@ -0,0 +1,1670 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageSavingConvention; +import org.openapitools.client.model.MetadataOptions; +import org.openapitools.client.model.NameValuePair; +import org.openapitools.client.model.PathSubstitution; +import org.openapitools.client.model.RepositoryInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Represents the server configuration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerConfiguration { + public static final String SERIALIZED_NAME_LOG_FILE_RETENTION_DAYS = "LogFileRetentionDays"; + @SerializedName(SERIALIZED_NAME_LOG_FILE_RETENTION_DAYS) + @javax.annotation.Nullable + private Integer logFileRetentionDays; + + public static final String SERIALIZED_NAME_IS_STARTUP_WIZARD_COMPLETED = "IsStartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_IS_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean isStartupWizardCompleted; + + public static final String SERIALIZED_NAME_CACHE_PATH = "CachePath"; + @SerializedName(SERIALIZED_NAME_CACHE_PATH) + @javax.annotation.Nullable + private String cachePath; + + public static final String SERIALIZED_NAME_PREVIOUS_VERSION = "PreviousVersion"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_VERSION) + @javax.annotation.Nullable + private String previousVersion; + + public static final String SERIALIZED_NAME_PREVIOUS_VERSION_STR = "PreviousVersionStr"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_VERSION_STR) + @javax.annotation.Nullable + private String previousVersionStr; + + public static final String SERIALIZED_NAME_ENABLE_METRICS = "EnableMetrics"; + @SerializedName(SERIALIZED_NAME_ENABLE_METRICS) + @javax.annotation.Nullable + private Boolean enableMetrics; + + public static final String SERIALIZED_NAME_ENABLE_NORMALIZED_ITEM_BY_NAME_IDS = "EnableNormalizedItemByNameIds"; + @SerializedName(SERIALIZED_NAME_ENABLE_NORMALIZED_ITEM_BY_NAME_IDS) + @javax.annotation.Nullable + private Boolean enableNormalizedItemByNameIds; + + public static final String SERIALIZED_NAME_IS_PORT_AUTHORIZED = "IsPortAuthorized"; + @SerializedName(SERIALIZED_NAME_IS_PORT_AUTHORIZED) + @javax.annotation.Nullable + private Boolean isPortAuthorized; + + public static final String SERIALIZED_NAME_QUICK_CONNECT_AVAILABLE = "QuickConnectAvailable"; + @SerializedName(SERIALIZED_NAME_QUICK_CONNECT_AVAILABLE) + @javax.annotation.Nullable + private Boolean quickConnectAvailable; + + public static final String SERIALIZED_NAME_ENABLE_CASE_SENSITIVE_ITEM_IDS = "EnableCaseSensitiveItemIds"; + @SerializedName(SERIALIZED_NAME_ENABLE_CASE_SENSITIVE_ITEM_IDS) + @javax.annotation.Nullable + private Boolean enableCaseSensitiveItemIds; + + public static final String SERIALIZED_NAME_DISABLE_LIVE_TV_CHANNEL_USER_DATA_NAME = "DisableLiveTvChannelUserDataName"; + @SerializedName(SERIALIZED_NAME_DISABLE_LIVE_TV_CHANNEL_USER_DATA_NAME) + @javax.annotation.Nullable + private Boolean disableLiveTvChannelUserDataName; + + public static final String SERIALIZED_NAME_METADATA_PATH = "MetadataPath"; + @SerializedName(SERIALIZED_NAME_METADATA_PATH) + @javax.annotation.Nullable + private String metadataPath; + + public static final String SERIALIZED_NAME_METADATA_NETWORK_PATH = "MetadataNetworkPath"; + @SerializedName(SERIALIZED_NAME_METADATA_NETWORK_PATH) + @javax.annotation.Nullable + private String metadataNetworkPath; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_SORT_REPLACE_CHARACTERS = "SortReplaceCharacters"; + @SerializedName(SERIALIZED_NAME_SORT_REPLACE_CHARACTERS) + @javax.annotation.Nullable + private List sortReplaceCharacters = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SORT_REMOVE_CHARACTERS = "SortRemoveCharacters"; + @SerializedName(SERIALIZED_NAME_SORT_REMOVE_CHARACTERS) + @javax.annotation.Nullable + private List sortRemoveCharacters = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SORT_REMOVE_WORDS = "SortRemoveWords"; + @SerializedName(SERIALIZED_NAME_SORT_REMOVE_WORDS) + @javax.annotation.Nullable + private List sortRemoveWords = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MIN_RESUME_PCT = "MinResumePct"; + @SerializedName(SERIALIZED_NAME_MIN_RESUME_PCT) + @javax.annotation.Nullable + private Integer minResumePct; + + public static final String SERIALIZED_NAME_MAX_RESUME_PCT = "MaxResumePct"; + @SerializedName(SERIALIZED_NAME_MAX_RESUME_PCT) + @javax.annotation.Nullable + private Integer maxResumePct; + + public static final String SERIALIZED_NAME_MIN_RESUME_DURATION_SECONDS = "MinResumeDurationSeconds"; + @SerializedName(SERIALIZED_NAME_MIN_RESUME_DURATION_SECONDS) + @javax.annotation.Nullable + private Integer minResumeDurationSeconds; + + public static final String SERIALIZED_NAME_MIN_AUDIOBOOK_RESUME = "MinAudiobookResume"; + @SerializedName(SERIALIZED_NAME_MIN_AUDIOBOOK_RESUME) + @javax.annotation.Nullable + private Integer minAudiobookResume; + + public static final String SERIALIZED_NAME_MAX_AUDIOBOOK_RESUME = "MaxAudiobookResume"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIOBOOK_RESUME) + @javax.annotation.Nullable + private Integer maxAudiobookResume; + + public static final String SERIALIZED_NAME_LIBRARY_MONITOR_DELAY = "LibraryMonitorDelay"; + @SerializedName(SERIALIZED_NAME_LIBRARY_MONITOR_DELAY) + @javax.annotation.Nullable + private Integer libraryMonitorDelay; + + public static final String SERIALIZED_NAME_IMAGE_SAVING_CONVENTION = "ImageSavingConvention"; + @SerializedName(SERIALIZED_NAME_IMAGE_SAVING_CONVENTION) + @javax.annotation.Nullable + private ImageSavingConvention imageSavingConvention; + + public static final String SERIALIZED_NAME_METADATA_OPTIONS = "MetadataOptions"; + @SerializedName(SERIALIZED_NAME_METADATA_OPTIONS) + @javax.annotation.Nullable + private List metadataOptions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SKIP_DESERIALIZATION_FOR_BASIC_TYPES = "SkipDeserializationForBasicTypes"; + @SerializedName(SERIALIZED_NAME_SKIP_DESERIALIZATION_FOR_BASIC_TYPES) + @javax.annotation.Nullable + private Boolean skipDeserializationForBasicTypes; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_UI_CULTURE = "UICulture"; + @SerializedName(SERIALIZED_NAME_UI_CULTURE) + @javax.annotation.Nullable + private String uiCulture; + + public static final String SERIALIZED_NAME_SAVE_METADATA_HIDDEN = "SaveMetadataHidden"; + @SerializedName(SERIALIZED_NAME_SAVE_METADATA_HIDDEN) + @javax.annotation.Nullable + private Boolean saveMetadataHidden; + + public static final String SERIALIZED_NAME_CONTENT_TYPES = "ContentTypes"; + @SerializedName(SERIALIZED_NAME_CONTENT_TYPES) + @javax.annotation.Nullable + private List contentTypes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT = "RemoteClientBitrateLimit"; + @SerializedName(SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT) + @javax.annotation.Nullable + private Integer remoteClientBitrateLimit; + + public static final String SERIALIZED_NAME_ENABLE_FOLDER_VIEW = "EnableFolderView"; + @SerializedName(SERIALIZED_NAME_ENABLE_FOLDER_VIEW) + @javax.annotation.Nullable + private Boolean enableFolderView; + + public static final String SERIALIZED_NAME_ENABLE_GROUPING_INTO_COLLECTIONS = "EnableGroupingIntoCollections"; + @SerializedName(SERIALIZED_NAME_ENABLE_GROUPING_INTO_COLLECTIONS) + @javax.annotation.Nullable + private Boolean enableGroupingIntoCollections; + + public static final String SERIALIZED_NAME_DISPLAY_SPECIALS_WITHIN_SEASONS = "DisplaySpecialsWithinSeasons"; + @SerializedName(SERIALIZED_NAME_DISPLAY_SPECIALS_WITHIN_SEASONS) + @javax.annotation.Nullable + private Boolean displaySpecialsWithinSeasons; + + public static final String SERIALIZED_NAME_CODECS_USED = "CodecsUsed"; + @SerializedName(SERIALIZED_NAME_CODECS_USED) + @javax.annotation.Nullable + private List codecsUsed = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PLUGIN_REPOSITORIES = "PluginRepositories"; + @SerializedName(SERIALIZED_NAME_PLUGIN_REPOSITORIES) + @javax.annotation.Nullable + private List pluginRepositories = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_EXTERNAL_CONTENT_IN_SUGGESTIONS = "EnableExternalContentInSuggestions"; + @SerializedName(SERIALIZED_NAME_ENABLE_EXTERNAL_CONTENT_IN_SUGGESTIONS) + @javax.annotation.Nullable + private Boolean enableExternalContentInSuggestions; + + public static final String SERIALIZED_NAME_IMAGE_EXTRACTION_TIMEOUT_MS = "ImageExtractionTimeoutMs"; + @SerializedName(SERIALIZED_NAME_IMAGE_EXTRACTION_TIMEOUT_MS) + @javax.annotation.Nullable + private Integer imageExtractionTimeoutMs; + + public static final String SERIALIZED_NAME_PATH_SUBSTITUTIONS = "PathSubstitutions"; + @SerializedName(SERIALIZED_NAME_PATH_SUBSTITUTIONS) + @javax.annotation.Nullable + private List pathSubstitutions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENABLE_SLOW_RESPONSE_WARNING = "EnableSlowResponseWarning"; + @SerializedName(SERIALIZED_NAME_ENABLE_SLOW_RESPONSE_WARNING) + @javax.annotation.Nullable + private Boolean enableSlowResponseWarning; + + public static final String SERIALIZED_NAME_SLOW_RESPONSE_THRESHOLD_MS = "SlowResponseThresholdMs"; + @SerializedName(SERIALIZED_NAME_SLOW_RESPONSE_THRESHOLD_MS) + @javax.annotation.Nullable + private Long slowResponseThresholdMs; + + public static final String SERIALIZED_NAME_CORS_HOSTS = "CorsHosts"; + @SerializedName(SERIALIZED_NAME_CORS_HOSTS) + @javax.annotation.Nullable + private List corsHosts = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ACTIVITY_LOG_RETENTION_DAYS = "ActivityLogRetentionDays"; + @SerializedName(SERIALIZED_NAME_ACTIVITY_LOG_RETENTION_DAYS) + @javax.annotation.Nullable + private Integer activityLogRetentionDays; + + public static final String SERIALIZED_NAME_LIBRARY_SCAN_FANOUT_CONCURRENCY = "LibraryScanFanoutConcurrency"; + @SerializedName(SERIALIZED_NAME_LIBRARY_SCAN_FANOUT_CONCURRENCY) + @javax.annotation.Nullable + private Integer libraryScanFanoutConcurrency; + + public static final String SERIALIZED_NAME_LIBRARY_METADATA_REFRESH_CONCURRENCY = "LibraryMetadataRefreshConcurrency"; + @SerializedName(SERIALIZED_NAME_LIBRARY_METADATA_REFRESH_CONCURRENCY) + @javax.annotation.Nullable + private Integer libraryMetadataRefreshConcurrency; + + public static final String SERIALIZED_NAME_REMOVE_OLD_PLUGINS = "RemoveOldPlugins"; + @SerializedName(SERIALIZED_NAME_REMOVE_OLD_PLUGINS) + @javax.annotation.Nullable + private Boolean removeOldPlugins; + + public static final String SERIALIZED_NAME_ALLOW_CLIENT_LOG_UPLOAD = "AllowClientLogUpload"; + @SerializedName(SERIALIZED_NAME_ALLOW_CLIENT_LOG_UPLOAD) + @javax.annotation.Nullable + private Boolean allowClientLogUpload; + + public ServerConfiguration() { + } + + public ServerConfiguration logFileRetentionDays(@javax.annotation.Nullable Integer logFileRetentionDays) { + this.logFileRetentionDays = logFileRetentionDays; + return this; + } + + /** + * Gets or sets the number of days we should retain log files. + * @return logFileRetentionDays + */ + @javax.annotation.Nullable + public Integer getLogFileRetentionDays() { + return logFileRetentionDays; + } + + public void setLogFileRetentionDays(@javax.annotation.Nullable Integer logFileRetentionDays) { + this.logFileRetentionDays = logFileRetentionDays; + } + + + public ServerConfiguration isStartupWizardCompleted(@javax.annotation.Nullable Boolean isStartupWizardCompleted) { + this.isStartupWizardCompleted = isStartupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is first run. + * @return isStartupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getIsStartupWizardCompleted() { + return isStartupWizardCompleted; + } + + public void setIsStartupWizardCompleted(@javax.annotation.Nullable Boolean isStartupWizardCompleted) { + this.isStartupWizardCompleted = isStartupWizardCompleted; + } + + + public ServerConfiguration cachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + return this; + } + + /** + * Gets or sets the cache path. + * @return cachePath + */ + @javax.annotation.Nullable + public String getCachePath() { + return cachePath; + } + + public void setCachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + } + + + public ServerConfiguration previousVersion(@javax.annotation.Nullable String previousVersion) { + this.previousVersion = previousVersion; + return this; + } + + /** + * Gets or sets the last known version that was ran using the configuration. + * @return previousVersion + */ + @javax.annotation.Nullable + public String getPreviousVersion() { + return previousVersion; + } + + public void setPreviousVersion(@javax.annotation.Nullable String previousVersion) { + this.previousVersion = previousVersion; + } + + + public ServerConfiguration previousVersionStr(@javax.annotation.Nullable String previousVersionStr) { + this.previousVersionStr = previousVersionStr; + return this; + } + + /** + * Gets or sets the stringified PreviousVersion to be stored/loaded, because System.Version itself isn't xml-serializable. + * @return previousVersionStr + */ + @javax.annotation.Nullable + public String getPreviousVersionStr() { + return previousVersionStr; + } + + public void setPreviousVersionStr(@javax.annotation.Nullable String previousVersionStr) { + this.previousVersionStr = previousVersionStr; + } + + + public ServerConfiguration enableMetrics(@javax.annotation.Nullable Boolean enableMetrics) { + this.enableMetrics = enableMetrics; + return this; + } + + /** + * Gets or sets a value indicating whether to enable prometheus metrics exporting. + * @return enableMetrics + */ + @javax.annotation.Nullable + public Boolean getEnableMetrics() { + return enableMetrics; + } + + public void setEnableMetrics(@javax.annotation.Nullable Boolean enableMetrics) { + this.enableMetrics = enableMetrics; + } + + + public ServerConfiguration enableNormalizedItemByNameIds(@javax.annotation.Nullable Boolean enableNormalizedItemByNameIds) { + this.enableNormalizedItemByNameIds = enableNormalizedItemByNameIds; + return this; + } + + /** + * Get enableNormalizedItemByNameIds + * @return enableNormalizedItemByNameIds + */ + @javax.annotation.Nullable + public Boolean getEnableNormalizedItemByNameIds() { + return enableNormalizedItemByNameIds; + } + + public void setEnableNormalizedItemByNameIds(@javax.annotation.Nullable Boolean enableNormalizedItemByNameIds) { + this.enableNormalizedItemByNameIds = enableNormalizedItemByNameIds; + } + + + public ServerConfiguration isPortAuthorized(@javax.annotation.Nullable Boolean isPortAuthorized) { + this.isPortAuthorized = isPortAuthorized; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is port authorized. + * @return isPortAuthorized + */ + @javax.annotation.Nullable + public Boolean getIsPortAuthorized() { + return isPortAuthorized; + } + + public void setIsPortAuthorized(@javax.annotation.Nullable Boolean isPortAuthorized) { + this.isPortAuthorized = isPortAuthorized; + } + + + public ServerConfiguration quickConnectAvailable(@javax.annotation.Nullable Boolean quickConnectAvailable) { + this.quickConnectAvailable = quickConnectAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether quick connect is available for use on this server. + * @return quickConnectAvailable + */ + @javax.annotation.Nullable + public Boolean getQuickConnectAvailable() { + return quickConnectAvailable; + } + + public void setQuickConnectAvailable(@javax.annotation.Nullable Boolean quickConnectAvailable) { + this.quickConnectAvailable = quickConnectAvailable; + } + + + public ServerConfiguration enableCaseSensitiveItemIds(@javax.annotation.Nullable Boolean enableCaseSensitiveItemIds) { + this.enableCaseSensitiveItemIds = enableCaseSensitiveItemIds; + return this; + } + + /** + * Gets or sets a value indicating whether [enable case sensitive item ids]. + * @return enableCaseSensitiveItemIds + */ + @javax.annotation.Nullable + public Boolean getEnableCaseSensitiveItemIds() { + return enableCaseSensitiveItemIds; + } + + public void setEnableCaseSensitiveItemIds(@javax.annotation.Nullable Boolean enableCaseSensitiveItemIds) { + this.enableCaseSensitiveItemIds = enableCaseSensitiveItemIds; + } + + + public ServerConfiguration disableLiveTvChannelUserDataName(@javax.annotation.Nullable Boolean disableLiveTvChannelUserDataName) { + this.disableLiveTvChannelUserDataName = disableLiveTvChannelUserDataName; + return this; + } + + /** + * Get disableLiveTvChannelUserDataName + * @return disableLiveTvChannelUserDataName + */ + @javax.annotation.Nullable + public Boolean getDisableLiveTvChannelUserDataName() { + return disableLiveTvChannelUserDataName; + } + + public void setDisableLiveTvChannelUserDataName(@javax.annotation.Nullable Boolean disableLiveTvChannelUserDataName) { + this.disableLiveTvChannelUserDataName = disableLiveTvChannelUserDataName; + } + + + public ServerConfiguration metadataPath(@javax.annotation.Nullable String metadataPath) { + this.metadataPath = metadataPath; + return this; + } + + /** + * Gets or sets the metadata path. + * @return metadataPath + */ + @javax.annotation.Nullable + public String getMetadataPath() { + return metadataPath; + } + + public void setMetadataPath(@javax.annotation.Nullable String metadataPath) { + this.metadataPath = metadataPath; + } + + + public ServerConfiguration metadataNetworkPath(@javax.annotation.Nullable String metadataNetworkPath) { + this.metadataNetworkPath = metadataNetworkPath; + return this; + } + + /** + * Get metadataNetworkPath + * @return metadataNetworkPath + */ + @javax.annotation.Nullable + public String getMetadataNetworkPath() { + return metadataNetworkPath; + } + + public void setMetadataNetworkPath(@javax.annotation.Nullable String metadataNetworkPath) { + this.metadataNetworkPath = metadataNetworkPath; + } + + + public ServerConfiguration preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred metadata language. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + public ServerConfiguration metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public ServerConfiguration sortReplaceCharacters(@javax.annotation.Nullable List sortReplaceCharacters) { + this.sortReplaceCharacters = sortReplaceCharacters; + return this; + } + + public ServerConfiguration addSortReplaceCharactersItem(String sortReplaceCharactersItem) { + if (this.sortReplaceCharacters == null) { + this.sortReplaceCharacters = new ArrayList<>(); + } + this.sortReplaceCharacters.add(sortReplaceCharactersItem); + return this; + } + + /** + * Gets or sets characters to be replaced with a ' ' in strings to create a sort name. + * @return sortReplaceCharacters + */ + @javax.annotation.Nullable + public List getSortReplaceCharacters() { + return sortReplaceCharacters; + } + + public void setSortReplaceCharacters(@javax.annotation.Nullable List sortReplaceCharacters) { + this.sortReplaceCharacters = sortReplaceCharacters; + } + + + public ServerConfiguration sortRemoveCharacters(@javax.annotation.Nullable List sortRemoveCharacters) { + this.sortRemoveCharacters = sortRemoveCharacters; + return this; + } + + public ServerConfiguration addSortRemoveCharactersItem(String sortRemoveCharactersItem) { + if (this.sortRemoveCharacters == null) { + this.sortRemoveCharacters = new ArrayList<>(); + } + this.sortRemoveCharacters.add(sortRemoveCharactersItem); + return this; + } + + /** + * Gets or sets characters to be removed from strings to create a sort name. + * @return sortRemoveCharacters + */ + @javax.annotation.Nullable + public List getSortRemoveCharacters() { + return sortRemoveCharacters; + } + + public void setSortRemoveCharacters(@javax.annotation.Nullable List sortRemoveCharacters) { + this.sortRemoveCharacters = sortRemoveCharacters; + } + + + public ServerConfiguration sortRemoveWords(@javax.annotation.Nullable List sortRemoveWords) { + this.sortRemoveWords = sortRemoveWords; + return this; + } + + public ServerConfiguration addSortRemoveWordsItem(String sortRemoveWordsItem) { + if (this.sortRemoveWords == null) { + this.sortRemoveWords = new ArrayList<>(); + } + this.sortRemoveWords.add(sortRemoveWordsItem); + return this; + } + + /** + * Gets or sets words to be removed from strings to create a sort name. + * @return sortRemoveWords + */ + @javax.annotation.Nullable + public List getSortRemoveWords() { + return sortRemoveWords; + } + + public void setSortRemoveWords(@javax.annotation.Nullable List sortRemoveWords) { + this.sortRemoveWords = sortRemoveWords; + } + + + public ServerConfiguration minResumePct(@javax.annotation.Nullable Integer minResumePct) { + this.minResumePct = minResumePct; + return this; + } + + /** + * Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. + * @return minResumePct + */ + @javax.annotation.Nullable + public Integer getMinResumePct() { + return minResumePct; + } + + public void setMinResumePct(@javax.annotation.Nullable Integer minResumePct) { + this.minResumePct = minResumePct; + } + + + public ServerConfiguration maxResumePct(@javax.annotation.Nullable Integer maxResumePct) { + this.maxResumePct = maxResumePct; + return this; + } + + /** + * Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + * @return maxResumePct + */ + @javax.annotation.Nullable + public Integer getMaxResumePct() { + return maxResumePct; + } + + public void setMaxResumePct(@javax.annotation.Nullable Integer maxResumePct) { + this.maxResumePct = maxResumePct; + } + + + public ServerConfiguration minResumeDurationSeconds(@javax.annotation.Nullable Integer minResumeDurationSeconds) { + this.minResumeDurationSeconds = minResumeDurationSeconds; + return this; + } + + /** + * Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. + * @return minResumeDurationSeconds + */ + @javax.annotation.Nullable + public Integer getMinResumeDurationSeconds() { + return minResumeDurationSeconds; + } + + public void setMinResumeDurationSeconds(@javax.annotation.Nullable Integer minResumeDurationSeconds) { + this.minResumeDurationSeconds = minResumeDurationSeconds; + } + + + public ServerConfiguration minAudiobookResume(@javax.annotation.Nullable Integer minAudiobookResume) { + this.minAudiobookResume = minAudiobookResume; + return this; + } + + /** + * Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. + * @return minAudiobookResume + */ + @javax.annotation.Nullable + public Integer getMinAudiobookResume() { + return minAudiobookResume; + } + + public void setMinAudiobookResume(@javax.annotation.Nullable Integer minAudiobookResume) { + this.minAudiobookResume = minAudiobookResume; + } + + + public ServerConfiguration maxAudiobookResume(@javax.annotation.Nullable Integer maxAudiobookResume) { + this.maxAudiobookResume = maxAudiobookResume; + return this; + } + + /** + * Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + * @return maxAudiobookResume + */ + @javax.annotation.Nullable + public Integer getMaxAudiobookResume() { + return maxAudiobookResume; + } + + public void setMaxAudiobookResume(@javax.annotation.Nullable Integer maxAudiobookResume) { + this.maxAudiobookResume = maxAudiobookResume; + } + + + public ServerConfiguration libraryMonitorDelay(@javax.annotation.Nullable Integer libraryMonitorDelay) { + this.libraryMonitorDelay = libraryMonitorDelay; + return this; + } + + /** + * Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed Some delay is necessary with some items because their creation is not atomic. It involves the creation of several different directories and files. + * @return libraryMonitorDelay + */ + @javax.annotation.Nullable + public Integer getLibraryMonitorDelay() { + return libraryMonitorDelay; + } + + public void setLibraryMonitorDelay(@javax.annotation.Nullable Integer libraryMonitorDelay) { + this.libraryMonitorDelay = libraryMonitorDelay; + } + + + public ServerConfiguration imageSavingConvention(@javax.annotation.Nullable ImageSavingConvention imageSavingConvention) { + this.imageSavingConvention = imageSavingConvention; + return this; + } + + /** + * Gets or sets the image saving convention. + * @return imageSavingConvention + */ + @javax.annotation.Nullable + public ImageSavingConvention getImageSavingConvention() { + return imageSavingConvention; + } + + public void setImageSavingConvention(@javax.annotation.Nullable ImageSavingConvention imageSavingConvention) { + this.imageSavingConvention = imageSavingConvention; + } + + + public ServerConfiguration metadataOptions(@javax.annotation.Nullable List metadataOptions) { + this.metadataOptions = metadataOptions; + return this; + } + + public ServerConfiguration addMetadataOptionsItem(MetadataOptions metadataOptionsItem) { + if (this.metadataOptions == null) { + this.metadataOptions = new ArrayList<>(); + } + this.metadataOptions.add(metadataOptionsItem); + return this; + } + + /** + * Get metadataOptions + * @return metadataOptions + */ + @javax.annotation.Nullable + public List getMetadataOptions() { + return metadataOptions; + } + + public void setMetadataOptions(@javax.annotation.Nullable List metadataOptions) { + this.metadataOptions = metadataOptions; + } + + + public ServerConfiguration skipDeserializationForBasicTypes(@javax.annotation.Nullable Boolean skipDeserializationForBasicTypes) { + this.skipDeserializationForBasicTypes = skipDeserializationForBasicTypes; + return this; + } + + /** + * Get skipDeserializationForBasicTypes + * @return skipDeserializationForBasicTypes + */ + @javax.annotation.Nullable + public Boolean getSkipDeserializationForBasicTypes() { + return skipDeserializationForBasicTypes; + } + + public void setSkipDeserializationForBasicTypes(@javax.annotation.Nullable Boolean skipDeserializationForBasicTypes) { + this.skipDeserializationForBasicTypes = skipDeserializationForBasicTypes; + } + + + public ServerConfiguration serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Get serverName + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public ServerConfiguration uiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + return this; + } + + /** + * Get uiCulture + * @return uiCulture + */ + @javax.annotation.Nullable + public String getUiCulture() { + return uiCulture; + } + + public void setUiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + } + + + public ServerConfiguration saveMetadataHidden(@javax.annotation.Nullable Boolean saveMetadataHidden) { + this.saveMetadataHidden = saveMetadataHidden; + return this; + } + + /** + * Get saveMetadataHidden + * @return saveMetadataHidden + */ + @javax.annotation.Nullable + public Boolean getSaveMetadataHidden() { + return saveMetadataHidden; + } + + public void setSaveMetadataHidden(@javax.annotation.Nullable Boolean saveMetadataHidden) { + this.saveMetadataHidden = saveMetadataHidden; + } + + + public ServerConfiguration contentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + return this; + } + + public ServerConfiguration addContentTypesItem(NameValuePair contentTypesItem) { + if (this.contentTypes == null) { + this.contentTypes = new ArrayList<>(); + } + this.contentTypes.add(contentTypesItem); + return this; + } + + /** + * Get contentTypes + * @return contentTypes + */ + @javax.annotation.Nullable + public List getContentTypes() { + return contentTypes; + } + + public void setContentTypes(@javax.annotation.Nullable List contentTypes) { + this.contentTypes = contentTypes; + } + + + public ServerConfiguration remoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + return this; + } + + /** + * Get remoteClientBitrateLimit + * @return remoteClientBitrateLimit + */ + @javax.annotation.Nullable + public Integer getRemoteClientBitrateLimit() { + return remoteClientBitrateLimit; + } + + public void setRemoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + } + + + public ServerConfiguration enableFolderView(@javax.annotation.Nullable Boolean enableFolderView) { + this.enableFolderView = enableFolderView; + return this; + } + + /** + * Get enableFolderView + * @return enableFolderView + */ + @javax.annotation.Nullable + public Boolean getEnableFolderView() { + return enableFolderView; + } + + public void setEnableFolderView(@javax.annotation.Nullable Boolean enableFolderView) { + this.enableFolderView = enableFolderView; + } + + + public ServerConfiguration enableGroupingIntoCollections(@javax.annotation.Nullable Boolean enableGroupingIntoCollections) { + this.enableGroupingIntoCollections = enableGroupingIntoCollections; + return this; + } + + /** + * Get enableGroupingIntoCollections + * @return enableGroupingIntoCollections + */ + @javax.annotation.Nullable + public Boolean getEnableGroupingIntoCollections() { + return enableGroupingIntoCollections; + } + + public void setEnableGroupingIntoCollections(@javax.annotation.Nullable Boolean enableGroupingIntoCollections) { + this.enableGroupingIntoCollections = enableGroupingIntoCollections; + } + + + public ServerConfiguration displaySpecialsWithinSeasons(@javax.annotation.Nullable Boolean displaySpecialsWithinSeasons) { + this.displaySpecialsWithinSeasons = displaySpecialsWithinSeasons; + return this; + } + + /** + * Get displaySpecialsWithinSeasons + * @return displaySpecialsWithinSeasons + */ + @javax.annotation.Nullable + public Boolean getDisplaySpecialsWithinSeasons() { + return displaySpecialsWithinSeasons; + } + + public void setDisplaySpecialsWithinSeasons(@javax.annotation.Nullable Boolean displaySpecialsWithinSeasons) { + this.displaySpecialsWithinSeasons = displaySpecialsWithinSeasons; + } + + + public ServerConfiguration codecsUsed(@javax.annotation.Nullable List codecsUsed) { + this.codecsUsed = codecsUsed; + return this; + } + + public ServerConfiguration addCodecsUsedItem(String codecsUsedItem) { + if (this.codecsUsed == null) { + this.codecsUsed = new ArrayList<>(); + } + this.codecsUsed.add(codecsUsedItem); + return this; + } + + /** + * Get codecsUsed + * @return codecsUsed + */ + @javax.annotation.Nullable + public List getCodecsUsed() { + return codecsUsed; + } + + public void setCodecsUsed(@javax.annotation.Nullable List codecsUsed) { + this.codecsUsed = codecsUsed; + } + + + public ServerConfiguration pluginRepositories(@javax.annotation.Nullable List pluginRepositories) { + this.pluginRepositories = pluginRepositories; + return this; + } + + public ServerConfiguration addPluginRepositoriesItem(RepositoryInfo pluginRepositoriesItem) { + if (this.pluginRepositories == null) { + this.pluginRepositories = new ArrayList<>(); + } + this.pluginRepositories.add(pluginRepositoriesItem); + return this; + } + + /** + * Get pluginRepositories + * @return pluginRepositories + */ + @javax.annotation.Nullable + public List getPluginRepositories() { + return pluginRepositories; + } + + public void setPluginRepositories(@javax.annotation.Nullable List pluginRepositories) { + this.pluginRepositories = pluginRepositories; + } + + + public ServerConfiguration enableExternalContentInSuggestions(@javax.annotation.Nullable Boolean enableExternalContentInSuggestions) { + this.enableExternalContentInSuggestions = enableExternalContentInSuggestions; + return this; + } + + /** + * Get enableExternalContentInSuggestions + * @return enableExternalContentInSuggestions + */ + @javax.annotation.Nullable + public Boolean getEnableExternalContentInSuggestions() { + return enableExternalContentInSuggestions; + } + + public void setEnableExternalContentInSuggestions(@javax.annotation.Nullable Boolean enableExternalContentInSuggestions) { + this.enableExternalContentInSuggestions = enableExternalContentInSuggestions; + } + + + public ServerConfiguration imageExtractionTimeoutMs(@javax.annotation.Nullable Integer imageExtractionTimeoutMs) { + this.imageExtractionTimeoutMs = imageExtractionTimeoutMs; + return this; + } + + /** + * Get imageExtractionTimeoutMs + * @return imageExtractionTimeoutMs + */ + @javax.annotation.Nullable + public Integer getImageExtractionTimeoutMs() { + return imageExtractionTimeoutMs; + } + + public void setImageExtractionTimeoutMs(@javax.annotation.Nullable Integer imageExtractionTimeoutMs) { + this.imageExtractionTimeoutMs = imageExtractionTimeoutMs; + } + + + public ServerConfiguration pathSubstitutions(@javax.annotation.Nullable List pathSubstitutions) { + this.pathSubstitutions = pathSubstitutions; + return this; + } + + public ServerConfiguration addPathSubstitutionsItem(PathSubstitution pathSubstitutionsItem) { + if (this.pathSubstitutions == null) { + this.pathSubstitutions = new ArrayList<>(); + } + this.pathSubstitutions.add(pathSubstitutionsItem); + return this; + } + + /** + * Get pathSubstitutions + * @return pathSubstitutions + */ + @javax.annotation.Nullable + public List getPathSubstitutions() { + return pathSubstitutions; + } + + public void setPathSubstitutions(@javax.annotation.Nullable List pathSubstitutions) { + this.pathSubstitutions = pathSubstitutions; + } + + + public ServerConfiguration enableSlowResponseWarning(@javax.annotation.Nullable Boolean enableSlowResponseWarning) { + this.enableSlowResponseWarning = enableSlowResponseWarning; + return this; + } + + /** + * Gets or sets a value indicating whether slow server responses should be logged as a warning. + * @return enableSlowResponseWarning + */ + @javax.annotation.Nullable + public Boolean getEnableSlowResponseWarning() { + return enableSlowResponseWarning; + } + + public void setEnableSlowResponseWarning(@javax.annotation.Nullable Boolean enableSlowResponseWarning) { + this.enableSlowResponseWarning = enableSlowResponseWarning; + } + + + public ServerConfiguration slowResponseThresholdMs(@javax.annotation.Nullable Long slowResponseThresholdMs) { + this.slowResponseThresholdMs = slowResponseThresholdMs; + return this; + } + + /** + * Gets or sets the threshold for the slow response time warning in ms. + * @return slowResponseThresholdMs + */ + @javax.annotation.Nullable + public Long getSlowResponseThresholdMs() { + return slowResponseThresholdMs; + } + + public void setSlowResponseThresholdMs(@javax.annotation.Nullable Long slowResponseThresholdMs) { + this.slowResponseThresholdMs = slowResponseThresholdMs; + } + + + public ServerConfiguration corsHosts(@javax.annotation.Nullable List corsHosts) { + this.corsHosts = corsHosts; + return this; + } + + public ServerConfiguration addCorsHostsItem(String corsHostsItem) { + if (this.corsHosts == null) { + this.corsHosts = new ArrayList<>(); + } + this.corsHosts.add(corsHostsItem); + return this; + } + + /** + * Gets or sets the cors hosts. + * @return corsHosts + */ + @javax.annotation.Nullable + public List getCorsHosts() { + return corsHosts; + } + + public void setCorsHosts(@javax.annotation.Nullable List corsHosts) { + this.corsHosts = corsHosts; + } + + + public ServerConfiguration activityLogRetentionDays(@javax.annotation.Nullable Integer activityLogRetentionDays) { + this.activityLogRetentionDays = activityLogRetentionDays; + return this; + } + + /** + * Gets or sets the number of days we should retain activity logs. + * @return activityLogRetentionDays + */ + @javax.annotation.Nullable + public Integer getActivityLogRetentionDays() { + return activityLogRetentionDays; + } + + public void setActivityLogRetentionDays(@javax.annotation.Nullable Integer activityLogRetentionDays) { + this.activityLogRetentionDays = activityLogRetentionDays; + } + + + public ServerConfiguration libraryScanFanoutConcurrency(@javax.annotation.Nullable Integer libraryScanFanoutConcurrency) { + this.libraryScanFanoutConcurrency = libraryScanFanoutConcurrency; + return this; + } + + /** + * Gets or sets the how the library scan fans out. + * @return libraryScanFanoutConcurrency + */ + @javax.annotation.Nullable + public Integer getLibraryScanFanoutConcurrency() { + return libraryScanFanoutConcurrency; + } + + public void setLibraryScanFanoutConcurrency(@javax.annotation.Nullable Integer libraryScanFanoutConcurrency) { + this.libraryScanFanoutConcurrency = libraryScanFanoutConcurrency; + } + + + public ServerConfiguration libraryMetadataRefreshConcurrency(@javax.annotation.Nullable Integer libraryMetadataRefreshConcurrency) { + this.libraryMetadataRefreshConcurrency = libraryMetadataRefreshConcurrency; + return this; + } + + /** + * Gets or sets the how many metadata refreshes can run concurrently. + * @return libraryMetadataRefreshConcurrency + */ + @javax.annotation.Nullable + public Integer getLibraryMetadataRefreshConcurrency() { + return libraryMetadataRefreshConcurrency; + } + + public void setLibraryMetadataRefreshConcurrency(@javax.annotation.Nullable Integer libraryMetadataRefreshConcurrency) { + this.libraryMetadataRefreshConcurrency = libraryMetadataRefreshConcurrency; + } + + + public ServerConfiguration removeOldPlugins(@javax.annotation.Nullable Boolean removeOldPlugins) { + this.removeOldPlugins = removeOldPlugins; + return this; + } + + /** + * Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. + * @return removeOldPlugins + */ + @javax.annotation.Nullable + public Boolean getRemoveOldPlugins() { + return removeOldPlugins; + } + + public void setRemoveOldPlugins(@javax.annotation.Nullable Boolean removeOldPlugins) { + this.removeOldPlugins = removeOldPlugins; + } + + + public ServerConfiguration allowClientLogUpload(@javax.annotation.Nullable Boolean allowClientLogUpload) { + this.allowClientLogUpload = allowClientLogUpload; + return this; + } + + /** + * Gets or sets a value indicating whether clients should be allowed to upload logs. + * @return allowClientLogUpload + */ + @javax.annotation.Nullable + public Boolean getAllowClientLogUpload() { + return allowClientLogUpload; + } + + public void setAllowClientLogUpload(@javax.annotation.Nullable Boolean allowClientLogUpload) { + this.allowClientLogUpload = allowClientLogUpload; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerConfiguration serverConfiguration = (ServerConfiguration) o; + return Objects.equals(this.logFileRetentionDays, serverConfiguration.logFileRetentionDays) && + Objects.equals(this.isStartupWizardCompleted, serverConfiguration.isStartupWizardCompleted) && + Objects.equals(this.cachePath, serverConfiguration.cachePath) && + Objects.equals(this.previousVersion, serverConfiguration.previousVersion) && + Objects.equals(this.previousVersionStr, serverConfiguration.previousVersionStr) && + Objects.equals(this.enableMetrics, serverConfiguration.enableMetrics) && + Objects.equals(this.enableNormalizedItemByNameIds, serverConfiguration.enableNormalizedItemByNameIds) && + Objects.equals(this.isPortAuthorized, serverConfiguration.isPortAuthorized) && + Objects.equals(this.quickConnectAvailable, serverConfiguration.quickConnectAvailable) && + Objects.equals(this.enableCaseSensitiveItemIds, serverConfiguration.enableCaseSensitiveItemIds) && + Objects.equals(this.disableLiveTvChannelUserDataName, serverConfiguration.disableLiveTvChannelUserDataName) && + Objects.equals(this.metadataPath, serverConfiguration.metadataPath) && + Objects.equals(this.metadataNetworkPath, serverConfiguration.metadataNetworkPath) && + Objects.equals(this.preferredMetadataLanguage, serverConfiguration.preferredMetadataLanguage) && + Objects.equals(this.metadataCountryCode, serverConfiguration.metadataCountryCode) && + Objects.equals(this.sortReplaceCharacters, serverConfiguration.sortReplaceCharacters) && + Objects.equals(this.sortRemoveCharacters, serverConfiguration.sortRemoveCharacters) && + Objects.equals(this.sortRemoveWords, serverConfiguration.sortRemoveWords) && + Objects.equals(this.minResumePct, serverConfiguration.minResumePct) && + Objects.equals(this.maxResumePct, serverConfiguration.maxResumePct) && + Objects.equals(this.minResumeDurationSeconds, serverConfiguration.minResumeDurationSeconds) && + Objects.equals(this.minAudiobookResume, serverConfiguration.minAudiobookResume) && + Objects.equals(this.maxAudiobookResume, serverConfiguration.maxAudiobookResume) && + Objects.equals(this.libraryMonitorDelay, serverConfiguration.libraryMonitorDelay) && + Objects.equals(this.imageSavingConvention, serverConfiguration.imageSavingConvention) && + Objects.equals(this.metadataOptions, serverConfiguration.metadataOptions) && + Objects.equals(this.skipDeserializationForBasicTypes, serverConfiguration.skipDeserializationForBasicTypes) && + Objects.equals(this.serverName, serverConfiguration.serverName) && + Objects.equals(this.uiCulture, serverConfiguration.uiCulture) && + Objects.equals(this.saveMetadataHidden, serverConfiguration.saveMetadataHidden) && + Objects.equals(this.contentTypes, serverConfiguration.contentTypes) && + Objects.equals(this.remoteClientBitrateLimit, serverConfiguration.remoteClientBitrateLimit) && + Objects.equals(this.enableFolderView, serverConfiguration.enableFolderView) && + Objects.equals(this.enableGroupingIntoCollections, serverConfiguration.enableGroupingIntoCollections) && + Objects.equals(this.displaySpecialsWithinSeasons, serverConfiguration.displaySpecialsWithinSeasons) && + Objects.equals(this.codecsUsed, serverConfiguration.codecsUsed) && + Objects.equals(this.pluginRepositories, serverConfiguration.pluginRepositories) && + Objects.equals(this.enableExternalContentInSuggestions, serverConfiguration.enableExternalContentInSuggestions) && + Objects.equals(this.imageExtractionTimeoutMs, serverConfiguration.imageExtractionTimeoutMs) && + Objects.equals(this.pathSubstitutions, serverConfiguration.pathSubstitutions) && + Objects.equals(this.enableSlowResponseWarning, serverConfiguration.enableSlowResponseWarning) && + Objects.equals(this.slowResponseThresholdMs, serverConfiguration.slowResponseThresholdMs) && + Objects.equals(this.corsHosts, serverConfiguration.corsHosts) && + Objects.equals(this.activityLogRetentionDays, serverConfiguration.activityLogRetentionDays) && + Objects.equals(this.libraryScanFanoutConcurrency, serverConfiguration.libraryScanFanoutConcurrency) && + Objects.equals(this.libraryMetadataRefreshConcurrency, serverConfiguration.libraryMetadataRefreshConcurrency) && + Objects.equals(this.removeOldPlugins, serverConfiguration.removeOldPlugins) && + Objects.equals(this.allowClientLogUpload, serverConfiguration.allowClientLogUpload); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(logFileRetentionDays, isStartupWizardCompleted, cachePath, previousVersion, previousVersionStr, enableMetrics, enableNormalizedItemByNameIds, isPortAuthorized, quickConnectAvailable, enableCaseSensitiveItemIds, disableLiveTvChannelUserDataName, metadataPath, metadataNetworkPath, preferredMetadataLanguage, metadataCountryCode, sortReplaceCharacters, sortRemoveCharacters, sortRemoveWords, minResumePct, maxResumePct, minResumeDurationSeconds, minAudiobookResume, maxAudiobookResume, libraryMonitorDelay, imageSavingConvention, metadataOptions, skipDeserializationForBasicTypes, serverName, uiCulture, saveMetadataHidden, contentTypes, remoteClientBitrateLimit, enableFolderView, enableGroupingIntoCollections, displaySpecialsWithinSeasons, codecsUsed, pluginRepositories, enableExternalContentInSuggestions, imageExtractionTimeoutMs, pathSubstitutions, enableSlowResponseWarning, slowResponseThresholdMs, corsHosts, activityLogRetentionDays, libraryScanFanoutConcurrency, libraryMetadataRefreshConcurrency, removeOldPlugins, allowClientLogUpload); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerConfiguration {\n"); + sb.append(" logFileRetentionDays: ").append(toIndentedString(logFileRetentionDays)).append("\n"); + sb.append(" isStartupWizardCompleted: ").append(toIndentedString(isStartupWizardCompleted)).append("\n"); + sb.append(" cachePath: ").append(toIndentedString(cachePath)).append("\n"); + sb.append(" previousVersion: ").append(toIndentedString(previousVersion)).append("\n"); + sb.append(" previousVersionStr: ").append(toIndentedString(previousVersionStr)).append("\n"); + sb.append(" enableMetrics: ").append(toIndentedString(enableMetrics)).append("\n"); + sb.append(" enableNormalizedItemByNameIds: ").append(toIndentedString(enableNormalizedItemByNameIds)).append("\n"); + sb.append(" isPortAuthorized: ").append(toIndentedString(isPortAuthorized)).append("\n"); + sb.append(" quickConnectAvailable: ").append(toIndentedString(quickConnectAvailable)).append("\n"); + sb.append(" enableCaseSensitiveItemIds: ").append(toIndentedString(enableCaseSensitiveItemIds)).append("\n"); + sb.append(" disableLiveTvChannelUserDataName: ").append(toIndentedString(disableLiveTvChannelUserDataName)).append("\n"); + sb.append(" metadataPath: ").append(toIndentedString(metadataPath)).append("\n"); + sb.append(" metadataNetworkPath: ").append(toIndentedString(metadataNetworkPath)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" sortReplaceCharacters: ").append(toIndentedString(sortReplaceCharacters)).append("\n"); + sb.append(" sortRemoveCharacters: ").append(toIndentedString(sortRemoveCharacters)).append("\n"); + sb.append(" sortRemoveWords: ").append(toIndentedString(sortRemoveWords)).append("\n"); + sb.append(" minResumePct: ").append(toIndentedString(minResumePct)).append("\n"); + sb.append(" maxResumePct: ").append(toIndentedString(maxResumePct)).append("\n"); + sb.append(" minResumeDurationSeconds: ").append(toIndentedString(minResumeDurationSeconds)).append("\n"); + sb.append(" minAudiobookResume: ").append(toIndentedString(minAudiobookResume)).append("\n"); + sb.append(" maxAudiobookResume: ").append(toIndentedString(maxAudiobookResume)).append("\n"); + sb.append(" libraryMonitorDelay: ").append(toIndentedString(libraryMonitorDelay)).append("\n"); + sb.append(" imageSavingConvention: ").append(toIndentedString(imageSavingConvention)).append("\n"); + sb.append(" metadataOptions: ").append(toIndentedString(metadataOptions)).append("\n"); + sb.append(" skipDeserializationForBasicTypes: ").append(toIndentedString(skipDeserializationForBasicTypes)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" uiCulture: ").append(toIndentedString(uiCulture)).append("\n"); + sb.append(" saveMetadataHidden: ").append(toIndentedString(saveMetadataHidden)).append("\n"); + sb.append(" contentTypes: ").append(toIndentedString(contentTypes)).append("\n"); + sb.append(" remoteClientBitrateLimit: ").append(toIndentedString(remoteClientBitrateLimit)).append("\n"); + sb.append(" enableFolderView: ").append(toIndentedString(enableFolderView)).append("\n"); + sb.append(" enableGroupingIntoCollections: ").append(toIndentedString(enableGroupingIntoCollections)).append("\n"); + sb.append(" displaySpecialsWithinSeasons: ").append(toIndentedString(displaySpecialsWithinSeasons)).append("\n"); + sb.append(" codecsUsed: ").append(toIndentedString(codecsUsed)).append("\n"); + sb.append(" pluginRepositories: ").append(toIndentedString(pluginRepositories)).append("\n"); + sb.append(" enableExternalContentInSuggestions: ").append(toIndentedString(enableExternalContentInSuggestions)).append("\n"); + sb.append(" imageExtractionTimeoutMs: ").append(toIndentedString(imageExtractionTimeoutMs)).append("\n"); + sb.append(" pathSubstitutions: ").append(toIndentedString(pathSubstitutions)).append("\n"); + sb.append(" enableSlowResponseWarning: ").append(toIndentedString(enableSlowResponseWarning)).append("\n"); + sb.append(" slowResponseThresholdMs: ").append(toIndentedString(slowResponseThresholdMs)).append("\n"); + sb.append(" corsHosts: ").append(toIndentedString(corsHosts)).append("\n"); + sb.append(" activityLogRetentionDays: ").append(toIndentedString(activityLogRetentionDays)).append("\n"); + sb.append(" libraryScanFanoutConcurrency: ").append(toIndentedString(libraryScanFanoutConcurrency)).append("\n"); + sb.append(" libraryMetadataRefreshConcurrency: ").append(toIndentedString(libraryMetadataRefreshConcurrency)).append("\n"); + sb.append(" removeOldPlugins: ").append(toIndentedString(removeOldPlugins)).append("\n"); + sb.append(" allowClientLogUpload: ").append(toIndentedString(allowClientLogUpload)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LogFileRetentionDays"); + openapiFields.add("IsStartupWizardCompleted"); + openapiFields.add("CachePath"); + openapiFields.add("PreviousVersion"); + openapiFields.add("PreviousVersionStr"); + openapiFields.add("EnableMetrics"); + openapiFields.add("EnableNormalizedItemByNameIds"); + openapiFields.add("IsPortAuthorized"); + openapiFields.add("QuickConnectAvailable"); + openapiFields.add("EnableCaseSensitiveItemIds"); + openapiFields.add("DisableLiveTvChannelUserDataName"); + openapiFields.add("MetadataPath"); + openapiFields.add("MetadataNetworkPath"); + openapiFields.add("PreferredMetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("SortReplaceCharacters"); + openapiFields.add("SortRemoveCharacters"); + openapiFields.add("SortRemoveWords"); + openapiFields.add("MinResumePct"); + openapiFields.add("MaxResumePct"); + openapiFields.add("MinResumeDurationSeconds"); + openapiFields.add("MinAudiobookResume"); + openapiFields.add("MaxAudiobookResume"); + openapiFields.add("LibraryMonitorDelay"); + openapiFields.add("ImageSavingConvention"); + openapiFields.add("MetadataOptions"); + openapiFields.add("SkipDeserializationForBasicTypes"); + openapiFields.add("ServerName"); + openapiFields.add("UICulture"); + openapiFields.add("SaveMetadataHidden"); + openapiFields.add("ContentTypes"); + openapiFields.add("RemoteClientBitrateLimit"); + openapiFields.add("EnableFolderView"); + openapiFields.add("EnableGroupingIntoCollections"); + openapiFields.add("DisplaySpecialsWithinSeasons"); + openapiFields.add("CodecsUsed"); + openapiFields.add("PluginRepositories"); + openapiFields.add("EnableExternalContentInSuggestions"); + openapiFields.add("ImageExtractionTimeoutMs"); + openapiFields.add("PathSubstitutions"); + openapiFields.add("EnableSlowResponseWarning"); + openapiFields.add("SlowResponseThresholdMs"); + openapiFields.add("CorsHosts"); + openapiFields.add("ActivityLogRetentionDays"); + openapiFields.add("LibraryScanFanoutConcurrency"); + openapiFields.add("LibraryMetadataRefreshConcurrency"); + openapiFields.add("RemoveOldPlugins"); + openapiFields.add("AllowClientLogUpload"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerConfiguration is not found in the empty JSON string", ServerConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("CachePath") != null && !jsonObj.get("CachePath").isJsonNull()) && !jsonObj.get("CachePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CachePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CachePath").toString())); + } + if ((jsonObj.get("PreviousVersion") != null && !jsonObj.get("PreviousVersion").isJsonNull()) && !jsonObj.get("PreviousVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreviousVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreviousVersion").toString())); + } + if ((jsonObj.get("PreviousVersionStr") != null && !jsonObj.get("PreviousVersionStr").isJsonNull()) && !jsonObj.get("PreviousVersionStr").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreviousVersionStr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreviousVersionStr").toString())); + } + if ((jsonObj.get("MetadataPath") != null && !jsonObj.get("MetadataPath").isJsonNull()) && !jsonObj.get("MetadataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataPath").toString())); + } + if ((jsonObj.get("MetadataNetworkPath") != null && !jsonObj.get("MetadataNetworkPath").isJsonNull()) && !jsonObj.get("MetadataNetworkPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataNetworkPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataNetworkPath").toString())); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortReplaceCharacters") != null && !jsonObj.get("SortReplaceCharacters").isJsonNull() && !jsonObj.get("SortReplaceCharacters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortReplaceCharacters` to be an array in the JSON string but got `%s`", jsonObj.get("SortReplaceCharacters").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortRemoveCharacters") != null && !jsonObj.get("SortRemoveCharacters").isJsonNull() && !jsonObj.get("SortRemoveCharacters").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortRemoveCharacters` to be an array in the JSON string but got `%s`", jsonObj.get("SortRemoveCharacters").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SortRemoveWords") != null && !jsonObj.get("SortRemoveWords").isJsonNull() && !jsonObj.get("SortRemoveWords").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SortRemoveWords` to be an array in the JSON string but got `%s`", jsonObj.get("SortRemoveWords").toString())); + } + // validate the optional field `ImageSavingConvention` + if (jsonObj.get("ImageSavingConvention") != null && !jsonObj.get("ImageSavingConvention").isJsonNull()) { + ImageSavingConvention.validateJsonElement(jsonObj.get("ImageSavingConvention")); + } + if (jsonObj.get("MetadataOptions") != null && !jsonObj.get("MetadataOptions").isJsonNull()) { + JsonArray jsonArraymetadataOptions = jsonObj.getAsJsonArray("MetadataOptions"); + if (jsonArraymetadataOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("MetadataOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataOptions` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataOptions").toString())); + } + + // validate the optional field `MetadataOptions` (array) + for (int i = 0; i < jsonArraymetadataOptions.size(); i++) { + MetadataOptions.validateJsonElement(jsonArraymetadataOptions.get(i)); + }; + } + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("UICulture") != null && !jsonObj.get("UICulture").isJsonNull()) && !jsonObj.get("UICulture").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UICulture` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UICulture").toString())); + } + if (jsonObj.get("ContentTypes") != null && !jsonObj.get("ContentTypes").isJsonNull()) { + JsonArray jsonArraycontentTypes = jsonObj.getAsJsonArray("ContentTypes"); + if (jsonArraycontentTypes != null) { + // ensure the json data is an array + if (!jsonObj.get("ContentTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ContentTypes` to be an array in the JSON string but got `%s`", jsonObj.get("ContentTypes").toString())); + } + + // validate the optional field `ContentTypes` (array) + for (int i = 0; i < jsonArraycontentTypes.size(); i++) { + NameValuePair.validateJsonElement(jsonArraycontentTypes.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("CodecsUsed") != null && !jsonObj.get("CodecsUsed").isJsonNull() && !jsonObj.get("CodecsUsed").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CodecsUsed` to be an array in the JSON string but got `%s`", jsonObj.get("CodecsUsed").toString())); + } + if (jsonObj.get("PluginRepositories") != null && !jsonObj.get("PluginRepositories").isJsonNull()) { + JsonArray jsonArraypluginRepositories = jsonObj.getAsJsonArray("PluginRepositories"); + if (jsonArraypluginRepositories != null) { + // ensure the json data is an array + if (!jsonObj.get("PluginRepositories").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PluginRepositories` to be an array in the JSON string but got `%s`", jsonObj.get("PluginRepositories").toString())); + } + + // validate the optional field `PluginRepositories` (array) + for (int i = 0; i < jsonArraypluginRepositories.size(); i++) { + RepositoryInfo.validateJsonElement(jsonArraypluginRepositories.get(i)); + }; + } + } + if (jsonObj.get("PathSubstitutions") != null && !jsonObj.get("PathSubstitutions").isJsonNull()) { + JsonArray jsonArraypathSubstitutions = jsonObj.getAsJsonArray("PathSubstitutions"); + if (jsonArraypathSubstitutions != null) { + // ensure the json data is an array + if (!jsonObj.get("PathSubstitutions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PathSubstitutions` to be an array in the JSON string but got `%s`", jsonObj.get("PathSubstitutions").toString())); + } + + // validate the optional field `PathSubstitutions` (array) + for (int i = 0; i < jsonArraypathSubstitutions.size(); i++) { + PathSubstitution.validateJsonElement(jsonArraypathSubstitutions.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("CorsHosts") != null && !jsonObj.get("CorsHosts").isJsonNull() && !jsonObj.get("CorsHosts").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CorsHosts` to be an array in the JSON string but got `%s`", jsonObj.get("CorsHosts").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerConfiguration + * @throws IOException if the JSON string is invalid with respect to ServerConfiguration + */ + public static ServerConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerConfiguration.class); + } + + /** + * Convert an instance of ServerConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java new file mode 100644 index 0000000000000..c91a888f967ce --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ServerDiscoveryInfo.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The server discovery info model. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ServerDiscoveryInfo { + public static final String SERIALIZED_NAME_ADDRESS = "Address"; + @SerializedName(SERIALIZED_NAME_ADDRESS) + @javax.annotation.Nullable + private String address; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ENDPOINT_ADDRESS = "EndpointAddress"; + @SerializedName(SERIALIZED_NAME_ENDPOINT_ADDRESS) + @javax.annotation.Nullable + private String endpointAddress; + + public ServerDiscoveryInfo() { + } + + public ServerDiscoveryInfo address(@javax.annotation.Nullable String address) { + this.address = address; + return this; + } + + /** + * Gets the address. + * @return address + */ + @javax.annotation.Nullable + public String getAddress() { + return address; + } + + public void setAddress(@javax.annotation.Nullable String address) { + this.address = address; + } + + + public ServerDiscoveryInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets the server identifier. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public ServerDiscoveryInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ServerDiscoveryInfo endpointAddress(@javax.annotation.Nullable String endpointAddress) { + this.endpointAddress = endpointAddress; + return this; + } + + /** + * Gets the endpoint address. + * @return endpointAddress + */ + @javax.annotation.Nullable + public String getEndpointAddress() { + return endpointAddress; + } + + public void setEndpointAddress(@javax.annotation.Nullable String endpointAddress) { + this.endpointAddress = endpointAddress; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServerDiscoveryInfo serverDiscoveryInfo = (ServerDiscoveryInfo) o; + return Objects.equals(this.address, serverDiscoveryInfo.address) && + Objects.equals(this.id, serverDiscoveryInfo.id) && + Objects.equals(this.name, serverDiscoveryInfo.name) && + Objects.equals(this.endpointAddress, serverDiscoveryInfo.endpointAddress); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(address, id, name, endpointAddress); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServerDiscoveryInfo {\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" endpointAddress: ").append(toIndentedString(endpointAddress)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Address"); + openapiFields.add("Id"); + openapiFields.add("Name"); + openapiFields.add("EndpointAddress"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServerDiscoveryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServerDiscoveryInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServerDiscoveryInfo is not found in the empty JSON string", ServerDiscoveryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ServerDiscoveryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ServerDiscoveryInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Address") != null && !jsonObj.get("Address").isJsonNull()) && !jsonObj.get("Address").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Address` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Address").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("EndpointAddress") != null && !jsonObj.get("EndpointAddress").isJsonNull()) && !jsonObj.get("EndpointAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `EndpointAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("EndpointAddress").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServerDiscoveryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServerDiscoveryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServerDiscoveryInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServerDiscoveryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ServerDiscoveryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServerDiscoveryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServerDiscoveryInfo + * @throws IOException if the JSON string is invalid with respect to ServerDiscoveryInfo + */ + public static ServerDiscoveryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServerDiscoveryInfo.class); + } + + /** + * Convert an instance of ServerDiscoveryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionInfo.java new file mode 100644 index 0000000000000..8af0665d966b3 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionInfo.java @@ -0,0 +1,1092 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItem; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.ClientCapabilities; +import org.openapitools.client.model.GeneralCommandType; +import org.openapitools.client.model.PlayerStateInfo; +import org.openapitools.client.model.QueueItem; +import org.openapitools.client.model.SessionUserInfo; +import org.openapitools.client.model.TranscodingInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SessionInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionInfo { + public static final String SERIALIZED_NAME_PLAY_STATE = "PlayState"; + @SerializedName(SERIALIZED_NAME_PLAY_STATE) + @javax.annotation.Nullable + private PlayerStateInfo playState; + + public static final String SERIALIZED_NAME_ADDITIONAL_USERS = "AdditionalUsers"; + @SerializedName(SERIALIZED_NAME_ADDITIONAL_USERS) + @javax.annotation.Nullable + private List additionalUsers; + + public static final String SERIALIZED_NAME_CAPABILITIES = "Capabilities"; + @SerializedName(SERIALIZED_NAME_CAPABILITIES) + @javax.annotation.Nullable + private ClientCapabilities capabilities; + + public static final String SERIALIZED_NAME_REMOTE_END_POINT = "RemoteEndPoint"; + @SerializedName(SERIALIZED_NAME_REMOTE_END_POINT) + @javax.annotation.Nullable + private String remoteEndPoint; + + public static final String SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES = "PlayableMediaTypes"; + @SerializedName(SERIALIZED_NAME_PLAYABLE_MEDIA_TYPES) + @javax.annotation.Nullable + private List playableMediaTypes; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public static final String SERIALIZED_NAME_CLIENT = "Client"; + @SerializedName(SERIALIZED_NAME_CLIENT) + @javax.annotation.Nullable + private String client; + + public static final String SERIALIZED_NAME_LAST_ACTIVITY_DATE = "LastActivityDate"; + @SerializedName(SERIALIZED_NAME_LAST_ACTIVITY_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastActivityDate; + + public static final String SERIALIZED_NAME_LAST_PLAYBACK_CHECK_IN = "LastPlaybackCheckIn"; + @SerializedName(SERIALIZED_NAME_LAST_PLAYBACK_CHECK_IN) + @javax.annotation.Nullable + private OffsetDateTime lastPlaybackCheckIn; + + public static final String SERIALIZED_NAME_DEVICE_NAME = "DeviceName"; + @SerializedName(SERIALIZED_NAME_DEVICE_NAME) + @javax.annotation.Nullable + private String deviceName; + + public static final String SERIALIZED_NAME_DEVICE_TYPE = "DeviceType"; + @SerializedName(SERIALIZED_NAME_DEVICE_TYPE) + @javax.annotation.Nullable + private String deviceType; + + public static final String SERIALIZED_NAME_NOW_PLAYING_ITEM = "NowPlayingItem"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_ITEM) + @javax.annotation.Nullable + private BaseItemDto nowPlayingItem; + + public static final String SERIALIZED_NAME_FULL_NOW_PLAYING_ITEM = "FullNowPlayingItem"; + @SerializedName(SERIALIZED_NAME_FULL_NOW_PLAYING_ITEM) + @javax.annotation.Nullable + private BaseItem fullNowPlayingItem; + + public static final String SERIALIZED_NAME_NOW_VIEWING_ITEM = "NowViewingItem"; + @SerializedName(SERIALIZED_NAME_NOW_VIEWING_ITEM) + @javax.annotation.Nullable + private BaseItemDto nowViewingItem; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_APPLICATION_VERSION = "ApplicationVersion"; + @SerializedName(SERIALIZED_NAME_APPLICATION_VERSION) + @javax.annotation.Nullable + private String applicationVersion; + + public static final String SERIALIZED_NAME_TRANSCODING_INFO = "TranscodingInfo"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_INFO) + @javax.annotation.Nullable + private TranscodingInfo transcodingInfo; + + public static final String SERIALIZED_NAME_IS_ACTIVE = "IsActive"; + @SerializedName(SERIALIZED_NAME_IS_ACTIVE) + @javax.annotation.Nullable + private Boolean isActive; + + public static final String SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL = "SupportsMediaControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_MEDIA_CONTROL) + @javax.annotation.Nullable + private Boolean supportsMediaControl; + + public static final String SERIALIZED_NAME_SUPPORTS_REMOTE_CONTROL = "SupportsRemoteControl"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_REMOTE_CONTROL) + @javax.annotation.Nullable + private Boolean supportsRemoteControl; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE = "NowPlayingQueue"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE) + @javax.annotation.Nullable + private List nowPlayingQueue; + + public static final String SERIALIZED_NAME_NOW_PLAYING_QUEUE_FULL_ITEMS = "NowPlayingQueueFullItems"; + @SerializedName(SERIALIZED_NAME_NOW_PLAYING_QUEUE_FULL_ITEMS) + @javax.annotation.Nullable + private List nowPlayingQueueFullItems; + + public static final String SERIALIZED_NAME_HAS_CUSTOM_DEVICE_NAME = "HasCustomDeviceName"; + @SerializedName(SERIALIZED_NAME_HAS_CUSTOM_DEVICE_NAME) + @javax.annotation.Nullable + private Boolean hasCustomDeviceName; + + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private String playlistItemId; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG = "UserPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_USER_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String userPrimaryImageTag; + + public static final String SERIALIZED_NAME_SUPPORTED_COMMANDS = "SupportedCommands"; + @SerializedName(SERIALIZED_NAME_SUPPORTED_COMMANDS) + @javax.annotation.Nullable + private List supportedCommands; + + public SessionInfo() { + } + + public SessionInfo( + List playableMediaTypes, + Boolean isActive, + Boolean supportsMediaControl, + Boolean supportsRemoteControl, + List supportedCommands + ) { + this(); + this.playableMediaTypes = playableMediaTypes; + this.isActive = isActive; + this.supportsMediaControl = supportsMediaControl; + this.supportsRemoteControl = supportsRemoteControl; + this.supportedCommands = supportedCommands; + } + + public SessionInfo playState(@javax.annotation.Nullable PlayerStateInfo playState) { + this.playState = playState; + return this; + } + + /** + * Get playState + * @return playState + */ + @javax.annotation.Nullable + public PlayerStateInfo getPlayState() { + return playState; + } + + public void setPlayState(@javax.annotation.Nullable PlayerStateInfo playState) { + this.playState = playState; + } + + + public SessionInfo additionalUsers(@javax.annotation.Nullable List additionalUsers) { + this.additionalUsers = additionalUsers; + return this; + } + + public SessionInfo addAdditionalUsersItem(SessionUserInfo additionalUsersItem) { + if (this.additionalUsers == null) { + this.additionalUsers = new ArrayList<>(); + } + this.additionalUsers.add(additionalUsersItem); + return this; + } + + /** + * Get additionalUsers + * @return additionalUsers + */ + @javax.annotation.Nullable + public List getAdditionalUsers() { + return additionalUsers; + } + + public void setAdditionalUsers(@javax.annotation.Nullable List additionalUsers) { + this.additionalUsers = additionalUsers; + } + + + public SessionInfo capabilities(@javax.annotation.Nullable ClientCapabilities capabilities) { + this.capabilities = capabilities; + return this; + } + + /** + * Get capabilities + * @return capabilities + */ + @javax.annotation.Nullable + public ClientCapabilities getCapabilities() { + return capabilities; + } + + public void setCapabilities(@javax.annotation.Nullable ClientCapabilities capabilities) { + this.capabilities = capabilities; + } + + + public SessionInfo remoteEndPoint(@javax.annotation.Nullable String remoteEndPoint) { + this.remoteEndPoint = remoteEndPoint; + return this; + } + + /** + * Gets or sets the remote end point. + * @return remoteEndPoint + */ + @javax.annotation.Nullable + public String getRemoteEndPoint() { + return remoteEndPoint; + } + + public void setRemoteEndPoint(@javax.annotation.Nullable String remoteEndPoint) { + this.remoteEndPoint = remoteEndPoint; + } + + + /** + * Gets the playable media types. + * @return playableMediaTypes + */ + @javax.annotation.Nullable + public List getPlayableMediaTypes() { + return playableMediaTypes; + } + + + + public SessionInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SessionInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user id. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public SessionInfo userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Gets or sets the username. + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + public SessionInfo client(@javax.annotation.Nullable String client) { + this.client = client; + return this; + } + + /** + * Gets or sets the type of the client. + * @return client + */ + @javax.annotation.Nullable + public String getClient() { + return client; + } + + public void setClient(@javax.annotation.Nullable String client) { + this.client = client; + } + + + public SessionInfo lastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + return this; + } + + /** + * Gets or sets the last activity date. + * @return lastActivityDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastActivityDate() { + return lastActivityDate; + } + + public void setLastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + } + + + public SessionInfo lastPlaybackCheckIn(@javax.annotation.Nullable OffsetDateTime lastPlaybackCheckIn) { + this.lastPlaybackCheckIn = lastPlaybackCheckIn; + return this; + } + + /** + * Gets or sets the last playback check in. + * @return lastPlaybackCheckIn + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPlaybackCheckIn() { + return lastPlaybackCheckIn; + } + + public void setLastPlaybackCheckIn(@javax.annotation.Nullable OffsetDateTime lastPlaybackCheckIn) { + this.lastPlaybackCheckIn = lastPlaybackCheckIn; + } + + + public SessionInfo deviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + return this; + } + + /** + * Gets or sets the name of the device. + * @return deviceName + */ + @javax.annotation.Nullable + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(@javax.annotation.Nullable String deviceName) { + this.deviceName = deviceName; + } + + + public SessionInfo deviceType(@javax.annotation.Nullable String deviceType) { + this.deviceType = deviceType; + return this; + } + + /** + * Gets or sets the type of the device. + * @return deviceType + */ + @javax.annotation.Nullable + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(@javax.annotation.Nullable String deviceType) { + this.deviceType = deviceType; + } + + + public SessionInfo nowPlayingItem(@javax.annotation.Nullable BaseItemDto nowPlayingItem) { + this.nowPlayingItem = nowPlayingItem; + return this; + } + + /** + * Gets or sets the now playing item. + * @return nowPlayingItem + */ + @javax.annotation.Nullable + public BaseItemDto getNowPlayingItem() { + return nowPlayingItem; + } + + public void setNowPlayingItem(@javax.annotation.Nullable BaseItemDto nowPlayingItem) { + this.nowPlayingItem = nowPlayingItem; + } + + + public SessionInfo fullNowPlayingItem(@javax.annotation.Nullable BaseItem fullNowPlayingItem) { + this.fullNowPlayingItem = fullNowPlayingItem; + return this; + } + + /** + * Class BaseItem. + * @return fullNowPlayingItem + */ + @javax.annotation.Nullable + public BaseItem getFullNowPlayingItem() { + return fullNowPlayingItem; + } + + public void setFullNowPlayingItem(@javax.annotation.Nullable BaseItem fullNowPlayingItem) { + this.fullNowPlayingItem = fullNowPlayingItem; + } + + + public SessionInfo nowViewingItem(@javax.annotation.Nullable BaseItemDto nowViewingItem) { + this.nowViewingItem = nowViewingItem; + return this; + } + + /** + * This is strictly used as a data transfer object from the api layer. This holds information about a BaseItem in a format that is convenient for the client. + * @return nowViewingItem + */ + @javax.annotation.Nullable + public BaseItemDto getNowViewingItem() { + return nowViewingItem; + } + + public void setNowViewingItem(@javax.annotation.Nullable BaseItemDto nowViewingItem) { + this.nowViewingItem = nowViewingItem; + } + + + public SessionInfo deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Gets or sets the device id. + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public SessionInfo applicationVersion(@javax.annotation.Nullable String applicationVersion) { + this.applicationVersion = applicationVersion; + return this; + } + + /** + * Gets or sets the application version. + * @return applicationVersion + */ + @javax.annotation.Nullable + public String getApplicationVersion() { + return applicationVersion; + } + + public void setApplicationVersion(@javax.annotation.Nullable String applicationVersion) { + this.applicationVersion = applicationVersion; + } + + + public SessionInfo transcodingInfo(@javax.annotation.Nullable TranscodingInfo transcodingInfo) { + this.transcodingInfo = transcodingInfo; + return this; + } + + /** + * Get transcodingInfo + * @return transcodingInfo + */ + @javax.annotation.Nullable + public TranscodingInfo getTranscodingInfo() { + return transcodingInfo; + } + + public void setTranscodingInfo(@javax.annotation.Nullable TranscodingInfo transcodingInfo) { + this.transcodingInfo = transcodingInfo; + } + + + /** + * Gets a value indicating whether this instance is active. + * @return isActive + */ + @javax.annotation.Nullable + public Boolean getIsActive() { + return isActive; + } + + + + /** + * Get supportsMediaControl + * @return supportsMediaControl + */ + @javax.annotation.Nullable + public Boolean getSupportsMediaControl() { + return supportsMediaControl; + } + + + + /** + * Get supportsRemoteControl + * @return supportsRemoteControl + */ + @javax.annotation.Nullable + public Boolean getSupportsRemoteControl() { + return supportsRemoteControl; + } + + + + public SessionInfo nowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + return this; + } + + public SessionInfo addNowPlayingQueueItem(QueueItem nowPlayingQueueItem) { + if (this.nowPlayingQueue == null) { + this.nowPlayingQueue = new ArrayList<>(); + } + this.nowPlayingQueue.add(nowPlayingQueueItem); + return this; + } + + /** + * Get nowPlayingQueue + * @return nowPlayingQueue + */ + @javax.annotation.Nullable + public List getNowPlayingQueue() { + return nowPlayingQueue; + } + + public void setNowPlayingQueue(@javax.annotation.Nullable List nowPlayingQueue) { + this.nowPlayingQueue = nowPlayingQueue; + } + + + public SessionInfo nowPlayingQueueFullItems(@javax.annotation.Nullable List nowPlayingQueueFullItems) { + this.nowPlayingQueueFullItems = nowPlayingQueueFullItems; + return this; + } + + public SessionInfo addNowPlayingQueueFullItemsItem(BaseItemDto nowPlayingQueueFullItemsItem) { + if (this.nowPlayingQueueFullItems == null) { + this.nowPlayingQueueFullItems = new ArrayList<>(); + } + this.nowPlayingQueueFullItems.add(nowPlayingQueueFullItemsItem); + return this; + } + + /** + * Get nowPlayingQueueFullItems + * @return nowPlayingQueueFullItems + */ + @javax.annotation.Nullable + public List getNowPlayingQueueFullItems() { + return nowPlayingQueueFullItems; + } + + public void setNowPlayingQueueFullItems(@javax.annotation.Nullable List nowPlayingQueueFullItems) { + this.nowPlayingQueueFullItems = nowPlayingQueueFullItems; + } + + + public SessionInfo hasCustomDeviceName(@javax.annotation.Nullable Boolean hasCustomDeviceName) { + this.hasCustomDeviceName = hasCustomDeviceName; + return this; + } + + /** + * Get hasCustomDeviceName + * @return hasCustomDeviceName + */ + @javax.annotation.Nullable + public Boolean getHasCustomDeviceName() { + return hasCustomDeviceName; + } + + public void setHasCustomDeviceName(@javax.annotation.Nullable Boolean hasCustomDeviceName) { + this.hasCustomDeviceName = hasCustomDeviceName; + } + + + public SessionInfo playlistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Get playlistItemId + * @return playlistItemId + */ + @javax.annotation.Nullable + public String getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable String playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + public SessionInfo serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Get serverId + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public SessionInfo userPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + return this; + } + + /** + * Get userPrimaryImageTag + * @return userPrimaryImageTag + */ + @javax.annotation.Nullable + public String getUserPrimaryImageTag() { + return userPrimaryImageTag; + } + + public void setUserPrimaryImageTag(@javax.annotation.Nullable String userPrimaryImageTag) { + this.userPrimaryImageTag = userPrimaryImageTag; + } + + + /** + * Gets the supported commands. + * @return supportedCommands + */ + @javax.annotation.Nullable + public List getSupportedCommands() { + return supportedCommands; + } + + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionInfo sessionInfo = (SessionInfo) o; + return Objects.equals(this.playState, sessionInfo.playState) && + Objects.equals(this.additionalUsers, sessionInfo.additionalUsers) && + Objects.equals(this.capabilities, sessionInfo.capabilities) && + Objects.equals(this.remoteEndPoint, sessionInfo.remoteEndPoint) && + Objects.equals(this.playableMediaTypes, sessionInfo.playableMediaTypes) && + Objects.equals(this.id, sessionInfo.id) && + Objects.equals(this.userId, sessionInfo.userId) && + Objects.equals(this.userName, sessionInfo.userName) && + Objects.equals(this.client, sessionInfo.client) && + Objects.equals(this.lastActivityDate, sessionInfo.lastActivityDate) && + Objects.equals(this.lastPlaybackCheckIn, sessionInfo.lastPlaybackCheckIn) && + Objects.equals(this.deviceName, sessionInfo.deviceName) && + Objects.equals(this.deviceType, sessionInfo.deviceType) && + Objects.equals(this.nowPlayingItem, sessionInfo.nowPlayingItem) && + Objects.equals(this.fullNowPlayingItem, sessionInfo.fullNowPlayingItem) && + Objects.equals(this.nowViewingItem, sessionInfo.nowViewingItem) && + Objects.equals(this.deviceId, sessionInfo.deviceId) && + Objects.equals(this.applicationVersion, sessionInfo.applicationVersion) && + Objects.equals(this.transcodingInfo, sessionInfo.transcodingInfo) && + Objects.equals(this.isActive, sessionInfo.isActive) && + Objects.equals(this.supportsMediaControl, sessionInfo.supportsMediaControl) && + Objects.equals(this.supportsRemoteControl, sessionInfo.supportsRemoteControl) && + Objects.equals(this.nowPlayingQueue, sessionInfo.nowPlayingQueue) && + Objects.equals(this.nowPlayingQueueFullItems, sessionInfo.nowPlayingQueueFullItems) && + Objects.equals(this.hasCustomDeviceName, sessionInfo.hasCustomDeviceName) && + Objects.equals(this.playlistItemId, sessionInfo.playlistItemId) && + Objects.equals(this.serverId, sessionInfo.serverId) && + Objects.equals(this.userPrimaryImageTag, sessionInfo.userPrimaryImageTag) && + Objects.equals(this.supportedCommands, sessionInfo.supportedCommands); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(playState, additionalUsers, capabilities, remoteEndPoint, playableMediaTypes, id, userId, userName, client, lastActivityDate, lastPlaybackCheckIn, deviceName, deviceType, nowPlayingItem, fullNowPlayingItem, nowViewingItem, deviceId, applicationVersion, transcodingInfo, isActive, supportsMediaControl, supportsRemoteControl, nowPlayingQueue, nowPlayingQueueFullItems, hasCustomDeviceName, playlistItemId, serverId, userPrimaryImageTag, supportedCommands); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionInfo {\n"); + sb.append(" playState: ").append(toIndentedString(playState)).append("\n"); + sb.append(" additionalUsers: ").append(toIndentedString(additionalUsers)).append("\n"); + sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n"); + sb.append(" remoteEndPoint: ").append(toIndentedString(remoteEndPoint)).append("\n"); + sb.append(" playableMediaTypes: ").append(toIndentedString(playableMediaTypes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append(" client: ").append(toIndentedString(client)).append("\n"); + sb.append(" lastActivityDate: ").append(toIndentedString(lastActivityDate)).append("\n"); + sb.append(" lastPlaybackCheckIn: ").append(toIndentedString(lastPlaybackCheckIn)).append("\n"); + sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n"); + sb.append(" deviceType: ").append(toIndentedString(deviceType)).append("\n"); + sb.append(" nowPlayingItem: ").append(toIndentedString(nowPlayingItem)).append("\n"); + sb.append(" fullNowPlayingItem: ").append(toIndentedString(fullNowPlayingItem)).append("\n"); + sb.append(" nowViewingItem: ").append(toIndentedString(nowViewingItem)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" applicationVersion: ").append(toIndentedString(applicationVersion)).append("\n"); + sb.append(" transcodingInfo: ").append(toIndentedString(transcodingInfo)).append("\n"); + sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n"); + sb.append(" supportsMediaControl: ").append(toIndentedString(supportsMediaControl)).append("\n"); + sb.append(" supportsRemoteControl: ").append(toIndentedString(supportsRemoteControl)).append("\n"); + sb.append(" nowPlayingQueue: ").append(toIndentedString(nowPlayingQueue)).append("\n"); + sb.append(" nowPlayingQueueFullItems: ").append(toIndentedString(nowPlayingQueueFullItems)).append("\n"); + sb.append(" hasCustomDeviceName: ").append(toIndentedString(hasCustomDeviceName)).append("\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" userPrimaryImageTag: ").append(toIndentedString(userPrimaryImageTag)).append("\n"); + sb.append(" supportedCommands: ").append(toIndentedString(supportedCommands)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlayState"); + openapiFields.add("AdditionalUsers"); + openapiFields.add("Capabilities"); + openapiFields.add("RemoteEndPoint"); + openapiFields.add("PlayableMediaTypes"); + openapiFields.add("Id"); + openapiFields.add("UserId"); + openapiFields.add("UserName"); + openapiFields.add("Client"); + openapiFields.add("LastActivityDate"); + openapiFields.add("LastPlaybackCheckIn"); + openapiFields.add("DeviceName"); + openapiFields.add("DeviceType"); + openapiFields.add("NowPlayingItem"); + openapiFields.add("FullNowPlayingItem"); + openapiFields.add("NowViewingItem"); + openapiFields.add("DeviceId"); + openapiFields.add("ApplicationVersion"); + openapiFields.add("TranscodingInfo"); + openapiFields.add("IsActive"); + openapiFields.add("SupportsMediaControl"); + openapiFields.add("SupportsRemoteControl"); + openapiFields.add("NowPlayingQueue"); + openapiFields.add("NowPlayingQueueFullItems"); + openapiFields.add("HasCustomDeviceName"); + openapiFields.add("PlaylistItemId"); + openapiFields.add("ServerId"); + openapiFields.add("UserPrimaryImageTag"); + openapiFields.add("SupportedCommands"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionInfo is not found in the empty JSON string", SessionInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `PlayState` + if (jsonObj.get("PlayState") != null && !jsonObj.get("PlayState").isJsonNull()) { + PlayerStateInfo.validateJsonElement(jsonObj.get("PlayState")); + } + if (jsonObj.get("AdditionalUsers") != null && !jsonObj.get("AdditionalUsers").isJsonNull()) { + JsonArray jsonArrayadditionalUsers = jsonObj.getAsJsonArray("AdditionalUsers"); + if (jsonArrayadditionalUsers != null) { + // ensure the json data is an array + if (!jsonObj.get("AdditionalUsers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AdditionalUsers` to be an array in the JSON string but got `%s`", jsonObj.get("AdditionalUsers").toString())); + } + + // validate the optional field `AdditionalUsers` (array) + for (int i = 0; i < jsonArrayadditionalUsers.size(); i++) { + SessionUserInfo.validateJsonElement(jsonArrayadditionalUsers.get(i)); + }; + } + } + // validate the optional field `Capabilities` + if (jsonObj.get("Capabilities") != null && !jsonObj.get("Capabilities").isJsonNull()) { + ClientCapabilities.validateJsonElement(jsonObj.get("Capabilities")); + } + if ((jsonObj.get("RemoteEndPoint") != null && !jsonObj.get("RemoteEndPoint").isJsonNull()) && !jsonObj.get("RemoteEndPoint").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RemoteEndPoint` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RemoteEndPoint").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("PlayableMediaTypes") != null && !jsonObj.get("PlayableMediaTypes").isJsonNull() && !jsonObj.get("PlayableMediaTypes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `PlayableMediaTypes` to be an array in the JSON string but got `%s`", jsonObj.get("PlayableMediaTypes").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + if ((jsonObj.get("Client") != null && !jsonObj.get("Client").isJsonNull()) && !jsonObj.get("Client").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Client` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Client").toString())); + } + if ((jsonObj.get("DeviceName") != null && !jsonObj.get("DeviceName").isJsonNull()) && !jsonObj.get("DeviceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceName").toString())); + } + if ((jsonObj.get("DeviceType") != null && !jsonObj.get("DeviceType").isJsonNull()) && !jsonObj.get("DeviceType").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceType").toString())); + } + // validate the optional field `NowPlayingItem` + if (jsonObj.get("NowPlayingItem") != null && !jsonObj.get("NowPlayingItem").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("NowPlayingItem")); + } + // validate the optional field `FullNowPlayingItem` + if (jsonObj.get("FullNowPlayingItem") != null && !jsonObj.get("FullNowPlayingItem").isJsonNull()) { + BaseItem.validateJsonElement(jsonObj.get("FullNowPlayingItem")); + } + // validate the optional field `NowViewingItem` + if (jsonObj.get("NowViewingItem") != null && !jsonObj.get("NowViewingItem").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("NowViewingItem")); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("ApplicationVersion") != null && !jsonObj.get("ApplicationVersion").isJsonNull()) && !jsonObj.get("ApplicationVersion").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ApplicationVersion` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ApplicationVersion").toString())); + } + // validate the optional field `TranscodingInfo` + if (jsonObj.get("TranscodingInfo") != null && !jsonObj.get("TranscodingInfo").isJsonNull()) { + TranscodingInfo.validateJsonElement(jsonObj.get("TranscodingInfo")); + } + if (jsonObj.get("NowPlayingQueue") != null && !jsonObj.get("NowPlayingQueue").isJsonNull()) { + JsonArray jsonArraynowPlayingQueue = jsonObj.getAsJsonArray("NowPlayingQueue"); + if (jsonArraynowPlayingQueue != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueue").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueue` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueue").toString())); + } + + // validate the optional field `NowPlayingQueue` (array) + for (int i = 0; i < jsonArraynowPlayingQueue.size(); i++) { + QueueItem.validateJsonElement(jsonArraynowPlayingQueue.get(i)); + }; + } + } + if (jsonObj.get("NowPlayingQueueFullItems") != null && !jsonObj.get("NowPlayingQueueFullItems").isJsonNull()) { + JsonArray jsonArraynowPlayingQueueFullItems = jsonObj.getAsJsonArray("NowPlayingQueueFullItems"); + if (jsonArraynowPlayingQueueFullItems != null) { + // ensure the json data is an array + if (!jsonObj.get("NowPlayingQueueFullItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `NowPlayingQueueFullItems` to be an array in the JSON string but got `%s`", jsonObj.get("NowPlayingQueueFullItems").toString())); + } + + // validate the optional field `NowPlayingQueueFullItems` (array) + for (int i = 0; i < jsonArraynowPlayingQueueFullItems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArraynowPlayingQueueFullItems.get(i)); + }; + } + } + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("UserPrimaryImageTag") != null && !jsonObj.get("UserPrimaryImageTag").isJsonNull()) && !jsonObj.get("UserPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserPrimaryImageTag").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("SupportedCommands") != null && !jsonObj.get("SupportedCommands").isJsonNull() && !jsonObj.get("SupportedCommands").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `SupportedCommands` to be an array in the JSON string but got `%s`", jsonObj.get("SupportedCommands").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionInfo + * @throws IOException if the JSON string is invalid with respect to SessionInfo + */ + public static SessionInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionInfo.class); + } + + /** + * Convert an instance of SessionInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionMessageType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionMessageType.java new file mode 100644 index 0000000000000..878c7b26f5916 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionMessageType.java @@ -0,0 +1,142 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * The different kinds of messages that are used in the WebSocket api. + */ +@JsonAdapter(SessionMessageType.Adapter.class) +public enum SessionMessageType { + + FORCE_KEEP_ALIVE("ForceKeepAlive"), + + GENERAL_COMMAND("GeneralCommand"), + + USER_DATA_CHANGED("UserDataChanged"), + + SESSIONS("Sessions"), + + PLAY("Play"), + + SYNC_PLAY_COMMAND("SyncPlayCommand"), + + SYNC_PLAY_GROUP_UPDATE("SyncPlayGroupUpdate"), + + PLAYSTATE("Playstate"), + + RESTART_REQUIRED("RestartRequired"), + + SERVER_SHUTTING_DOWN("ServerShuttingDown"), + + SERVER_RESTARTING("ServerRestarting"), + + LIBRARY_CHANGED("LibraryChanged"), + + USER_DELETED("UserDeleted"), + + USER_UPDATED("UserUpdated"), + + SERIES_TIMER_CREATED("SeriesTimerCreated"), + + TIMER_CREATED("TimerCreated"), + + SERIES_TIMER_CANCELLED("SeriesTimerCancelled"), + + TIMER_CANCELLED("TimerCancelled"), + + REFRESH_PROGRESS("RefreshProgress"), + + SCHEDULED_TASK_ENDED("ScheduledTaskEnded"), + + PACKAGE_INSTALLATION_CANCELLED("PackageInstallationCancelled"), + + PACKAGE_INSTALLATION_FAILED("PackageInstallationFailed"), + + PACKAGE_INSTALLATION_COMPLETED("PackageInstallationCompleted"), + + PACKAGE_INSTALLING("PackageInstalling"), + + PACKAGE_UNINSTALLED("PackageUninstalled"), + + ACTIVITY_LOG_ENTRY("ActivityLogEntry"), + + SCHEDULED_TASKS_INFO("ScheduledTasksInfo"), + + ACTIVITY_LOG_ENTRY_START("ActivityLogEntryStart"), + + ACTIVITY_LOG_ENTRY_STOP("ActivityLogEntryStop"), + + SESSIONS_START("SessionsStart"), + + SESSIONS_STOP("SessionsStop"), + + SCHEDULED_TASKS_INFO_START("ScheduledTasksInfoStart"), + + SCHEDULED_TASKS_INFO_STOP("ScheduledTasksInfoStop"), + + KEEP_ALIVE("KeepAlive"); + + private String value; + + SessionMessageType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SessionMessageType fromValue(String value) { + for (SessionMessageType b : SessionMessageType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SessionMessageType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SessionMessageType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SessionMessageType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SessionMessageType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionUserInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionUserInfo.java new file mode 100644 index 0000000000000..b919a819a5d10 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SessionUserInfo.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SessionUserInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SessionUserInfo { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private UUID userId; + + public static final String SERIALIZED_NAME_USER_NAME = "UserName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable + private String userName; + + public SessionUserInfo() { + } + + public SessionUserInfo userId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + return this; + } + + /** + * Gets or sets the user identifier. + * @return userId + */ + @javax.annotation.Nullable + public UUID getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable UUID userId) { + this.userId = userId; + } + + + public SessionUserInfo userName(@javax.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Gets or sets the name of the user. + * @return userName + */ + @javax.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@javax.annotation.Nullable String userName) { + this.userName = userName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionUserInfo sessionUserInfo = (SessionUserInfo) o; + return Objects.equals(this.userId, sessionUserInfo.userId) && + Objects.equals(this.userName, sessionUserInfo.userName); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, userName); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionUserInfo {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("UserName"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SessionUserInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SessionUserInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SessionUserInfo is not found in the empty JSON string", SessionUserInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SessionUserInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SessionUserInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SessionUserInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SessionUserInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SessionUserInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SessionUserInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SessionUserInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SessionUserInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SessionUserInfo + * @throws IOException if the JSON string is invalid with respect to SessionUserInfo + */ + public static SessionUserInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SessionUserInfo.class); + } + + /** + * Convert an instance of SessionUserInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java new file mode 100644 index 0000000000000..1d9671f15dd2e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetChannelMappingDto.java @@ -0,0 +1,276 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Set channel mapping dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetChannelMappingDto { + public static final String SERIALIZED_NAME_PROVIDER_ID = "ProviderId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_ID) + @javax.annotation.Nonnull + private String providerId; + + public static final String SERIALIZED_NAME_TUNER_CHANNEL_ID = "TunerChannelId"; + @SerializedName(SERIALIZED_NAME_TUNER_CHANNEL_ID) + @javax.annotation.Nonnull + private String tunerChannelId; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_ID = "ProviderChannelId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_ID) + @javax.annotation.Nonnull + private String providerChannelId; + + public SetChannelMappingDto() { + } + + public SetChannelMappingDto providerId(@javax.annotation.Nonnull String providerId) { + this.providerId = providerId; + return this; + } + + /** + * Gets or sets the provider id. + * @return providerId + */ + @javax.annotation.Nonnull + public String getProviderId() { + return providerId; + } + + public void setProviderId(@javax.annotation.Nonnull String providerId) { + this.providerId = providerId; + } + + + public SetChannelMappingDto tunerChannelId(@javax.annotation.Nonnull String tunerChannelId) { + this.tunerChannelId = tunerChannelId; + return this; + } + + /** + * Gets or sets the tuner channel id. + * @return tunerChannelId + */ + @javax.annotation.Nonnull + public String getTunerChannelId() { + return tunerChannelId; + } + + public void setTunerChannelId(@javax.annotation.Nonnull String tunerChannelId) { + this.tunerChannelId = tunerChannelId; + } + + + public SetChannelMappingDto providerChannelId(@javax.annotation.Nonnull String providerChannelId) { + this.providerChannelId = providerChannelId; + return this; + } + + /** + * Gets or sets the provider channel id. + * @return providerChannelId + */ + @javax.annotation.Nonnull + public String getProviderChannelId() { + return providerChannelId; + } + + public void setProviderChannelId(@javax.annotation.Nonnull String providerChannelId) { + this.providerChannelId = providerChannelId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetChannelMappingDto setChannelMappingDto = (SetChannelMappingDto) o; + return Objects.equals(this.providerId, setChannelMappingDto.providerId) && + Objects.equals(this.tunerChannelId, setChannelMappingDto.tunerChannelId) && + Objects.equals(this.providerChannelId, setChannelMappingDto.providerChannelId); + } + + @Override + public int hashCode() { + return Objects.hash(providerId, tunerChannelId, providerChannelId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetChannelMappingDto {\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" tunerChannelId: ").append(toIndentedString(tunerChannelId)).append("\n"); + sb.append(" providerChannelId: ").append(toIndentedString(providerChannelId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ProviderId"); + openapiFields.add("TunerChannelId"); + openapiFields.add("ProviderChannelId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ProviderId"); + openapiRequiredFields.add("TunerChannelId"); + openapiRequiredFields.add("ProviderChannelId"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetChannelMappingDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetChannelMappingDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetChannelMappingDto is not found in the empty JSON string", SetChannelMappingDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetChannelMappingDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetChannelMappingDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SetChannelMappingDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("ProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderId").toString())); + } + if (!jsonObj.get("TunerChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TunerChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TunerChannelId").toString())); + } + if (!jsonObj.get("ProviderChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetChannelMappingDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetChannelMappingDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetChannelMappingDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetChannelMappingDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetChannelMappingDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetChannelMappingDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetChannelMappingDto + * @throws IOException if the JSON string is invalid with respect to SetChannelMappingDto + */ + public static SetChannelMappingDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetChannelMappingDto.class); + } + + /** + * Convert an instance of SetChannelMappingDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java new file mode 100644 index 0000000000000..58b01514047ae --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetPlaylistItemRequestDto.java @@ -0,0 +1,207 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetPlaylistItemRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetPlaylistItemRequestDto { + public static final String SERIALIZED_NAME_PLAYLIST_ITEM_ID = "PlaylistItemId"; + @SerializedName(SERIALIZED_NAME_PLAYLIST_ITEM_ID) + @javax.annotation.Nullable + private UUID playlistItemId; + + public SetPlaylistItemRequestDto() { + } + + public SetPlaylistItemRequestDto playlistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + return this; + } + + /** + * Gets or sets the playlist identifier of the playing item. + * @return playlistItemId + */ + @javax.annotation.Nullable + public UUID getPlaylistItemId() { + return playlistItemId; + } + + public void setPlaylistItemId(@javax.annotation.Nullable UUID playlistItemId) { + this.playlistItemId = playlistItemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetPlaylistItemRequestDto setPlaylistItemRequestDto = (SetPlaylistItemRequestDto) o; + return Objects.equals(this.playlistItemId, setPlaylistItemRequestDto.playlistItemId); + } + + @Override + public int hashCode() { + return Objects.hash(playlistItemId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetPlaylistItemRequestDto {\n"); + sb.append(" playlistItemId: ").append(toIndentedString(playlistItemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PlaylistItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetPlaylistItemRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetPlaylistItemRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetPlaylistItemRequestDto is not found in the empty JSON string", SetPlaylistItemRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetPlaylistItemRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetPlaylistItemRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("PlaylistItemId") != null && !jsonObj.get("PlaylistItemId").isJsonNull()) && !jsonObj.get("PlaylistItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PlaylistItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PlaylistItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetPlaylistItemRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetPlaylistItemRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetPlaylistItemRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetPlaylistItemRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetPlaylistItemRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetPlaylistItemRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetPlaylistItemRequestDto + * @throws IOException if the JSON string is invalid with respect to SetPlaylistItemRequestDto + */ + public static SetPlaylistItemRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetPlaylistItemRequestDto.class); + } + + /** + * Convert an instance of SetPlaylistItemRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java new file mode 100644 index 0000000000000..f49d9abf7fa9f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetRepeatModeRequestDto.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.GroupRepeatMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetRepeatModeRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetRepeatModeRequestDto { + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupRepeatMode mode; + + public SetRepeatModeRequestDto() { + } + + public SetRepeatModeRequestDto mode(@javax.annotation.Nullable GroupRepeatMode mode) { + this.mode = mode; + return this; + } + + /** + * Enum GroupRepeatMode. + * @return mode + */ + @javax.annotation.Nullable + public GroupRepeatMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupRepeatMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetRepeatModeRequestDto setRepeatModeRequestDto = (SetRepeatModeRequestDto) o; + return Objects.equals(this.mode, setRepeatModeRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetRepeatModeRequestDto {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetRepeatModeRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetRepeatModeRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetRepeatModeRequestDto is not found in the empty JSON string", SetRepeatModeRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetRepeatModeRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetRepeatModeRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupRepeatMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetRepeatModeRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetRepeatModeRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetRepeatModeRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetRepeatModeRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetRepeatModeRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetRepeatModeRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetRepeatModeRequestDto + * @throws IOException if the JSON string is invalid with respect to SetRepeatModeRequestDto + */ + public static SetRepeatModeRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetRepeatModeRequestDto.class); + } + + /** + * Convert an instance of SetRepeatModeRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java new file mode 100644 index 0000000000000..d7316ca0d02d5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SetShuffleModeRequestDto.java @@ -0,0 +1,208 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.GroupShuffleMode; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SetShuffleModeRequestDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SetShuffleModeRequestDto { + public static final String SERIALIZED_NAME_MODE = "Mode"; + @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable + private GroupShuffleMode mode; + + public SetShuffleModeRequestDto() { + } + + public SetShuffleModeRequestDto mode(@javax.annotation.Nullable GroupShuffleMode mode) { + this.mode = mode; + return this; + } + + /** + * Enum GroupShuffleMode. + * @return mode + */ + @javax.annotation.Nullable + public GroupShuffleMode getMode() { + return mode; + } + + public void setMode(@javax.annotation.Nullable GroupShuffleMode mode) { + this.mode = mode; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetShuffleModeRequestDto setShuffleModeRequestDto = (SetShuffleModeRequestDto) o; + return Objects.equals(this.mode, setShuffleModeRequestDto.mode); + } + + @Override + public int hashCode() { + return Objects.hash(mode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetShuffleModeRequestDto {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Mode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetShuffleModeRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetShuffleModeRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SetShuffleModeRequestDto is not found in the empty JSON string", SetShuffleModeRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetShuffleModeRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SetShuffleModeRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Mode` + if (jsonObj.get("Mode") != null && !jsonObj.get("Mode").isJsonNull()) { + GroupShuffleMode.validateJsonElement(jsonObj.get("Mode")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetShuffleModeRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetShuffleModeRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SetShuffleModeRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SetShuffleModeRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetShuffleModeRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SetShuffleModeRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetShuffleModeRequestDto + * @throws IOException if the JSON string is invalid with respect to SetShuffleModeRequestDto + */ + public static SetShuffleModeRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetShuffleModeRequestDto.class); + } + + /** + * Convert an instance of SetShuffleModeRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SongInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SongInfo.java new file mode 100644 index 0000000000000..f26f960b1e6d0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SongInfo.java @@ -0,0 +1,621 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SongInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SongInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public static final String SERIALIZED_NAME_ALBUM_ARTISTS = "AlbumArtists"; + @SerializedName(SERIALIZED_NAME_ALBUM_ARTISTS) + @javax.annotation.Nullable + private List albumArtists; + + public static final String SERIALIZED_NAME_ALBUM = "Album"; + @SerializedName(SERIALIZED_NAME_ALBUM) + @javax.annotation.Nullable + private String album; + + public static final String SERIALIZED_NAME_ARTISTS = "Artists"; + @SerializedName(SERIALIZED_NAME_ARTISTS) + @javax.annotation.Nullable + private List artists; + + public SongInfo() { + } + + public SongInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SongInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public SongInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public SongInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public SongInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public SongInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public SongInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public SongInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public SongInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public SongInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public SongInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public SongInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + public SongInfo albumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + return this; + } + + public SongInfo addAlbumArtistsItem(String albumArtistsItem) { + if (this.albumArtists == null) { + this.albumArtists = new ArrayList<>(); + } + this.albumArtists.add(albumArtistsItem); + return this; + } + + /** + * Get albumArtists + * @return albumArtists + */ + @javax.annotation.Nullable + public List getAlbumArtists() { + return albumArtists; + } + + public void setAlbumArtists(@javax.annotation.Nullable List albumArtists) { + this.albumArtists = albumArtists; + } + + + public SongInfo album(@javax.annotation.Nullable String album) { + this.album = album; + return this; + } + + /** + * Get album + * @return album + */ + @javax.annotation.Nullable + public String getAlbum() { + return album; + } + + public void setAlbum(@javax.annotation.Nullable String album) { + this.album = album; + } + + + public SongInfo artists(@javax.annotation.Nullable List artists) { + this.artists = artists; + return this; + } + + public SongInfo addArtistsItem(String artistsItem) { + if (this.artists == null) { + this.artists = new ArrayList<>(); + } + this.artists.add(artistsItem); + return this; + } + + /** + * Get artists + * @return artists + */ + @javax.annotation.Nullable + public List getArtists() { + return artists; + } + + public void setArtists(@javax.annotation.Nullable List artists) { + this.artists = artists; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SongInfo songInfo = (SongInfo) o; + return Objects.equals(this.name, songInfo.name) && + Objects.equals(this.originalTitle, songInfo.originalTitle) && + Objects.equals(this.path, songInfo.path) && + Objects.equals(this.metadataLanguage, songInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, songInfo.metadataCountryCode) && + Objects.equals(this.providerIds, songInfo.providerIds) && + Objects.equals(this.year, songInfo.year) && + Objects.equals(this.indexNumber, songInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, songInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, songInfo.premiereDate) && + Objects.equals(this.isAutomated, songInfo.isAutomated) && + Objects.equals(this.albumArtists, songInfo.albumArtists) && + Objects.equals(this.album, songInfo.album) && + Objects.equals(this.artists, songInfo.artists); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated, albumArtists, album, artists); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SongInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append(" albumArtists: ").append(toIndentedString(albumArtists)).append("\n"); + sb.append(" album: ").append(toIndentedString(album)).append("\n"); + sb.append(" artists: ").append(toIndentedString(artists)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + openapiFields.add("AlbumArtists"); + openapiFields.add("Album"); + openapiFields.add("Artists"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SongInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SongInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SongInfo is not found in the empty JSON string", SongInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SongInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SongInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AlbumArtists") != null && !jsonObj.get("AlbumArtists").isJsonNull() && !jsonObj.get("AlbumArtists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AlbumArtists` to be an array in the JSON string but got `%s`", jsonObj.get("AlbumArtists").toString())); + } + if ((jsonObj.get("Album") != null && !jsonObj.get("Album").isJsonNull()) && !jsonObj.get("Album").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Album` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Album").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Artists") != null && !jsonObj.get("Artists").isJsonNull() && !jsonObj.get("Artists").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Artists` to be an array in the JSON string but got `%s`", jsonObj.get("Artists").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SongInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SongInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SongInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SongInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SongInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SongInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SongInfo + * @throws IOException if the JSON string is invalid with respect to SongInfo + */ + public static SongInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SongInfo.class); + } + + /** + * Convert an instance of SongInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SortOrder.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SortOrder.java new file mode 100644 index 0000000000000..a0a279d6b71de --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SortOrder.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing the sorting order. + */ +@JsonAdapter(SortOrder.Adapter.class) +public enum SortOrder { + + ASCENDING("Ascending"), + + DESCENDING("Descending"); + + private String value; + + SortOrder(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SortOrder fromValue(String value) { + for (SortOrder b : SortOrder.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SortOrder enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SortOrder read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SortOrder.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SortOrder.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java new file mode 100644 index 0000000000000..ed7a4492d0b75 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SpecialViewOptionDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Special view option dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SpecialViewOptionDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public SpecialViewOptionDto() { + } + + public SpecialViewOptionDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets view option name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public SpecialViewOptionDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets view option id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SpecialViewOptionDto specialViewOptionDto = (SpecialViewOptionDto) o; + return Objects.equals(this.name, specialViewOptionDto.name) && + Objects.equals(this.id, specialViewOptionDto.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SpecialViewOptionDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SpecialViewOptionDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SpecialViewOptionDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SpecialViewOptionDto is not found in the empty JSON string", SpecialViewOptionDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SpecialViewOptionDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SpecialViewOptionDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SpecialViewOptionDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SpecialViewOptionDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SpecialViewOptionDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SpecialViewOptionDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SpecialViewOptionDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SpecialViewOptionDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of SpecialViewOptionDto + * @throws IOException if the JSON string is invalid with respect to SpecialViewOptionDto + */ + public static SpecialViewOptionDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SpecialViewOptionDto.class); + } + + /** + * Convert an instance of SpecialViewOptionDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java new file mode 100644 index 0000000000000..2a6d3473dbde8 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupConfigurationDto.java @@ -0,0 +1,278 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The startup configuration DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupConfigurationDto { + public static final String SERIALIZED_NAME_UI_CULTURE = "UICulture"; + @SerializedName(SERIALIZED_NAME_UI_CULTURE) + @javax.annotation.Nullable + private String uiCulture; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE = "PreferredMetadataLanguage"; + @SerializedName(SERIALIZED_NAME_PREFERRED_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String preferredMetadataLanguage; + + public StartupConfigurationDto() { + } + + public StartupConfigurationDto uiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + return this; + } + + /** + * Gets or sets UI language culture. + * @return uiCulture + */ + @javax.annotation.Nullable + public String getUiCulture() { + return uiCulture; + } + + public void setUiCulture(@javax.annotation.Nullable String uiCulture) { + this.uiCulture = uiCulture; + } + + + public StartupConfigurationDto metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public StartupConfigurationDto preferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + return this; + } + + /** + * Gets or sets the preferred language for the metadata. + * @return preferredMetadataLanguage + */ + @javax.annotation.Nullable + public String getPreferredMetadataLanguage() { + return preferredMetadataLanguage; + } + + public void setPreferredMetadataLanguage(@javax.annotation.Nullable String preferredMetadataLanguage) { + this.preferredMetadataLanguage = preferredMetadataLanguage; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupConfigurationDto startupConfigurationDto = (StartupConfigurationDto) o; + return Objects.equals(this.uiCulture, startupConfigurationDto.uiCulture) && + Objects.equals(this.metadataCountryCode, startupConfigurationDto.metadataCountryCode) && + Objects.equals(this.preferredMetadataLanguage, startupConfigurationDto.preferredMetadataLanguage); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(uiCulture, metadataCountryCode, preferredMetadataLanguage); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupConfigurationDto {\n"); + sb.append(" uiCulture: ").append(toIndentedString(uiCulture)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" preferredMetadataLanguage: ").append(toIndentedString(preferredMetadataLanguage)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UICulture"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("PreferredMetadataLanguage"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupConfigurationDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupConfigurationDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupConfigurationDto is not found in the empty JSON string", StartupConfigurationDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupConfigurationDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupConfigurationDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UICulture") != null && !jsonObj.get("UICulture").isJsonNull()) && !jsonObj.get("UICulture").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UICulture` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UICulture").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + if ((jsonObj.get("PreferredMetadataLanguage") != null && !jsonObj.get("PreferredMetadataLanguage").isJsonNull()) && !jsonObj.get("PreferredMetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PreferredMetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PreferredMetadataLanguage").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupConfigurationDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupConfigurationDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupConfigurationDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupConfigurationDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupConfigurationDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupConfigurationDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupConfigurationDto + * @throws IOException if the JSON string is invalid with respect to StartupConfigurationDto + */ + public static StartupConfigurationDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupConfigurationDto.class); + } + + /** + * Convert an instance of StartupConfigurationDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java new file mode 100644 index 0000000000000..923bd25938b63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupRemoteAccessDto.java @@ -0,0 +1,239 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Startup remote access dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupRemoteAccessDto { + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nonnull + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_ENABLE_AUTOMATIC_PORT_MAPPING = "EnableAutomaticPortMapping"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTOMATIC_PORT_MAPPING) + @javax.annotation.Nonnull + private Boolean enableAutomaticPortMapping; + + public StartupRemoteAccessDto() { + } + + public StartupRemoteAccessDto enableRemoteAccess(@javax.annotation.Nonnull Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Gets or sets a value indicating whether enable remote access. + * @return enableRemoteAccess + */ + @javax.annotation.Nonnull + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nonnull Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public StartupRemoteAccessDto enableAutomaticPortMapping(@javax.annotation.Nonnull Boolean enableAutomaticPortMapping) { + this.enableAutomaticPortMapping = enableAutomaticPortMapping; + return this; + } + + /** + * Gets or sets a value indicating whether enable automatic port mapping. + * @return enableAutomaticPortMapping + */ + @javax.annotation.Nonnull + public Boolean getEnableAutomaticPortMapping() { + return enableAutomaticPortMapping; + } + + public void setEnableAutomaticPortMapping(@javax.annotation.Nonnull Boolean enableAutomaticPortMapping) { + this.enableAutomaticPortMapping = enableAutomaticPortMapping; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupRemoteAccessDto startupRemoteAccessDto = (StartupRemoteAccessDto) o; + return Objects.equals(this.enableRemoteAccess, startupRemoteAccessDto.enableRemoteAccess) && + Objects.equals(this.enableAutomaticPortMapping, startupRemoteAccessDto.enableAutomaticPortMapping); + } + + @Override + public int hashCode() { + return Objects.hash(enableRemoteAccess, enableAutomaticPortMapping); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupRemoteAccessDto {\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" enableAutomaticPortMapping: ").append(toIndentedString(enableAutomaticPortMapping)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("EnableAutomaticPortMapping"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EnableRemoteAccess"); + openapiRequiredFields.add("EnableAutomaticPortMapping"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupRemoteAccessDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupRemoteAccessDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupRemoteAccessDto is not found in the empty JSON string", StartupRemoteAccessDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupRemoteAccessDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupRemoteAccessDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StartupRemoteAccessDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupRemoteAccessDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupRemoteAccessDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupRemoteAccessDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupRemoteAccessDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupRemoteAccessDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupRemoteAccessDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupRemoteAccessDto + * @throws IOException if the JSON string is invalid with respect to StartupRemoteAccessDto + */ + public static StartupRemoteAccessDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupRemoteAccessDto.class); + } + + /** + * Convert an instance of StartupRemoteAccessDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupUserDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupUserDto.java new file mode 100644 index 0000000000000..a01ef5e910111 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/StartupUserDto.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The startup user DTO. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class StartupUserDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PASSWORD = "Password"; + @SerializedName(SERIALIZED_NAME_PASSWORD) + @javax.annotation.Nullable + private String password; + + public StartupUserDto() { + } + + public StartupUserDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the username. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public StartupUserDto password(@javax.annotation.Nullable String password) { + this.password = password; + return this; + } + + /** + * Gets or sets the user's password. + * @return password + */ + @javax.annotation.Nullable + public String getPassword() { + return password; + } + + public void setPassword(@javax.annotation.Nullable String password) { + this.password = password; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartupUserDto startupUserDto = (StartupUserDto) o; + return Objects.equals(this.name, startupUserDto.name) && + Objects.equals(this.password, startupUserDto.password); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, password); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartupUserDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Password"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartupUserDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartupUserDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartupUserDto is not found in the empty JSON string", StartupUserDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartupUserDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartupUserDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Password") != null && !jsonObj.get("Password").isJsonNull()) && !jsonObj.get("Password").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Password").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartupUserDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartupUserDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartupUserDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartupUserDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartupUserDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartupUserDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartupUserDto + * @throws IOException if the JSON string is invalid with respect to StartupUserDto + */ + public static StartupUserDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartupUserDto.class); + } + + /** + * Convert an instance of StartupUserDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java new file mode 100644 index 0000000000000..6693e566e2a9a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleDeliveryMethod.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Delivery method to use during playback of a specific subtitle format. + */ +@JsonAdapter(SubtitleDeliveryMethod.Adapter.class) +public enum SubtitleDeliveryMethod { + + ENCODE("Encode"), + + EMBED("Embed"), + + EXTERNAL("External"), + + HLS("Hls"), + + DROP("Drop"); + + private String value; + + SubtitleDeliveryMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubtitleDeliveryMethod fromValue(String value) { + for (SubtitleDeliveryMethod b : SubtitleDeliveryMethod.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubtitleDeliveryMethod enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubtitleDeliveryMethod read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubtitleDeliveryMethod.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubtitleDeliveryMethod.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleOptions.java new file mode 100644 index 0000000000000..751be9964c329 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleOptions.java @@ -0,0 +1,451 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SubtitleOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SubtitleOptions { + public static final String SERIALIZED_NAME_SKIP_IF_EMBEDDED_SUBTITLES_PRESENT = "SkipIfEmbeddedSubtitlesPresent"; + @SerializedName(SERIALIZED_NAME_SKIP_IF_EMBEDDED_SUBTITLES_PRESENT) + @javax.annotation.Nullable + private Boolean skipIfEmbeddedSubtitlesPresent; + + public static final String SERIALIZED_NAME_SKIP_IF_AUDIO_TRACK_MATCHES = "SkipIfAudioTrackMatches"; + @SerializedName(SERIALIZED_NAME_SKIP_IF_AUDIO_TRACK_MATCHES) + @javax.annotation.Nullable + private Boolean skipIfAudioTrackMatches; + + public static final String SERIALIZED_NAME_DOWNLOAD_LANGUAGES = "DownloadLanguages"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_LANGUAGES) + @javax.annotation.Nullable + private List downloadLanguages; + + public static final String SERIALIZED_NAME_DOWNLOAD_MOVIE_SUBTITLES = "DownloadMovieSubtitles"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_MOVIE_SUBTITLES) + @javax.annotation.Nullable + private Boolean downloadMovieSubtitles; + + public static final String SERIALIZED_NAME_DOWNLOAD_EPISODE_SUBTITLES = "DownloadEpisodeSubtitles"; + @SerializedName(SERIALIZED_NAME_DOWNLOAD_EPISODE_SUBTITLES) + @javax.annotation.Nullable + private Boolean downloadEpisodeSubtitles; + + public static final String SERIALIZED_NAME_OPEN_SUBTITLES_USERNAME = "OpenSubtitlesUsername"; + @SerializedName(SERIALIZED_NAME_OPEN_SUBTITLES_USERNAME) + @javax.annotation.Nullable + private String openSubtitlesUsername; + + public static final String SERIALIZED_NAME_OPEN_SUBTITLES_PASSWORD_HASH = "OpenSubtitlesPasswordHash"; + @SerializedName(SERIALIZED_NAME_OPEN_SUBTITLES_PASSWORD_HASH) + @javax.annotation.Nullable + private String openSubtitlesPasswordHash; + + public static final String SERIALIZED_NAME_IS_OPEN_SUBTITLE_VIP_ACCOUNT = "IsOpenSubtitleVipAccount"; + @SerializedName(SERIALIZED_NAME_IS_OPEN_SUBTITLE_VIP_ACCOUNT) + @javax.annotation.Nullable + private Boolean isOpenSubtitleVipAccount; + + public static final String SERIALIZED_NAME_REQUIRE_PERFECT_MATCH = "RequirePerfectMatch"; + @SerializedName(SERIALIZED_NAME_REQUIRE_PERFECT_MATCH) + @javax.annotation.Nullable + private Boolean requirePerfectMatch; + + public SubtitleOptions() { + } + + public SubtitleOptions skipIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipIfEmbeddedSubtitlesPresent) { + this.skipIfEmbeddedSubtitlesPresent = skipIfEmbeddedSubtitlesPresent; + return this; + } + + /** + * Get skipIfEmbeddedSubtitlesPresent + * @return skipIfEmbeddedSubtitlesPresent + */ + @javax.annotation.Nullable + public Boolean getSkipIfEmbeddedSubtitlesPresent() { + return skipIfEmbeddedSubtitlesPresent; + } + + public void setSkipIfEmbeddedSubtitlesPresent(@javax.annotation.Nullable Boolean skipIfEmbeddedSubtitlesPresent) { + this.skipIfEmbeddedSubtitlesPresent = skipIfEmbeddedSubtitlesPresent; + } + + + public SubtitleOptions skipIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipIfAudioTrackMatches) { + this.skipIfAudioTrackMatches = skipIfAudioTrackMatches; + return this; + } + + /** + * Get skipIfAudioTrackMatches + * @return skipIfAudioTrackMatches + */ + @javax.annotation.Nullable + public Boolean getSkipIfAudioTrackMatches() { + return skipIfAudioTrackMatches; + } + + public void setSkipIfAudioTrackMatches(@javax.annotation.Nullable Boolean skipIfAudioTrackMatches) { + this.skipIfAudioTrackMatches = skipIfAudioTrackMatches; + } + + + public SubtitleOptions downloadLanguages(@javax.annotation.Nullable List downloadLanguages) { + this.downloadLanguages = downloadLanguages; + return this; + } + + public SubtitleOptions addDownloadLanguagesItem(String downloadLanguagesItem) { + if (this.downloadLanguages == null) { + this.downloadLanguages = new ArrayList<>(); + } + this.downloadLanguages.add(downloadLanguagesItem); + return this; + } + + /** + * Get downloadLanguages + * @return downloadLanguages + */ + @javax.annotation.Nullable + public List getDownloadLanguages() { + return downloadLanguages; + } + + public void setDownloadLanguages(@javax.annotation.Nullable List downloadLanguages) { + this.downloadLanguages = downloadLanguages; + } + + + public SubtitleOptions downloadMovieSubtitles(@javax.annotation.Nullable Boolean downloadMovieSubtitles) { + this.downloadMovieSubtitles = downloadMovieSubtitles; + return this; + } + + /** + * Get downloadMovieSubtitles + * @return downloadMovieSubtitles + */ + @javax.annotation.Nullable + public Boolean getDownloadMovieSubtitles() { + return downloadMovieSubtitles; + } + + public void setDownloadMovieSubtitles(@javax.annotation.Nullable Boolean downloadMovieSubtitles) { + this.downloadMovieSubtitles = downloadMovieSubtitles; + } + + + public SubtitleOptions downloadEpisodeSubtitles(@javax.annotation.Nullable Boolean downloadEpisodeSubtitles) { + this.downloadEpisodeSubtitles = downloadEpisodeSubtitles; + return this; + } + + /** + * Get downloadEpisodeSubtitles + * @return downloadEpisodeSubtitles + */ + @javax.annotation.Nullable + public Boolean getDownloadEpisodeSubtitles() { + return downloadEpisodeSubtitles; + } + + public void setDownloadEpisodeSubtitles(@javax.annotation.Nullable Boolean downloadEpisodeSubtitles) { + this.downloadEpisodeSubtitles = downloadEpisodeSubtitles; + } + + + public SubtitleOptions openSubtitlesUsername(@javax.annotation.Nullable String openSubtitlesUsername) { + this.openSubtitlesUsername = openSubtitlesUsername; + return this; + } + + /** + * Get openSubtitlesUsername + * @return openSubtitlesUsername + */ + @javax.annotation.Nullable + public String getOpenSubtitlesUsername() { + return openSubtitlesUsername; + } + + public void setOpenSubtitlesUsername(@javax.annotation.Nullable String openSubtitlesUsername) { + this.openSubtitlesUsername = openSubtitlesUsername; + } + + + public SubtitleOptions openSubtitlesPasswordHash(@javax.annotation.Nullable String openSubtitlesPasswordHash) { + this.openSubtitlesPasswordHash = openSubtitlesPasswordHash; + return this; + } + + /** + * Get openSubtitlesPasswordHash + * @return openSubtitlesPasswordHash + */ + @javax.annotation.Nullable + public String getOpenSubtitlesPasswordHash() { + return openSubtitlesPasswordHash; + } + + public void setOpenSubtitlesPasswordHash(@javax.annotation.Nullable String openSubtitlesPasswordHash) { + this.openSubtitlesPasswordHash = openSubtitlesPasswordHash; + } + + + public SubtitleOptions isOpenSubtitleVipAccount(@javax.annotation.Nullable Boolean isOpenSubtitleVipAccount) { + this.isOpenSubtitleVipAccount = isOpenSubtitleVipAccount; + return this; + } + + /** + * Get isOpenSubtitleVipAccount + * @return isOpenSubtitleVipAccount + */ + @javax.annotation.Nullable + public Boolean getIsOpenSubtitleVipAccount() { + return isOpenSubtitleVipAccount; + } + + public void setIsOpenSubtitleVipAccount(@javax.annotation.Nullable Boolean isOpenSubtitleVipAccount) { + this.isOpenSubtitleVipAccount = isOpenSubtitleVipAccount; + } + + + public SubtitleOptions requirePerfectMatch(@javax.annotation.Nullable Boolean requirePerfectMatch) { + this.requirePerfectMatch = requirePerfectMatch; + return this; + } + + /** + * Get requirePerfectMatch + * @return requirePerfectMatch + */ + @javax.annotation.Nullable + public Boolean getRequirePerfectMatch() { + return requirePerfectMatch; + } + + public void setRequirePerfectMatch(@javax.annotation.Nullable Boolean requirePerfectMatch) { + this.requirePerfectMatch = requirePerfectMatch; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SubtitleOptions subtitleOptions = (SubtitleOptions) o; + return Objects.equals(this.skipIfEmbeddedSubtitlesPresent, subtitleOptions.skipIfEmbeddedSubtitlesPresent) && + Objects.equals(this.skipIfAudioTrackMatches, subtitleOptions.skipIfAudioTrackMatches) && + Objects.equals(this.downloadLanguages, subtitleOptions.downloadLanguages) && + Objects.equals(this.downloadMovieSubtitles, subtitleOptions.downloadMovieSubtitles) && + Objects.equals(this.downloadEpisodeSubtitles, subtitleOptions.downloadEpisodeSubtitles) && + Objects.equals(this.openSubtitlesUsername, subtitleOptions.openSubtitlesUsername) && + Objects.equals(this.openSubtitlesPasswordHash, subtitleOptions.openSubtitlesPasswordHash) && + Objects.equals(this.isOpenSubtitleVipAccount, subtitleOptions.isOpenSubtitleVipAccount) && + Objects.equals(this.requirePerfectMatch, subtitleOptions.requirePerfectMatch); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(skipIfEmbeddedSubtitlesPresent, skipIfAudioTrackMatches, downloadLanguages, downloadMovieSubtitles, downloadEpisodeSubtitles, openSubtitlesUsername, openSubtitlesPasswordHash, isOpenSubtitleVipAccount, requirePerfectMatch); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubtitleOptions {\n"); + sb.append(" skipIfEmbeddedSubtitlesPresent: ").append(toIndentedString(skipIfEmbeddedSubtitlesPresent)).append("\n"); + sb.append(" skipIfAudioTrackMatches: ").append(toIndentedString(skipIfAudioTrackMatches)).append("\n"); + sb.append(" downloadLanguages: ").append(toIndentedString(downloadLanguages)).append("\n"); + sb.append(" downloadMovieSubtitles: ").append(toIndentedString(downloadMovieSubtitles)).append("\n"); + sb.append(" downloadEpisodeSubtitles: ").append(toIndentedString(downloadEpisodeSubtitles)).append("\n"); + sb.append(" openSubtitlesUsername: ").append(toIndentedString(openSubtitlesUsername)).append("\n"); + sb.append(" openSubtitlesPasswordHash: ").append(toIndentedString(openSubtitlesPasswordHash)).append("\n"); + sb.append(" isOpenSubtitleVipAccount: ").append(toIndentedString(isOpenSubtitleVipAccount)).append("\n"); + sb.append(" requirePerfectMatch: ").append(toIndentedString(requirePerfectMatch)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SkipIfEmbeddedSubtitlesPresent"); + openapiFields.add("SkipIfAudioTrackMatches"); + openapiFields.add("DownloadLanguages"); + openapiFields.add("DownloadMovieSubtitles"); + openapiFields.add("DownloadEpisodeSubtitles"); + openapiFields.add("OpenSubtitlesUsername"); + openapiFields.add("OpenSubtitlesPasswordHash"); + openapiFields.add("IsOpenSubtitleVipAccount"); + openapiFields.add("RequirePerfectMatch"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SubtitleOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SubtitleOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SubtitleOptions is not found in the empty JSON string", SubtitleOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SubtitleOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SubtitleOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("DownloadLanguages") != null && !jsonObj.get("DownloadLanguages").isJsonNull() && !jsonObj.get("DownloadLanguages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `DownloadLanguages` to be an array in the JSON string but got `%s`", jsonObj.get("DownloadLanguages").toString())); + } + if ((jsonObj.get("OpenSubtitlesUsername") != null && !jsonObj.get("OpenSubtitlesUsername").isJsonNull()) && !jsonObj.get("OpenSubtitlesUsername").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenSubtitlesUsername` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenSubtitlesUsername").toString())); + } + if ((jsonObj.get("OpenSubtitlesPasswordHash") != null && !jsonObj.get("OpenSubtitlesPasswordHash").isJsonNull()) && !jsonObj.get("OpenSubtitlesPasswordHash").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OpenSubtitlesPasswordHash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OpenSubtitlesPasswordHash").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SubtitleOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SubtitleOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SubtitleOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SubtitleOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SubtitleOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SubtitleOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of SubtitleOptions + * @throws IOException if the JSON string is invalid with respect to SubtitleOptions + */ + public static SubtitleOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SubtitleOptions.class); + } + + /** + * Convert an instance of SubtitleOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java new file mode 100644 index 0000000000000..f36446c7b751d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitlePlaybackMode.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing a subtitle playback mode. + */ +@JsonAdapter(SubtitlePlaybackMode.Adapter.class) +public enum SubtitlePlaybackMode { + + DEFAULT("Default"), + + ALWAYS("Always"), + + ONLY_FORCED("OnlyForced"), + + NONE("None"), + + SMART("Smart"); + + private String value; + + SubtitlePlaybackMode(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubtitlePlaybackMode fromValue(String value) { + for (SubtitlePlaybackMode b : SubtitlePlaybackMode.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubtitlePlaybackMode enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubtitlePlaybackMode read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubtitlePlaybackMode.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubtitlePlaybackMode.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleProfile.java new file mode 100644 index 0000000000000..fc7ab724213c1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SubtitleProfile.java @@ -0,0 +1,340 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.SubtitleDeliveryMethod; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * SubtitleProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SubtitleProfile { + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable + private String format; + + public static final String SERIALIZED_NAME_METHOD = "Method"; + @SerializedName(SERIALIZED_NAME_METHOD) + @javax.annotation.Nullable + private SubtitleDeliveryMethod method; + + public static final String SERIALIZED_NAME_DIDL_MODE = "DidlMode"; + @SerializedName(SERIALIZED_NAME_DIDL_MODE) + @javax.annotation.Nullable + private String didlMode; + + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nullable + private String language; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public SubtitleProfile() { + } + + public SubtitleProfile format(@javax.annotation.Nullable String format) { + this.format = format; + return this; + } + + /** + * Get format + * @return format + */ + @javax.annotation.Nullable + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nullable String format) { + this.format = format; + } + + + public SubtitleProfile method(@javax.annotation.Nullable SubtitleDeliveryMethod method) { + this.method = method; + return this; + } + + /** + * Delivery method to use during playback of a specific subtitle format. + * @return method + */ + @javax.annotation.Nullable + public SubtitleDeliveryMethod getMethod() { + return method; + } + + public void setMethod(@javax.annotation.Nullable SubtitleDeliveryMethod method) { + this.method = method; + } + + + public SubtitleProfile didlMode(@javax.annotation.Nullable String didlMode) { + this.didlMode = didlMode; + return this; + } + + /** + * Get didlMode + * @return didlMode + */ + @javax.annotation.Nullable + public String getDidlMode() { + return didlMode; + } + + public void setDidlMode(@javax.annotation.Nullable String didlMode) { + this.didlMode = didlMode; + } + + + public SubtitleProfile language(@javax.annotation.Nullable String language) { + this.language = language; + return this; + } + + /** + * Get language + * @return language + */ + @javax.annotation.Nullable + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nullable String language) { + this.language = language; + } + + + public SubtitleProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SubtitleProfile subtitleProfile = (SubtitleProfile) o; + return Objects.equals(this.format, subtitleProfile.format) && + Objects.equals(this.method, subtitleProfile.method) && + Objects.equals(this.didlMode, subtitleProfile.didlMode) && + Objects.equals(this.language, subtitleProfile.language) && + Objects.equals(this.container, subtitleProfile.container); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(format, method, didlMode, language, container); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SubtitleProfile {\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" method: ").append(toIndentedString(method)).append("\n"); + sb.append(" didlMode: ").append(toIndentedString(didlMode)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Format"); + openapiFields.add("Method"); + openapiFields.add("DidlMode"); + openapiFields.add("Language"); + openapiFields.add("Container"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SubtitleProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SubtitleProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SubtitleProfile is not found in the empty JSON string", SubtitleProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SubtitleProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SubtitleProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) && !jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + // validate the optional field `Method` + if (jsonObj.get("Method") != null && !jsonObj.get("Method").isJsonNull()) { + SubtitleDeliveryMethod.validateJsonElement(jsonObj.get("Method")); + } + if ((jsonObj.get("DidlMode") != null && !jsonObj.get("DidlMode").isJsonNull()) && !jsonObj.get("DidlMode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DidlMode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DidlMode").toString())); + } + if ((jsonObj.get("Language") != null && !jsonObj.get("Language").isJsonNull()) && !jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SubtitleProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SubtitleProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SubtitleProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SubtitleProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SubtitleProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SubtitleProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of SubtitleProfile + * @throws IOException if the JSON string is invalid with respect to SubtitleProfile + */ + public static SubtitleProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SubtitleProfile.class); + } + + /** + * Convert an instance of SubtitleProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java new file mode 100644 index 0000000000000..2e6c4b917e6ea --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SyncPlayUserAccessType.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum SyncPlayUserAccessType. + */ +@JsonAdapter(SyncPlayUserAccessType.Adapter.class) +public enum SyncPlayUserAccessType { + + CREATE_AND_JOIN_GROUPS("CreateAndJoinGroups"), + + JOIN_GROUPS("JoinGroups"), + + NONE("None"); + + private String value; + + SyncPlayUserAccessType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SyncPlayUserAccessType fromValue(String value) { + for (SyncPlayUserAccessType b : SyncPlayUserAccessType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SyncPlayUserAccessType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SyncPlayUserAccessType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SyncPlayUserAccessType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SyncPlayUserAccessType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SystemInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SystemInfo.java new file mode 100644 index 0000000000000..343d42f081b44 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/SystemInfo.java @@ -0,0 +1,980 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.Architecture; +import org.openapitools.client.model.FFmpegLocation; +import org.openapitools.client.model.InstallationInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class SystemInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class SystemInfo { + public static final String SERIALIZED_NAME_LOCAL_ADDRESS = "LocalAddress"; + @SerializedName(SERIALIZED_NAME_LOCAL_ADDRESS) + @javax.annotation.Nullable + private String localAddress; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_PRODUCT_NAME = "ProductName"; + @SerializedName(SERIALIZED_NAME_PRODUCT_NAME) + @javax.annotation.Nullable + private String productName; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM = "OperatingSystem"; + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM) + @javax.annotation.Nullable + private String operatingSystem; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED = "StartupWizardCompleted"; + @SerializedName(SERIALIZED_NAME_STARTUP_WIZARD_COMPLETED) + @javax.annotation.Nullable + private Boolean startupWizardCompleted; + + public static final String SERIALIZED_NAME_OPERATING_SYSTEM_DISPLAY_NAME = "OperatingSystemDisplayName"; + @SerializedName(SERIALIZED_NAME_OPERATING_SYSTEM_DISPLAY_NAME) + @javax.annotation.Nullable + private String operatingSystemDisplayName; + + public static final String SERIALIZED_NAME_PACKAGE_NAME = "PackageName"; + @SerializedName(SERIALIZED_NAME_PACKAGE_NAME) + @javax.annotation.Nullable + private String packageName; + + public static final String SERIALIZED_NAME_HAS_PENDING_RESTART = "HasPendingRestart"; + @SerializedName(SERIALIZED_NAME_HAS_PENDING_RESTART) + @javax.annotation.Nullable + private Boolean hasPendingRestart; + + public static final String SERIALIZED_NAME_IS_SHUTTING_DOWN = "IsShuttingDown"; + @SerializedName(SERIALIZED_NAME_IS_SHUTTING_DOWN) + @javax.annotation.Nullable + private Boolean isShuttingDown; + + public static final String SERIALIZED_NAME_SUPPORTS_LIBRARY_MONITOR = "SupportsLibraryMonitor"; + @SerializedName(SERIALIZED_NAME_SUPPORTS_LIBRARY_MONITOR) + @javax.annotation.Nullable + private Boolean supportsLibraryMonitor; + + public static final String SERIALIZED_NAME_WEB_SOCKET_PORT_NUMBER = "WebSocketPortNumber"; + @SerializedName(SERIALIZED_NAME_WEB_SOCKET_PORT_NUMBER) + @javax.annotation.Nullable + private Integer webSocketPortNumber; + + public static final String SERIALIZED_NAME_COMPLETED_INSTALLATIONS = "CompletedInstallations"; + @SerializedName(SERIALIZED_NAME_COMPLETED_INSTALLATIONS) + @javax.annotation.Nullable + private List completedInstallations; + + public static final String SERIALIZED_NAME_CAN_SELF_RESTART = "CanSelfRestart"; + @SerializedName(SERIALIZED_NAME_CAN_SELF_RESTART) + @javax.annotation.Nullable + private Boolean canSelfRestart; + + public static final String SERIALIZED_NAME_CAN_LAUNCH_WEB_BROWSER = "CanLaunchWebBrowser"; + @SerializedName(SERIALIZED_NAME_CAN_LAUNCH_WEB_BROWSER) + @javax.annotation.Nullable + private Boolean canLaunchWebBrowser; + + public static final String SERIALIZED_NAME_PROGRAM_DATA_PATH = "ProgramDataPath"; + @SerializedName(SERIALIZED_NAME_PROGRAM_DATA_PATH) + @javax.annotation.Nullable + private String programDataPath; + + public static final String SERIALIZED_NAME_WEB_PATH = "WebPath"; + @SerializedName(SERIALIZED_NAME_WEB_PATH) + @javax.annotation.Nullable + private String webPath; + + public static final String SERIALIZED_NAME_ITEMS_BY_NAME_PATH = "ItemsByNamePath"; + @SerializedName(SERIALIZED_NAME_ITEMS_BY_NAME_PATH) + @javax.annotation.Nullable + private String itemsByNamePath; + + public static final String SERIALIZED_NAME_CACHE_PATH = "CachePath"; + @SerializedName(SERIALIZED_NAME_CACHE_PATH) + @javax.annotation.Nullable + private String cachePath; + + public static final String SERIALIZED_NAME_LOG_PATH = "LogPath"; + @SerializedName(SERIALIZED_NAME_LOG_PATH) + @javax.annotation.Nullable + private String logPath; + + public static final String SERIALIZED_NAME_INTERNAL_METADATA_PATH = "InternalMetadataPath"; + @SerializedName(SERIALIZED_NAME_INTERNAL_METADATA_PATH) + @javax.annotation.Nullable + private String internalMetadataPath; + + public static final String SERIALIZED_NAME_TRANSCODING_TEMP_PATH = "TranscodingTempPath"; + @SerializedName(SERIALIZED_NAME_TRANSCODING_TEMP_PATH) + @javax.annotation.Nullable + private String transcodingTempPath; + + public static final String SERIALIZED_NAME_HAS_UPDATE_AVAILABLE = "HasUpdateAvailable"; + @Deprecated + @SerializedName(SERIALIZED_NAME_HAS_UPDATE_AVAILABLE) + @javax.annotation.Nullable + private Boolean hasUpdateAvailable; + + public static final String SERIALIZED_NAME_ENCODER_LOCATION = "EncoderLocation"; + @Deprecated + @SerializedName(SERIALIZED_NAME_ENCODER_LOCATION) + @javax.annotation.Nullable + private FFmpegLocation encoderLocation; + + public static final String SERIALIZED_NAME_SYSTEM_ARCHITECTURE = "SystemArchitecture"; + @SerializedName(SERIALIZED_NAME_SYSTEM_ARCHITECTURE) + @javax.annotation.Nullable + private Architecture systemArchitecture; + + public SystemInfo() { + } + + public SystemInfo localAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + return this; + } + + /** + * Gets or sets the local address. + * @return localAddress + */ + @javax.annotation.Nullable + public String getLocalAddress() { + return localAddress; + } + + public void setLocalAddress(@javax.annotation.Nullable String localAddress) { + this.localAddress = localAddress; + } + + + public SystemInfo serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public SystemInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the server version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + public SystemInfo productName(@javax.annotation.Nullable String productName) { + this.productName = productName; + return this; + } + + /** + * Gets or sets the product name. This is the AssemblyProduct name. + * @return productName + */ + @javax.annotation.Nullable + public String getProductName() { + return productName; + } + + public void setProductName(@javax.annotation.Nullable String productName) { + this.productName = productName; + } + + + public SystemInfo operatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + return this; + } + + /** + * Gets or sets the operating system. + * @return operatingSystem + */ + @javax.annotation.Nullable + public String getOperatingSystem() { + return operatingSystem; + } + + public void setOperatingSystem(@javax.annotation.Nullable String operatingSystem) { + this.operatingSystem = operatingSystem; + } + + + public SystemInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public SystemInfo startupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + return this; + } + + /** + * Gets or sets a value indicating whether the startup wizard is completed. + * @return startupWizardCompleted + */ + @javax.annotation.Nullable + public Boolean getStartupWizardCompleted() { + return startupWizardCompleted; + } + + public void setStartupWizardCompleted(@javax.annotation.Nullable Boolean startupWizardCompleted) { + this.startupWizardCompleted = startupWizardCompleted; + } + + + public SystemInfo operatingSystemDisplayName(@javax.annotation.Nullable String operatingSystemDisplayName) { + this.operatingSystemDisplayName = operatingSystemDisplayName; + return this; + } + + /** + * Gets or sets the display name of the operating system. + * @return operatingSystemDisplayName + */ + @javax.annotation.Nullable + public String getOperatingSystemDisplayName() { + return operatingSystemDisplayName; + } + + public void setOperatingSystemDisplayName(@javax.annotation.Nullable String operatingSystemDisplayName) { + this.operatingSystemDisplayName = operatingSystemDisplayName; + } + + + public SystemInfo packageName(@javax.annotation.Nullable String packageName) { + this.packageName = packageName; + return this; + } + + /** + * Gets or sets the package name. + * @return packageName + */ + @javax.annotation.Nullable + public String getPackageName() { + return packageName; + } + + public void setPackageName(@javax.annotation.Nullable String packageName) { + this.packageName = packageName; + } + + + public SystemInfo hasPendingRestart(@javax.annotation.Nullable Boolean hasPendingRestart) { + this.hasPendingRestart = hasPendingRestart; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has pending restart. + * @return hasPendingRestart + */ + @javax.annotation.Nullable + public Boolean getHasPendingRestart() { + return hasPendingRestart; + } + + public void setHasPendingRestart(@javax.annotation.Nullable Boolean hasPendingRestart) { + this.hasPendingRestart = hasPendingRestart; + } + + + public SystemInfo isShuttingDown(@javax.annotation.Nullable Boolean isShuttingDown) { + this.isShuttingDown = isShuttingDown; + return this; + } + + /** + * Get isShuttingDown + * @return isShuttingDown + */ + @javax.annotation.Nullable + public Boolean getIsShuttingDown() { + return isShuttingDown; + } + + public void setIsShuttingDown(@javax.annotation.Nullable Boolean isShuttingDown) { + this.isShuttingDown = isShuttingDown; + } + + + public SystemInfo supportsLibraryMonitor(@javax.annotation.Nullable Boolean supportsLibraryMonitor) { + this.supportsLibraryMonitor = supportsLibraryMonitor; + return this; + } + + /** + * Gets or sets a value indicating whether [supports library monitor]. + * @return supportsLibraryMonitor + */ + @javax.annotation.Nullable + public Boolean getSupportsLibraryMonitor() { + return supportsLibraryMonitor; + } + + public void setSupportsLibraryMonitor(@javax.annotation.Nullable Boolean supportsLibraryMonitor) { + this.supportsLibraryMonitor = supportsLibraryMonitor; + } + + + public SystemInfo webSocketPortNumber(@javax.annotation.Nullable Integer webSocketPortNumber) { + this.webSocketPortNumber = webSocketPortNumber; + return this; + } + + /** + * Gets or sets the web socket port number. + * @return webSocketPortNumber + */ + @javax.annotation.Nullable + public Integer getWebSocketPortNumber() { + return webSocketPortNumber; + } + + public void setWebSocketPortNumber(@javax.annotation.Nullable Integer webSocketPortNumber) { + this.webSocketPortNumber = webSocketPortNumber; + } + + + public SystemInfo completedInstallations(@javax.annotation.Nullable List completedInstallations) { + this.completedInstallations = completedInstallations; + return this; + } + + public SystemInfo addCompletedInstallationsItem(InstallationInfo completedInstallationsItem) { + if (this.completedInstallations == null) { + this.completedInstallations = new ArrayList<>(); + } + this.completedInstallations.add(completedInstallationsItem); + return this; + } + + /** + * Gets or sets the completed installations. + * @return completedInstallations + */ + @javax.annotation.Nullable + public List getCompletedInstallations() { + return completedInstallations; + } + + public void setCompletedInstallations(@javax.annotation.Nullable List completedInstallations) { + this.completedInstallations = completedInstallations; + } + + + public SystemInfo canSelfRestart(@javax.annotation.Nullable Boolean canSelfRestart) { + this.canSelfRestart = canSelfRestart; + return this; + } + + /** + * Gets or sets a value indicating whether this instance can self restart. + * @return canSelfRestart + */ + @javax.annotation.Nullable + public Boolean getCanSelfRestart() { + return canSelfRestart; + } + + public void setCanSelfRestart(@javax.annotation.Nullable Boolean canSelfRestart) { + this.canSelfRestart = canSelfRestart; + } + + + public SystemInfo canLaunchWebBrowser(@javax.annotation.Nullable Boolean canLaunchWebBrowser) { + this.canLaunchWebBrowser = canLaunchWebBrowser; + return this; + } + + /** + * Get canLaunchWebBrowser + * @return canLaunchWebBrowser + */ + @javax.annotation.Nullable + public Boolean getCanLaunchWebBrowser() { + return canLaunchWebBrowser; + } + + public void setCanLaunchWebBrowser(@javax.annotation.Nullable Boolean canLaunchWebBrowser) { + this.canLaunchWebBrowser = canLaunchWebBrowser; + } + + + public SystemInfo programDataPath(@javax.annotation.Nullable String programDataPath) { + this.programDataPath = programDataPath; + return this; + } + + /** + * Gets or sets the program data path. + * @return programDataPath + */ + @javax.annotation.Nullable + public String getProgramDataPath() { + return programDataPath; + } + + public void setProgramDataPath(@javax.annotation.Nullable String programDataPath) { + this.programDataPath = programDataPath; + } + + + public SystemInfo webPath(@javax.annotation.Nullable String webPath) { + this.webPath = webPath; + return this; + } + + /** + * Gets or sets the web UI resources path. + * @return webPath + */ + @javax.annotation.Nullable + public String getWebPath() { + return webPath; + } + + public void setWebPath(@javax.annotation.Nullable String webPath) { + this.webPath = webPath; + } + + + public SystemInfo itemsByNamePath(@javax.annotation.Nullable String itemsByNamePath) { + this.itemsByNamePath = itemsByNamePath; + return this; + } + + /** + * Gets or sets the items by name path. + * @return itemsByNamePath + */ + @javax.annotation.Nullable + public String getItemsByNamePath() { + return itemsByNamePath; + } + + public void setItemsByNamePath(@javax.annotation.Nullable String itemsByNamePath) { + this.itemsByNamePath = itemsByNamePath; + } + + + public SystemInfo cachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + return this; + } + + /** + * Gets or sets the cache path. + * @return cachePath + */ + @javax.annotation.Nullable + public String getCachePath() { + return cachePath; + } + + public void setCachePath(@javax.annotation.Nullable String cachePath) { + this.cachePath = cachePath; + } + + + public SystemInfo logPath(@javax.annotation.Nullable String logPath) { + this.logPath = logPath; + return this; + } + + /** + * Gets or sets the log path. + * @return logPath + */ + @javax.annotation.Nullable + public String getLogPath() { + return logPath; + } + + public void setLogPath(@javax.annotation.Nullable String logPath) { + this.logPath = logPath; + } + + + public SystemInfo internalMetadataPath(@javax.annotation.Nullable String internalMetadataPath) { + this.internalMetadataPath = internalMetadataPath; + return this; + } + + /** + * Gets or sets the internal metadata path. + * @return internalMetadataPath + */ + @javax.annotation.Nullable + public String getInternalMetadataPath() { + return internalMetadataPath; + } + + public void setInternalMetadataPath(@javax.annotation.Nullable String internalMetadataPath) { + this.internalMetadataPath = internalMetadataPath; + } + + + public SystemInfo transcodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + return this; + } + + /** + * Gets or sets the transcode path. + * @return transcodingTempPath + */ + @javax.annotation.Nullable + public String getTranscodingTempPath() { + return transcodingTempPath; + } + + public void setTranscodingTempPath(@javax.annotation.Nullable String transcodingTempPath) { + this.transcodingTempPath = transcodingTempPath; + } + + + @Deprecated + public SystemInfo hasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has update available. + * @return hasUpdateAvailable + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public Boolean getHasUpdateAvailable() { + return hasUpdateAvailable; + } + + @Deprecated + public void setHasUpdateAvailable(@javax.annotation.Nullable Boolean hasUpdateAvailable) { + this.hasUpdateAvailable = hasUpdateAvailable; + } + + + @Deprecated + public SystemInfo encoderLocation(@javax.annotation.Nullable FFmpegLocation encoderLocation) { + this.encoderLocation = encoderLocation; + return this; + } + + /** + * Enum describing the location of the FFmpeg tool. + * @return encoderLocation + * @deprecated + */ + @Deprecated + @javax.annotation.Nullable + public FFmpegLocation getEncoderLocation() { + return encoderLocation; + } + + @Deprecated + public void setEncoderLocation(@javax.annotation.Nullable FFmpegLocation encoderLocation) { + this.encoderLocation = encoderLocation; + } + + + public SystemInfo systemArchitecture(@javax.annotation.Nullable Architecture systemArchitecture) { + this.systemArchitecture = systemArchitecture; + return this; + } + + /** + * Get systemArchitecture + * @return systemArchitecture + */ + @javax.annotation.Nullable + public Architecture getSystemArchitecture() { + return systemArchitecture; + } + + public void setSystemArchitecture(@javax.annotation.Nullable Architecture systemArchitecture) { + this.systemArchitecture = systemArchitecture; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SystemInfo systemInfo = (SystemInfo) o; + return Objects.equals(this.localAddress, systemInfo.localAddress) && + Objects.equals(this.serverName, systemInfo.serverName) && + Objects.equals(this.version, systemInfo.version) && + Objects.equals(this.productName, systemInfo.productName) && + Objects.equals(this.operatingSystem, systemInfo.operatingSystem) && + Objects.equals(this.id, systemInfo.id) && + Objects.equals(this.startupWizardCompleted, systemInfo.startupWizardCompleted) && + Objects.equals(this.operatingSystemDisplayName, systemInfo.operatingSystemDisplayName) && + Objects.equals(this.packageName, systemInfo.packageName) && + Objects.equals(this.hasPendingRestart, systemInfo.hasPendingRestart) && + Objects.equals(this.isShuttingDown, systemInfo.isShuttingDown) && + Objects.equals(this.supportsLibraryMonitor, systemInfo.supportsLibraryMonitor) && + Objects.equals(this.webSocketPortNumber, systemInfo.webSocketPortNumber) && + Objects.equals(this.completedInstallations, systemInfo.completedInstallations) && + Objects.equals(this.canSelfRestart, systemInfo.canSelfRestart) && + Objects.equals(this.canLaunchWebBrowser, systemInfo.canLaunchWebBrowser) && + Objects.equals(this.programDataPath, systemInfo.programDataPath) && + Objects.equals(this.webPath, systemInfo.webPath) && + Objects.equals(this.itemsByNamePath, systemInfo.itemsByNamePath) && + Objects.equals(this.cachePath, systemInfo.cachePath) && + Objects.equals(this.logPath, systemInfo.logPath) && + Objects.equals(this.internalMetadataPath, systemInfo.internalMetadataPath) && + Objects.equals(this.transcodingTempPath, systemInfo.transcodingTempPath) && + Objects.equals(this.hasUpdateAvailable, systemInfo.hasUpdateAvailable) && + Objects.equals(this.encoderLocation, systemInfo.encoderLocation) && + Objects.equals(this.systemArchitecture, systemInfo.systemArchitecture); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(localAddress, serverName, version, productName, operatingSystem, id, startupWizardCompleted, operatingSystemDisplayName, packageName, hasPendingRestart, isShuttingDown, supportsLibraryMonitor, webSocketPortNumber, completedInstallations, canSelfRestart, canLaunchWebBrowser, programDataPath, webPath, itemsByNamePath, cachePath, logPath, internalMetadataPath, transcodingTempPath, hasUpdateAvailable, encoderLocation, systemArchitecture); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SystemInfo {\n"); + sb.append(" localAddress: ").append(toIndentedString(localAddress)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" productName: ").append(toIndentedString(productName)).append("\n"); + sb.append(" operatingSystem: ").append(toIndentedString(operatingSystem)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" startupWizardCompleted: ").append(toIndentedString(startupWizardCompleted)).append("\n"); + sb.append(" operatingSystemDisplayName: ").append(toIndentedString(operatingSystemDisplayName)).append("\n"); + sb.append(" packageName: ").append(toIndentedString(packageName)).append("\n"); + sb.append(" hasPendingRestart: ").append(toIndentedString(hasPendingRestart)).append("\n"); + sb.append(" isShuttingDown: ").append(toIndentedString(isShuttingDown)).append("\n"); + sb.append(" supportsLibraryMonitor: ").append(toIndentedString(supportsLibraryMonitor)).append("\n"); + sb.append(" webSocketPortNumber: ").append(toIndentedString(webSocketPortNumber)).append("\n"); + sb.append(" completedInstallations: ").append(toIndentedString(completedInstallations)).append("\n"); + sb.append(" canSelfRestart: ").append(toIndentedString(canSelfRestart)).append("\n"); + sb.append(" canLaunchWebBrowser: ").append(toIndentedString(canLaunchWebBrowser)).append("\n"); + sb.append(" programDataPath: ").append(toIndentedString(programDataPath)).append("\n"); + sb.append(" webPath: ").append(toIndentedString(webPath)).append("\n"); + sb.append(" itemsByNamePath: ").append(toIndentedString(itemsByNamePath)).append("\n"); + sb.append(" cachePath: ").append(toIndentedString(cachePath)).append("\n"); + sb.append(" logPath: ").append(toIndentedString(logPath)).append("\n"); + sb.append(" internalMetadataPath: ").append(toIndentedString(internalMetadataPath)).append("\n"); + sb.append(" transcodingTempPath: ").append(toIndentedString(transcodingTempPath)).append("\n"); + sb.append(" hasUpdateAvailable: ").append(toIndentedString(hasUpdateAvailable)).append("\n"); + sb.append(" encoderLocation: ").append(toIndentedString(encoderLocation)).append("\n"); + sb.append(" systemArchitecture: ").append(toIndentedString(systemArchitecture)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LocalAddress"); + openapiFields.add("ServerName"); + openapiFields.add("Version"); + openapiFields.add("ProductName"); + openapiFields.add("OperatingSystem"); + openapiFields.add("Id"); + openapiFields.add("StartupWizardCompleted"); + openapiFields.add("OperatingSystemDisplayName"); + openapiFields.add("PackageName"); + openapiFields.add("HasPendingRestart"); + openapiFields.add("IsShuttingDown"); + openapiFields.add("SupportsLibraryMonitor"); + openapiFields.add("WebSocketPortNumber"); + openapiFields.add("CompletedInstallations"); + openapiFields.add("CanSelfRestart"); + openapiFields.add("CanLaunchWebBrowser"); + openapiFields.add("ProgramDataPath"); + openapiFields.add("WebPath"); + openapiFields.add("ItemsByNamePath"); + openapiFields.add("CachePath"); + openapiFields.add("LogPath"); + openapiFields.add("InternalMetadataPath"); + openapiFields.add("TranscodingTempPath"); + openapiFields.add("HasUpdateAvailable"); + openapiFields.add("EncoderLocation"); + openapiFields.add("SystemArchitecture"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SystemInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SystemInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SystemInfo is not found in the empty JSON string", SystemInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SystemInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SystemInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("LocalAddress") != null && !jsonObj.get("LocalAddress").isJsonNull()) && !jsonObj.get("LocalAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LocalAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LocalAddress").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Version").toString())); + } + if ((jsonObj.get("ProductName") != null && !jsonObj.get("ProductName").isJsonNull()) && !jsonObj.get("ProductName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProductName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProductName").toString())); + } + if ((jsonObj.get("OperatingSystem") != null && !jsonObj.get("OperatingSystem").isJsonNull()) && !jsonObj.get("OperatingSystem").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystem` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystem").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("OperatingSystemDisplayName") != null && !jsonObj.get("OperatingSystemDisplayName").isJsonNull()) && !jsonObj.get("OperatingSystemDisplayName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OperatingSystemDisplayName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OperatingSystemDisplayName").toString())); + } + if ((jsonObj.get("PackageName") != null && !jsonObj.get("PackageName").isJsonNull()) && !jsonObj.get("PackageName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PackageName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PackageName").toString())); + } + if (jsonObj.get("CompletedInstallations") != null && !jsonObj.get("CompletedInstallations").isJsonNull()) { + JsonArray jsonArraycompletedInstallations = jsonObj.getAsJsonArray("CompletedInstallations"); + if (jsonArraycompletedInstallations != null) { + // ensure the json data is an array + if (!jsonObj.get("CompletedInstallations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `CompletedInstallations` to be an array in the JSON string but got `%s`", jsonObj.get("CompletedInstallations").toString())); + } + + // validate the optional field `CompletedInstallations` (array) + for (int i = 0; i < jsonArraycompletedInstallations.size(); i++) { + InstallationInfo.validateJsonElement(jsonArraycompletedInstallations.get(i)); + }; + } + } + if ((jsonObj.get("ProgramDataPath") != null && !jsonObj.get("ProgramDataPath").isJsonNull()) && !jsonObj.get("ProgramDataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramDataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramDataPath").toString())); + } + if ((jsonObj.get("WebPath") != null && !jsonObj.get("WebPath").isJsonNull()) && !jsonObj.get("WebPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `WebPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("WebPath").toString())); + } + if ((jsonObj.get("ItemsByNamePath") != null && !jsonObj.get("ItemsByNamePath").isJsonNull()) && !jsonObj.get("ItemsByNamePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemsByNamePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemsByNamePath").toString())); + } + if ((jsonObj.get("CachePath") != null && !jsonObj.get("CachePath").isJsonNull()) && !jsonObj.get("CachePath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CachePath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CachePath").toString())); + } + if ((jsonObj.get("LogPath") != null && !jsonObj.get("LogPath").isJsonNull()) && !jsonObj.get("LogPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LogPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LogPath").toString())); + } + if ((jsonObj.get("InternalMetadataPath") != null && !jsonObj.get("InternalMetadataPath").isJsonNull()) && !jsonObj.get("InternalMetadataPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `InternalMetadataPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("InternalMetadataPath").toString())); + } + if ((jsonObj.get("TranscodingTempPath") != null && !jsonObj.get("TranscodingTempPath").isJsonNull()) && !jsonObj.get("TranscodingTempPath").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodingTempPath` to be a primitive type in the JSON string but got `%s`", jsonObj.get("TranscodingTempPath").toString())); + } + // validate the optional field `EncoderLocation` + if (jsonObj.get("EncoderLocation") != null && !jsonObj.get("EncoderLocation").isJsonNull()) { + FFmpegLocation.validateJsonElement(jsonObj.get("EncoderLocation")); + } + // validate the optional field `SystemArchitecture` + if (jsonObj.get("SystemArchitecture") != null && !jsonObj.get("SystemArchitecture").isJsonNull()) { + Architecture.validateJsonElement(jsonObj.get("SystemArchitecture")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SystemInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SystemInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SystemInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SystemInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SystemInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SystemInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of SystemInfo + * @throws IOException if the JSON string is invalid with respect to SystemInfo + */ + public static SystemInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SystemInfo.class); + } + + /** + * Convert an instance of SystemInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java new file mode 100644 index 0000000000000..90189d1658964 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskCompletionStatus.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum TaskCompletionStatus. + */ +@JsonAdapter(TaskCompletionStatus.Adapter.class) +public enum TaskCompletionStatus { + + COMPLETED("Completed"), + + FAILED("Failed"), + + CANCELLED("Cancelled"), + + ABORTED("Aborted"); + + private String value; + + TaskCompletionStatus(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskCompletionStatus fromValue(String value) { + for (TaskCompletionStatus b : TaskCompletionStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskCompletionStatus enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskCompletionStatus read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskCompletionStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskCompletionStatus.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskInfo.java new file mode 100644 index 0000000000000..ae37650a2ca82 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskInfo.java @@ -0,0 +1,508 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.TaskResult; +import org.openapitools.client.model.TaskState; +import org.openapitools.client.model.TaskTriggerInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_STATE = "State"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private TaskState state; + + public static final String SERIALIZED_NAME_CURRENT_PROGRESS_PERCENTAGE = "CurrentProgressPercentage"; + @SerializedName(SERIALIZED_NAME_CURRENT_PROGRESS_PERCENTAGE) + @javax.annotation.Nullable + private Double currentProgressPercentage; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_LAST_EXECUTION_RESULT = "LastExecutionResult"; + @SerializedName(SERIALIZED_NAME_LAST_EXECUTION_RESULT) + @javax.annotation.Nullable + private TaskResult lastExecutionResult; + + public static final String SERIALIZED_NAME_TRIGGERS = "Triggers"; + @SerializedName(SERIALIZED_NAME_TRIGGERS) + @javax.annotation.Nullable + private List triggers; + + public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_CATEGORY = "Category"; + @SerializedName(SERIALIZED_NAME_CATEGORY) + @javax.annotation.Nullable + private String category; + + public static final String SERIALIZED_NAME_IS_HIDDEN = "IsHidden"; + @SerializedName(SERIALIZED_NAME_IS_HIDDEN) + @javax.annotation.Nullable + private Boolean isHidden; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public TaskInfo() { + } + + public TaskInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TaskInfo state(@javax.annotation.Nullable TaskState state) { + this.state = state; + return this; + } + + /** + * Gets or sets the state of the task. + * @return state + */ + @javax.annotation.Nullable + public TaskState getState() { + return state; + } + + public void setState(@javax.annotation.Nullable TaskState state) { + this.state = state; + } + + + public TaskInfo currentProgressPercentage(@javax.annotation.Nullable Double currentProgressPercentage) { + this.currentProgressPercentage = currentProgressPercentage; + return this; + } + + /** + * Gets or sets the progress. + * @return currentProgressPercentage + */ + @javax.annotation.Nullable + public Double getCurrentProgressPercentage() { + return currentProgressPercentage; + } + + public void setCurrentProgressPercentage(@javax.annotation.Nullable Double currentProgressPercentage) { + this.currentProgressPercentage = currentProgressPercentage; + } + + + public TaskInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TaskInfo lastExecutionResult(@javax.annotation.Nullable TaskResult lastExecutionResult) { + this.lastExecutionResult = lastExecutionResult; + return this; + } + + /** + * Gets or sets the last execution result. + * @return lastExecutionResult + */ + @javax.annotation.Nullable + public TaskResult getLastExecutionResult() { + return lastExecutionResult; + } + + public void setLastExecutionResult(@javax.annotation.Nullable TaskResult lastExecutionResult) { + this.lastExecutionResult = lastExecutionResult; + } + + + public TaskInfo triggers(@javax.annotation.Nullable List triggers) { + this.triggers = triggers; + return this; + } + + public TaskInfo addTriggersItem(TaskTriggerInfo triggersItem) { + if (this.triggers == null) { + this.triggers = new ArrayList<>(); + } + this.triggers.add(triggersItem); + return this; + } + + /** + * Gets or sets the triggers. + * @return triggers + */ + @javax.annotation.Nullable + public List getTriggers() { + return triggers; + } + + public void setTriggers(@javax.annotation.Nullable List triggers) { + this.triggers = triggers; + } + + + public TaskInfo description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Gets or sets the description. + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public TaskInfo category(@javax.annotation.Nullable String category) { + this.category = category; + return this; + } + + /** + * Gets or sets the category. + * @return category + */ + @javax.annotation.Nullable + public String getCategory() { + return category; + } + + public void setCategory(@javax.annotation.Nullable String category) { + this.category = category; + } + + + public TaskInfo isHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is hidden. + * @return isHidden + */ + @javax.annotation.Nullable + public Boolean getIsHidden() { + return isHidden; + } + + public void setIsHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + } + + + public TaskInfo key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskInfo taskInfo = (TaskInfo) o; + return Objects.equals(this.name, taskInfo.name) && + Objects.equals(this.state, taskInfo.state) && + Objects.equals(this.currentProgressPercentage, taskInfo.currentProgressPercentage) && + Objects.equals(this.id, taskInfo.id) && + Objects.equals(this.lastExecutionResult, taskInfo.lastExecutionResult) && + Objects.equals(this.triggers, taskInfo.triggers) && + Objects.equals(this.description, taskInfo.description) && + Objects.equals(this.category, taskInfo.category) && + Objects.equals(this.isHidden, taskInfo.isHidden) && + Objects.equals(this.key, taskInfo.key); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, state, currentProgressPercentage, id, lastExecutionResult, triggers, description, category, isHidden, key); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" currentProgressPercentage: ").append(toIndentedString(currentProgressPercentage)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" lastExecutionResult: ").append(toIndentedString(lastExecutionResult)).append("\n"); + sb.append(" triggers: ").append(toIndentedString(triggers)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" isHidden: ").append(toIndentedString(isHidden)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("State"); + openapiFields.add("CurrentProgressPercentage"); + openapiFields.add("Id"); + openapiFields.add("LastExecutionResult"); + openapiFields.add("Triggers"); + openapiFields.add("Description"); + openapiFields.add("Category"); + openapiFields.add("IsHidden"); + openapiFields.add("Key"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskInfo is not found in the empty JSON string", TaskInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // validate the optional field `State` + if (jsonObj.get("State") != null && !jsonObj.get("State").isJsonNull()) { + TaskState.validateJsonElement(jsonObj.get("State")); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `LastExecutionResult` + if (jsonObj.get("LastExecutionResult") != null && !jsonObj.get("LastExecutionResult").isJsonNull()) { + TaskResult.validateJsonElement(jsonObj.get("LastExecutionResult")); + } + if (jsonObj.get("Triggers") != null && !jsonObj.get("Triggers").isJsonNull()) { + JsonArray jsonArraytriggers = jsonObj.getAsJsonArray("Triggers"); + if (jsonArraytriggers != null) { + // ensure the json data is an array + if (!jsonObj.get("Triggers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Triggers` to be an array in the JSON string but got `%s`", jsonObj.get("Triggers").toString())); + } + + // validate the optional field `Triggers` (array) + for (int i = 0; i < jsonArraytriggers.size(); i++) { + TaskTriggerInfo.validateJsonElement(jsonArraytriggers.get(i)); + }; + } + } + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Description").toString())); + } + if ((jsonObj.get("Category") != null && !jsonObj.get("Category").isJsonNull()) && !jsonObj.get("Category").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Category").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskInfo + * @throws IOException if the JSON string is invalid with respect to TaskInfo + */ + public static TaskInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskInfo.class); + } + + /** + * Convert an instance of TaskInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskResult.java new file mode 100644 index 0000000000000..670f8513433a1 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskResult.java @@ -0,0 +1,425 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.client.model.TaskCompletionStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskExecutionInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskResult { + public static final String SERIALIZED_NAME_START_TIME_UTC = "StartTimeUtc"; + @SerializedName(SERIALIZED_NAME_START_TIME_UTC) + @javax.annotation.Nullable + private OffsetDateTime startTimeUtc; + + public static final String SERIALIZED_NAME_END_TIME_UTC = "EndTimeUtc"; + @SerializedName(SERIALIZED_NAME_END_TIME_UTC) + @javax.annotation.Nullable + private OffsetDateTime endTimeUtc; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private TaskCompletionStatus status; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_ERROR_MESSAGE = "ErrorMessage"; + @SerializedName(SERIALIZED_NAME_ERROR_MESSAGE) + @javax.annotation.Nullable + private String errorMessage; + + public static final String SERIALIZED_NAME_LONG_ERROR_MESSAGE = "LongErrorMessage"; + @SerializedName(SERIALIZED_NAME_LONG_ERROR_MESSAGE) + @javax.annotation.Nullable + private String longErrorMessage; + + public TaskResult() { + } + + public TaskResult startTimeUtc(@javax.annotation.Nullable OffsetDateTime startTimeUtc) { + this.startTimeUtc = startTimeUtc; + return this; + } + + /** + * Gets or sets the start time UTC. + * @return startTimeUtc + */ + @javax.annotation.Nullable + public OffsetDateTime getStartTimeUtc() { + return startTimeUtc; + } + + public void setStartTimeUtc(@javax.annotation.Nullable OffsetDateTime startTimeUtc) { + this.startTimeUtc = startTimeUtc; + } + + + public TaskResult endTimeUtc(@javax.annotation.Nullable OffsetDateTime endTimeUtc) { + this.endTimeUtc = endTimeUtc; + return this; + } + + /** + * Gets or sets the end time UTC. + * @return endTimeUtc + */ + @javax.annotation.Nullable + public OffsetDateTime getEndTimeUtc() { + return endTimeUtc; + } + + public void setEndTimeUtc(@javax.annotation.Nullable OffsetDateTime endTimeUtc) { + this.endTimeUtc = endTimeUtc; + } + + + public TaskResult status(@javax.annotation.Nullable TaskCompletionStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public TaskCompletionStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable TaskCompletionStatus status) { + this.status = status; + } + + + public TaskResult name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TaskResult key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public TaskResult id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TaskResult errorMessage(@javax.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + return this; + } + + /** + * Gets or sets the error message. + * @return errorMessage + */ + @javax.annotation.Nullable + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(@javax.annotation.Nullable String errorMessage) { + this.errorMessage = errorMessage; + } + + + public TaskResult longErrorMessage(@javax.annotation.Nullable String longErrorMessage) { + this.longErrorMessage = longErrorMessage; + return this; + } + + /** + * Gets or sets the long error message. + * @return longErrorMessage + */ + @javax.annotation.Nullable + public String getLongErrorMessage() { + return longErrorMessage; + } + + public void setLongErrorMessage(@javax.annotation.Nullable String longErrorMessage) { + this.longErrorMessage = longErrorMessage; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskResult taskResult = (TaskResult) o; + return Objects.equals(this.startTimeUtc, taskResult.startTimeUtc) && + Objects.equals(this.endTimeUtc, taskResult.endTimeUtc) && + Objects.equals(this.status, taskResult.status) && + Objects.equals(this.name, taskResult.name) && + Objects.equals(this.key, taskResult.key) && + Objects.equals(this.id, taskResult.id) && + Objects.equals(this.errorMessage, taskResult.errorMessage) && + Objects.equals(this.longErrorMessage, taskResult.longErrorMessage); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(startTimeUtc, endTimeUtc, status, name, key, id, errorMessage, longErrorMessage); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskResult {\n"); + sb.append(" startTimeUtc: ").append(toIndentedString(startTimeUtc)).append("\n"); + sb.append(" endTimeUtc: ").append(toIndentedString(endTimeUtc)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n"); + sb.append(" longErrorMessage: ").append(toIndentedString(longErrorMessage)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("StartTimeUtc"); + openapiFields.add("EndTimeUtc"); + openapiFields.add("Status"); + openapiFields.add("Name"); + openapiFields.add("Key"); + openapiFields.add("Id"); + openapiFields.add("ErrorMessage"); + openapiFields.add("LongErrorMessage"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskResult is not found in the empty JSON string", TaskResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + TaskCompletionStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ErrorMessage") != null && !jsonObj.get("ErrorMessage").isJsonNull()) && !jsonObj.get("ErrorMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ErrorMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ErrorMessage").toString())); + } + if ((jsonObj.get("LongErrorMessage") != null && !jsonObj.get("LongErrorMessage").isJsonNull()) && !jsonObj.get("LongErrorMessage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `LongErrorMessage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("LongErrorMessage").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskResult + * @throws IOException if the JSON string is invalid with respect to TaskResult + */ + public static TaskResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskResult.class); + } + + /** + * Convert an instance of TaskResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskState.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskState.java new file mode 100644 index 0000000000000..bbce5656f4b6b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskState.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum TaskState. + */ +@JsonAdapter(TaskState.Adapter.class) +public enum TaskState { + + IDLE("Idle"), + + CANCELLING("Cancelling"), + + RUNNING("Running"); + + private String value; + + TaskState(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskState fromValue(String value) { + for (TaskState b : TaskState.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskState enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskState read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskState.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskState.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java new file mode 100644 index 0000000000000..f9fee07983487 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TaskTriggerInfo.java @@ -0,0 +1,331 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.DayOfWeek; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class TaskTriggerInfo. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TaskTriggerInfo { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_TIME_OF_DAY_TICKS = "TimeOfDayTicks"; + @SerializedName(SERIALIZED_NAME_TIME_OF_DAY_TICKS) + @javax.annotation.Nullable + private Long timeOfDayTicks; + + public static final String SERIALIZED_NAME_INTERVAL_TICKS = "IntervalTicks"; + @SerializedName(SERIALIZED_NAME_INTERVAL_TICKS) + @javax.annotation.Nullable + private Long intervalTicks; + + public static final String SERIALIZED_NAME_DAY_OF_WEEK = "DayOfWeek"; + @SerializedName(SERIALIZED_NAME_DAY_OF_WEEK) + @javax.annotation.Nullable + private DayOfWeek dayOfWeek; + + public static final String SERIALIZED_NAME_MAX_RUNTIME_TICKS = "MaxRuntimeTicks"; + @SerializedName(SERIALIZED_NAME_MAX_RUNTIME_TICKS) + @javax.annotation.Nullable + private Long maxRuntimeTicks; + + public TaskTriggerInfo() { + } + + public TaskTriggerInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Gets or sets the type. + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TaskTriggerInfo timeOfDayTicks(@javax.annotation.Nullable Long timeOfDayTicks) { + this.timeOfDayTicks = timeOfDayTicks; + return this; + } + + /** + * Gets or sets the time of day. + * @return timeOfDayTicks + */ + @javax.annotation.Nullable + public Long getTimeOfDayTicks() { + return timeOfDayTicks; + } + + public void setTimeOfDayTicks(@javax.annotation.Nullable Long timeOfDayTicks) { + this.timeOfDayTicks = timeOfDayTicks; + } + + + public TaskTriggerInfo intervalTicks(@javax.annotation.Nullable Long intervalTicks) { + this.intervalTicks = intervalTicks; + return this; + } + + /** + * Gets or sets the interval. + * @return intervalTicks + */ + @javax.annotation.Nullable + public Long getIntervalTicks() { + return intervalTicks; + } + + public void setIntervalTicks(@javax.annotation.Nullable Long intervalTicks) { + this.intervalTicks = intervalTicks; + } + + + public TaskTriggerInfo dayOfWeek(@javax.annotation.Nullable DayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + return this; + } + + /** + * Gets or sets the day of week. + * @return dayOfWeek + */ + @javax.annotation.Nullable + public DayOfWeek getDayOfWeek() { + return dayOfWeek; + } + + public void setDayOfWeek(@javax.annotation.Nullable DayOfWeek dayOfWeek) { + this.dayOfWeek = dayOfWeek; + } + + + public TaskTriggerInfo maxRuntimeTicks(@javax.annotation.Nullable Long maxRuntimeTicks) { + this.maxRuntimeTicks = maxRuntimeTicks; + return this; + } + + /** + * Gets or sets the maximum runtime ticks. + * @return maxRuntimeTicks + */ + @javax.annotation.Nullable + public Long getMaxRuntimeTicks() { + return maxRuntimeTicks; + } + + public void setMaxRuntimeTicks(@javax.annotation.Nullable Long maxRuntimeTicks) { + this.maxRuntimeTicks = maxRuntimeTicks; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskTriggerInfo taskTriggerInfo = (TaskTriggerInfo) o; + return Objects.equals(this.type, taskTriggerInfo.type) && + Objects.equals(this.timeOfDayTicks, taskTriggerInfo.timeOfDayTicks) && + Objects.equals(this.intervalTicks, taskTriggerInfo.intervalTicks) && + Objects.equals(this.dayOfWeek, taskTriggerInfo.dayOfWeek) && + Objects.equals(this.maxRuntimeTicks, taskTriggerInfo.maxRuntimeTicks); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, timeOfDayTicks, intervalTicks, dayOfWeek, maxRuntimeTicks); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TaskTriggerInfo {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" timeOfDayTicks: ").append(toIndentedString(timeOfDayTicks)).append("\n"); + sb.append(" intervalTicks: ").append(toIndentedString(intervalTicks)).append("\n"); + sb.append(" dayOfWeek: ").append(toIndentedString(dayOfWeek)).append("\n"); + sb.append(" maxRuntimeTicks: ").append(toIndentedString(maxRuntimeTicks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("TimeOfDayTicks"); + openapiFields.add("IntervalTicks"); + openapiFields.add("DayOfWeek"); + openapiFields.add("MaxRuntimeTicks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TaskTriggerInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TaskTriggerInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TaskTriggerInfo is not found in the empty JSON string", TaskTriggerInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TaskTriggerInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TaskTriggerInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + // validate the optional field `DayOfWeek` + if (jsonObj.get("DayOfWeek") != null && !jsonObj.get("DayOfWeek").isJsonNull()) { + DayOfWeek.validateJsonElement(jsonObj.get("DayOfWeek")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TaskTriggerInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TaskTriggerInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TaskTriggerInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TaskTriggerInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TaskTriggerInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TaskTriggerInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TaskTriggerInfo + * @throws IOException if the JSON string is invalid with respect to TaskTriggerInfo + */ + public static TaskTriggerInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TaskTriggerInfo.class); + } + + /** + * Convert an instance of TaskTriggerInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ThemeMediaResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ThemeMediaResult.java new file mode 100644 index 0000000000000..73ab3c69f078f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ThemeMediaResult.java @@ -0,0 +1,325 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class ThemeMediaResult. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ThemeMediaResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public static final String SERIALIZED_NAME_OWNER_ID = "OwnerId"; + @SerializedName(SERIALIZED_NAME_OWNER_ID) + @javax.annotation.Nullable + private UUID ownerId; + + public ThemeMediaResult() { + } + + public ThemeMediaResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public ThemeMediaResult addItemsItem(BaseItemDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public ThemeMediaResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public ThemeMediaResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + public ThemeMediaResult ownerId(@javax.annotation.Nullable UUID ownerId) { + this.ownerId = ownerId; + return this; + } + + /** + * Gets or sets the owner id. + * @return ownerId + */ + @javax.annotation.Nullable + public UUID getOwnerId() { + return ownerId; + } + + public void setOwnerId(@javax.annotation.Nullable UUID ownerId) { + this.ownerId = ownerId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ThemeMediaResult themeMediaResult = (ThemeMediaResult) o; + return Objects.equals(this.items, themeMediaResult.items) && + Objects.equals(this.totalRecordCount, themeMediaResult.totalRecordCount) && + Objects.equals(this.startIndex, themeMediaResult.startIndex) && + Objects.equals(this.ownerId, themeMediaResult.ownerId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex, ownerId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ThemeMediaResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append(" ownerId: ").append(toIndentedString(ownerId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + openapiFields.add("OwnerId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ThemeMediaResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ThemeMediaResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ThemeMediaResult is not found in the empty JSON string", ThemeMediaResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ThemeMediaResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ThemeMediaResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + BaseItemDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + if ((jsonObj.get("OwnerId") != null && !jsonObj.get("OwnerId").isJsonNull()) && !jsonObj.get("OwnerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OwnerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OwnerId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ThemeMediaResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ThemeMediaResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ThemeMediaResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ThemeMediaResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ThemeMediaResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ThemeMediaResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ThemeMediaResult + * @throws IOException if the JSON string is invalid with respect to ThemeMediaResult + */ + public static ThemeMediaResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ThemeMediaResult.class); + } + + /** + * Convert an instance of ThemeMediaResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerEventInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerEventInfo.java new file mode 100644 index 0000000000000..9d19ac4bd7da0 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerEventInfo.java @@ -0,0 +1,249 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TimerEventInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerEventInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private UUID programId; + + public TimerEventInfo() { + } + + public TimerEventInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TimerEventInfo programId(@javax.annotation.Nullable UUID programId) { + this.programId = programId; + return this; + } + + /** + * Get programId + * @return programId + */ + @javax.annotation.Nullable + public UUID getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable UUID programId) { + this.programId = programId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerEventInfo timerEventInfo = (TimerEventInfo) o; + return Objects.equals(this.id, timerEventInfo.id) && + Objects.equals(this.programId, timerEventInfo.programId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, programId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerEventInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("ProgramId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerEventInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerEventInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerEventInfo is not found in the empty JSON string", TimerEventInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerEventInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerEventInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerEventInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerEventInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerEventInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerEventInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerEventInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerEventInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerEventInfo + * @throws IOException if the JSON string is invalid with respect to TimerEventInfo + */ + public static TimerEventInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerEventInfo.class); + } + + /** + * Convert an instance of TimerEventInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDto.java new file mode 100644 index 0000000000000..5cb1780432d0f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDto.java @@ -0,0 +1,1023 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.BaseItemDto; +import org.openapitools.client.model.KeepUntil; +import org.openapitools.client.model.RecordingStatus; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TimerInfoDto + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerInfoDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "ExternalId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @javax.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_CHANNEL_ID = "ChannelId"; + @SerializedName(SERIALIZED_NAME_CHANNEL_ID) + @javax.annotation.Nullable + private UUID channelId; + + public static final String SERIALIZED_NAME_EXTERNAL_CHANNEL_ID = "ExternalChannelId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_CHANNEL_ID) + @javax.annotation.Nullable + private String externalChannelId; + + public static final String SERIALIZED_NAME_CHANNEL_NAME = "ChannelName"; + @SerializedName(SERIALIZED_NAME_CHANNEL_NAME) + @javax.annotation.Nullable + private String channelName; + + public static final String SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG = "ChannelPrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_CHANNEL_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String channelPrimaryImageTag; + + public static final String SERIALIZED_NAME_PROGRAM_ID = "ProgramId"; + @SerializedName(SERIALIZED_NAME_PROGRAM_ID) + @javax.annotation.Nullable + private String programId; + + public static final String SERIALIZED_NAME_EXTERNAL_PROGRAM_ID = "ExternalProgramId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_PROGRAM_ID) + @javax.annotation.Nullable + private String externalProgramId; + + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_OVERVIEW = "Overview"; + @SerializedName(SERIALIZED_NAME_OVERVIEW) + @javax.annotation.Nullable + private String overview; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + @javax.annotation.Nullable + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_END_DATE = "EndDate"; + @SerializedName(SERIALIZED_NAME_END_DATE) + @javax.annotation.Nullable + private OffsetDateTime endDate; + + public static final String SERIALIZED_NAME_SERVICE_NAME = "ServiceName"; + @SerializedName(SERIALIZED_NAME_SERVICE_NAME) + @javax.annotation.Nullable + private String serviceName; + + public static final String SERIALIZED_NAME_PRIORITY = "Priority"; + @SerializedName(SERIALIZED_NAME_PRIORITY) + @javax.annotation.Nullable + private Integer priority; + + public static final String SERIALIZED_NAME_PRE_PADDING_SECONDS = "PrePaddingSeconds"; + @SerializedName(SERIALIZED_NAME_PRE_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer prePaddingSeconds; + + public static final String SERIALIZED_NAME_POST_PADDING_SECONDS = "PostPaddingSeconds"; + @SerializedName(SERIALIZED_NAME_POST_PADDING_SECONDS) + @javax.annotation.Nullable + private Integer postPaddingSeconds; + + public static final String SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED = "IsPrePaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_PRE_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPrePaddingRequired; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID = "ParentBackdropItemId"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_ITEM_ID) + @javax.annotation.Nullable + private String parentBackdropItemId; + + public static final String SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS = "ParentBackdropImageTags"; + @SerializedName(SERIALIZED_NAME_PARENT_BACKDROP_IMAGE_TAGS) + @javax.annotation.Nullable + private List parentBackdropImageTags; + + public static final String SERIALIZED_NAME_IS_POST_PADDING_REQUIRED = "IsPostPaddingRequired"; + @SerializedName(SERIALIZED_NAME_IS_POST_PADDING_REQUIRED) + @javax.annotation.Nullable + private Boolean isPostPaddingRequired; + + public static final String SERIALIZED_NAME_KEEP_UNTIL = "KeepUntil"; + @SerializedName(SERIALIZED_NAME_KEEP_UNTIL) + @javax.annotation.Nullable + private KeepUntil keepUntil; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private RecordingStatus status; + + public static final String SERIALIZED_NAME_SERIES_TIMER_ID = "SeriesTimerId"; + @SerializedName(SERIALIZED_NAME_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String seriesTimerId; + + public static final String SERIALIZED_NAME_EXTERNAL_SERIES_TIMER_ID = "ExternalSeriesTimerId"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_SERIES_TIMER_ID) + @javax.annotation.Nullable + private String externalSeriesTimerId; + + public static final String SERIALIZED_NAME_RUN_TIME_TICKS = "RunTimeTicks"; + @SerializedName(SERIALIZED_NAME_RUN_TIME_TICKS) + @javax.annotation.Nullable + private Long runTimeTicks; + + public static final String SERIALIZED_NAME_PROGRAM_INFO = "ProgramInfo"; + @SerializedName(SERIALIZED_NAME_PROGRAM_INFO) + @javax.annotation.Nullable + private BaseItemDto programInfo; + + public TimerInfoDto() { + } + + public TimerInfoDto id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Gets or sets the Id of the recording. + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TimerInfoDto type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TimerInfoDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public TimerInfoDto externalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Gets or sets the external identifier. + * @return externalId + */ + @javax.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@javax.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public TimerInfoDto channelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + return this; + } + + /** + * Gets or sets the channel id of the recording. + * @return channelId + */ + @javax.annotation.Nullable + public UUID getChannelId() { + return channelId; + } + + public void setChannelId(@javax.annotation.Nullable UUID channelId) { + this.channelId = channelId; + } + + + public TimerInfoDto externalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + return this; + } + + /** + * Gets or sets the external channel identifier. + * @return externalChannelId + */ + @javax.annotation.Nullable + public String getExternalChannelId() { + return externalChannelId; + } + + public void setExternalChannelId(@javax.annotation.Nullable String externalChannelId) { + this.externalChannelId = externalChannelId; + } + + + public TimerInfoDto channelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + return this; + } + + /** + * Gets or sets the channel name of the recording. + * @return channelName + */ + @javax.annotation.Nullable + public String getChannelName() { + return channelName; + } + + public void setChannelName(@javax.annotation.Nullable String channelName) { + this.channelName = channelName; + } + + + public TimerInfoDto channelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + return this; + } + + /** + * Get channelPrimaryImageTag + * @return channelPrimaryImageTag + */ + @javax.annotation.Nullable + public String getChannelPrimaryImageTag() { + return channelPrimaryImageTag; + } + + public void setChannelPrimaryImageTag(@javax.annotation.Nullable String channelPrimaryImageTag) { + this.channelPrimaryImageTag = channelPrimaryImageTag; + } + + + public TimerInfoDto programId(@javax.annotation.Nullable String programId) { + this.programId = programId; + return this; + } + + /** + * Gets or sets the program identifier. + * @return programId + */ + @javax.annotation.Nullable + public String getProgramId() { + return programId; + } + + public void setProgramId(@javax.annotation.Nullable String programId) { + this.programId = programId; + } + + + public TimerInfoDto externalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + return this; + } + + /** + * Gets or sets the external program identifier. + * @return externalProgramId + */ + @javax.annotation.Nullable + public String getExternalProgramId() { + return externalProgramId; + } + + public void setExternalProgramId(@javax.annotation.Nullable String externalProgramId) { + this.externalProgramId = externalProgramId; + } + + + public TimerInfoDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the recording. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TimerInfoDto overview(@javax.annotation.Nullable String overview) { + this.overview = overview; + return this; + } + + /** + * Gets or sets the description of the recording. + * @return overview + */ + @javax.annotation.Nullable + public String getOverview() { + return overview; + } + + public void setOverview(@javax.annotation.Nullable String overview) { + this.overview = overview; + } + + + public TimerInfoDto startDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Gets or sets the start date of the recording, in UTC. + * @return startDate + */ + @javax.annotation.Nullable + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(@javax.annotation.Nullable OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public TimerInfoDto endDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + return this; + } + + /** + * Gets or sets the end date of the recording, in UTC. + * @return endDate + */ + @javax.annotation.Nullable + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(@javax.annotation.Nullable OffsetDateTime endDate) { + this.endDate = endDate; + } + + + public TimerInfoDto serviceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + return this; + } + + /** + * Gets or sets the name of the service. + * @return serviceName + */ + @javax.annotation.Nullable + public String getServiceName() { + return serviceName; + } + + public void setServiceName(@javax.annotation.Nullable String serviceName) { + this.serviceName = serviceName; + } + + + public TimerInfoDto priority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + return this; + } + + /** + * Gets or sets the priority. + * @return priority + */ + @javax.annotation.Nullable + public Integer getPriority() { + return priority; + } + + public void setPriority(@javax.annotation.Nullable Integer priority) { + this.priority = priority; + } + + + public TimerInfoDto prePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + return this; + } + + /** + * Gets or sets the pre padding seconds. + * @return prePaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPrePaddingSeconds() { + return prePaddingSeconds; + } + + public void setPrePaddingSeconds(@javax.annotation.Nullable Integer prePaddingSeconds) { + this.prePaddingSeconds = prePaddingSeconds; + } + + + public TimerInfoDto postPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + return this; + } + + /** + * Gets or sets the post padding seconds. + * @return postPaddingSeconds + */ + @javax.annotation.Nullable + public Integer getPostPaddingSeconds() { + return postPaddingSeconds; + } + + public void setPostPaddingSeconds(@javax.annotation.Nullable Integer postPaddingSeconds) { + this.postPaddingSeconds = postPaddingSeconds; + } + + + public TimerInfoDto isPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is pre padding required. + * @return isPrePaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPrePaddingRequired() { + return isPrePaddingRequired; + } + + public void setIsPrePaddingRequired(@javax.annotation.Nullable Boolean isPrePaddingRequired) { + this.isPrePaddingRequired = isPrePaddingRequired; + } + + + public TimerInfoDto parentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + return this; + } + + /** + * Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + * @return parentBackdropItemId + */ + @javax.annotation.Nullable + public String getParentBackdropItemId() { + return parentBackdropItemId; + } + + public void setParentBackdropItemId(@javax.annotation.Nullable String parentBackdropItemId) { + this.parentBackdropItemId = parentBackdropItemId; + } + + + public TimerInfoDto parentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + return this; + } + + public TimerInfoDto addParentBackdropImageTagsItem(String parentBackdropImageTagsItem) { + if (this.parentBackdropImageTags == null) { + this.parentBackdropImageTags = new ArrayList<>(); + } + this.parentBackdropImageTags.add(parentBackdropImageTagsItem); + return this; + } + + /** + * Gets or sets the parent backdrop image tags. + * @return parentBackdropImageTags + */ + @javax.annotation.Nullable + public List getParentBackdropImageTags() { + return parentBackdropImageTags; + } + + public void setParentBackdropImageTags(@javax.annotation.Nullable List parentBackdropImageTags) { + this.parentBackdropImageTags = parentBackdropImageTags; + } + + + public TimerInfoDto isPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is post padding required. + * @return isPostPaddingRequired + */ + @javax.annotation.Nullable + public Boolean getIsPostPaddingRequired() { + return isPostPaddingRequired; + } + + public void setIsPostPaddingRequired(@javax.annotation.Nullable Boolean isPostPaddingRequired) { + this.isPostPaddingRequired = isPostPaddingRequired; + } + + + public TimerInfoDto keepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + return this; + } + + /** + * Get keepUntil + * @return keepUntil + */ + @javax.annotation.Nullable + public KeepUntil getKeepUntil() { + return keepUntil; + } + + public void setKeepUntil(@javax.annotation.Nullable KeepUntil keepUntil) { + this.keepUntil = keepUntil; + } + + + public TimerInfoDto status(@javax.annotation.Nullable RecordingStatus status) { + this.status = status; + return this; + } + + /** + * Gets or sets the status. + * @return status + */ + @javax.annotation.Nullable + public RecordingStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable RecordingStatus status) { + this.status = status; + } + + + public TimerInfoDto seriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + return this; + } + + /** + * Gets or sets the series timer identifier. + * @return seriesTimerId + */ + @javax.annotation.Nullable + public String getSeriesTimerId() { + return seriesTimerId; + } + + public void setSeriesTimerId(@javax.annotation.Nullable String seriesTimerId) { + this.seriesTimerId = seriesTimerId; + } + + + public TimerInfoDto externalSeriesTimerId(@javax.annotation.Nullable String externalSeriesTimerId) { + this.externalSeriesTimerId = externalSeriesTimerId; + return this; + } + + /** + * Gets or sets the external series timer identifier. + * @return externalSeriesTimerId + */ + @javax.annotation.Nullable + public String getExternalSeriesTimerId() { + return externalSeriesTimerId; + } + + public void setExternalSeriesTimerId(@javax.annotation.Nullable String externalSeriesTimerId) { + this.externalSeriesTimerId = externalSeriesTimerId; + } + + + public TimerInfoDto runTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + return this; + } + + /** + * Gets or sets the run time ticks. + * @return runTimeTicks + */ + @javax.annotation.Nullable + public Long getRunTimeTicks() { + return runTimeTicks; + } + + public void setRunTimeTicks(@javax.annotation.Nullable Long runTimeTicks) { + this.runTimeTicks = runTimeTicks; + } + + + public TimerInfoDto programInfo(@javax.annotation.Nullable BaseItemDto programInfo) { + this.programInfo = programInfo; + return this; + } + + /** + * Gets or sets the program information. + * @return programInfo + */ + @javax.annotation.Nullable + public BaseItemDto getProgramInfo() { + return programInfo; + } + + public void setProgramInfo(@javax.annotation.Nullable BaseItemDto programInfo) { + this.programInfo = programInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerInfoDto timerInfoDto = (TimerInfoDto) o; + return Objects.equals(this.id, timerInfoDto.id) && + Objects.equals(this.type, timerInfoDto.type) && + Objects.equals(this.serverId, timerInfoDto.serverId) && + Objects.equals(this.externalId, timerInfoDto.externalId) && + Objects.equals(this.channelId, timerInfoDto.channelId) && + Objects.equals(this.externalChannelId, timerInfoDto.externalChannelId) && + Objects.equals(this.channelName, timerInfoDto.channelName) && + Objects.equals(this.channelPrimaryImageTag, timerInfoDto.channelPrimaryImageTag) && + Objects.equals(this.programId, timerInfoDto.programId) && + Objects.equals(this.externalProgramId, timerInfoDto.externalProgramId) && + Objects.equals(this.name, timerInfoDto.name) && + Objects.equals(this.overview, timerInfoDto.overview) && + Objects.equals(this.startDate, timerInfoDto.startDate) && + Objects.equals(this.endDate, timerInfoDto.endDate) && + Objects.equals(this.serviceName, timerInfoDto.serviceName) && + Objects.equals(this.priority, timerInfoDto.priority) && + Objects.equals(this.prePaddingSeconds, timerInfoDto.prePaddingSeconds) && + Objects.equals(this.postPaddingSeconds, timerInfoDto.postPaddingSeconds) && + Objects.equals(this.isPrePaddingRequired, timerInfoDto.isPrePaddingRequired) && + Objects.equals(this.parentBackdropItemId, timerInfoDto.parentBackdropItemId) && + Objects.equals(this.parentBackdropImageTags, timerInfoDto.parentBackdropImageTags) && + Objects.equals(this.isPostPaddingRequired, timerInfoDto.isPostPaddingRequired) && + Objects.equals(this.keepUntil, timerInfoDto.keepUntil) && + Objects.equals(this.status, timerInfoDto.status) && + Objects.equals(this.seriesTimerId, timerInfoDto.seriesTimerId) && + Objects.equals(this.externalSeriesTimerId, timerInfoDto.externalSeriesTimerId) && + Objects.equals(this.runTimeTicks, timerInfoDto.runTimeTicks) && + Objects.equals(this.programInfo, timerInfoDto.programInfo); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, serverId, externalId, channelId, externalChannelId, channelName, channelPrimaryImageTag, programId, externalProgramId, name, overview, startDate, endDate, serviceName, priority, prePaddingSeconds, postPaddingSeconds, isPrePaddingRequired, parentBackdropItemId, parentBackdropImageTags, isPostPaddingRequired, keepUntil, status, seriesTimerId, externalSeriesTimerId, runTimeTicks, programInfo); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerInfoDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" channelId: ").append(toIndentedString(channelId)).append("\n"); + sb.append(" externalChannelId: ").append(toIndentedString(externalChannelId)).append("\n"); + sb.append(" channelName: ").append(toIndentedString(channelName)).append("\n"); + sb.append(" channelPrimaryImageTag: ").append(toIndentedString(channelPrimaryImageTag)).append("\n"); + sb.append(" programId: ").append(toIndentedString(programId)).append("\n"); + sb.append(" externalProgramId: ").append(toIndentedString(externalProgramId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" overview: ").append(toIndentedString(overview)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); + sb.append(" serviceName: ").append(toIndentedString(serviceName)).append("\n"); + sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); + sb.append(" prePaddingSeconds: ").append(toIndentedString(prePaddingSeconds)).append("\n"); + sb.append(" postPaddingSeconds: ").append(toIndentedString(postPaddingSeconds)).append("\n"); + sb.append(" isPrePaddingRequired: ").append(toIndentedString(isPrePaddingRequired)).append("\n"); + sb.append(" parentBackdropItemId: ").append(toIndentedString(parentBackdropItemId)).append("\n"); + sb.append(" parentBackdropImageTags: ").append(toIndentedString(parentBackdropImageTags)).append("\n"); + sb.append(" isPostPaddingRequired: ").append(toIndentedString(isPostPaddingRequired)).append("\n"); + sb.append(" keepUntil: ").append(toIndentedString(keepUntil)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" seriesTimerId: ").append(toIndentedString(seriesTimerId)).append("\n"); + sb.append(" externalSeriesTimerId: ").append(toIndentedString(externalSeriesTimerId)).append("\n"); + sb.append(" runTimeTicks: ").append(toIndentedString(runTimeTicks)).append("\n"); + sb.append(" programInfo: ").append(toIndentedString(programInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Type"); + openapiFields.add("ServerId"); + openapiFields.add("ExternalId"); + openapiFields.add("ChannelId"); + openapiFields.add("ExternalChannelId"); + openapiFields.add("ChannelName"); + openapiFields.add("ChannelPrimaryImageTag"); + openapiFields.add("ProgramId"); + openapiFields.add("ExternalProgramId"); + openapiFields.add("Name"); + openapiFields.add("Overview"); + openapiFields.add("StartDate"); + openapiFields.add("EndDate"); + openapiFields.add("ServiceName"); + openapiFields.add("Priority"); + openapiFields.add("PrePaddingSeconds"); + openapiFields.add("PostPaddingSeconds"); + openapiFields.add("IsPrePaddingRequired"); + openapiFields.add("ParentBackdropItemId"); + openapiFields.add("ParentBackdropImageTags"); + openapiFields.add("IsPostPaddingRequired"); + openapiFields.add("KeepUntil"); + openapiFields.add("Status"); + openapiFields.add("SeriesTimerId"); + openapiFields.add("ExternalSeriesTimerId"); + openapiFields.add("RunTimeTicks"); + openapiFields.add("ProgramInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerInfoDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerInfoDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerInfoDto is not found in the empty JSON string", TimerInfoDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerInfoDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerInfoDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ExternalId") != null && !jsonObj.get("ExternalId").isJsonNull()) && !jsonObj.get("ExternalId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalId").toString())); + } + if ((jsonObj.get("ChannelId") != null && !jsonObj.get("ChannelId").isJsonNull()) && !jsonObj.get("ChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelId").toString())); + } + if ((jsonObj.get("ExternalChannelId") != null && !jsonObj.get("ExternalChannelId").isJsonNull()) && !jsonObj.get("ExternalChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalChannelId").toString())); + } + if ((jsonObj.get("ChannelName") != null && !jsonObj.get("ChannelName").isJsonNull()) && !jsonObj.get("ChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelName").toString())); + } + if ((jsonObj.get("ChannelPrimaryImageTag") != null && !jsonObj.get("ChannelPrimaryImageTag").isJsonNull()) && !jsonObj.get("ChannelPrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ChannelPrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ChannelPrimaryImageTag").toString())); + } + if ((jsonObj.get("ProgramId") != null && !jsonObj.get("ProgramId").isJsonNull()) && !jsonObj.get("ProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProgramId").toString())); + } + if ((jsonObj.get("ExternalProgramId") != null && !jsonObj.get("ExternalProgramId").isJsonNull()) && !jsonObj.get("ExternalProgramId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalProgramId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalProgramId").toString())); + } + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Overview") != null && !jsonObj.get("Overview").isJsonNull()) && !jsonObj.get("Overview").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Overview` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Overview").toString())); + } + if ((jsonObj.get("ServiceName") != null && !jsonObj.get("ServiceName").isJsonNull()) && !jsonObj.get("ServiceName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServiceName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServiceName").toString())); + } + if ((jsonObj.get("ParentBackdropItemId") != null && !jsonObj.get("ParentBackdropItemId").isJsonNull()) && !jsonObj.get("ParentBackdropItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ParentBackdropItemId").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ParentBackdropImageTags") != null && !jsonObj.get("ParentBackdropImageTags").isJsonNull() && !jsonObj.get("ParentBackdropImageTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ParentBackdropImageTags` to be an array in the JSON string but got `%s`", jsonObj.get("ParentBackdropImageTags").toString())); + } + // validate the optional field `KeepUntil` + if (jsonObj.get("KeepUntil") != null && !jsonObj.get("KeepUntil").isJsonNull()) { + KeepUntil.validateJsonElement(jsonObj.get("KeepUntil")); + } + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + RecordingStatus.validateJsonElement(jsonObj.get("Status")); + } + if ((jsonObj.get("SeriesTimerId") != null && !jsonObj.get("SeriesTimerId").isJsonNull()) && !jsonObj.get("SeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SeriesTimerId").toString())); + } + if ((jsonObj.get("ExternalSeriesTimerId") != null && !jsonObj.get("ExternalSeriesTimerId").isJsonNull()) && !jsonObj.get("ExternalSeriesTimerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ExternalSeriesTimerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ExternalSeriesTimerId").toString())); + } + // validate the optional field `ProgramInfo` + if (jsonObj.get("ProgramInfo") != null && !jsonObj.get("ProgramInfo").isJsonNull()) { + BaseItemDto.validateJsonElement(jsonObj.get("ProgramInfo")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerInfoDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerInfoDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerInfoDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerInfoDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerInfoDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerInfoDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerInfoDto + * @throws IOException if the JSON string is invalid with respect to TimerInfoDto + */ + public static TimerInfoDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerInfoDto.class); + } + + /** + * Convert an instance of TimerInfoDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java new file mode 100644 index 0000000000000..49e7580003cfc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TimerInfoDtoQueryResult.java @@ -0,0 +1,294 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.TimerInfoDto; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TimerInfoDtoQueryResult + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TimerInfoDtoQueryResult { + public static final String SERIALIZED_NAME_ITEMS = "Items"; + @SerializedName(SERIALIZED_NAME_ITEMS) + @javax.annotation.Nullable + private List items; + + public static final String SERIALIZED_NAME_TOTAL_RECORD_COUNT = "TotalRecordCount"; + @SerializedName(SERIALIZED_NAME_TOTAL_RECORD_COUNT) + @javax.annotation.Nullable + private Integer totalRecordCount; + + public static final String SERIALIZED_NAME_START_INDEX = "StartIndex"; + @SerializedName(SERIALIZED_NAME_START_INDEX) + @javax.annotation.Nullable + private Integer startIndex; + + public TimerInfoDtoQueryResult() { + } + + public TimerInfoDtoQueryResult items(@javax.annotation.Nullable List items) { + this.items = items; + return this; + } + + public TimerInfoDtoQueryResult addItemsItem(TimerInfoDto itemsItem) { + if (this.items == null) { + this.items = new ArrayList<>(); + } + this.items.add(itemsItem); + return this; + } + + /** + * Gets or sets the items. + * @return items + */ + @javax.annotation.Nullable + public List getItems() { + return items; + } + + public void setItems(@javax.annotation.Nullable List items) { + this.items = items; + } + + + public TimerInfoDtoQueryResult totalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + return this; + } + + /** + * Gets or sets the total number of records available. + * @return totalRecordCount + */ + @javax.annotation.Nullable + public Integer getTotalRecordCount() { + return totalRecordCount; + } + + public void setTotalRecordCount(@javax.annotation.Nullable Integer totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + + public TimerInfoDtoQueryResult startIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + return this; + } + + /** + * Gets or sets the index of the first record in Items. + * @return startIndex + */ + @javax.annotation.Nullable + public Integer getStartIndex() { + return startIndex; + } + + public void setStartIndex(@javax.annotation.Nullable Integer startIndex) { + this.startIndex = startIndex; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimerInfoDtoQueryResult timerInfoDtoQueryResult = (TimerInfoDtoQueryResult) o; + return Objects.equals(this.items, timerInfoDtoQueryResult.items) && + Objects.equals(this.totalRecordCount, timerInfoDtoQueryResult.totalRecordCount) && + Objects.equals(this.startIndex, timerInfoDtoQueryResult.startIndex); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(items, totalRecordCount, startIndex); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimerInfoDtoQueryResult {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" totalRecordCount: ").append(toIndentedString(totalRecordCount)).append("\n"); + sb.append(" startIndex: ").append(toIndentedString(startIndex)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Items"); + openapiFields.add("TotalRecordCount"); + openapiFields.add("StartIndex"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TimerInfoDtoQueryResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TimerInfoDtoQueryResult.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimerInfoDtoQueryResult is not found in the empty JSON string", TimerInfoDtoQueryResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TimerInfoDtoQueryResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TimerInfoDtoQueryResult` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("Items") != null && !jsonObj.get("Items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("Items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("Items").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Items` to be an array in the JSON string but got `%s`", jsonObj.get("Items").toString())); + } + + // validate the optional field `Items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + TimerInfoDto.validateJsonElement(jsonArrayitems.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimerInfoDtoQueryResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimerInfoDtoQueryResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimerInfoDtoQueryResult.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimerInfoDtoQueryResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TimerInfoDtoQueryResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TimerInfoDtoQueryResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimerInfoDtoQueryResult + * @throws IOException if the JSON string is invalid with respect to TimerInfoDtoQueryResult + */ + public static TimerInfoDtoQueryResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimerInfoDtoQueryResult.class); + } + + /** + * Convert an instance of TimerInfoDtoQueryResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfo.java new file mode 100644 index 0000000000000..184838809cc94 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfo.java @@ -0,0 +1,511 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TrailerInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrailerInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_ORIGINAL_TITLE = "OriginalTitle"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_TITLE) + @javax.annotation.Nullable + private String originalTitle; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_METADATA_LANGUAGE = "MetadataLanguage"; + @SerializedName(SERIALIZED_NAME_METADATA_LANGUAGE) + @javax.annotation.Nullable + private String metadataLanguage; + + public static final String SERIALIZED_NAME_METADATA_COUNTRY_CODE = "MetadataCountryCode"; + @SerializedName(SERIALIZED_NAME_METADATA_COUNTRY_CODE) + @javax.annotation.Nullable + private String metadataCountryCode; + + public static final String SERIALIZED_NAME_PROVIDER_IDS = "ProviderIds"; + @SerializedName(SERIALIZED_NAME_PROVIDER_IDS) + @javax.annotation.Nullable + private Map providerIds; + + public static final String SERIALIZED_NAME_YEAR = "Year"; + @SerializedName(SERIALIZED_NAME_YEAR) + @javax.annotation.Nullable + private Integer year; + + public static final String SERIALIZED_NAME_INDEX_NUMBER = "IndexNumber"; + @SerializedName(SERIALIZED_NAME_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer indexNumber; + + public static final String SERIALIZED_NAME_PARENT_INDEX_NUMBER = "ParentIndexNumber"; + @SerializedName(SERIALIZED_NAME_PARENT_INDEX_NUMBER) + @javax.annotation.Nullable + private Integer parentIndexNumber; + + public static final String SERIALIZED_NAME_PREMIERE_DATE = "PremiereDate"; + @SerializedName(SERIALIZED_NAME_PREMIERE_DATE) + @javax.annotation.Nullable + private OffsetDateTime premiereDate; + + public static final String SERIALIZED_NAME_IS_AUTOMATED = "IsAutomated"; + @SerializedName(SERIALIZED_NAME_IS_AUTOMATED) + @javax.annotation.Nullable + private Boolean isAutomated; + + public TrailerInfo() { + } + + public TrailerInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TrailerInfo originalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + /** + * Gets or sets the original title. + * @return originalTitle + */ + @javax.annotation.Nullable + public String getOriginalTitle() { + return originalTitle; + } + + public void setOriginalTitle(@javax.annotation.Nullable String originalTitle) { + this.originalTitle = originalTitle; + } + + + public TrailerInfo path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public TrailerInfo metadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + return this; + } + + /** + * Gets or sets the metadata language. + * @return metadataLanguage + */ + @javax.annotation.Nullable + public String getMetadataLanguage() { + return metadataLanguage; + } + + public void setMetadataLanguage(@javax.annotation.Nullable String metadataLanguage) { + this.metadataLanguage = metadataLanguage; + } + + + public TrailerInfo metadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + return this; + } + + /** + * Gets or sets the metadata country code. + * @return metadataCountryCode + */ + @javax.annotation.Nullable + public String getMetadataCountryCode() { + return metadataCountryCode; + } + + public void setMetadataCountryCode(@javax.annotation.Nullable String metadataCountryCode) { + this.metadataCountryCode = metadataCountryCode; + } + + + public TrailerInfo providerIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + return this; + } + + public TrailerInfo putProviderIdsItem(String key, String providerIdsItem) { + if (this.providerIds == null) { + this.providerIds = new HashMap<>(); + } + this.providerIds.put(key, providerIdsItem); + return this; + } + + /** + * Gets or sets the provider ids. + * @return providerIds + */ + @javax.annotation.Nullable + public Map getProviderIds() { + return providerIds; + } + + public void setProviderIds(@javax.annotation.Nullable Map providerIds) { + this.providerIds = providerIds; + } + + + public TrailerInfo year(@javax.annotation.Nullable Integer year) { + this.year = year; + return this; + } + + /** + * Gets or sets the year. + * @return year + */ + @javax.annotation.Nullable + public Integer getYear() { + return year; + } + + public void setYear(@javax.annotation.Nullable Integer year) { + this.year = year; + } + + + public TrailerInfo indexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + return this; + } + + /** + * Get indexNumber + * @return indexNumber + */ + @javax.annotation.Nullable + public Integer getIndexNumber() { + return indexNumber; + } + + public void setIndexNumber(@javax.annotation.Nullable Integer indexNumber) { + this.indexNumber = indexNumber; + } + + + public TrailerInfo parentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + return this; + } + + /** + * Get parentIndexNumber + * @return parentIndexNumber + */ + @javax.annotation.Nullable + public Integer getParentIndexNumber() { + return parentIndexNumber; + } + + public void setParentIndexNumber(@javax.annotation.Nullable Integer parentIndexNumber) { + this.parentIndexNumber = parentIndexNumber; + } + + + public TrailerInfo premiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + return this; + } + + /** + * Get premiereDate + * @return premiereDate + */ + @javax.annotation.Nullable + public OffsetDateTime getPremiereDate() { + return premiereDate; + } + + public void setPremiereDate(@javax.annotation.Nullable OffsetDateTime premiereDate) { + this.premiereDate = premiereDate; + } + + + public TrailerInfo isAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + return this; + } + + /** + * Get isAutomated + * @return isAutomated + */ + @javax.annotation.Nullable + public Boolean getIsAutomated() { + return isAutomated; + } + + public void setIsAutomated(@javax.annotation.Nullable Boolean isAutomated) { + this.isAutomated = isAutomated; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrailerInfo trailerInfo = (TrailerInfo) o; + return Objects.equals(this.name, trailerInfo.name) && + Objects.equals(this.originalTitle, trailerInfo.originalTitle) && + Objects.equals(this.path, trailerInfo.path) && + Objects.equals(this.metadataLanguage, trailerInfo.metadataLanguage) && + Objects.equals(this.metadataCountryCode, trailerInfo.metadataCountryCode) && + Objects.equals(this.providerIds, trailerInfo.providerIds) && + Objects.equals(this.year, trailerInfo.year) && + Objects.equals(this.indexNumber, trailerInfo.indexNumber) && + Objects.equals(this.parentIndexNumber, trailerInfo.parentIndexNumber) && + Objects.equals(this.premiereDate, trailerInfo.premiereDate) && + Objects.equals(this.isAutomated, trailerInfo.isAutomated); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, originalTitle, path, metadataLanguage, metadataCountryCode, providerIds, year, indexNumber, parentIndexNumber, premiereDate, isAutomated); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrailerInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" originalTitle: ").append(toIndentedString(originalTitle)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" metadataLanguage: ").append(toIndentedString(metadataLanguage)).append("\n"); + sb.append(" metadataCountryCode: ").append(toIndentedString(metadataCountryCode)).append("\n"); + sb.append(" providerIds: ").append(toIndentedString(providerIds)).append("\n"); + sb.append(" year: ").append(toIndentedString(year)).append("\n"); + sb.append(" indexNumber: ").append(toIndentedString(indexNumber)).append("\n"); + sb.append(" parentIndexNumber: ").append(toIndentedString(parentIndexNumber)).append("\n"); + sb.append(" premiereDate: ").append(toIndentedString(premiereDate)).append("\n"); + sb.append(" isAutomated: ").append(toIndentedString(isAutomated)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("OriginalTitle"); + openapiFields.add("Path"); + openapiFields.add("MetadataLanguage"); + openapiFields.add("MetadataCountryCode"); + openapiFields.add("ProviderIds"); + openapiFields.add("Year"); + openapiFields.add("IndexNumber"); + openapiFields.add("ParentIndexNumber"); + openapiFields.add("PremiereDate"); + openapiFields.add("IsAutomated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrailerInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrailerInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrailerInfo is not found in the empty JSON string", TrailerInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrailerInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrailerInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("OriginalTitle") != null && !jsonObj.get("OriginalTitle").isJsonNull()) && !jsonObj.get("OriginalTitle").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `OriginalTitle` to be a primitive type in the JSON string but got `%s`", jsonObj.get("OriginalTitle").toString())); + } + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + if ((jsonObj.get("MetadataLanguage") != null && !jsonObj.get("MetadataLanguage").isJsonNull()) && !jsonObj.get("MetadataLanguage").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataLanguage` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataLanguage").toString())); + } + if ((jsonObj.get("MetadataCountryCode") != null && !jsonObj.get("MetadataCountryCode").isJsonNull()) && !jsonObj.get("MetadataCountryCode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataCountryCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MetadataCountryCode").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrailerInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrailerInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrailerInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrailerInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrailerInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrailerInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrailerInfo + * @throws IOException if the JSON string is invalid with respect to TrailerInfo + */ + public static TrailerInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrailerInfo.class); + } + + /** + * Convert an instance of TrailerInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java new file mode 100644 index 0000000000000..751915d91ccea --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TrailerInfoRemoteSearchQuery.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.TrailerInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TrailerInfoRemoteSearchQuery + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TrailerInfoRemoteSearchQuery { + public static final String SERIALIZED_NAME_SEARCH_INFO = "SearchInfo"; + @SerializedName(SERIALIZED_NAME_SEARCH_INFO) + @javax.annotation.Nullable + private TrailerInfo searchInfo; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private UUID itemId; + + public static final String SERIALIZED_NAME_SEARCH_PROVIDER_NAME = "SearchProviderName"; + @SerializedName(SERIALIZED_NAME_SEARCH_PROVIDER_NAME) + @javax.annotation.Nullable + private String searchProviderName; + + public static final String SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS = "IncludeDisabledProviders"; + @SerializedName(SERIALIZED_NAME_INCLUDE_DISABLED_PROVIDERS) + @javax.annotation.Nullable + private Boolean includeDisabledProviders; + + public TrailerInfoRemoteSearchQuery() { + } + + public TrailerInfoRemoteSearchQuery searchInfo(@javax.annotation.Nullable TrailerInfo searchInfo) { + this.searchInfo = searchInfo; + return this; + } + + /** + * Get searchInfo + * @return searchInfo + */ + @javax.annotation.Nullable + public TrailerInfo getSearchInfo() { + return searchInfo; + } + + public void setSearchInfo(@javax.annotation.Nullable TrailerInfo searchInfo) { + this.searchInfo = searchInfo; + } + + + public TrailerInfoRemoteSearchQuery itemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + return this; + } + + /** + * Get itemId + * @return itemId + */ + @javax.annotation.Nullable + public UUID getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable UUID itemId) { + this.itemId = itemId; + } + + + public TrailerInfoRemoteSearchQuery searchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + return this; + } + + /** + * Gets or sets the provider name to search within if set. + * @return searchProviderName + */ + @javax.annotation.Nullable + public String getSearchProviderName() { + return searchProviderName; + } + + public void setSearchProviderName(@javax.annotation.Nullable String searchProviderName) { + this.searchProviderName = searchProviderName; + } + + + public TrailerInfoRemoteSearchQuery includeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + return this; + } + + /** + * Gets or sets a value indicating whether disabled providers should be included. + * @return includeDisabledProviders + */ + @javax.annotation.Nullable + public Boolean getIncludeDisabledProviders() { + return includeDisabledProviders; + } + + public void setIncludeDisabledProviders(@javax.annotation.Nullable Boolean includeDisabledProviders) { + this.includeDisabledProviders = includeDisabledProviders; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrailerInfoRemoteSearchQuery trailerInfoRemoteSearchQuery = (TrailerInfoRemoteSearchQuery) o; + return Objects.equals(this.searchInfo, trailerInfoRemoteSearchQuery.searchInfo) && + Objects.equals(this.itemId, trailerInfoRemoteSearchQuery.itemId) && + Objects.equals(this.searchProviderName, trailerInfoRemoteSearchQuery.searchProviderName) && + Objects.equals(this.includeDisabledProviders, trailerInfoRemoteSearchQuery.includeDisabledProviders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(searchInfo, itemId, searchProviderName, includeDisabledProviders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrailerInfoRemoteSearchQuery {\n"); + sb.append(" searchInfo: ").append(toIndentedString(searchInfo)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" searchProviderName: ").append(toIndentedString(searchProviderName)).append("\n"); + sb.append(" includeDisabledProviders: ").append(toIndentedString(includeDisabledProviders)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SearchInfo"); + openapiFields.add("ItemId"); + openapiFields.add("SearchProviderName"); + openapiFields.add("IncludeDisabledProviders"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrailerInfoRemoteSearchQuery + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrailerInfoRemoteSearchQuery.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TrailerInfoRemoteSearchQuery is not found in the empty JSON string", TrailerInfoRemoteSearchQuery.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrailerInfoRemoteSearchQuery.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TrailerInfoRemoteSearchQuery` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `SearchInfo` + if (jsonObj.get("SearchInfo") != null && !jsonObj.get("SearchInfo").isJsonNull()) { + TrailerInfo.validateJsonElement(jsonObj.get("SearchInfo")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("SearchProviderName") != null && !jsonObj.get("SearchProviderName").isJsonNull()) && !jsonObj.get("SearchProviderName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SearchProviderName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SearchProviderName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrailerInfoRemoteSearchQuery.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrailerInfoRemoteSearchQuery' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TrailerInfoRemoteSearchQuery.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TrailerInfoRemoteSearchQuery value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrailerInfoRemoteSearchQuery read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TrailerInfoRemoteSearchQuery given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrailerInfoRemoteSearchQuery + * @throws IOException if the JSON string is invalid with respect to TrailerInfoRemoteSearchQuery + */ + public static TrailerInfoRemoteSearchQuery fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrailerInfoRemoteSearchQuery.class); + } + + /** + * Convert an instance of TrailerInfoRemoteSearchQuery to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeReason.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeReason.java new file mode 100644 index 0000000000000..90264a4a2185d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeReason.java @@ -0,0 +1,124 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TranscodeReason + */ +@JsonAdapter(TranscodeReason.Adapter.class) +public enum TranscodeReason { + + CONTAINER_NOT_SUPPORTED("ContainerNotSupported"), + + VIDEO_CODEC_NOT_SUPPORTED("VideoCodecNotSupported"), + + AUDIO_CODEC_NOT_SUPPORTED("AudioCodecNotSupported"), + + SUBTITLE_CODEC_NOT_SUPPORTED("SubtitleCodecNotSupported"), + + AUDIO_IS_EXTERNAL("AudioIsExternal"), + + SECONDARY_AUDIO_NOT_SUPPORTED("SecondaryAudioNotSupported"), + + VIDEO_PROFILE_NOT_SUPPORTED("VideoProfileNotSupported"), + + VIDEO_LEVEL_NOT_SUPPORTED("VideoLevelNotSupported"), + + VIDEO_RESOLUTION_NOT_SUPPORTED("VideoResolutionNotSupported"), + + VIDEO_BIT_DEPTH_NOT_SUPPORTED("VideoBitDepthNotSupported"), + + VIDEO_FRAMERATE_NOT_SUPPORTED("VideoFramerateNotSupported"), + + REF_FRAMES_NOT_SUPPORTED("RefFramesNotSupported"), + + ANAMORPHIC_VIDEO_NOT_SUPPORTED("AnamorphicVideoNotSupported"), + + INTERLACED_VIDEO_NOT_SUPPORTED("InterlacedVideoNotSupported"), + + AUDIO_CHANNELS_NOT_SUPPORTED("AudioChannelsNotSupported"), + + AUDIO_PROFILE_NOT_SUPPORTED("AudioProfileNotSupported"), + + AUDIO_SAMPLE_RATE_NOT_SUPPORTED("AudioSampleRateNotSupported"), + + AUDIO_BIT_DEPTH_NOT_SUPPORTED("AudioBitDepthNotSupported"), + + CONTAINER_BITRATE_EXCEEDS_LIMIT("ContainerBitrateExceedsLimit"), + + VIDEO_BITRATE_NOT_SUPPORTED("VideoBitrateNotSupported"), + + AUDIO_BITRATE_NOT_SUPPORTED("AudioBitrateNotSupported"), + + UNKNOWN_VIDEO_STREAM_INFO("UnknownVideoStreamInfo"), + + UNKNOWN_AUDIO_STREAM_INFO("UnknownAudioStreamInfo"), + + DIRECT_PLAY_ERROR("DirectPlayError"), + + VIDEO_RANGE_TYPE_NOT_SUPPORTED("VideoRangeTypeNotSupported"); + + private String value; + + TranscodeReason(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TranscodeReason fromValue(String value) { + for (TranscodeReason b : TranscodeReason.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TranscodeReason enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TranscodeReason read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TranscodeReason.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TranscodeReason.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java new file mode 100644 index 0000000000000..bd7e8c80190fe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodeSeekInfo.java @@ -0,0 +1,78 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TranscodeSeekInfo + */ +@JsonAdapter(TranscodeSeekInfo.Adapter.class) +public enum TranscodeSeekInfo { + + AUTO("Auto"), + + BYTES("Bytes"); + + private String value; + + TranscodeSeekInfo(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TranscodeSeekInfo fromValue(String value) { + for (TranscodeSeekInfo b : TranscodeSeekInfo.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TranscodeSeekInfo enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TranscodeSeekInfo read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TranscodeSeekInfo.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TranscodeSeekInfo.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingInfo.java new file mode 100644 index 0000000000000..d36cab8eeeb16 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingInfo.java @@ -0,0 +1,568 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.HardwareEncodingType; +import org.openapitools.client.model.TranscodeReason; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TranscodingInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TranscodingInfo { + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_IS_VIDEO_DIRECT = "IsVideoDirect"; + @SerializedName(SERIALIZED_NAME_IS_VIDEO_DIRECT) + @javax.annotation.Nullable + private Boolean isVideoDirect; + + public static final String SERIALIZED_NAME_IS_AUDIO_DIRECT = "IsAudioDirect"; + @SerializedName(SERIALIZED_NAME_IS_AUDIO_DIRECT) + @javax.annotation.Nullable + private Boolean isAudioDirect; + + public static final String SERIALIZED_NAME_BITRATE = "Bitrate"; + @SerializedName(SERIALIZED_NAME_BITRATE) + @javax.annotation.Nullable + private Integer bitrate; + + public static final String SERIALIZED_NAME_FRAMERATE = "Framerate"; + @SerializedName(SERIALIZED_NAME_FRAMERATE) + @javax.annotation.Nullable + private Float framerate; + + public static final String SERIALIZED_NAME_COMPLETION_PERCENTAGE = "CompletionPercentage"; + @SerializedName(SERIALIZED_NAME_COMPLETION_PERCENTAGE) + @javax.annotation.Nullable + private Double completionPercentage; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nullable + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nullable + private Integer height; + + public static final String SERIALIZED_NAME_AUDIO_CHANNELS = "AudioChannels"; + @SerializedName(SERIALIZED_NAME_AUDIO_CHANNELS) + @javax.annotation.Nullable + private Integer audioChannels; + + public static final String SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE = "HardwareAccelerationType"; + @SerializedName(SERIALIZED_NAME_HARDWARE_ACCELERATION_TYPE) + @javax.annotation.Nullable + private HardwareEncodingType hardwareAccelerationType; + + public static final String SERIALIZED_NAME_TRANSCODE_REASONS = "TranscodeReasons"; + @SerializedName(SERIALIZED_NAME_TRANSCODE_REASONS) + @javax.annotation.Nullable + private List transcodeReasons = new ArrayList<>(); + + public TranscodingInfo() { + } + + public TranscodingInfo audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Get audioCodec + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public TranscodingInfo videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Get videoCodec + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public TranscodingInfo container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public TranscodingInfo isVideoDirect(@javax.annotation.Nullable Boolean isVideoDirect) { + this.isVideoDirect = isVideoDirect; + return this; + } + + /** + * Get isVideoDirect + * @return isVideoDirect + */ + @javax.annotation.Nullable + public Boolean getIsVideoDirect() { + return isVideoDirect; + } + + public void setIsVideoDirect(@javax.annotation.Nullable Boolean isVideoDirect) { + this.isVideoDirect = isVideoDirect; + } + + + public TranscodingInfo isAudioDirect(@javax.annotation.Nullable Boolean isAudioDirect) { + this.isAudioDirect = isAudioDirect; + return this; + } + + /** + * Get isAudioDirect + * @return isAudioDirect + */ + @javax.annotation.Nullable + public Boolean getIsAudioDirect() { + return isAudioDirect; + } + + public void setIsAudioDirect(@javax.annotation.Nullable Boolean isAudioDirect) { + this.isAudioDirect = isAudioDirect; + } + + + public TranscodingInfo bitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + /** + * Get bitrate + * @return bitrate + */ + @javax.annotation.Nullable + public Integer getBitrate() { + return bitrate; + } + + public void setBitrate(@javax.annotation.Nullable Integer bitrate) { + this.bitrate = bitrate; + } + + + public TranscodingInfo framerate(@javax.annotation.Nullable Float framerate) { + this.framerate = framerate; + return this; + } + + /** + * Get framerate + * @return framerate + */ + @javax.annotation.Nullable + public Float getFramerate() { + return framerate; + } + + public void setFramerate(@javax.annotation.Nullable Float framerate) { + this.framerate = framerate; + } + + + public TranscodingInfo completionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + return this; + } + + /** + * Get completionPercentage + * @return completionPercentage + */ + @javax.annotation.Nullable + public Double getCompletionPercentage() { + return completionPercentage; + } + + public void setCompletionPercentage(@javax.annotation.Nullable Double completionPercentage) { + this.completionPercentage = completionPercentage; + } + + + public TranscodingInfo width(@javax.annotation.Nullable Integer width) { + this.width = width; + return this; + } + + /** + * Get width + * @return width + */ + @javax.annotation.Nullable + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nullable Integer width) { + this.width = width; + } + + + public TranscodingInfo height(@javax.annotation.Nullable Integer height) { + this.height = height; + return this; + } + + /** + * Get height + * @return height + */ + @javax.annotation.Nullable + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nullable Integer height) { + this.height = height; + } + + + public TranscodingInfo audioChannels(@javax.annotation.Nullable Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + /** + * Get audioChannels + * @return audioChannels + */ + @javax.annotation.Nullable + public Integer getAudioChannels() { + return audioChannels; + } + + public void setAudioChannels(@javax.annotation.Nullable Integer audioChannels) { + this.audioChannels = audioChannels; + } + + + public TranscodingInfo hardwareAccelerationType(@javax.annotation.Nullable HardwareEncodingType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + return this; + } + + /** + * Get hardwareAccelerationType + * @return hardwareAccelerationType + */ + @javax.annotation.Nullable + public HardwareEncodingType getHardwareAccelerationType() { + return hardwareAccelerationType; + } + + public void setHardwareAccelerationType(@javax.annotation.Nullable HardwareEncodingType hardwareAccelerationType) { + this.hardwareAccelerationType = hardwareAccelerationType; + } + + + public TranscodingInfo transcodeReasons(@javax.annotation.Nullable List transcodeReasons) { + this.transcodeReasons = transcodeReasons; + return this; + } + + public TranscodingInfo addTranscodeReasonsItem(TranscodeReason transcodeReasonsItem) { + if (this.transcodeReasons == null) { + this.transcodeReasons = new ArrayList<>(); + } + this.transcodeReasons.add(transcodeReasonsItem); + return this; + } + + /** + * Get transcodeReasons + * @return transcodeReasons + */ + @javax.annotation.Nullable + public List getTranscodeReasons() { + return transcodeReasons; + } + + public void setTranscodeReasons(@javax.annotation.Nullable List transcodeReasons) { + this.transcodeReasons = transcodeReasons; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscodingInfo transcodingInfo = (TranscodingInfo) o; + return Objects.equals(this.audioCodec, transcodingInfo.audioCodec) && + Objects.equals(this.videoCodec, transcodingInfo.videoCodec) && + Objects.equals(this.container, transcodingInfo.container) && + Objects.equals(this.isVideoDirect, transcodingInfo.isVideoDirect) && + Objects.equals(this.isAudioDirect, transcodingInfo.isAudioDirect) && + Objects.equals(this.bitrate, transcodingInfo.bitrate) && + Objects.equals(this.framerate, transcodingInfo.framerate) && + Objects.equals(this.completionPercentage, transcodingInfo.completionPercentage) && + Objects.equals(this.width, transcodingInfo.width) && + Objects.equals(this.height, transcodingInfo.height) && + Objects.equals(this.audioChannels, transcodingInfo.audioChannels) && + Objects.equals(this.hardwareAccelerationType, transcodingInfo.hardwareAccelerationType) && + Objects.equals(this.transcodeReasons, transcodingInfo.transcodeReasons); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(audioCodec, videoCodec, container, isVideoDirect, isAudioDirect, bitrate, framerate, completionPercentage, width, height, audioChannels, hardwareAccelerationType, transcodeReasons); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TranscodingInfo {\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" isVideoDirect: ").append(toIndentedString(isVideoDirect)).append("\n"); + sb.append(" isAudioDirect: ").append(toIndentedString(isAudioDirect)).append("\n"); + sb.append(" bitrate: ").append(toIndentedString(bitrate)).append("\n"); + sb.append(" framerate: ").append(toIndentedString(framerate)).append("\n"); + sb.append(" completionPercentage: ").append(toIndentedString(completionPercentage)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" audioChannels: ").append(toIndentedString(audioChannels)).append("\n"); + sb.append(" hardwareAccelerationType: ").append(toIndentedString(hardwareAccelerationType)).append("\n"); + sb.append(" transcodeReasons: ").append(toIndentedString(transcodeReasons)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AudioCodec"); + openapiFields.add("VideoCodec"); + openapiFields.add("Container"); + openapiFields.add("IsVideoDirect"); + openapiFields.add("IsAudioDirect"); + openapiFields.add("Bitrate"); + openapiFields.add("Framerate"); + openapiFields.add("CompletionPercentage"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("AudioChannels"); + openapiFields.add("HardwareAccelerationType"); + openapiFields.add("TranscodeReasons"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TranscodingInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TranscodingInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TranscodingInfo is not found in the empty JSON string", TranscodingInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TranscodingInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TranscodingInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + // validate the optional field `HardwareAccelerationType` + if (jsonObj.get("HardwareAccelerationType") != null && !jsonObj.get("HardwareAccelerationType").isJsonNull()) { + HardwareEncodingType.validateJsonElement(jsonObj.get("HardwareAccelerationType")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("TranscodeReasons") != null && !jsonObj.get("TranscodeReasons").isJsonNull() && !jsonObj.get("TranscodeReasons").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `TranscodeReasons` to be an array in the JSON string but got `%s`", jsonObj.get("TranscodeReasons").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TranscodingInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TranscodingInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TranscodingInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TranscodingInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TranscodingInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TranscodingInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TranscodingInfo + * @throws IOException if the JSON string is invalid with respect to TranscodingInfo + */ + public static TranscodingInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TranscodingInfo.class); + } + + /** + * Convert an instance of TranscodingInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingProfile.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingProfile.java new file mode 100644 index 0000000000000..b598436a5f04f --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TranscodingProfile.java @@ -0,0 +1,675 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.DlnaProfileType; +import org.openapitools.client.model.EncodingContext; +import org.openapitools.client.model.ProfileCondition; +import org.openapitools.client.model.TranscodeSeekInfo; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TranscodingProfile + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TranscodingProfile { + public static final String SERIALIZED_NAME_CONTAINER = "Container"; + @SerializedName(SERIALIZED_NAME_CONTAINER) + @javax.annotation.Nullable + private String container; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private DlnaProfileType type; + + public static final String SERIALIZED_NAME_VIDEO_CODEC = "VideoCodec"; + @SerializedName(SERIALIZED_NAME_VIDEO_CODEC) + @javax.annotation.Nullable + private String videoCodec; + + public static final String SERIALIZED_NAME_AUDIO_CODEC = "AudioCodec"; + @SerializedName(SERIALIZED_NAME_AUDIO_CODEC) + @javax.annotation.Nullable + private String audioCodec; + + public static final String SERIALIZED_NAME_PROTOCOL = "Protocol"; + @SerializedName(SERIALIZED_NAME_PROTOCOL) + @javax.annotation.Nullable + private String protocol; + + public static final String SERIALIZED_NAME_ESTIMATE_CONTENT_LENGTH = "EstimateContentLength"; + @SerializedName(SERIALIZED_NAME_ESTIMATE_CONTENT_LENGTH) + @javax.annotation.Nullable + private Boolean estimateContentLength = false; + + public static final String SERIALIZED_NAME_ENABLE_MPEGTS_M2_TS_MODE = "EnableMpegtsM2TsMode"; + @SerializedName(SERIALIZED_NAME_ENABLE_MPEGTS_M2_TS_MODE) + @javax.annotation.Nullable + private Boolean enableMpegtsM2TsMode = false; + + public static final String SERIALIZED_NAME_TRANSCODE_SEEK_INFO = "TranscodeSeekInfo"; + @SerializedName(SERIALIZED_NAME_TRANSCODE_SEEK_INFO) + @javax.annotation.Nullable + private TranscodeSeekInfo transcodeSeekInfo = TranscodeSeekInfo.AUTO; + + public static final String SERIALIZED_NAME_COPY_TIMESTAMPS = "CopyTimestamps"; + @SerializedName(SERIALIZED_NAME_COPY_TIMESTAMPS) + @javax.annotation.Nullable + private Boolean copyTimestamps = false; + + public static final String SERIALIZED_NAME_CONTEXT = "Context"; + @SerializedName(SERIALIZED_NAME_CONTEXT) + @javax.annotation.Nullable + private EncodingContext context = EncodingContext.STREAMING; + + public static final String SERIALIZED_NAME_ENABLE_SUBTITLES_IN_MANIFEST = "EnableSubtitlesInManifest"; + @SerializedName(SERIALIZED_NAME_ENABLE_SUBTITLES_IN_MANIFEST) + @javax.annotation.Nullable + private Boolean enableSubtitlesInManifest = false; + + public static final String SERIALIZED_NAME_MAX_AUDIO_CHANNELS = "MaxAudioChannels"; + @SerializedName(SERIALIZED_NAME_MAX_AUDIO_CHANNELS) + @javax.annotation.Nullable + private String maxAudioChannels; + + public static final String SERIALIZED_NAME_MIN_SEGMENTS = "MinSegments"; + @SerializedName(SERIALIZED_NAME_MIN_SEGMENTS) + @javax.annotation.Nullable + private Integer minSegments = 0; + + public static final String SERIALIZED_NAME_SEGMENT_LENGTH = "SegmentLength"; + @SerializedName(SERIALIZED_NAME_SEGMENT_LENGTH) + @javax.annotation.Nullable + private Integer segmentLength = 0; + + public static final String SERIALIZED_NAME_BREAK_ON_NON_KEY_FRAMES = "BreakOnNonKeyFrames"; + @SerializedName(SERIALIZED_NAME_BREAK_ON_NON_KEY_FRAMES) + @javax.annotation.Nullable + private Boolean breakOnNonKeyFrames = false; + + public static final String SERIALIZED_NAME_CONDITIONS = "Conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @javax.annotation.Nullable + private List conditions = new ArrayList<>(); + + public TranscodingProfile() { + } + + public TranscodingProfile container(@javax.annotation.Nullable String container) { + this.container = container; + return this; + } + + /** + * Get container + * @return container + */ + @javax.annotation.Nullable + public String getContainer() { + return container; + } + + public void setContainer(@javax.annotation.Nullable String container) { + this.container = container; + } + + + public TranscodingProfile type(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public DlnaProfileType getType() { + return type; + } + + public void setType(@javax.annotation.Nullable DlnaProfileType type) { + this.type = type; + } + + + public TranscodingProfile videoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + /** + * Get videoCodec + * @return videoCodec + */ + @javax.annotation.Nullable + public String getVideoCodec() { + return videoCodec; + } + + public void setVideoCodec(@javax.annotation.Nullable String videoCodec) { + this.videoCodec = videoCodec; + } + + + public TranscodingProfile audioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + /** + * Get audioCodec + * @return audioCodec + */ + @javax.annotation.Nullable + public String getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(@javax.annotation.Nullable String audioCodec) { + this.audioCodec = audioCodec; + } + + + public TranscodingProfile protocol(@javax.annotation.Nullable String protocol) { + this.protocol = protocol; + return this; + } + + /** + * Get protocol + * @return protocol + */ + @javax.annotation.Nullable + public String getProtocol() { + return protocol; + } + + public void setProtocol(@javax.annotation.Nullable String protocol) { + this.protocol = protocol; + } + + + public TranscodingProfile estimateContentLength(@javax.annotation.Nullable Boolean estimateContentLength) { + this.estimateContentLength = estimateContentLength; + return this; + } + + /** + * Get estimateContentLength + * @return estimateContentLength + */ + @javax.annotation.Nullable + public Boolean getEstimateContentLength() { + return estimateContentLength; + } + + public void setEstimateContentLength(@javax.annotation.Nullable Boolean estimateContentLength) { + this.estimateContentLength = estimateContentLength; + } + + + public TranscodingProfile enableMpegtsM2TsMode(@javax.annotation.Nullable Boolean enableMpegtsM2TsMode) { + this.enableMpegtsM2TsMode = enableMpegtsM2TsMode; + return this; + } + + /** + * Get enableMpegtsM2TsMode + * @return enableMpegtsM2TsMode + */ + @javax.annotation.Nullable + public Boolean getEnableMpegtsM2TsMode() { + return enableMpegtsM2TsMode; + } + + public void setEnableMpegtsM2TsMode(@javax.annotation.Nullable Boolean enableMpegtsM2TsMode) { + this.enableMpegtsM2TsMode = enableMpegtsM2TsMode; + } + + + public TranscodingProfile transcodeSeekInfo(@javax.annotation.Nullable TranscodeSeekInfo transcodeSeekInfo) { + this.transcodeSeekInfo = transcodeSeekInfo; + return this; + } + + /** + * Get transcodeSeekInfo + * @return transcodeSeekInfo + */ + @javax.annotation.Nullable + public TranscodeSeekInfo getTranscodeSeekInfo() { + return transcodeSeekInfo; + } + + public void setTranscodeSeekInfo(@javax.annotation.Nullable TranscodeSeekInfo transcodeSeekInfo) { + this.transcodeSeekInfo = transcodeSeekInfo; + } + + + public TranscodingProfile copyTimestamps(@javax.annotation.Nullable Boolean copyTimestamps) { + this.copyTimestamps = copyTimestamps; + return this; + } + + /** + * Get copyTimestamps + * @return copyTimestamps + */ + @javax.annotation.Nullable + public Boolean getCopyTimestamps() { + return copyTimestamps; + } + + public void setCopyTimestamps(@javax.annotation.Nullable Boolean copyTimestamps) { + this.copyTimestamps = copyTimestamps; + } + + + public TranscodingProfile context(@javax.annotation.Nullable EncodingContext context) { + this.context = context; + return this; + } + + /** + * Get context + * @return context + */ + @javax.annotation.Nullable + public EncodingContext getContext() { + return context; + } + + public void setContext(@javax.annotation.Nullable EncodingContext context) { + this.context = context; + } + + + public TranscodingProfile enableSubtitlesInManifest(@javax.annotation.Nullable Boolean enableSubtitlesInManifest) { + this.enableSubtitlesInManifest = enableSubtitlesInManifest; + return this; + } + + /** + * Get enableSubtitlesInManifest + * @return enableSubtitlesInManifest + */ + @javax.annotation.Nullable + public Boolean getEnableSubtitlesInManifest() { + return enableSubtitlesInManifest; + } + + public void setEnableSubtitlesInManifest(@javax.annotation.Nullable Boolean enableSubtitlesInManifest) { + this.enableSubtitlesInManifest = enableSubtitlesInManifest; + } + + + public TranscodingProfile maxAudioChannels(@javax.annotation.Nullable String maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + return this; + } + + /** + * Get maxAudioChannels + * @return maxAudioChannels + */ + @javax.annotation.Nullable + public String getMaxAudioChannels() { + return maxAudioChannels; + } + + public void setMaxAudioChannels(@javax.annotation.Nullable String maxAudioChannels) { + this.maxAudioChannels = maxAudioChannels; + } + + + public TranscodingProfile minSegments(@javax.annotation.Nullable Integer minSegments) { + this.minSegments = minSegments; + return this; + } + + /** + * Get minSegments + * @return minSegments + */ + @javax.annotation.Nullable + public Integer getMinSegments() { + return minSegments; + } + + public void setMinSegments(@javax.annotation.Nullable Integer minSegments) { + this.minSegments = minSegments; + } + + + public TranscodingProfile segmentLength(@javax.annotation.Nullable Integer segmentLength) { + this.segmentLength = segmentLength; + return this; + } + + /** + * Get segmentLength + * @return segmentLength + */ + @javax.annotation.Nullable + public Integer getSegmentLength() { + return segmentLength; + } + + public void setSegmentLength(@javax.annotation.Nullable Integer segmentLength) { + this.segmentLength = segmentLength; + } + + + public TranscodingProfile breakOnNonKeyFrames(@javax.annotation.Nullable Boolean breakOnNonKeyFrames) { + this.breakOnNonKeyFrames = breakOnNonKeyFrames; + return this; + } + + /** + * Get breakOnNonKeyFrames + * @return breakOnNonKeyFrames + */ + @javax.annotation.Nullable + public Boolean getBreakOnNonKeyFrames() { + return breakOnNonKeyFrames; + } + + public void setBreakOnNonKeyFrames(@javax.annotation.Nullable Boolean breakOnNonKeyFrames) { + this.breakOnNonKeyFrames = breakOnNonKeyFrames; + } + + + public TranscodingProfile conditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public TranscodingProfile addConditionsItem(ProfileCondition conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * Get conditions + * @return conditions + */ + @javax.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@javax.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscodingProfile transcodingProfile = (TranscodingProfile) o; + return Objects.equals(this.container, transcodingProfile.container) && + Objects.equals(this.type, transcodingProfile.type) && + Objects.equals(this.videoCodec, transcodingProfile.videoCodec) && + Objects.equals(this.audioCodec, transcodingProfile.audioCodec) && + Objects.equals(this.protocol, transcodingProfile.protocol) && + Objects.equals(this.estimateContentLength, transcodingProfile.estimateContentLength) && + Objects.equals(this.enableMpegtsM2TsMode, transcodingProfile.enableMpegtsM2TsMode) && + Objects.equals(this.transcodeSeekInfo, transcodingProfile.transcodeSeekInfo) && + Objects.equals(this.copyTimestamps, transcodingProfile.copyTimestamps) && + Objects.equals(this.context, transcodingProfile.context) && + Objects.equals(this.enableSubtitlesInManifest, transcodingProfile.enableSubtitlesInManifest) && + Objects.equals(this.maxAudioChannels, transcodingProfile.maxAudioChannels) && + Objects.equals(this.minSegments, transcodingProfile.minSegments) && + Objects.equals(this.segmentLength, transcodingProfile.segmentLength) && + Objects.equals(this.breakOnNonKeyFrames, transcodingProfile.breakOnNonKeyFrames) && + Objects.equals(this.conditions, transcodingProfile.conditions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(container, type, videoCodec, audioCodec, protocol, estimateContentLength, enableMpegtsM2TsMode, transcodeSeekInfo, copyTimestamps, context, enableSubtitlesInManifest, maxAudioChannels, minSegments, segmentLength, breakOnNonKeyFrames, conditions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TranscodingProfile {\n"); + sb.append(" container: ").append(toIndentedString(container)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" videoCodec: ").append(toIndentedString(videoCodec)).append("\n"); + sb.append(" audioCodec: ").append(toIndentedString(audioCodec)).append("\n"); + sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n"); + sb.append(" estimateContentLength: ").append(toIndentedString(estimateContentLength)).append("\n"); + sb.append(" enableMpegtsM2TsMode: ").append(toIndentedString(enableMpegtsM2TsMode)).append("\n"); + sb.append(" transcodeSeekInfo: ").append(toIndentedString(transcodeSeekInfo)).append("\n"); + sb.append(" copyTimestamps: ").append(toIndentedString(copyTimestamps)).append("\n"); + sb.append(" context: ").append(toIndentedString(context)).append("\n"); + sb.append(" enableSubtitlesInManifest: ").append(toIndentedString(enableSubtitlesInManifest)).append("\n"); + sb.append(" maxAudioChannels: ").append(toIndentedString(maxAudioChannels)).append("\n"); + sb.append(" minSegments: ").append(toIndentedString(minSegments)).append("\n"); + sb.append(" segmentLength: ").append(toIndentedString(segmentLength)).append("\n"); + sb.append(" breakOnNonKeyFrames: ").append(toIndentedString(breakOnNonKeyFrames)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Container"); + openapiFields.add("Type"); + openapiFields.add("VideoCodec"); + openapiFields.add("AudioCodec"); + openapiFields.add("Protocol"); + openapiFields.add("EstimateContentLength"); + openapiFields.add("EnableMpegtsM2TsMode"); + openapiFields.add("TranscodeSeekInfo"); + openapiFields.add("CopyTimestamps"); + openapiFields.add("Context"); + openapiFields.add("EnableSubtitlesInManifest"); + openapiFields.add("MaxAudioChannels"); + openapiFields.add("MinSegments"); + openapiFields.add("SegmentLength"); + openapiFields.add("BreakOnNonKeyFrames"); + openapiFields.add("Conditions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TranscodingProfile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TranscodingProfile.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TranscodingProfile is not found in the empty JSON string", TranscodingProfile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TranscodingProfile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TranscodingProfile` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Container") != null && !jsonObj.get("Container").isJsonNull()) && !jsonObj.get("Container").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Container` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Container").toString())); + } + // validate the optional field `Type` + if (jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) { + DlnaProfileType.validateJsonElement(jsonObj.get("Type")); + } + if ((jsonObj.get("VideoCodec") != null && !jsonObj.get("VideoCodec").isJsonNull()) && !jsonObj.get("VideoCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VideoCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VideoCodec").toString())); + } + if ((jsonObj.get("AudioCodec") != null && !jsonObj.get("AudioCodec").isJsonNull()) && !jsonObj.get("AudioCodec").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioCodec` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioCodec").toString())); + } + if ((jsonObj.get("Protocol") != null && !jsonObj.get("Protocol").isJsonNull()) && !jsonObj.get("Protocol").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Protocol` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Protocol").toString())); + } + // validate the optional field `TranscodeSeekInfo` + if (jsonObj.get("TranscodeSeekInfo") != null && !jsonObj.get("TranscodeSeekInfo").isJsonNull()) { + TranscodeSeekInfo.validateJsonElement(jsonObj.get("TranscodeSeekInfo")); + } + // validate the optional field `Context` + if (jsonObj.get("Context") != null && !jsonObj.get("Context").isJsonNull()) { + EncodingContext.validateJsonElement(jsonObj.get("Context")); + } + if ((jsonObj.get("MaxAudioChannels") != null && !jsonObj.get("MaxAudioChannels").isJsonNull()) && !jsonObj.get("MaxAudioChannels").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MaxAudioChannels` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MaxAudioChannels").toString())); + } + if (jsonObj.get("Conditions") != null && !jsonObj.get("Conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("Conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("Conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Conditions` to be an array in the JSON string but got `%s`", jsonObj.get("Conditions").toString())); + } + + // validate the optional field `Conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + ProfileCondition.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TranscodingProfile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TranscodingProfile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TranscodingProfile.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TranscodingProfile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TranscodingProfile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TranscodingProfile given an JSON string + * + * @param jsonString JSON string + * @return An instance of TranscodingProfile + * @throws IOException if the JSON string is invalid with respect to TranscodingProfile + */ + public static TranscodingProfile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TranscodingProfile.class); + } + + /** + * Convert an instance of TranscodingProfile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java new file mode 100644 index 0000000000000..97e496b71e149 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TransportStreamTimestamp.java @@ -0,0 +1,80 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets TransportStreamTimestamp + */ +@JsonAdapter(TransportStreamTimestamp.Adapter.class) +public enum TransportStreamTimestamp { + + NONE("None"), + + ZERO("Zero"), + + VALID("Valid"); + + private String value; + + TransportStreamTimestamp(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TransportStreamTimestamp fromValue(String value) { + for (TransportStreamTimestamp b : TransportStreamTimestamp.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TransportStreamTimestamp enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TransportStreamTimestamp read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TransportStreamTimestamp.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TransportStreamTimestamp.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerChannelMapping.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerChannelMapping.java new file mode 100644 index 0000000000000..3b38979ef273e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerChannelMapping.java @@ -0,0 +1,308 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TunerChannelMapping + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TunerChannelMapping { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_NAME = "ProviderChannelName"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_NAME) + @javax.annotation.Nullable + private String providerChannelName; + + public static final String SERIALIZED_NAME_PROVIDER_CHANNEL_ID = "ProviderChannelId"; + @SerializedName(SERIALIZED_NAME_PROVIDER_CHANNEL_ID) + @javax.annotation.Nullable + private String providerChannelId; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public TunerChannelMapping() { + } + + public TunerChannelMapping name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public TunerChannelMapping providerChannelName(@javax.annotation.Nullable String providerChannelName) { + this.providerChannelName = providerChannelName; + return this; + } + + /** + * Get providerChannelName + * @return providerChannelName + */ + @javax.annotation.Nullable + public String getProviderChannelName() { + return providerChannelName; + } + + public void setProviderChannelName(@javax.annotation.Nullable String providerChannelName) { + this.providerChannelName = providerChannelName; + } + + + public TunerChannelMapping providerChannelId(@javax.annotation.Nullable String providerChannelId) { + this.providerChannelId = providerChannelId; + return this; + } + + /** + * Get providerChannelId + * @return providerChannelId + */ + @javax.annotation.Nullable + public String getProviderChannelId() { + return providerChannelId; + } + + public void setProviderChannelId(@javax.annotation.Nullable String providerChannelId) { + this.providerChannelId = providerChannelId; + } + + + public TunerChannelMapping id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TunerChannelMapping tunerChannelMapping = (TunerChannelMapping) o; + return Objects.equals(this.name, tunerChannelMapping.name) && + Objects.equals(this.providerChannelName, tunerChannelMapping.providerChannelName) && + Objects.equals(this.providerChannelId, tunerChannelMapping.providerChannelId) && + Objects.equals(this.id, tunerChannelMapping.id); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, providerChannelName, providerChannelId, id); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TunerChannelMapping {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" providerChannelName: ").append(toIndentedString(providerChannelName)).append("\n"); + sb.append(" providerChannelId: ").append(toIndentedString(providerChannelId)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ProviderChannelName"); + openapiFields.add("ProviderChannelId"); + openapiFields.add("Id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TunerChannelMapping + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TunerChannelMapping.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TunerChannelMapping is not found in the empty JSON string", TunerChannelMapping.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TunerChannelMapping.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TunerChannelMapping` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ProviderChannelName") != null && !jsonObj.get("ProviderChannelName").isJsonNull()) && !jsonObj.get("ProviderChannelName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelName").toString())); + } + if ((jsonObj.get("ProviderChannelId") != null && !jsonObj.get("ProviderChannelId").isJsonNull()) && !jsonObj.get("ProviderChannelId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ProviderChannelId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ProviderChannelId").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TunerChannelMapping.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TunerChannelMapping' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TunerChannelMapping.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TunerChannelMapping value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TunerChannelMapping read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TunerChannelMapping given an JSON string + * + * @param jsonString JSON string + * @return An instance of TunerChannelMapping + * @throws IOException if the JSON string is invalid with respect to TunerChannelMapping + */ + public static TunerChannelMapping fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TunerChannelMapping.class); + } + + /** + * Convert an instance of TunerChannelMapping to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerHostInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerHostInfo.java new file mode 100644 index 0000000000000..e4c8d25ce643e --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TunerHostInfo.java @@ -0,0 +1,506 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TunerHostInfo + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TunerHostInfo { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_URL = "Url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_DEVICE_ID = "DeviceId"; + @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable + private String deviceId; + + public static final String SERIALIZED_NAME_FRIENDLY_NAME = "FriendlyName"; + @SerializedName(SERIALIZED_NAME_FRIENDLY_NAME) + @javax.annotation.Nullable + private String friendlyName; + + public static final String SERIALIZED_NAME_IMPORT_FAVORITES_ONLY = "ImportFavoritesOnly"; + @SerializedName(SERIALIZED_NAME_IMPORT_FAVORITES_ONLY) + @javax.annotation.Nullable + private Boolean importFavoritesOnly; + + public static final String SERIALIZED_NAME_ALLOW_H_W_TRANSCODING = "AllowHWTranscoding"; + @SerializedName(SERIALIZED_NAME_ALLOW_H_W_TRANSCODING) + @javax.annotation.Nullable + private Boolean allowHWTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_STREAM_LOOPING = "EnableStreamLooping"; + @SerializedName(SERIALIZED_NAME_ENABLE_STREAM_LOOPING) + @javax.annotation.Nullable + private Boolean enableStreamLooping; + + public static final String SERIALIZED_NAME_SOURCE = "Source"; + @SerializedName(SERIALIZED_NAME_SOURCE) + @javax.annotation.Nullable + private String source; + + public static final String SERIALIZED_NAME_TUNER_COUNT = "TunerCount"; + @SerializedName(SERIALIZED_NAME_TUNER_COUNT) + @javax.annotation.Nullable + private Integer tunerCount; + + public static final String SERIALIZED_NAME_USER_AGENT = "UserAgent"; + @SerializedName(SERIALIZED_NAME_USER_AGENT) + @javax.annotation.Nullable + private String userAgent; + + public TunerHostInfo() { + } + + public TunerHostInfo id(@javax.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @javax.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@javax.annotation.Nullable String id) { + this.id = id; + } + + + public TunerHostInfo url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Get url + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + + public TunerHostInfo type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TunerHostInfo deviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + return this; + } + + /** + * Get deviceId + * @return deviceId + */ + @javax.annotation.Nullable + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(@javax.annotation.Nullable String deviceId) { + this.deviceId = deviceId; + } + + + public TunerHostInfo friendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + /** + * Get friendlyName + * @return friendlyName + */ + @javax.annotation.Nullable + public String getFriendlyName() { + return friendlyName; + } + + public void setFriendlyName(@javax.annotation.Nullable String friendlyName) { + this.friendlyName = friendlyName; + } + + + public TunerHostInfo importFavoritesOnly(@javax.annotation.Nullable Boolean importFavoritesOnly) { + this.importFavoritesOnly = importFavoritesOnly; + return this; + } + + /** + * Get importFavoritesOnly + * @return importFavoritesOnly + */ + @javax.annotation.Nullable + public Boolean getImportFavoritesOnly() { + return importFavoritesOnly; + } + + public void setImportFavoritesOnly(@javax.annotation.Nullable Boolean importFavoritesOnly) { + this.importFavoritesOnly = importFavoritesOnly; + } + + + public TunerHostInfo allowHWTranscoding(@javax.annotation.Nullable Boolean allowHWTranscoding) { + this.allowHWTranscoding = allowHWTranscoding; + return this; + } + + /** + * Get allowHWTranscoding + * @return allowHWTranscoding + */ + @javax.annotation.Nullable + public Boolean getAllowHWTranscoding() { + return allowHWTranscoding; + } + + public void setAllowHWTranscoding(@javax.annotation.Nullable Boolean allowHWTranscoding) { + this.allowHWTranscoding = allowHWTranscoding; + } + + + public TunerHostInfo enableStreamLooping(@javax.annotation.Nullable Boolean enableStreamLooping) { + this.enableStreamLooping = enableStreamLooping; + return this; + } + + /** + * Get enableStreamLooping + * @return enableStreamLooping + */ + @javax.annotation.Nullable + public Boolean getEnableStreamLooping() { + return enableStreamLooping; + } + + public void setEnableStreamLooping(@javax.annotation.Nullable Boolean enableStreamLooping) { + this.enableStreamLooping = enableStreamLooping; + } + + + public TunerHostInfo source(@javax.annotation.Nullable String source) { + this.source = source; + return this; + } + + /** + * Get source + * @return source + */ + @javax.annotation.Nullable + public String getSource() { + return source; + } + + public void setSource(@javax.annotation.Nullable String source) { + this.source = source; + } + + + public TunerHostInfo tunerCount(@javax.annotation.Nullable Integer tunerCount) { + this.tunerCount = tunerCount; + return this; + } + + /** + * Get tunerCount + * @return tunerCount + */ + @javax.annotation.Nullable + public Integer getTunerCount() { + return tunerCount; + } + + public void setTunerCount(@javax.annotation.Nullable Integer tunerCount) { + this.tunerCount = tunerCount; + } + + + public TunerHostInfo userAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * Get userAgent + * @return userAgent + */ + @javax.annotation.Nullable + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(@javax.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TunerHostInfo tunerHostInfo = (TunerHostInfo) o; + return Objects.equals(this.id, tunerHostInfo.id) && + Objects.equals(this.url, tunerHostInfo.url) && + Objects.equals(this.type, tunerHostInfo.type) && + Objects.equals(this.deviceId, tunerHostInfo.deviceId) && + Objects.equals(this.friendlyName, tunerHostInfo.friendlyName) && + Objects.equals(this.importFavoritesOnly, tunerHostInfo.importFavoritesOnly) && + Objects.equals(this.allowHWTranscoding, tunerHostInfo.allowHWTranscoding) && + Objects.equals(this.enableStreamLooping, tunerHostInfo.enableStreamLooping) && + Objects.equals(this.source, tunerHostInfo.source) && + Objects.equals(this.tunerCount, tunerHostInfo.tunerCount) && + Objects.equals(this.userAgent, tunerHostInfo.userAgent); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, url, type, deviceId, friendlyName, importFavoritesOnly, allowHWTranscoding, enableStreamLooping, source, tunerCount, userAgent); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TunerHostInfo {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" deviceId: ").append(toIndentedString(deviceId)).append("\n"); + sb.append(" friendlyName: ").append(toIndentedString(friendlyName)).append("\n"); + sb.append(" importFavoritesOnly: ").append(toIndentedString(importFavoritesOnly)).append("\n"); + sb.append(" allowHWTranscoding: ").append(toIndentedString(allowHWTranscoding)).append("\n"); + sb.append(" enableStreamLooping: ").append(toIndentedString(enableStreamLooping)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" tunerCount: ").append(toIndentedString(tunerCount)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("Url"); + openapiFields.add("Type"); + openapiFields.add("DeviceId"); + openapiFields.add("FriendlyName"); + openapiFields.add("ImportFavoritesOnly"); + openapiFields.add("AllowHWTranscoding"); + openapiFields.add("EnableStreamLooping"); + openapiFields.add("Source"); + openapiFields.add("TunerCount"); + openapiFields.add("UserAgent"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TunerHostInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TunerHostInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TunerHostInfo is not found in the empty JSON string", TunerHostInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TunerHostInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TunerHostInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("Url") != null && !jsonObj.get("Url").isJsonNull()) && !jsonObj.get("Url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Url").toString())); + } + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + if ((jsonObj.get("DeviceId") != null && !jsonObj.get("DeviceId").isJsonNull()) && !jsonObj.get("DeviceId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `DeviceId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DeviceId").toString())); + } + if ((jsonObj.get("FriendlyName") != null && !jsonObj.get("FriendlyName").isJsonNull()) && !jsonObj.get("FriendlyName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `FriendlyName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("FriendlyName").toString())); + } + if ((jsonObj.get("Source") != null && !jsonObj.get("Source").isJsonNull()) && !jsonObj.get("Source").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Source").toString())); + } + if ((jsonObj.get("UserAgent") != null && !jsonObj.get("UserAgent").isJsonNull()) && !jsonObj.get("UserAgent").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserAgent` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserAgent").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TunerHostInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TunerHostInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TunerHostInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TunerHostInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TunerHostInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TunerHostInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TunerHostInfo + * @throws IOException if the JSON string is invalid with respect to TunerHostInfo + */ + public static TunerHostInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TunerHostInfo.class); + } + + /** + * Convert an instance of TunerHostInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TypeOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TypeOptions.java new file mode 100644 index 0000000000000..d428a9479d3c2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/TypeOptions.java @@ -0,0 +1,426 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.ImageOption; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * TypeOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class TypeOptions { + public static final String SERIALIZED_NAME_TYPE = "Type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_METADATA_FETCHERS = "MetadataFetchers"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHERS) + @javax.annotation.Nullable + private List metadataFetchers; + + public static final String SERIALIZED_NAME_METADATA_FETCHER_ORDER = "MetadataFetcherOrder"; + @SerializedName(SERIALIZED_NAME_METADATA_FETCHER_ORDER) + @javax.annotation.Nullable + private List metadataFetcherOrder; + + public static final String SERIALIZED_NAME_IMAGE_FETCHERS = "ImageFetchers"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHERS) + @javax.annotation.Nullable + private List imageFetchers; + + public static final String SERIALIZED_NAME_IMAGE_FETCHER_ORDER = "ImageFetcherOrder"; + @SerializedName(SERIALIZED_NAME_IMAGE_FETCHER_ORDER) + @javax.annotation.Nullable + private List imageFetcherOrder; + + public static final String SERIALIZED_NAME_IMAGE_OPTIONS = "ImageOptions"; + @SerializedName(SERIALIZED_NAME_IMAGE_OPTIONS) + @javax.annotation.Nullable + private List imageOptions; + + public TypeOptions() { + } + + public TypeOptions type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public TypeOptions metadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + return this; + } + + public TypeOptions addMetadataFetchersItem(String metadataFetchersItem) { + if (this.metadataFetchers == null) { + this.metadataFetchers = new ArrayList<>(); + } + this.metadataFetchers.add(metadataFetchersItem); + return this; + } + + /** + * Get metadataFetchers + * @return metadataFetchers + */ + @javax.annotation.Nullable + public List getMetadataFetchers() { + return metadataFetchers; + } + + public void setMetadataFetchers(@javax.annotation.Nullable List metadataFetchers) { + this.metadataFetchers = metadataFetchers; + } + + + public TypeOptions metadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + return this; + } + + public TypeOptions addMetadataFetcherOrderItem(String metadataFetcherOrderItem) { + if (this.metadataFetcherOrder == null) { + this.metadataFetcherOrder = new ArrayList<>(); + } + this.metadataFetcherOrder.add(metadataFetcherOrderItem); + return this; + } + + /** + * Get metadataFetcherOrder + * @return metadataFetcherOrder + */ + @javax.annotation.Nullable + public List getMetadataFetcherOrder() { + return metadataFetcherOrder; + } + + public void setMetadataFetcherOrder(@javax.annotation.Nullable List metadataFetcherOrder) { + this.metadataFetcherOrder = metadataFetcherOrder; + } + + + public TypeOptions imageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + return this; + } + + public TypeOptions addImageFetchersItem(String imageFetchersItem) { + if (this.imageFetchers == null) { + this.imageFetchers = new ArrayList<>(); + } + this.imageFetchers.add(imageFetchersItem); + return this; + } + + /** + * Get imageFetchers + * @return imageFetchers + */ + @javax.annotation.Nullable + public List getImageFetchers() { + return imageFetchers; + } + + public void setImageFetchers(@javax.annotation.Nullable List imageFetchers) { + this.imageFetchers = imageFetchers; + } + + + public TypeOptions imageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + return this; + } + + public TypeOptions addImageFetcherOrderItem(String imageFetcherOrderItem) { + if (this.imageFetcherOrder == null) { + this.imageFetcherOrder = new ArrayList<>(); + } + this.imageFetcherOrder.add(imageFetcherOrderItem); + return this; + } + + /** + * Get imageFetcherOrder + * @return imageFetcherOrder + */ + @javax.annotation.Nullable + public List getImageFetcherOrder() { + return imageFetcherOrder; + } + + public void setImageFetcherOrder(@javax.annotation.Nullable List imageFetcherOrder) { + this.imageFetcherOrder = imageFetcherOrder; + } + + + public TypeOptions imageOptions(@javax.annotation.Nullable List imageOptions) { + this.imageOptions = imageOptions; + return this; + } + + public TypeOptions addImageOptionsItem(ImageOption imageOptionsItem) { + if (this.imageOptions == null) { + this.imageOptions = new ArrayList<>(); + } + this.imageOptions.add(imageOptionsItem); + return this; + } + + /** + * Get imageOptions + * @return imageOptions + */ + @javax.annotation.Nullable + public List getImageOptions() { + return imageOptions; + } + + public void setImageOptions(@javax.annotation.Nullable List imageOptions) { + this.imageOptions = imageOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TypeOptions typeOptions = (TypeOptions) o; + return Objects.equals(this.type, typeOptions.type) && + Objects.equals(this.metadataFetchers, typeOptions.metadataFetchers) && + Objects.equals(this.metadataFetcherOrder, typeOptions.metadataFetcherOrder) && + Objects.equals(this.imageFetchers, typeOptions.imageFetchers) && + Objects.equals(this.imageFetcherOrder, typeOptions.imageFetcherOrder) && + Objects.equals(this.imageOptions, typeOptions.imageOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(type, metadataFetchers, metadataFetcherOrder, imageFetchers, imageFetcherOrder, imageOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TypeOptions {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" metadataFetchers: ").append(toIndentedString(metadataFetchers)).append("\n"); + sb.append(" metadataFetcherOrder: ").append(toIndentedString(metadataFetcherOrder)).append("\n"); + sb.append(" imageFetchers: ").append(toIndentedString(imageFetchers)).append("\n"); + sb.append(" imageFetcherOrder: ").append(toIndentedString(imageFetcherOrder)).append("\n"); + sb.append(" imageOptions: ").append(toIndentedString(imageOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("MetadataFetchers"); + openapiFields.add("MetadataFetcherOrder"); + openapiFields.add("ImageFetchers"); + openapiFields.add("ImageFetcherOrder"); + openapiFields.add("ImageOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TypeOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TypeOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TypeOptions is not found in the empty JSON string", TypeOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TypeOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `TypeOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Type") != null && !jsonObj.get("Type").isJsonNull()) && !jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Type").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetchers") != null && !jsonObj.get("MetadataFetchers").isJsonNull() && !jsonObj.get("MetadataFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MetadataFetcherOrder") != null && !jsonObj.get("MetadataFetcherOrder").isJsonNull() && !jsonObj.get("MetadataFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MetadataFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("MetadataFetcherOrder").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetchers") != null && !jsonObj.get("ImageFetchers").isJsonNull() && !jsonObj.get("ImageFetchers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetchers` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetchers").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageFetcherOrder") != null && !jsonObj.get("ImageFetcherOrder").isJsonNull() && !jsonObj.get("ImageFetcherOrder").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageFetcherOrder` to be an array in the JSON string but got `%s`", jsonObj.get("ImageFetcherOrder").toString())); + } + if (jsonObj.get("ImageOptions") != null && !jsonObj.get("ImageOptions").isJsonNull()) { + JsonArray jsonArrayimageOptions = jsonObj.getAsJsonArray("ImageOptions"); + if (jsonArrayimageOptions != null) { + // ensure the json data is an array + if (!jsonObj.get("ImageOptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `ImageOptions` to be an array in the JSON string but got `%s`", jsonObj.get("ImageOptions").toString())); + } + + // validate the optional field `ImageOptions` (array) + for (int i = 0; i < jsonArrayimageOptions.size(); i++) { + ImageOption.validateJsonElement(jsonArrayimageOptions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TypeOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TypeOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TypeOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TypeOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TypeOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of TypeOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of TypeOptions + * @throws IOException if the JSON string is invalid with respect to TypeOptions + */ + public static TypeOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TypeOptions.class); + } + + /** + * Convert an instance of TypeOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UnratedItem.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UnratedItem.java new file mode 100644 index 0000000000000..e1c45018e86cd --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UnratedItem.java @@ -0,0 +1,92 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * An enum representing an unrated item. + */ +@JsonAdapter(UnratedItem.Adapter.class) +public enum UnratedItem { + + MOVIE("Movie"), + + TRAILER("Trailer"), + + SERIES("Series"), + + MUSIC("Music"), + + BOOK("Book"), + + LIVE_TV_CHANNEL("LiveTvChannel"), + + LIVE_TV_PROGRAM("LiveTvProgram"), + + CHANNEL_CONTENT("ChannelContent"), + + OTHER("Other"); + + private String value; + + UnratedItem(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static UnratedItem fromValue(String value) { + for (UnratedItem b : UnratedItem.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final UnratedItem enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public UnratedItem read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return UnratedItem.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + UnratedItem.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java new file mode 100644 index 0000000000000..8ed6bf0747a48 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateLibraryOptionsDto.java @@ -0,0 +1,251 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update library options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateLibraryOptionsDto { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public UpdateLibraryOptionsDto() { + } + + public UpdateLibraryOptionsDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the library item id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public UpdateLibraryOptionsDto libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Gets or sets library options. + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateLibraryOptionsDto updateLibraryOptionsDto = (UpdateLibraryOptionsDto) o; + return Objects.equals(this.id, updateLibraryOptionsDto.id) && + Objects.equals(this.libraryOptions, updateLibraryOptionsDto.libraryOptions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, libraryOptions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateLibraryOptionsDto {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Id"); + openapiFields.add("LibraryOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateLibraryOptionsDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateLibraryOptionsDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateLibraryOptionsDto is not found in the empty JSON string", UpdateLibraryOptionsDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateLibraryOptionsDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateLibraryOptionsDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateLibraryOptionsDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateLibraryOptionsDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateLibraryOptionsDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateLibraryOptionsDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateLibraryOptionsDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateLibraryOptionsDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateLibraryOptionsDto + * @throws IOException if the JSON string is invalid with respect to UpdateLibraryOptionsDto + */ + public static UpdateLibraryOptionsDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateLibraryOptionsDto.class); + } + + /** + * Convert an instance of UpdateLibraryOptionsDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java new file mode 100644 index 0000000000000..b1dc9658a4ce2 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateMediaPathRequestDto.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.client.model.MediaPathInfo; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Update library options dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateMediaPathRequestDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_PATH_INFO = "PathInfo"; + @SerializedName(SERIALIZED_NAME_PATH_INFO) + @javax.annotation.Nonnull + private MediaPathInfo pathInfo; + + public UpdateMediaPathRequestDto() { + } + + public UpdateMediaPathRequestDto name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the library name. + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public UpdateMediaPathRequestDto pathInfo(@javax.annotation.Nonnull MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + return this; + } + + /** + * Gets or sets library folder path information. + * @return pathInfo + */ + @javax.annotation.Nonnull + public MediaPathInfo getPathInfo() { + return pathInfo; + } + + public void setPathInfo(@javax.annotation.Nonnull MediaPathInfo pathInfo) { + this.pathInfo = pathInfo; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMediaPathRequestDto updateMediaPathRequestDto = (UpdateMediaPathRequestDto) o; + return Objects.equals(this.name, updateMediaPathRequestDto.name) && + Objects.equals(this.pathInfo, updateMediaPathRequestDto.pathInfo); + } + + @Override + public int hashCode() { + return Objects.hash(name, pathInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateMediaPathRequestDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" pathInfo: ").append(toIndentedString(pathInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("PathInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Name"); + openapiRequiredFields.add("PathInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateMediaPathRequestDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateMediaPathRequestDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateMediaPathRequestDto is not found in the empty JSON string", UpdateMediaPathRequestDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateMediaPathRequestDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateMediaPathRequestDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateMediaPathRequestDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // validate the required field `PathInfo` + MediaPathInfo.validateJsonElement(jsonObj.get("PathInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateMediaPathRequestDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateMediaPathRequestDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateMediaPathRequestDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateMediaPathRequestDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateMediaPathRequestDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateMediaPathRequestDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateMediaPathRequestDto + * @throws IOException if the JSON string is invalid with respect to UpdateMediaPathRequestDto + */ + public static UpdateMediaPathRequestDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateMediaPathRequestDto.class); + } + + /** + * Convert an instance of UpdateMediaPathRequestDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserEasyPassword.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserEasyPassword.java new file mode 100644 index 0000000000000..c7d9bbe718db7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserEasyPassword.java @@ -0,0 +1,275 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The update user easy password request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateUserEasyPassword { + public static final String SERIALIZED_NAME_NEW_PASSWORD = "NewPassword"; + @SerializedName(SERIALIZED_NAME_NEW_PASSWORD) + @javax.annotation.Nullable + private String newPassword; + + public static final String SERIALIZED_NAME_NEW_PW = "NewPw"; + @SerializedName(SERIALIZED_NAME_NEW_PW) + @javax.annotation.Nullable + private String newPw; + + public static final String SERIALIZED_NAME_RESET_PASSWORD = "ResetPassword"; + @SerializedName(SERIALIZED_NAME_RESET_PASSWORD) + @javax.annotation.Nullable + private Boolean resetPassword; + + public UpdateUserEasyPassword() { + } + + public UpdateUserEasyPassword newPassword(@javax.annotation.Nullable String newPassword) { + this.newPassword = newPassword; + return this; + } + + /** + * Gets or sets the new sha1-hashed password. + * @return newPassword + */ + @javax.annotation.Nullable + public String getNewPassword() { + return newPassword; + } + + public void setNewPassword(@javax.annotation.Nullable String newPassword) { + this.newPassword = newPassword; + } + + + public UpdateUserEasyPassword newPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + return this; + } + + /** + * Gets or sets the new password. + * @return newPw + */ + @javax.annotation.Nullable + public String getNewPw() { + return newPw; + } + + public void setNewPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + } + + + public UpdateUserEasyPassword resetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + return this; + } + + /** + * Gets or sets a value indicating whether to reset the password. + * @return resetPassword + */ + @javax.annotation.Nullable + public Boolean getResetPassword() { + return resetPassword; + } + + public void setResetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserEasyPassword updateUserEasyPassword = (UpdateUserEasyPassword) o; + return Objects.equals(this.newPassword, updateUserEasyPassword.newPassword) && + Objects.equals(this.newPw, updateUserEasyPassword.newPw) && + Objects.equals(this.resetPassword, updateUserEasyPassword.resetPassword); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(newPassword, newPw, resetPassword); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateUserEasyPassword {\n"); + sb.append(" newPassword: ").append(toIndentedString(newPassword)).append("\n"); + sb.append(" newPw: ").append(toIndentedString(newPw)).append("\n"); + sb.append(" resetPassword: ").append(toIndentedString(resetPassword)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("NewPassword"); + openapiFields.add("NewPw"); + openapiFields.add("ResetPassword"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateUserEasyPassword + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateUserEasyPassword.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateUserEasyPassword is not found in the empty JSON string", UpdateUserEasyPassword.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateUserEasyPassword.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateUserEasyPassword` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("NewPassword") != null && !jsonObj.get("NewPassword").isJsonNull()) && !jsonObj.get("NewPassword").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NewPassword` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NewPassword").toString())); + } + if ((jsonObj.get("NewPw") != null && !jsonObj.get("NewPw").isJsonNull()) && !jsonObj.get("NewPw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NewPw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NewPw").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateUserEasyPassword.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateUserEasyPassword' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateUserEasyPassword.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateUserEasyPassword value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateUserEasyPassword read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateUserEasyPassword given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateUserEasyPassword + * @throws IOException if the JSON string is invalid with respect to UpdateUserEasyPassword + */ + public static UpdateUserEasyPassword fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateUserEasyPassword.class); + } + + /** + * Convert an instance of UpdateUserEasyPassword to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserPassword.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserPassword.java new file mode 100644 index 0000000000000..03edf524f3f1b --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UpdateUserPassword.java @@ -0,0 +1,305 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * The update user password request body. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UpdateUserPassword { + public static final String SERIALIZED_NAME_CURRENT_PASSWORD = "CurrentPassword"; + @SerializedName(SERIALIZED_NAME_CURRENT_PASSWORD) + @javax.annotation.Nullable + private String currentPassword; + + public static final String SERIALIZED_NAME_CURRENT_PW = "CurrentPw"; + @SerializedName(SERIALIZED_NAME_CURRENT_PW) + @javax.annotation.Nullable + private String currentPw; + + public static final String SERIALIZED_NAME_NEW_PW = "NewPw"; + @SerializedName(SERIALIZED_NAME_NEW_PW) + @javax.annotation.Nullable + private String newPw; + + public static final String SERIALIZED_NAME_RESET_PASSWORD = "ResetPassword"; + @SerializedName(SERIALIZED_NAME_RESET_PASSWORD) + @javax.annotation.Nullable + private Boolean resetPassword; + + public UpdateUserPassword() { + } + + public UpdateUserPassword currentPassword(@javax.annotation.Nullable String currentPassword) { + this.currentPassword = currentPassword; + return this; + } + + /** + * Gets or sets the current sha1-hashed password. + * @return currentPassword + */ + @javax.annotation.Nullable + public String getCurrentPassword() { + return currentPassword; + } + + public void setCurrentPassword(@javax.annotation.Nullable String currentPassword) { + this.currentPassword = currentPassword; + } + + + public UpdateUserPassword currentPw(@javax.annotation.Nullable String currentPw) { + this.currentPw = currentPw; + return this; + } + + /** + * Gets or sets the current plain text password. + * @return currentPw + */ + @javax.annotation.Nullable + public String getCurrentPw() { + return currentPw; + } + + public void setCurrentPw(@javax.annotation.Nullable String currentPw) { + this.currentPw = currentPw; + } + + + public UpdateUserPassword newPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + return this; + } + + /** + * Gets or sets the new plain text password. + * @return newPw + */ + @javax.annotation.Nullable + public String getNewPw() { + return newPw; + } + + public void setNewPw(@javax.annotation.Nullable String newPw) { + this.newPw = newPw; + } + + + public UpdateUserPassword resetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + return this; + } + + /** + * Gets or sets a value indicating whether to reset the password. + * @return resetPassword + */ + @javax.annotation.Nullable + public Boolean getResetPassword() { + return resetPassword; + } + + public void setResetPassword(@javax.annotation.Nullable Boolean resetPassword) { + this.resetPassword = resetPassword; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserPassword updateUserPassword = (UpdateUserPassword) o; + return Objects.equals(this.currentPassword, updateUserPassword.currentPassword) && + Objects.equals(this.currentPw, updateUserPassword.currentPw) && + Objects.equals(this.newPw, updateUserPassword.newPw) && + Objects.equals(this.resetPassword, updateUserPassword.resetPassword); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(currentPassword, currentPw, newPw, resetPassword); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateUserPassword {\n"); + sb.append(" currentPassword: ").append(toIndentedString(currentPassword)).append("\n"); + sb.append(" currentPw: ").append(toIndentedString(currentPw)).append("\n"); + sb.append(" newPw: ").append(toIndentedString(newPw)).append("\n"); + sb.append(" resetPassword: ").append(toIndentedString(resetPassword)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CurrentPassword"); + openapiFields.add("CurrentPw"); + openapiFields.add("NewPw"); + openapiFields.add("ResetPassword"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateUserPassword + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateUserPassword.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateUserPassword is not found in the empty JSON string", UpdateUserPassword.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateUserPassword.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateUserPassword` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("CurrentPassword") != null && !jsonObj.get("CurrentPassword").isJsonNull()) && !jsonObj.get("CurrentPassword").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CurrentPassword` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CurrentPassword").toString())); + } + if ((jsonObj.get("CurrentPw") != null && !jsonObj.get("CurrentPw").isJsonNull()) && !jsonObj.get("CurrentPw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `CurrentPw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("CurrentPw").toString())); + } + if ((jsonObj.get("NewPw") != null && !jsonObj.get("NewPw").isJsonNull()) && !jsonObj.get("NewPw").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `NewPw` to be a primitive type in the JSON string but got `%s`", jsonObj.get("NewPw").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateUserPassword.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateUserPassword' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateUserPassword.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateUserPassword value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateUserPassword read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateUserPassword given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateUserPassword + * @throws IOException if the JSON string is invalid with respect to UpdateUserPassword + */ + public static UpdateUserPassword fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateUserPassword.class); + } + + /** + * Convert an instance of UpdateUserPassword to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java new file mode 100644 index 0000000000000..a2e5fb3c33d5d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UploadSubtitleDto.java @@ -0,0 +1,304 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Upload subtitles dto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UploadSubtitleDto { + public static final String SERIALIZED_NAME_LANGUAGE = "Language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + @javax.annotation.Nonnull + private String language; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nonnull + private String format; + + public static final String SERIALIZED_NAME_IS_FORCED = "IsForced"; + @SerializedName(SERIALIZED_NAME_IS_FORCED) + @javax.annotation.Nonnull + private Boolean isForced; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public UploadSubtitleDto() { + } + + public UploadSubtitleDto language(@javax.annotation.Nonnull String language) { + this.language = language; + return this; + } + + /** + * Gets or sets the subtitle language. + * @return language + */ + @javax.annotation.Nonnull + public String getLanguage() { + return language; + } + + public void setLanguage(@javax.annotation.Nonnull String language) { + this.language = language; + } + + + public UploadSubtitleDto format(@javax.annotation.Nonnull String format) { + this.format = format; + return this; + } + + /** + * Gets or sets the subtitle format. + * @return format + */ + @javax.annotation.Nonnull + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nonnull String format) { + this.format = format; + } + + + public UploadSubtitleDto isForced(@javax.annotation.Nonnull Boolean isForced) { + this.isForced = isForced; + return this; + } + + /** + * Gets or sets a value indicating whether the subtitle is forced. + * @return isForced + */ + @javax.annotation.Nonnull + public Boolean getIsForced() { + return isForced; + } + + public void setIsForced(@javax.annotation.Nonnull Boolean isForced) { + this.isForced = isForced; + } + + + public UploadSubtitleDto data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Gets or sets the subtitle data. + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadSubtitleDto uploadSubtitleDto = (UploadSubtitleDto) o; + return Objects.equals(this.language, uploadSubtitleDto.language) && + Objects.equals(this.format, uploadSubtitleDto.format) && + Objects.equals(this.isForced, uploadSubtitleDto.isForced) && + Objects.equals(this.data, uploadSubtitleDto.data); + } + + @Override + public int hashCode() { + return Objects.hash(language, format, isForced, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UploadSubtitleDto {\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" isForced: ").append(toIndentedString(isForced)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Language"); + openapiFields.add("Format"); + openapiFields.add("IsForced"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Language"); + openapiRequiredFields.add("Format"); + openapiRequiredFields.add("IsForced"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UploadSubtitleDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UploadSubtitleDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UploadSubtitleDto is not found in the empty JSON string", UploadSubtitleDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UploadSubtitleDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UploadSubtitleDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UploadSubtitleDto.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Language").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Language` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Language").toString())); + } + if (!jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Format` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Format").toString())); + } + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Data` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UploadSubtitleDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UploadSubtitleDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UploadSubtitleDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UploadSubtitleDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UploadSubtitleDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UploadSubtitleDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UploadSubtitleDto + * @throws IOException if the JSON string is invalid with respect to UploadSubtitleDto + */ + public static UploadSubtitleDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UploadSubtitleDto.class); + } + + /** + * Convert an instance of UploadSubtitleDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserConfiguration.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserConfiguration.java new file mode 100644 index 0000000000000..ec1a84d34646c --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserConfiguration.java @@ -0,0 +1,654 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.SubtitlePlaybackMode; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserConfiguration. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserConfiguration { + public static final String SERIALIZED_NAME_AUDIO_LANGUAGE_PREFERENCE = "AudioLanguagePreference"; + @SerializedName(SERIALIZED_NAME_AUDIO_LANGUAGE_PREFERENCE) + @javax.annotation.Nullable + private String audioLanguagePreference; + + public static final String SERIALIZED_NAME_PLAY_DEFAULT_AUDIO_TRACK = "PlayDefaultAudioTrack"; + @SerializedName(SERIALIZED_NAME_PLAY_DEFAULT_AUDIO_TRACK) + @javax.annotation.Nullable + private Boolean playDefaultAudioTrack; + + public static final String SERIALIZED_NAME_SUBTITLE_LANGUAGE_PREFERENCE = "SubtitleLanguagePreference"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_LANGUAGE_PREFERENCE) + @javax.annotation.Nullable + private String subtitleLanguagePreference; + + public static final String SERIALIZED_NAME_DISPLAY_MISSING_EPISODES = "DisplayMissingEpisodes"; + @SerializedName(SERIALIZED_NAME_DISPLAY_MISSING_EPISODES) + @javax.annotation.Nullable + private Boolean displayMissingEpisodes; + + public static final String SERIALIZED_NAME_GROUPED_FOLDERS = "GroupedFolders"; + @SerializedName(SERIALIZED_NAME_GROUPED_FOLDERS) + @javax.annotation.Nullable + private List groupedFolders = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SUBTITLE_MODE = "SubtitleMode"; + @SerializedName(SERIALIZED_NAME_SUBTITLE_MODE) + @javax.annotation.Nullable + private SubtitlePlaybackMode subtitleMode; + + public static final String SERIALIZED_NAME_DISPLAY_COLLECTIONS_VIEW = "DisplayCollectionsView"; + @SerializedName(SERIALIZED_NAME_DISPLAY_COLLECTIONS_VIEW) + @javax.annotation.Nullable + private Boolean displayCollectionsView; + + public static final String SERIALIZED_NAME_ENABLE_LOCAL_PASSWORD = "EnableLocalPassword"; + @SerializedName(SERIALIZED_NAME_ENABLE_LOCAL_PASSWORD) + @javax.annotation.Nullable + private Boolean enableLocalPassword; + + public static final String SERIALIZED_NAME_ORDERED_VIEWS = "OrderedViews"; + @SerializedName(SERIALIZED_NAME_ORDERED_VIEWS) + @javax.annotation.Nullable + private List orderedViews = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LATEST_ITEMS_EXCLUDES = "LatestItemsExcludes"; + @SerializedName(SERIALIZED_NAME_LATEST_ITEMS_EXCLUDES) + @javax.annotation.Nullable + private List latestItemsExcludes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MY_MEDIA_EXCLUDES = "MyMediaExcludes"; + @SerializedName(SERIALIZED_NAME_MY_MEDIA_EXCLUDES) + @javax.annotation.Nullable + private List myMediaExcludes = new ArrayList<>(); + + public static final String SERIALIZED_NAME_HIDE_PLAYED_IN_LATEST = "HidePlayedInLatest"; + @SerializedName(SERIALIZED_NAME_HIDE_PLAYED_IN_LATEST) + @javax.annotation.Nullable + private Boolean hidePlayedInLatest; + + public static final String SERIALIZED_NAME_REMEMBER_AUDIO_SELECTIONS = "RememberAudioSelections"; + @SerializedName(SERIALIZED_NAME_REMEMBER_AUDIO_SELECTIONS) + @javax.annotation.Nullable + private Boolean rememberAudioSelections; + + public static final String SERIALIZED_NAME_REMEMBER_SUBTITLE_SELECTIONS = "RememberSubtitleSelections"; + @SerializedName(SERIALIZED_NAME_REMEMBER_SUBTITLE_SELECTIONS) + @javax.annotation.Nullable + private Boolean rememberSubtitleSelections; + + public static final String SERIALIZED_NAME_ENABLE_NEXT_EPISODE_AUTO_PLAY = "EnableNextEpisodeAutoPlay"; + @SerializedName(SERIALIZED_NAME_ENABLE_NEXT_EPISODE_AUTO_PLAY) + @javax.annotation.Nullable + private Boolean enableNextEpisodeAutoPlay; + + public UserConfiguration() { + } + + public UserConfiguration audioLanguagePreference(@javax.annotation.Nullable String audioLanguagePreference) { + this.audioLanguagePreference = audioLanguagePreference; + return this; + } + + /** + * Gets or sets the audio language preference. + * @return audioLanguagePreference + */ + @javax.annotation.Nullable + public String getAudioLanguagePreference() { + return audioLanguagePreference; + } + + public void setAudioLanguagePreference(@javax.annotation.Nullable String audioLanguagePreference) { + this.audioLanguagePreference = audioLanguagePreference; + } + + + public UserConfiguration playDefaultAudioTrack(@javax.annotation.Nullable Boolean playDefaultAudioTrack) { + this.playDefaultAudioTrack = playDefaultAudioTrack; + return this; + } + + /** + * Gets or sets a value indicating whether [play default audio track]. + * @return playDefaultAudioTrack + */ + @javax.annotation.Nullable + public Boolean getPlayDefaultAudioTrack() { + return playDefaultAudioTrack; + } + + public void setPlayDefaultAudioTrack(@javax.annotation.Nullable Boolean playDefaultAudioTrack) { + this.playDefaultAudioTrack = playDefaultAudioTrack; + } + + + public UserConfiguration subtitleLanguagePreference(@javax.annotation.Nullable String subtitleLanguagePreference) { + this.subtitleLanguagePreference = subtitleLanguagePreference; + return this; + } + + /** + * Gets or sets the subtitle language preference. + * @return subtitleLanguagePreference + */ + @javax.annotation.Nullable + public String getSubtitleLanguagePreference() { + return subtitleLanguagePreference; + } + + public void setSubtitleLanguagePreference(@javax.annotation.Nullable String subtitleLanguagePreference) { + this.subtitleLanguagePreference = subtitleLanguagePreference; + } + + + public UserConfiguration displayMissingEpisodes(@javax.annotation.Nullable Boolean displayMissingEpisodes) { + this.displayMissingEpisodes = displayMissingEpisodes; + return this; + } + + /** + * Get displayMissingEpisodes + * @return displayMissingEpisodes + */ + @javax.annotation.Nullable + public Boolean getDisplayMissingEpisodes() { + return displayMissingEpisodes; + } + + public void setDisplayMissingEpisodes(@javax.annotation.Nullable Boolean displayMissingEpisodes) { + this.displayMissingEpisodes = displayMissingEpisodes; + } + + + public UserConfiguration groupedFolders(@javax.annotation.Nullable List groupedFolders) { + this.groupedFolders = groupedFolders; + return this; + } + + public UserConfiguration addGroupedFoldersItem(String groupedFoldersItem) { + if (this.groupedFolders == null) { + this.groupedFolders = new ArrayList<>(); + } + this.groupedFolders.add(groupedFoldersItem); + return this; + } + + /** + * Get groupedFolders + * @return groupedFolders + */ + @javax.annotation.Nullable + public List getGroupedFolders() { + return groupedFolders; + } + + public void setGroupedFolders(@javax.annotation.Nullable List groupedFolders) { + this.groupedFolders = groupedFolders; + } + + + public UserConfiguration subtitleMode(@javax.annotation.Nullable SubtitlePlaybackMode subtitleMode) { + this.subtitleMode = subtitleMode; + return this; + } + + /** + * An enum representing a subtitle playback mode. + * @return subtitleMode + */ + @javax.annotation.Nullable + public SubtitlePlaybackMode getSubtitleMode() { + return subtitleMode; + } + + public void setSubtitleMode(@javax.annotation.Nullable SubtitlePlaybackMode subtitleMode) { + this.subtitleMode = subtitleMode; + } + + + public UserConfiguration displayCollectionsView(@javax.annotation.Nullable Boolean displayCollectionsView) { + this.displayCollectionsView = displayCollectionsView; + return this; + } + + /** + * Get displayCollectionsView + * @return displayCollectionsView + */ + @javax.annotation.Nullable + public Boolean getDisplayCollectionsView() { + return displayCollectionsView; + } + + public void setDisplayCollectionsView(@javax.annotation.Nullable Boolean displayCollectionsView) { + this.displayCollectionsView = displayCollectionsView; + } + + + public UserConfiguration enableLocalPassword(@javax.annotation.Nullable Boolean enableLocalPassword) { + this.enableLocalPassword = enableLocalPassword; + return this; + } + + /** + * Get enableLocalPassword + * @return enableLocalPassword + */ + @javax.annotation.Nullable + public Boolean getEnableLocalPassword() { + return enableLocalPassword; + } + + public void setEnableLocalPassword(@javax.annotation.Nullable Boolean enableLocalPassword) { + this.enableLocalPassword = enableLocalPassword; + } + + + public UserConfiguration orderedViews(@javax.annotation.Nullable List orderedViews) { + this.orderedViews = orderedViews; + return this; + } + + public UserConfiguration addOrderedViewsItem(String orderedViewsItem) { + if (this.orderedViews == null) { + this.orderedViews = new ArrayList<>(); + } + this.orderedViews.add(orderedViewsItem); + return this; + } + + /** + * Get orderedViews + * @return orderedViews + */ + @javax.annotation.Nullable + public List getOrderedViews() { + return orderedViews; + } + + public void setOrderedViews(@javax.annotation.Nullable List orderedViews) { + this.orderedViews = orderedViews; + } + + + public UserConfiguration latestItemsExcludes(@javax.annotation.Nullable List latestItemsExcludes) { + this.latestItemsExcludes = latestItemsExcludes; + return this; + } + + public UserConfiguration addLatestItemsExcludesItem(String latestItemsExcludesItem) { + if (this.latestItemsExcludes == null) { + this.latestItemsExcludes = new ArrayList<>(); + } + this.latestItemsExcludes.add(latestItemsExcludesItem); + return this; + } + + /** + * Get latestItemsExcludes + * @return latestItemsExcludes + */ + @javax.annotation.Nullable + public List getLatestItemsExcludes() { + return latestItemsExcludes; + } + + public void setLatestItemsExcludes(@javax.annotation.Nullable List latestItemsExcludes) { + this.latestItemsExcludes = latestItemsExcludes; + } + + + public UserConfiguration myMediaExcludes(@javax.annotation.Nullable List myMediaExcludes) { + this.myMediaExcludes = myMediaExcludes; + return this; + } + + public UserConfiguration addMyMediaExcludesItem(String myMediaExcludesItem) { + if (this.myMediaExcludes == null) { + this.myMediaExcludes = new ArrayList<>(); + } + this.myMediaExcludes.add(myMediaExcludesItem); + return this; + } + + /** + * Get myMediaExcludes + * @return myMediaExcludes + */ + @javax.annotation.Nullable + public List getMyMediaExcludes() { + return myMediaExcludes; + } + + public void setMyMediaExcludes(@javax.annotation.Nullable List myMediaExcludes) { + this.myMediaExcludes = myMediaExcludes; + } + + + public UserConfiguration hidePlayedInLatest(@javax.annotation.Nullable Boolean hidePlayedInLatest) { + this.hidePlayedInLatest = hidePlayedInLatest; + return this; + } + + /** + * Get hidePlayedInLatest + * @return hidePlayedInLatest + */ + @javax.annotation.Nullable + public Boolean getHidePlayedInLatest() { + return hidePlayedInLatest; + } + + public void setHidePlayedInLatest(@javax.annotation.Nullable Boolean hidePlayedInLatest) { + this.hidePlayedInLatest = hidePlayedInLatest; + } + + + public UserConfiguration rememberAudioSelections(@javax.annotation.Nullable Boolean rememberAudioSelections) { + this.rememberAudioSelections = rememberAudioSelections; + return this; + } + + /** + * Get rememberAudioSelections + * @return rememberAudioSelections + */ + @javax.annotation.Nullable + public Boolean getRememberAudioSelections() { + return rememberAudioSelections; + } + + public void setRememberAudioSelections(@javax.annotation.Nullable Boolean rememberAudioSelections) { + this.rememberAudioSelections = rememberAudioSelections; + } + + + public UserConfiguration rememberSubtitleSelections(@javax.annotation.Nullable Boolean rememberSubtitleSelections) { + this.rememberSubtitleSelections = rememberSubtitleSelections; + return this; + } + + /** + * Get rememberSubtitleSelections + * @return rememberSubtitleSelections + */ + @javax.annotation.Nullable + public Boolean getRememberSubtitleSelections() { + return rememberSubtitleSelections; + } + + public void setRememberSubtitleSelections(@javax.annotation.Nullable Boolean rememberSubtitleSelections) { + this.rememberSubtitleSelections = rememberSubtitleSelections; + } + + + public UserConfiguration enableNextEpisodeAutoPlay(@javax.annotation.Nullable Boolean enableNextEpisodeAutoPlay) { + this.enableNextEpisodeAutoPlay = enableNextEpisodeAutoPlay; + return this; + } + + /** + * Get enableNextEpisodeAutoPlay + * @return enableNextEpisodeAutoPlay + */ + @javax.annotation.Nullable + public Boolean getEnableNextEpisodeAutoPlay() { + return enableNextEpisodeAutoPlay; + } + + public void setEnableNextEpisodeAutoPlay(@javax.annotation.Nullable Boolean enableNextEpisodeAutoPlay) { + this.enableNextEpisodeAutoPlay = enableNextEpisodeAutoPlay; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserConfiguration userConfiguration = (UserConfiguration) o; + return Objects.equals(this.audioLanguagePreference, userConfiguration.audioLanguagePreference) && + Objects.equals(this.playDefaultAudioTrack, userConfiguration.playDefaultAudioTrack) && + Objects.equals(this.subtitleLanguagePreference, userConfiguration.subtitleLanguagePreference) && + Objects.equals(this.displayMissingEpisodes, userConfiguration.displayMissingEpisodes) && + Objects.equals(this.groupedFolders, userConfiguration.groupedFolders) && + Objects.equals(this.subtitleMode, userConfiguration.subtitleMode) && + Objects.equals(this.displayCollectionsView, userConfiguration.displayCollectionsView) && + Objects.equals(this.enableLocalPassword, userConfiguration.enableLocalPassword) && + Objects.equals(this.orderedViews, userConfiguration.orderedViews) && + Objects.equals(this.latestItemsExcludes, userConfiguration.latestItemsExcludes) && + Objects.equals(this.myMediaExcludes, userConfiguration.myMediaExcludes) && + Objects.equals(this.hidePlayedInLatest, userConfiguration.hidePlayedInLatest) && + Objects.equals(this.rememberAudioSelections, userConfiguration.rememberAudioSelections) && + Objects.equals(this.rememberSubtitleSelections, userConfiguration.rememberSubtitleSelections) && + Objects.equals(this.enableNextEpisodeAutoPlay, userConfiguration.enableNextEpisodeAutoPlay); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(audioLanguagePreference, playDefaultAudioTrack, subtitleLanguagePreference, displayMissingEpisodes, groupedFolders, subtitleMode, displayCollectionsView, enableLocalPassword, orderedViews, latestItemsExcludes, myMediaExcludes, hidePlayedInLatest, rememberAudioSelections, rememberSubtitleSelections, enableNextEpisodeAutoPlay); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserConfiguration {\n"); + sb.append(" audioLanguagePreference: ").append(toIndentedString(audioLanguagePreference)).append("\n"); + sb.append(" playDefaultAudioTrack: ").append(toIndentedString(playDefaultAudioTrack)).append("\n"); + sb.append(" subtitleLanguagePreference: ").append(toIndentedString(subtitleLanguagePreference)).append("\n"); + sb.append(" displayMissingEpisodes: ").append(toIndentedString(displayMissingEpisodes)).append("\n"); + sb.append(" groupedFolders: ").append(toIndentedString(groupedFolders)).append("\n"); + sb.append(" subtitleMode: ").append(toIndentedString(subtitleMode)).append("\n"); + sb.append(" displayCollectionsView: ").append(toIndentedString(displayCollectionsView)).append("\n"); + sb.append(" enableLocalPassword: ").append(toIndentedString(enableLocalPassword)).append("\n"); + sb.append(" orderedViews: ").append(toIndentedString(orderedViews)).append("\n"); + sb.append(" latestItemsExcludes: ").append(toIndentedString(latestItemsExcludes)).append("\n"); + sb.append(" myMediaExcludes: ").append(toIndentedString(myMediaExcludes)).append("\n"); + sb.append(" hidePlayedInLatest: ").append(toIndentedString(hidePlayedInLatest)).append("\n"); + sb.append(" rememberAudioSelections: ").append(toIndentedString(rememberAudioSelections)).append("\n"); + sb.append(" rememberSubtitleSelections: ").append(toIndentedString(rememberSubtitleSelections)).append("\n"); + sb.append(" enableNextEpisodeAutoPlay: ").append(toIndentedString(enableNextEpisodeAutoPlay)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AudioLanguagePreference"); + openapiFields.add("PlayDefaultAudioTrack"); + openapiFields.add("SubtitleLanguagePreference"); + openapiFields.add("DisplayMissingEpisodes"); + openapiFields.add("GroupedFolders"); + openapiFields.add("SubtitleMode"); + openapiFields.add("DisplayCollectionsView"); + openapiFields.add("EnableLocalPassword"); + openapiFields.add("OrderedViews"); + openapiFields.add("LatestItemsExcludes"); + openapiFields.add("MyMediaExcludes"); + openapiFields.add("HidePlayedInLatest"); + openapiFields.add("RememberAudioSelections"); + openapiFields.add("RememberSubtitleSelections"); + openapiFields.add("EnableNextEpisodeAutoPlay"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserConfiguration is not found in the empty JSON string", UserConfiguration.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserConfiguration.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserConfiguration` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("AudioLanguagePreference") != null && !jsonObj.get("AudioLanguagePreference").isJsonNull()) && !jsonObj.get("AudioLanguagePreference").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AudioLanguagePreference` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AudioLanguagePreference").toString())); + } + if ((jsonObj.get("SubtitleLanguagePreference") != null && !jsonObj.get("SubtitleLanguagePreference").isJsonNull()) && !jsonObj.get("SubtitleLanguagePreference").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `SubtitleLanguagePreference` to be a primitive type in the JSON string but got `%s`", jsonObj.get("SubtitleLanguagePreference").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("GroupedFolders") != null && !jsonObj.get("GroupedFolders").isJsonNull() && !jsonObj.get("GroupedFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `GroupedFolders` to be an array in the JSON string but got `%s`", jsonObj.get("GroupedFolders").toString())); + } + // validate the optional field `SubtitleMode` + if (jsonObj.get("SubtitleMode") != null && !jsonObj.get("SubtitleMode").isJsonNull()) { + SubtitlePlaybackMode.validateJsonElement(jsonObj.get("SubtitleMode")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("OrderedViews") != null && !jsonObj.get("OrderedViews").isJsonNull() && !jsonObj.get("OrderedViews").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `OrderedViews` to be an array in the JSON string but got `%s`", jsonObj.get("OrderedViews").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("LatestItemsExcludes") != null && !jsonObj.get("LatestItemsExcludes").isJsonNull() && !jsonObj.get("LatestItemsExcludes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `LatestItemsExcludes` to be an array in the JSON string but got `%s`", jsonObj.get("LatestItemsExcludes").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("MyMediaExcludes") != null && !jsonObj.get("MyMediaExcludes").isJsonNull() && !jsonObj.get("MyMediaExcludes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `MyMediaExcludes` to be an array in the JSON string but got `%s`", jsonObj.get("MyMediaExcludes").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserConfiguration value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserConfiguration + * @throws IOException if the JSON string is invalid with respect to UserConfiguration + */ + public static UserConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserConfiguration.class); + } + + /** + * Convert an instance of UserConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserDto.java new file mode 100644 index 0000000000000..26a171922f799 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserDto.java @@ -0,0 +1,593 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.client.model.UserConfiguration; +import org.openapitools.client.model.UserPolicy; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserDto { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_SERVER_ID = "ServerId"; + @SerializedName(SERIALIZED_NAME_SERVER_ID) + @javax.annotation.Nullable + private String serverId; + + public static final String SERIALIZED_NAME_SERVER_NAME = "ServerName"; + @SerializedName(SERIALIZED_NAME_SERVER_NAME) + @javax.annotation.Nullable + private String serverName; + + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_TAG = "PrimaryImageTag"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_TAG) + @javax.annotation.Nullable + private String primaryImageTag; + + public static final String SERIALIZED_NAME_HAS_PASSWORD = "HasPassword"; + @SerializedName(SERIALIZED_NAME_HAS_PASSWORD) + @javax.annotation.Nullable + private Boolean hasPassword; + + public static final String SERIALIZED_NAME_HAS_CONFIGURED_PASSWORD = "HasConfiguredPassword"; + @SerializedName(SERIALIZED_NAME_HAS_CONFIGURED_PASSWORD) + @javax.annotation.Nullable + private Boolean hasConfiguredPassword; + + public static final String SERIALIZED_NAME_HAS_CONFIGURED_EASY_PASSWORD = "HasConfiguredEasyPassword"; + @SerializedName(SERIALIZED_NAME_HAS_CONFIGURED_EASY_PASSWORD) + @javax.annotation.Nullable + private Boolean hasConfiguredEasyPassword; + + public static final String SERIALIZED_NAME_ENABLE_AUTO_LOGIN = "EnableAutoLogin"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUTO_LOGIN) + @javax.annotation.Nullable + private Boolean enableAutoLogin; + + public static final String SERIALIZED_NAME_LAST_LOGIN_DATE = "LastLoginDate"; + @SerializedName(SERIALIZED_NAME_LAST_LOGIN_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastLoginDate; + + public static final String SERIALIZED_NAME_LAST_ACTIVITY_DATE = "LastActivityDate"; + @SerializedName(SERIALIZED_NAME_LAST_ACTIVITY_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastActivityDate; + + public static final String SERIALIZED_NAME_CONFIGURATION = "Configuration"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION) + @javax.annotation.Nullable + private UserConfiguration _configuration; + + public static final String SERIALIZED_NAME_POLICY = "Policy"; + @SerializedName(SERIALIZED_NAME_POLICY) + @javax.annotation.Nullable + private UserPolicy policy; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO = "PrimaryImageAspectRatio"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ASPECT_RATIO) + @javax.annotation.Nullable + private Double primaryImageAspectRatio; + + public UserDto() { + } + + public UserDto name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public UserDto serverId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + return this; + } + + /** + * Gets or sets the server identifier. + * @return serverId + */ + @javax.annotation.Nullable + public String getServerId() { + return serverId; + } + + public void setServerId(@javax.annotation.Nullable String serverId) { + this.serverId = serverId; + } + + + public UserDto serverName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + return this; + } + + /** + * Gets or sets the name of the server. This is not used by the server and is for client-side usage only. + * @return serverName + */ + @javax.annotation.Nullable + public String getServerName() { + return serverName; + } + + public void setServerName(@javax.annotation.Nullable String serverName) { + this.serverName = serverName; + } + + + public UserDto id(@javax.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Gets or sets the id. + * @return id + */ + @javax.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@javax.annotation.Nullable UUID id) { + this.id = id; + } + + + public UserDto primaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + return this; + } + + /** + * Gets or sets the primary image tag. + * @return primaryImageTag + */ + @javax.annotation.Nullable + public String getPrimaryImageTag() { + return primaryImageTag; + } + + public void setPrimaryImageTag(@javax.annotation.Nullable String primaryImageTag) { + this.primaryImageTag = primaryImageTag; + } + + + public UserDto hasPassword(@javax.annotation.Nullable Boolean hasPassword) { + this.hasPassword = hasPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has password. + * @return hasPassword + */ + @javax.annotation.Nullable + public Boolean getHasPassword() { + return hasPassword; + } + + public void setHasPassword(@javax.annotation.Nullable Boolean hasPassword) { + this.hasPassword = hasPassword; + } + + + public UserDto hasConfiguredPassword(@javax.annotation.Nullable Boolean hasConfiguredPassword) { + this.hasConfiguredPassword = hasConfiguredPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has configured password. + * @return hasConfiguredPassword + */ + @javax.annotation.Nullable + public Boolean getHasConfiguredPassword() { + return hasConfiguredPassword; + } + + public void setHasConfiguredPassword(@javax.annotation.Nullable Boolean hasConfiguredPassword) { + this.hasConfiguredPassword = hasConfiguredPassword; + } + + + public UserDto hasConfiguredEasyPassword(@javax.annotation.Nullable Boolean hasConfiguredEasyPassword) { + this.hasConfiguredEasyPassword = hasConfiguredEasyPassword; + return this; + } + + /** + * Gets or sets a value indicating whether this instance has configured easy password. + * @return hasConfiguredEasyPassword + */ + @javax.annotation.Nullable + public Boolean getHasConfiguredEasyPassword() { + return hasConfiguredEasyPassword; + } + + public void setHasConfiguredEasyPassword(@javax.annotation.Nullable Boolean hasConfiguredEasyPassword) { + this.hasConfiguredEasyPassword = hasConfiguredEasyPassword; + } + + + public UserDto enableAutoLogin(@javax.annotation.Nullable Boolean enableAutoLogin) { + this.enableAutoLogin = enableAutoLogin; + return this; + } + + /** + * Gets or sets whether async login is enabled or not. + * @return enableAutoLogin + */ + @javax.annotation.Nullable + public Boolean getEnableAutoLogin() { + return enableAutoLogin; + } + + public void setEnableAutoLogin(@javax.annotation.Nullable Boolean enableAutoLogin) { + this.enableAutoLogin = enableAutoLogin; + } + + + public UserDto lastLoginDate(@javax.annotation.Nullable OffsetDateTime lastLoginDate) { + this.lastLoginDate = lastLoginDate; + return this; + } + + /** + * Gets or sets the last login date. + * @return lastLoginDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastLoginDate() { + return lastLoginDate; + } + + public void setLastLoginDate(@javax.annotation.Nullable OffsetDateTime lastLoginDate) { + this.lastLoginDate = lastLoginDate; + } + + + public UserDto lastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + return this; + } + + /** + * Gets or sets the last activity date. + * @return lastActivityDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastActivityDate() { + return lastActivityDate; + } + + public void setLastActivityDate(@javax.annotation.Nullable OffsetDateTime lastActivityDate) { + this.lastActivityDate = lastActivityDate; + } + + + public UserDto _configuration(@javax.annotation.Nullable UserConfiguration _configuration) { + this._configuration = _configuration; + return this; + } + + /** + * Gets or sets the configuration. + * @return _configuration + */ + @javax.annotation.Nullable + public UserConfiguration getConfiguration() { + return _configuration; + } + + public void setConfiguration(@javax.annotation.Nullable UserConfiguration _configuration) { + this._configuration = _configuration; + } + + + public UserDto policy(@javax.annotation.Nullable UserPolicy policy) { + this.policy = policy; + return this; + } + + /** + * Gets or sets the policy. + * @return policy + */ + @javax.annotation.Nullable + public UserPolicy getPolicy() { + return policy; + } + + public void setPolicy(@javax.annotation.Nullable UserPolicy policy) { + this.policy = policy; + } + + + public UserDto primaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + return this; + } + + /** + * Gets or sets the primary image aspect ratio. + * @return primaryImageAspectRatio + */ + @javax.annotation.Nullable + public Double getPrimaryImageAspectRatio() { + return primaryImageAspectRatio; + } + + public void setPrimaryImageAspectRatio(@javax.annotation.Nullable Double primaryImageAspectRatio) { + this.primaryImageAspectRatio = primaryImageAspectRatio; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserDto userDto = (UserDto) o; + return Objects.equals(this.name, userDto.name) && + Objects.equals(this.serverId, userDto.serverId) && + Objects.equals(this.serverName, userDto.serverName) && + Objects.equals(this.id, userDto.id) && + Objects.equals(this.primaryImageTag, userDto.primaryImageTag) && + Objects.equals(this.hasPassword, userDto.hasPassword) && + Objects.equals(this.hasConfiguredPassword, userDto.hasConfiguredPassword) && + Objects.equals(this.hasConfiguredEasyPassword, userDto.hasConfiguredEasyPassword) && + Objects.equals(this.enableAutoLogin, userDto.enableAutoLogin) && + Objects.equals(this.lastLoginDate, userDto.lastLoginDate) && + Objects.equals(this.lastActivityDate, userDto.lastActivityDate) && + Objects.equals(this._configuration, userDto._configuration) && + Objects.equals(this.policy, userDto.policy) && + Objects.equals(this.primaryImageAspectRatio, userDto.primaryImageAspectRatio); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, serverId, serverName, id, primaryImageTag, hasPassword, hasConfiguredPassword, hasConfiguredEasyPassword, enableAutoLogin, lastLoginDate, lastActivityDate, _configuration, policy, primaryImageAspectRatio); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserDto {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" serverId: ").append(toIndentedString(serverId)).append("\n"); + sb.append(" serverName: ").append(toIndentedString(serverName)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" primaryImageTag: ").append(toIndentedString(primaryImageTag)).append("\n"); + sb.append(" hasPassword: ").append(toIndentedString(hasPassword)).append("\n"); + sb.append(" hasConfiguredPassword: ").append(toIndentedString(hasConfiguredPassword)).append("\n"); + sb.append(" hasConfiguredEasyPassword: ").append(toIndentedString(hasConfiguredEasyPassword)).append("\n"); + sb.append(" enableAutoLogin: ").append(toIndentedString(enableAutoLogin)).append("\n"); + sb.append(" lastLoginDate: ").append(toIndentedString(lastLoginDate)).append("\n"); + sb.append(" lastActivityDate: ").append(toIndentedString(lastActivityDate)).append("\n"); + sb.append(" _configuration: ").append(toIndentedString(_configuration)).append("\n"); + sb.append(" policy: ").append(toIndentedString(policy)).append("\n"); + sb.append(" primaryImageAspectRatio: ").append(toIndentedString(primaryImageAspectRatio)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("ServerId"); + openapiFields.add("ServerName"); + openapiFields.add("Id"); + openapiFields.add("PrimaryImageTag"); + openapiFields.add("HasPassword"); + openapiFields.add("HasConfiguredPassword"); + openapiFields.add("HasConfiguredEasyPassword"); + openapiFields.add("EnableAutoLogin"); + openapiFields.add("LastLoginDate"); + openapiFields.add("LastActivityDate"); + openapiFields.add("Configuration"); + openapiFields.add("Policy"); + openapiFields.add("PrimaryImageAspectRatio"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserDto is not found in the empty JSON string", UserDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("ServerId") != null && !jsonObj.get("ServerId").isJsonNull()) && !jsonObj.get("ServerId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerId").toString())); + } + if ((jsonObj.get("ServerName") != null && !jsonObj.get("ServerName").isJsonNull()) && !jsonObj.get("ServerName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ServerName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ServerName").toString())); + } + if ((jsonObj.get("Id") != null && !jsonObj.get("Id").isJsonNull()) && !jsonObj.get("Id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Id").toString())); + } + if ((jsonObj.get("PrimaryImageTag") != null && !jsonObj.get("PrimaryImageTag").isJsonNull()) && !jsonObj.get("PrimaryImageTag").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageTag` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageTag").toString())); + } + // validate the optional field `Configuration` + if (jsonObj.get("Configuration") != null && !jsonObj.get("Configuration").isJsonNull()) { + UserConfiguration.validateJsonElement(jsonObj.get("Configuration")); + } + // validate the optional field `Policy` + if (jsonObj.get("Policy") != null && !jsonObj.get("Policy").isJsonNull()) { + UserPolicy.validateJsonElement(jsonObj.get("Policy")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserDto + * @throws IOException if the JSON string is invalid with respect to UserDto + */ + public static UserDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserDto.class); + } + + /** + * Convert an instance of UserDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserItemDataDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserItemDataDto.java new file mode 100644 index 0000000000000..c48f3438daa1d --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserItemDataDto.java @@ -0,0 +1,492 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UserItemDataDto. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserItemDataDto { + public static final String SERIALIZED_NAME_RATING = "Rating"; + @SerializedName(SERIALIZED_NAME_RATING) + @javax.annotation.Nullable + private Double rating; + + public static final String SERIALIZED_NAME_PLAYED_PERCENTAGE = "PlayedPercentage"; + @SerializedName(SERIALIZED_NAME_PLAYED_PERCENTAGE) + @javax.annotation.Nullable + private Double playedPercentage; + + public static final String SERIALIZED_NAME_UNPLAYED_ITEM_COUNT = "UnplayedItemCount"; + @SerializedName(SERIALIZED_NAME_UNPLAYED_ITEM_COUNT) + @javax.annotation.Nullable + private Integer unplayedItemCount; + + public static final String SERIALIZED_NAME_PLAYBACK_POSITION_TICKS = "PlaybackPositionTicks"; + @SerializedName(SERIALIZED_NAME_PLAYBACK_POSITION_TICKS) + @javax.annotation.Nullable + private Long playbackPositionTicks; + + public static final String SERIALIZED_NAME_PLAY_COUNT = "PlayCount"; + @SerializedName(SERIALIZED_NAME_PLAY_COUNT) + @javax.annotation.Nullable + private Integer playCount; + + public static final String SERIALIZED_NAME_IS_FAVORITE = "IsFavorite"; + @SerializedName(SERIALIZED_NAME_IS_FAVORITE) + @javax.annotation.Nullable + private Boolean isFavorite; + + public static final String SERIALIZED_NAME_LIKES = "Likes"; + @SerializedName(SERIALIZED_NAME_LIKES) + @javax.annotation.Nullable + private Boolean likes; + + public static final String SERIALIZED_NAME_LAST_PLAYED_DATE = "LastPlayedDate"; + @SerializedName(SERIALIZED_NAME_LAST_PLAYED_DATE) + @javax.annotation.Nullable + private OffsetDateTime lastPlayedDate; + + public static final String SERIALIZED_NAME_PLAYED = "Played"; + @SerializedName(SERIALIZED_NAME_PLAYED) + @javax.annotation.Nullable + private Boolean played; + + public static final String SERIALIZED_NAME_KEY = "Key"; + @SerializedName(SERIALIZED_NAME_KEY) + @javax.annotation.Nullable + private String key; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public UserItemDataDto() { + } + + public UserItemDataDto rating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + return this; + } + + /** + * Gets or sets the rating. + * @return rating + */ + @javax.annotation.Nullable + public Double getRating() { + return rating; + } + + public void setRating(@javax.annotation.Nullable Double rating) { + this.rating = rating; + } + + + public UserItemDataDto playedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + return this; + } + + /** + * Gets or sets the played percentage. + * @return playedPercentage + */ + @javax.annotation.Nullable + public Double getPlayedPercentage() { + return playedPercentage; + } + + public void setPlayedPercentage(@javax.annotation.Nullable Double playedPercentage) { + this.playedPercentage = playedPercentage; + } + + + public UserItemDataDto unplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + return this; + } + + /** + * Gets or sets the unplayed item count. + * @return unplayedItemCount + */ + @javax.annotation.Nullable + public Integer getUnplayedItemCount() { + return unplayedItemCount; + } + + public void setUnplayedItemCount(@javax.annotation.Nullable Integer unplayedItemCount) { + this.unplayedItemCount = unplayedItemCount; + } + + + public UserItemDataDto playbackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + return this; + } + + /** + * Gets or sets the playback position ticks. + * @return playbackPositionTicks + */ + @javax.annotation.Nullable + public Long getPlaybackPositionTicks() { + return playbackPositionTicks; + } + + public void setPlaybackPositionTicks(@javax.annotation.Nullable Long playbackPositionTicks) { + this.playbackPositionTicks = playbackPositionTicks; + } + + + public UserItemDataDto playCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + return this; + } + + /** + * Gets or sets the play count. + * @return playCount + */ + @javax.annotation.Nullable + public Integer getPlayCount() { + return playCount; + } + + public void setPlayCount(@javax.annotation.Nullable Integer playCount) { + this.playCount = playCount; + } + + + public UserItemDataDto isFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is favorite. + * @return isFavorite + */ + @javax.annotation.Nullable + public Boolean getIsFavorite() { + return isFavorite; + } + + public void setIsFavorite(@javax.annotation.Nullable Boolean isFavorite) { + this.isFavorite = isFavorite; + } + + + public UserItemDataDto likes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. + * @return likes + */ + @javax.annotation.Nullable + public Boolean getLikes() { + return likes; + } + + public void setLikes(@javax.annotation.Nullable Boolean likes) { + this.likes = likes; + } + + + public UserItemDataDto lastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + return this; + } + + /** + * Gets or sets the last played date. + * @return lastPlayedDate + */ + @javax.annotation.Nullable + public OffsetDateTime getLastPlayedDate() { + return lastPlayedDate; + } + + public void setLastPlayedDate(@javax.annotation.Nullable OffsetDateTime lastPlayedDate) { + this.lastPlayedDate = lastPlayedDate; + } + + + public UserItemDataDto played(@javax.annotation.Nullable Boolean played) { + this.played = played; + return this; + } + + /** + * Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + * @return played + */ + @javax.annotation.Nullable + public Boolean getPlayed() { + return played; + } + + public void setPlayed(@javax.annotation.Nullable Boolean played) { + this.played = played; + } + + + public UserItemDataDto key(@javax.annotation.Nullable String key) { + this.key = key; + return this; + } + + /** + * Gets or sets the key. + * @return key + */ + @javax.annotation.Nullable + public String getKey() { + return key; + } + + public void setKey(@javax.annotation.Nullable String key) { + this.key = key; + } + + + public UserItemDataDto itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserItemDataDto userItemDataDto = (UserItemDataDto) o; + return Objects.equals(this.rating, userItemDataDto.rating) && + Objects.equals(this.playedPercentage, userItemDataDto.playedPercentage) && + Objects.equals(this.unplayedItemCount, userItemDataDto.unplayedItemCount) && + Objects.equals(this.playbackPositionTicks, userItemDataDto.playbackPositionTicks) && + Objects.equals(this.playCount, userItemDataDto.playCount) && + Objects.equals(this.isFavorite, userItemDataDto.isFavorite) && + Objects.equals(this.likes, userItemDataDto.likes) && + Objects.equals(this.lastPlayedDate, userItemDataDto.lastPlayedDate) && + Objects.equals(this.played, userItemDataDto.played) && + Objects.equals(this.key, userItemDataDto.key) && + Objects.equals(this.itemId, userItemDataDto.itemId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(rating, playedPercentage, unplayedItemCount, playbackPositionTicks, playCount, isFavorite, likes, lastPlayedDate, played, key, itemId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserItemDataDto {\n"); + sb.append(" rating: ").append(toIndentedString(rating)).append("\n"); + sb.append(" playedPercentage: ").append(toIndentedString(playedPercentage)).append("\n"); + sb.append(" unplayedItemCount: ").append(toIndentedString(unplayedItemCount)).append("\n"); + sb.append(" playbackPositionTicks: ").append(toIndentedString(playbackPositionTicks)).append("\n"); + sb.append(" playCount: ").append(toIndentedString(playCount)).append("\n"); + sb.append(" isFavorite: ").append(toIndentedString(isFavorite)).append("\n"); + sb.append(" likes: ").append(toIndentedString(likes)).append("\n"); + sb.append(" lastPlayedDate: ").append(toIndentedString(lastPlayedDate)).append("\n"); + sb.append(" played: ").append(toIndentedString(played)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Rating"); + openapiFields.add("PlayedPercentage"); + openapiFields.add("UnplayedItemCount"); + openapiFields.add("PlaybackPositionTicks"); + openapiFields.add("PlayCount"); + openapiFields.add("IsFavorite"); + openapiFields.add("Likes"); + openapiFields.add("LastPlayedDate"); + openapiFields.add("Played"); + openapiFields.add("Key"); + openapiFields.add("ItemId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserItemDataDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserItemDataDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserItemDataDto is not found in the empty JSON string", UserItemDataDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserItemDataDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserItemDataDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Key") != null && !jsonObj.get("Key").isJsonNull()) && !jsonObj.get("Key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Key").toString())); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserItemDataDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserItemDataDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserItemDataDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserItemDataDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserItemDataDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserItemDataDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserItemDataDto + * @throws IOException if the JSON string is invalid with respect to UserItemDataDto + */ + public static UserItemDataDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserItemDataDto.class); + } + + /** + * Convert an instance of UserItemDataDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserPolicy.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserPolicy.java new file mode 100644 index 0000000000000..681945deae804 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UserPolicy.java @@ -0,0 +1,1375 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.client.model.AccessSchedule; +import org.openapitools.client.model.SyncPlayUserAccessType; +import org.openapitools.client.model.UnratedItem; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * UserPolicy + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UserPolicy { + public static final String SERIALIZED_NAME_IS_ADMINISTRATOR = "IsAdministrator"; + @SerializedName(SERIALIZED_NAME_IS_ADMINISTRATOR) + @javax.annotation.Nullable + private Boolean isAdministrator; + + public static final String SERIALIZED_NAME_IS_HIDDEN = "IsHidden"; + @SerializedName(SERIALIZED_NAME_IS_HIDDEN) + @javax.annotation.Nullable + private Boolean isHidden; + + public static final String SERIALIZED_NAME_IS_DISABLED = "IsDisabled"; + @SerializedName(SERIALIZED_NAME_IS_DISABLED) + @javax.annotation.Nullable + private Boolean isDisabled; + + public static final String SERIALIZED_NAME_MAX_PARENTAL_RATING = "MaxParentalRating"; + @SerializedName(SERIALIZED_NAME_MAX_PARENTAL_RATING) + @javax.annotation.Nullable + private Integer maxParentalRating; + + public static final String SERIALIZED_NAME_BLOCKED_TAGS = "BlockedTags"; + @SerializedName(SERIALIZED_NAME_BLOCKED_TAGS) + @javax.annotation.Nullable + private List blockedTags; + + public static final String SERIALIZED_NAME_ENABLE_USER_PREFERENCE_ACCESS = "EnableUserPreferenceAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_USER_PREFERENCE_ACCESS) + @javax.annotation.Nullable + private Boolean enableUserPreferenceAccess; + + public static final String SERIALIZED_NAME_ACCESS_SCHEDULES = "AccessSchedules"; + @SerializedName(SERIALIZED_NAME_ACCESS_SCHEDULES) + @javax.annotation.Nullable + private List accessSchedules; + + public static final String SERIALIZED_NAME_BLOCK_UNRATED_ITEMS = "BlockUnratedItems"; + @SerializedName(SERIALIZED_NAME_BLOCK_UNRATED_ITEMS) + @javax.annotation.Nullable + private List blockUnratedItems; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_CONTROL_OF_OTHER_USERS = "EnableRemoteControlOfOtherUsers"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_CONTROL_OF_OTHER_USERS) + @javax.annotation.Nullable + private Boolean enableRemoteControlOfOtherUsers; + + public static final String SERIALIZED_NAME_ENABLE_SHARED_DEVICE_CONTROL = "EnableSharedDeviceControl"; + @SerializedName(SERIALIZED_NAME_ENABLE_SHARED_DEVICE_CONTROL) + @javax.annotation.Nullable + private Boolean enableSharedDeviceControl; + + public static final String SERIALIZED_NAME_ENABLE_REMOTE_ACCESS = "EnableRemoteAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_REMOTE_ACCESS) + @javax.annotation.Nullable + private Boolean enableRemoteAccess; + + public static final String SERIALIZED_NAME_ENABLE_LIVE_TV_MANAGEMENT = "EnableLiveTvManagement"; + @SerializedName(SERIALIZED_NAME_ENABLE_LIVE_TV_MANAGEMENT) + @javax.annotation.Nullable + private Boolean enableLiveTvManagement; + + public static final String SERIALIZED_NAME_ENABLE_LIVE_TV_ACCESS = "EnableLiveTvAccess"; + @SerializedName(SERIALIZED_NAME_ENABLE_LIVE_TV_ACCESS) + @javax.annotation.Nullable + private Boolean enableLiveTvAccess; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_PLAYBACK = "EnableMediaPlayback"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_PLAYBACK) + @javax.annotation.Nullable + private Boolean enableMediaPlayback; + + public static final String SERIALIZED_NAME_ENABLE_AUDIO_PLAYBACK_TRANSCODING = "EnableAudioPlaybackTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_AUDIO_PLAYBACK_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableAudioPlaybackTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_VIDEO_PLAYBACK_TRANSCODING = "EnableVideoPlaybackTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_VIDEO_PLAYBACK_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableVideoPlaybackTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_PLAYBACK_REMUXING = "EnablePlaybackRemuxing"; + @SerializedName(SERIALIZED_NAME_ENABLE_PLAYBACK_REMUXING) + @javax.annotation.Nullable + private Boolean enablePlaybackRemuxing; + + public static final String SERIALIZED_NAME_FORCE_REMOTE_SOURCE_TRANSCODING = "ForceRemoteSourceTranscoding"; + @SerializedName(SERIALIZED_NAME_FORCE_REMOTE_SOURCE_TRANSCODING) + @javax.annotation.Nullable + private Boolean forceRemoteSourceTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DELETION = "EnableContentDeletion"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DELETION) + @javax.annotation.Nullable + private Boolean enableContentDeletion; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DELETION_FROM_FOLDERS = "EnableContentDeletionFromFolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DELETION_FROM_FOLDERS) + @javax.annotation.Nullable + private List enableContentDeletionFromFolders; + + public static final String SERIALIZED_NAME_ENABLE_CONTENT_DOWNLOADING = "EnableContentDownloading"; + @SerializedName(SERIALIZED_NAME_ENABLE_CONTENT_DOWNLOADING) + @javax.annotation.Nullable + private Boolean enableContentDownloading; + + public static final String SERIALIZED_NAME_ENABLE_SYNC_TRANSCODING = "EnableSyncTranscoding"; + @SerializedName(SERIALIZED_NAME_ENABLE_SYNC_TRANSCODING) + @javax.annotation.Nullable + private Boolean enableSyncTranscoding; + + public static final String SERIALIZED_NAME_ENABLE_MEDIA_CONVERSION = "EnableMediaConversion"; + @SerializedName(SERIALIZED_NAME_ENABLE_MEDIA_CONVERSION) + @javax.annotation.Nullable + private Boolean enableMediaConversion; + + public static final String SERIALIZED_NAME_ENABLED_DEVICES = "EnabledDevices"; + @SerializedName(SERIALIZED_NAME_ENABLED_DEVICES) + @javax.annotation.Nullable + private List enabledDevices; + + public static final String SERIALIZED_NAME_ENABLE_ALL_DEVICES = "EnableAllDevices"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_DEVICES) + @javax.annotation.Nullable + private Boolean enableAllDevices; + + public static final String SERIALIZED_NAME_ENABLED_CHANNELS = "EnabledChannels"; + @SerializedName(SERIALIZED_NAME_ENABLED_CHANNELS) + @javax.annotation.Nullable + private List enabledChannels; + + public static final String SERIALIZED_NAME_ENABLE_ALL_CHANNELS = "EnableAllChannels"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_CHANNELS) + @javax.annotation.Nullable + private Boolean enableAllChannels; + + public static final String SERIALIZED_NAME_ENABLED_FOLDERS = "EnabledFolders"; + @SerializedName(SERIALIZED_NAME_ENABLED_FOLDERS) + @javax.annotation.Nullable + private List enabledFolders; + + public static final String SERIALIZED_NAME_ENABLE_ALL_FOLDERS = "EnableAllFolders"; + @SerializedName(SERIALIZED_NAME_ENABLE_ALL_FOLDERS) + @javax.annotation.Nullable + private Boolean enableAllFolders; + + public static final String SERIALIZED_NAME_INVALID_LOGIN_ATTEMPT_COUNT = "InvalidLoginAttemptCount"; + @SerializedName(SERIALIZED_NAME_INVALID_LOGIN_ATTEMPT_COUNT) + @javax.annotation.Nullable + private Integer invalidLoginAttemptCount; + + public static final String SERIALIZED_NAME_LOGIN_ATTEMPTS_BEFORE_LOCKOUT = "LoginAttemptsBeforeLockout"; + @SerializedName(SERIALIZED_NAME_LOGIN_ATTEMPTS_BEFORE_LOCKOUT) + @javax.annotation.Nullable + private Integer loginAttemptsBeforeLockout; + + public static final String SERIALIZED_NAME_MAX_ACTIVE_SESSIONS = "MaxActiveSessions"; + @SerializedName(SERIALIZED_NAME_MAX_ACTIVE_SESSIONS) + @javax.annotation.Nullable + private Integer maxActiveSessions; + + public static final String SERIALIZED_NAME_ENABLE_PUBLIC_SHARING = "EnablePublicSharing"; + @SerializedName(SERIALIZED_NAME_ENABLE_PUBLIC_SHARING) + @javax.annotation.Nullable + private Boolean enablePublicSharing; + + public static final String SERIALIZED_NAME_BLOCKED_MEDIA_FOLDERS = "BlockedMediaFolders"; + @SerializedName(SERIALIZED_NAME_BLOCKED_MEDIA_FOLDERS) + @javax.annotation.Nullable + private List blockedMediaFolders; + + public static final String SERIALIZED_NAME_BLOCKED_CHANNELS = "BlockedChannels"; + @SerializedName(SERIALIZED_NAME_BLOCKED_CHANNELS) + @javax.annotation.Nullable + private List blockedChannels; + + public static final String SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT = "RemoteClientBitrateLimit"; + @SerializedName(SERIALIZED_NAME_REMOTE_CLIENT_BITRATE_LIMIT) + @javax.annotation.Nullable + private Integer remoteClientBitrateLimit; + + public static final String SERIALIZED_NAME_AUTHENTICATION_PROVIDER_ID = "AuthenticationProviderId"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATION_PROVIDER_ID) + @javax.annotation.Nullable + private String authenticationProviderId; + + public static final String SERIALIZED_NAME_PASSWORD_RESET_PROVIDER_ID = "PasswordResetProviderId"; + @SerializedName(SERIALIZED_NAME_PASSWORD_RESET_PROVIDER_ID) + @javax.annotation.Nullable + private String passwordResetProviderId; + + public static final String SERIALIZED_NAME_SYNC_PLAY_ACCESS = "SyncPlayAccess"; + @SerializedName(SERIALIZED_NAME_SYNC_PLAY_ACCESS) + @javax.annotation.Nullable + private SyncPlayUserAccessType syncPlayAccess; + + public UserPolicy() { + } + + public UserPolicy isAdministrator(@javax.annotation.Nullable Boolean isAdministrator) { + this.isAdministrator = isAdministrator; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is administrator. + * @return isAdministrator + */ + @javax.annotation.Nullable + public Boolean getIsAdministrator() { + return isAdministrator; + } + + public void setIsAdministrator(@javax.annotation.Nullable Boolean isAdministrator) { + this.isAdministrator = isAdministrator; + } + + + public UserPolicy isHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is hidden. + * @return isHidden + */ + @javax.annotation.Nullable + public Boolean getIsHidden() { + return isHidden; + } + + public void setIsHidden(@javax.annotation.Nullable Boolean isHidden) { + this.isHidden = isHidden; + } + + + public UserPolicy isDisabled(@javax.annotation.Nullable Boolean isDisabled) { + this.isDisabled = isDisabled; + return this; + } + + /** + * Gets or sets a value indicating whether this instance is disabled. + * @return isDisabled + */ + @javax.annotation.Nullable + public Boolean getIsDisabled() { + return isDisabled; + } + + public void setIsDisabled(@javax.annotation.Nullable Boolean isDisabled) { + this.isDisabled = isDisabled; + } + + + public UserPolicy maxParentalRating(@javax.annotation.Nullable Integer maxParentalRating) { + this.maxParentalRating = maxParentalRating; + return this; + } + + /** + * Gets or sets the max parental rating. + * @return maxParentalRating + */ + @javax.annotation.Nullable + public Integer getMaxParentalRating() { + return maxParentalRating; + } + + public void setMaxParentalRating(@javax.annotation.Nullable Integer maxParentalRating) { + this.maxParentalRating = maxParentalRating; + } + + + public UserPolicy blockedTags(@javax.annotation.Nullable List blockedTags) { + this.blockedTags = blockedTags; + return this; + } + + public UserPolicy addBlockedTagsItem(String blockedTagsItem) { + if (this.blockedTags == null) { + this.blockedTags = new ArrayList<>(); + } + this.blockedTags.add(blockedTagsItem); + return this; + } + + /** + * Get blockedTags + * @return blockedTags + */ + @javax.annotation.Nullable + public List getBlockedTags() { + return blockedTags; + } + + public void setBlockedTags(@javax.annotation.Nullable List blockedTags) { + this.blockedTags = blockedTags; + } + + + public UserPolicy enableUserPreferenceAccess(@javax.annotation.Nullable Boolean enableUserPreferenceAccess) { + this.enableUserPreferenceAccess = enableUserPreferenceAccess; + return this; + } + + /** + * Get enableUserPreferenceAccess + * @return enableUserPreferenceAccess + */ + @javax.annotation.Nullable + public Boolean getEnableUserPreferenceAccess() { + return enableUserPreferenceAccess; + } + + public void setEnableUserPreferenceAccess(@javax.annotation.Nullable Boolean enableUserPreferenceAccess) { + this.enableUserPreferenceAccess = enableUserPreferenceAccess; + } + + + public UserPolicy accessSchedules(@javax.annotation.Nullable List accessSchedules) { + this.accessSchedules = accessSchedules; + return this; + } + + public UserPolicy addAccessSchedulesItem(AccessSchedule accessSchedulesItem) { + if (this.accessSchedules == null) { + this.accessSchedules = new ArrayList<>(); + } + this.accessSchedules.add(accessSchedulesItem); + return this; + } + + /** + * Get accessSchedules + * @return accessSchedules + */ + @javax.annotation.Nullable + public List getAccessSchedules() { + return accessSchedules; + } + + public void setAccessSchedules(@javax.annotation.Nullable List accessSchedules) { + this.accessSchedules = accessSchedules; + } + + + public UserPolicy blockUnratedItems(@javax.annotation.Nullable List blockUnratedItems) { + this.blockUnratedItems = blockUnratedItems; + return this; + } + + public UserPolicy addBlockUnratedItemsItem(UnratedItem blockUnratedItemsItem) { + if (this.blockUnratedItems == null) { + this.blockUnratedItems = new ArrayList<>(); + } + this.blockUnratedItems.add(blockUnratedItemsItem); + return this; + } + + /** + * Get blockUnratedItems + * @return blockUnratedItems + */ + @javax.annotation.Nullable + public List getBlockUnratedItems() { + return blockUnratedItems; + } + + public void setBlockUnratedItems(@javax.annotation.Nullable List blockUnratedItems) { + this.blockUnratedItems = blockUnratedItems; + } + + + public UserPolicy enableRemoteControlOfOtherUsers(@javax.annotation.Nullable Boolean enableRemoteControlOfOtherUsers) { + this.enableRemoteControlOfOtherUsers = enableRemoteControlOfOtherUsers; + return this; + } + + /** + * Get enableRemoteControlOfOtherUsers + * @return enableRemoteControlOfOtherUsers + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteControlOfOtherUsers() { + return enableRemoteControlOfOtherUsers; + } + + public void setEnableRemoteControlOfOtherUsers(@javax.annotation.Nullable Boolean enableRemoteControlOfOtherUsers) { + this.enableRemoteControlOfOtherUsers = enableRemoteControlOfOtherUsers; + } + + + public UserPolicy enableSharedDeviceControl(@javax.annotation.Nullable Boolean enableSharedDeviceControl) { + this.enableSharedDeviceControl = enableSharedDeviceControl; + return this; + } + + /** + * Get enableSharedDeviceControl + * @return enableSharedDeviceControl + */ + @javax.annotation.Nullable + public Boolean getEnableSharedDeviceControl() { + return enableSharedDeviceControl; + } + + public void setEnableSharedDeviceControl(@javax.annotation.Nullable Boolean enableSharedDeviceControl) { + this.enableSharedDeviceControl = enableSharedDeviceControl; + } + + + public UserPolicy enableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + return this; + } + + /** + * Get enableRemoteAccess + * @return enableRemoteAccess + */ + @javax.annotation.Nullable + public Boolean getEnableRemoteAccess() { + return enableRemoteAccess; + } + + public void setEnableRemoteAccess(@javax.annotation.Nullable Boolean enableRemoteAccess) { + this.enableRemoteAccess = enableRemoteAccess; + } + + + public UserPolicy enableLiveTvManagement(@javax.annotation.Nullable Boolean enableLiveTvManagement) { + this.enableLiveTvManagement = enableLiveTvManagement; + return this; + } + + /** + * Get enableLiveTvManagement + * @return enableLiveTvManagement + */ + @javax.annotation.Nullable + public Boolean getEnableLiveTvManagement() { + return enableLiveTvManagement; + } + + public void setEnableLiveTvManagement(@javax.annotation.Nullable Boolean enableLiveTvManagement) { + this.enableLiveTvManagement = enableLiveTvManagement; + } + + + public UserPolicy enableLiveTvAccess(@javax.annotation.Nullable Boolean enableLiveTvAccess) { + this.enableLiveTvAccess = enableLiveTvAccess; + return this; + } + + /** + * Get enableLiveTvAccess + * @return enableLiveTvAccess + */ + @javax.annotation.Nullable + public Boolean getEnableLiveTvAccess() { + return enableLiveTvAccess; + } + + public void setEnableLiveTvAccess(@javax.annotation.Nullable Boolean enableLiveTvAccess) { + this.enableLiveTvAccess = enableLiveTvAccess; + } + + + public UserPolicy enableMediaPlayback(@javax.annotation.Nullable Boolean enableMediaPlayback) { + this.enableMediaPlayback = enableMediaPlayback; + return this; + } + + /** + * Get enableMediaPlayback + * @return enableMediaPlayback + */ + @javax.annotation.Nullable + public Boolean getEnableMediaPlayback() { + return enableMediaPlayback; + } + + public void setEnableMediaPlayback(@javax.annotation.Nullable Boolean enableMediaPlayback) { + this.enableMediaPlayback = enableMediaPlayback; + } + + + public UserPolicy enableAudioPlaybackTranscoding(@javax.annotation.Nullable Boolean enableAudioPlaybackTranscoding) { + this.enableAudioPlaybackTranscoding = enableAudioPlaybackTranscoding; + return this; + } + + /** + * Get enableAudioPlaybackTranscoding + * @return enableAudioPlaybackTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableAudioPlaybackTranscoding() { + return enableAudioPlaybackTranscoding; + } + + public void setEnableAudioPlaybackTranscoding(@javax.annotation.Nullable Boolean enableAudioPlaybackTranscoding) { + this.enableAudioPlaybackTranscoding = enableAudioPlaybackTranscoding; + } + + + public UserPolicy enableVideoPlaybackTranscoding(@javax.annotation.Nullable Boolean enableVideoPlaybackTranscoding) { + this.enableVideoPlaybackTranscoding = enableVideoPlaybackTranscoding; + return this; + } + + /** + * Get enableVideoPlaybackTranscoding + * @return enableVideoPlaybackTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableVideoPlaybackTranscoding() { + return enableVideoPlaybackTranscoding; + } + + public void setEnableVideoPlaybackTranscoding(@javax.annotation.Nullable Boolean enableVideoPlaybackTranscoding) { + this.enableVideoPlaybackTranscoding = enableVideoPlaybackTranscoding; + } + + + public UserPolicy enablePlaybackRemuxing(@javax.annotation.Nullable Boolean enablePlaybackRemuxing) { + this.enablePlaybackRemuxing = enablePlaybackRemuxing; + return this; + } + + /** + * Get enablePlaybackRemuxing + * @return enablePlaybackRemuxing + */ + @javax.annotation.Nullable + public Boolean getEnablePlaybackRemuxing() { + return enablePlaybackRemuxing; + } + + public void setEnablePlaybackRemuxing(@javax.annotation.Nullable Boolean enablePlaybackRemuxing) { + this.enablePlaybackRemuxing = enablePlaybackRemuxing; + } + + + public UserPolicy forceRemoteSourceTranscoding(@javax.annotation.Nullable Boolean forceRemoteSourceTranscoding) { + this.forceRemoteSourceTranscoding = forceRemoteSourceTranscoding; + return this; + } + + /** + * Get forceRemoteSourceTranscoding + * @return forceRemoteSourceTranscoding + */ + @javax.annotation.Nullable + public Boolean getForceRemoteSourceTranscoding() { + return forceRemoteSourceTranscoding; + } + + public void setForceRemoteSourceTranscoding(@javax.annotation.Nullable Boolean forceRemoteSourceTranscoding) { + this.forceRemoteSourceTranscoding = forceRemoteSourceTranscoding; + } + + + public UserPolicy enableContentDeletion(@javax.annotation.Nullable Boolean enableContentDeletion) { + this.enableContentDeletion = enableContentDeletion; + return this; + } + + /** + * Get enableContentDeletion + * @return enableContentDeletion + */ + @javax.annotation.Nullable + public Boolean getEnableContentDeletion() { + return enableContentDeletion; + } + + public void setEnableContentDeletion(@javax.annotation.Nullable Boolean enableContentDeletion) { + this.enableContentDeletion = enableContentDeletion; + } + + + public UserPolicy enableContentDeletionFromFolders(@javax.annotation.Nullable List enableContentDeletionFromFolders) { + this.enableContentDeletionFromFolders = enableContentDeletionFromFolders; + return this; + } + + public UserPolicy addEnableContentDeletionFromFoldersItem(String enableContentDeletionFromFoldersItem) { + if (this.enableContentDeletionFromFolders == null) { + this.enableContentDeletionFromFolders = new ArrayList<>(); + } + this.enableContentDeletionFromFolders.add(enableContentDeletionFromFoldersItem); + return this; + } + + /** + * Get enableContentDeletionFromFolders + * @return enableContentDeletionFromFolders + */ + @javax.annotation.Nullable + public List getEnableContentDeletionFromFolders() { + return enableContentDeletionFromFolders; + } + + public void setEnableContentDeletionFromFolders(@javax.annotation.Nullable List enableContentDeletionFromFolders) { + this.enableContentDeletionFromFolders = enableContentDeletionFromFolders; + } + + + public UserPolicy enableContentDownloading(@javax.annotation.Nullable Boolean enableContentDownloading) { + this.enableContentDownloading = enableContentDownloading; + return this; + } + + /** + * Get enableContentDownloading + * @return enableContentDownloading + */ + @javax.annotation.Nullable + public Boolean getEnableContentDownloading() { + return enableContentDownloading; + } + + public void setEnableContentDownloading(@javax.annotation.Nullable Boolean enableContentDownloading) { + this.enableContentDownloading = enableContentDownloading; + } + + + public UserPolicy enableSyncTranscoding(@javax.annotation.Nullable Boolean enableSyncTranscoding) { + this.enableSyncTranscoding = enableSyncTranscoding; + return this; + } + + /** + * Gets or sets a value indicating whether [enable synchronize]. + * @return enableSyncTranscoding + */ + @javax.annotation.Nullable + public Boolean getEnableSyncTranscoding() { + return enableSyncTranscoding; + } + + public void setEnableSyncTranscoding(@javax.annotation.Nullable Boolean enableSyncTranscoding) { + this.enableSyncTranscoding = enableSyncTranscoding; + } + + + public UserPolicy enableMediaConversion(@javax.annotation.Nullable Boolean enableMediaConversion) { + this.enableMediaConversion = enableMediaConversion; + return this; + } + + /** + * Get enableMediaConversion + * @return enableMediaConversion + */ + @javax.annotation.Nullable + public Boolean getEnableMediaConversion() { + return enableMediaConversion; + } + + public void setEnableMediaConversion(@javax.annotation.Nullable Boolean enableMediaConversion) { + this.enableMediaConversion = enableMediaConversion; + } + + + public UserPolicy enabledDevices(@javax.annotation.Nullable List enabledDevices) { + this.enabledDevices = enabledDevices; + return this; + } + + public UserPolicy addEnabledDevicesItem(String enabledDevicesItem) { + if (this.enabledDevices == null) { + this.enabledDevices = new ArrayList<>(); + } + this.enabledDevices.add(enabledDevicesItem); + return this; + } + + /** + * Get enabledDevices + * @return enabledDevices + */ + @javax.annotation.Nullable + public List getEnabledDevices() { + return enabledDevices; + } + + public void setEnabledDevices(@javax.annotation.Nullable List enabledDevices) { + this.enabledDevices = enabledDevices; + } + + + public UserPolicy enableAllDevices(@javax.annotation.Nullable Boolean enableAllDevices) { + this.enableAllDevices = enableAllDevices; + return this; + } + + /** + * Get enableAllDevices + * @return enableAllDevices + */ + @javax.annotation.Nullable + public Boolean getEnableAllDevices() { + return enableAllDevices; + } + + public void setEnableAllDevices(@javax.annotation.Nullable Boolean enableAllDevices) { + this.enableAllDevices = enableAllDevices; + } + + + public UserPolicy enabledChannels(@javax.annotation.Nullable List enabledChannels) { + this.enabledChannels = enabledChannels; + return this; + } + + public UserPolicy addEnabledChannelsItem(UUID enabledChannelsItem) { + if (this.enabledChannels == null) { + this.enabledChannels = new ArrayList<>(); + } + this.enabledChannels.add(enabledChannelsItem); + return this; + } + + /** + * Get enabledChannels + * @return enabledChannels + */ + @javax.annotation.Nullable + public List getEnabledChannels() { + return enabledChannels; + } + + public void setEnabledChannels(@javax.annotation.Nullable List enabledChannels) { + this.enabledChannels = enabledChannels; + } + + + public UserPolicy enableAllChannels(@javax.annotation.Nullable Boolean enableAllChannels) { + this.enableAllChannels = enableAllChannels; + return this; + } + + /** + * Get enableAllChannels + * @return enableAllChannels + */ + @javax.annotation.Nullable + public Boolean getEnableAllChannels() { + return enableAllChannels; + } + + public void setEnableAllChannels(@javax.annotation.Nullable Boolean enableAllChannels) { + this.enableAllChannels = enableAllChannels; + } + + + public UserPolicy enabledFolders(@javax.annotation.Nullable List enabledFolders) { + this.enabledFolders = enabledFolders; + return this; + } + + public UserPolicy addEnabledFoldersItem(UUID enabledFoldersItem) { + if (this.enabledFolders == null) { + this.enabledFolders = new ArrayList<>(); + } + this.enabledFolders.add(enabledFoldersItem); + return this; + } + + /** + * Get enabledFolders + * @return enabledFolders + */ + @javax.annotation.Nullable + public List getEnabledFolders() { + return enabledFolders; + } + + public void setEnabledFolders(@javax.annotation.Nullable List enabledFolders) { + this.enabledFolders = enabledFolders; + } + + + public UserPolicy enableAllFolders(@javax.annotation.Nullable Boolean enableAllFolders) { + this.enableAllFolders = enableAllFolders; + return this; + } + + /** + * Get enableAllFolders + * @return enableAllFolders + */ + @javax.annotation.Nullable + public Boolean getEnableAllFolders() { + return enableAllFolders; + } + + public void setEnableAllFolders(@javax.annotation.Nullable Boolean enableAllFolders) { + this.enableAllFolders = enableAllFolders; + } + + + public UserPolicy invalidLoginAttemptCount(@javax.annotation.Nullable Integer invalidLoginAttemptCount) { + this.invalidLoginAttemptCount = invalidLoginAttemptCount; + return this; + } + + /** + * Get invalidLoginAttemptCount + * @return invalidLoginAttemptCount + */ + @javax.annotation.Nullable + public Integer getInvalidLoginAttemptCount() { + return invalidLoginAttemptCount; + } + + public void setInvalidLoginAttemptCount(@javax.annotation.Nullable Integer invalidLoginAttemptCount) { + this.invalidLoginAttemptCount = invalidLoginAttemptCount; + } + + + public UserPolicy loginAttemptsBeforeLockout(@javax.annotation.Nullable Integer loginAttemptsBeforeLockout) { + this.loginAttemptsBeforeLockout = loginAttemptsBeforeLockout; + return this; + } + + /** + * Get loginAttemptsBeforeLockout + * @return loginAttemptsBeforeLockout + */ + @javax.annotation.Nullable + public Integer getLoginAttemptsBeforeLockout() { + return loginAttemptsBeforeLockout; + } + + public void setLoginAttemptsBeforeLockout(@javax.annotation.Nullable Integer loginAttemptsBeforeLockout) { + this.loginAttemptsBeforeLockout = loginAttemptsBeforeLockout; + } + + + public UserPolicy maxActiveSessions(@javax.annotation.Nullable Integer maxActiveSessions) { + this.maxActiveSessions = maxActiveSessions; + return this; + } + + /** + * Get maxActiveSessions + * @return maxActiveSessions + */ + @javax.annotation.Nullable + public Integer getMaxActiveSessions() { + return maxActiveSessions; + } + + public void setMaxActiveSessions(@javax.annotation.Nullable Integer maxActiveSessions) { + this.maxActiveSessions = maxActiveSessions; + } + + + public UserPolicy enablePublicSharing(@javax.annotation.Nullable Boolean enablePublicSharing) { + this.enablePublicSharing = enablePublicSharing; + return this; + } + + /** + * Get enablePublicSharing + * @return enablePublicSharing + */ + @javax.annotation.Nullable + public Boolean getEnablePublicSharing() { + return enablePublicSharing; + } + + public void setEnablePublicSharing(@javax.annotation.Nullable Boolean enablePublicSharing) { + this.enablePublicSharing = enablePublicSharing; + } + + + public UserPolicy blockedMediaFolders(@javax.annotation.Nullable List blockedMediaFolders) { + this.blockedMediaFolders = blockedMediaFolders; + return this; + } + + public UserPolicy addBlockedMediaFoldersItem(UUID blockedMediaFoldersItem) { + if (this.blockedMediaFolders == null) { + this.blockedMediaFolders = new ArrayList<>(); + } + this.blockedMediaFolders.add(blockedMediaFoldersItem); + return this; + } + + /** + * Get blockedMediaFolders + * @return blockedMediaFolders + */ + @javax.annotation.Nullable + public List getBlockedMediaFolders() { + return blockedMediaFolders; + } + + public void setBlockedMediaFolders(@javax.annotation.Nullable List blockedMediaFolders) { + this.blockedMediaFolders = blockedMediaFolders; + } + + + public UserPolicy blockedChannels(@javax.annotation.Nullable List blockedChannels) { + this.blockedChannels = blockedChannels; + return this; + } + + public UserPolicy addBlockedChannelsItem(UUID blockedChannelsItem) { + if (this.blockedChannels == null) { + this.blockedChannels = new ArrayList<>(); + } + this.blockedChannels.add(blockedChannelsItem); + return this; + } + + /** + * Get blockedChannels + * @return blockedChannels + */ + @javax.annotation.Nullable + public List getBlockedChannels() { + return blockedChannels; + } + + public void setBlockedChannels(@javax.annotation.Nullable List blockedChannels) { + this.blockedChannels = blockedChannels; + } + + + public UserPolicy remoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + return this; + } + + /** + * Get remoteClientBitrateLimit + * @return remoteClientBitrateLimit + */ + @javax.annotation.Nullable + public Integer getRemoteClientBitrateLimit() { + return remoteClientBitrateLimit; + } + + public void setRemoteClientBitrateLimit(@javax.annotation.Nullable Integer remoteClientBitrateLimit) { + this.remoteClientBitrateLimit = remoteClientBitrateLimit; + } + + + public UserPolicy authenticationProviderId(@javax.annotation.Nullable String authenticationProviderId) { + this.authenticationProviderId = authenticationProviderId; + return this; + } + + /** + * Get authenticationProviderId + * @return authenticationProviderId + */ + @javax.annotation.Nullable + public String getAuthenticationProviderId() { + return authenticationProviderId; + } + + public void setAuthenticationProviderId(@javax.annotation.Nullable String authenticationProviderId) { + this.authenticationProviderId = authenticationProviderId; + } + + + public UserPolicy passwordResetProviderId(@javax.annotation.Nullable String passwordResetProviderId) { + this.passwordResetProviderId = passwordResetProviderId; + return this; + } + + /** + * Get passwordResetProviderId + * @return passwordResetProviderId + */ + @javax.annotation.Nullable + public String getPasswordResetProviderId() { + return passwordResetProviderId; + } + + public void setPasswordResetProviderId(@javax.annotation.Nullable String passwordResetProviderId) { + this.passwordResetProviderId = passwordResetProviderId; + } + + + public UserPolicy syncPlayAccess(@javax.annotation.Nullable SyncPlayUserAccessType syncPlayAccess) { + this.syncPlayAccess = syncPlayAccess; + return this; + } + + /** + * Gets or sets a value indicating what SyncPlay features the user can access. + * @return syncPlayAccess + */ + @javax.annotation.Nullable + public SyncPlayUserAccessType getSyncPlayAccess() { + return syncPlayAccess; + } + + public void setSyncPlayAccess(@javax.annotation.Nullable SyncPlayUserAccessType syncPlayAccess) { + this.syncPlayAccess = syncPlayAccess; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserPolicy userPolicy = (UserPolicy) o; + return Objects.equals(this.isAdministrator, userPolicy.isAdministrator) && + Objects.equals(this.isHidden, userPolicy.isHidden) && + Objects.equals(this.isDisabled, userPolicy.isDisabled) && + Objects.equals(this.maxParentalRating, userPolicy.maxParentalRating) && + Objects.equals(this.blockedTags, userPolicy.blockedTags) && + Objects.equals(this.enableUserPreferenceAccess, userPolicy.enableUserPreferenceAccess) && + Objects.equals(this.accessSchedules, userPolicy.accessSchedules) && + Objects.equals(this.blockUnratedItems, userPolicy.blockUnratedItems) && + Objects.equals(this.enableRemoteControlOfOtherUsers, userPolicy.enableRemoteControlOfOtherUsers) && + Objects.equals(this.enableSharedDeviceControl, userPolicy.enableSharedDeviceControl) && + Objects.equals(this.enableRemoteAccess, userPolicy.enableRemoteAccess) && + Objects.equals(this.enableLiveTvManagement, userPolicy.enableLiveTvManagement) && + Objects.equals(this.enableLiveTvAccess, userPolicy.enableLiveTvAccess) && + Objects.equals(this.enableMediaPlayback, userPolicy.enableMediaPlayback) && + Objects.equals(this.enableAudioPlaybackTranscoding, userPolicy.enableAudioPlaybackTranscoding) && + Objects.equals(this.enableVideoPlaybackTranscoding, userPolicy.enableVideoPlaybackTranscoding) && + Objects.equals(this.enablePlaybackRemuxing, userPolicy.enablePlaybackRemuxing) && + Objects.equals(this.forceRemoteSourceTranscoding, userPolicy.forceRemoteSourceTranscoding) && + Objects.equals(this.enableContentDeletion, userPolicy.enableContentDeletion) && + Objects.equals(this.enableContentDeletionFromFolders, userPolicy.enableContentDeletionFromFolders) && + Objects.equals(this.enableContentDownloading, userPolicy.enableContentDownloading) && + Objects.equals(this.enableSyncTranscoding, userPolicy.enableSyncTranscoding) && + Objects.equals(this.enableMediaConversion, userPolicy.enableMediaConversion) && + Objects.equals(this.enabledDevices, userPolicy.enabledDevices) && + Objects.equals(this.enableAllDevices, userPolicy.enableAllDevices) && + Objects.equals(this.enabledChannels, userPolicy.enabledChannels) && + Objects.equals(this.enableAllChannels, userPolicy.enableAllChannels) && + Objects.equals(this.enabledFolders, userPolicy.enabledFolders) && + Objects.equals(this.enableAllFolders, userPolicy.enableAllFolders) && + Objects.equals(this.invalidLoginAttemptCount, userPolicy.invalidLoginAttemptCount) && + Objects.equals(this.loginAttemptsBeforeLockout, userPolicy.loginAttemptsBeforeLockout) && + Objects.equals(this.maxActiveSessions, userPolicy.maxActiveSessions) && + Objects.equals(this.enablePublicSharing, userPolicy.enablePublicSharing) && + Objects.equals(this.blockedMediaFolders, userPolicy.blockedMediaFolders) && + Objects.equals(this.blockedChannels, userPolicy.blockedChannels) && + Objects.equals(this.remoteClientBitrateLimit, userPolicy.remoteClientBitrateLimit) && + Objects.equals(this.authenticationProviderId, userPolicy.authenticationProviderId) && + Objects.equals(this.passwordResetProviderId, userPolicy.passwordResetProviderId) && + Objects.equals(this.syncPlayAccess, userPolicy.syncPlayAccess); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(isAdministrator, isHidden, isDisabled, maxParentalRating, blockedTags, enableUserPreferenceAccess, accessSchedules, blockUnratedItems, enableRemoteControlOfOtherUsers, enableSharedDeviceControl, enableRemoteAccess, enableLiveTvManagement, enableLiveTvAccess, enableMediaPlayback, enableAudioPlaybackTranscoding, enableVideoPlaybackTranscoding, enablePlaybackRemuxing, forceRemoteSourceTranscoding, enableContentDeletion, enableContentDeletionFromFolders, enableContentDownloading, enableSyncTranscoding, enableMediaConversion, enabledDevices, enableAllDevices, enabledChannels, enableAllChannels, enabledFolders, enableAllFolders, invalidLoginAttemptCount, loginAttemptsBeforeLockout, maxActiveSessions, enablePublicSharing, blockedMediaFolders, blockedChannels, remoteClientBitrateLimit, authenticationProviderId, passwordResetProviderId, syncPlayAccess); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UserPolicy {\n"); + sb.append(" isAdministrator: ").append(toIndentedString(isAdministrator)).append("\n"); + sb.append(" isHidden: ").append(toIndentedString(isHidden)).append("\n"); + sb.append(" isDisabled: ").append(toIndentedString(isDisabled)).append("\n"); + sb.append(" maxParentalRating: ").append(toIndentedString(maxParentalRating)).append("\n"); + sb.append(" blockedTags: ").append(toIndentedString(blockedTags)).append("\n"); + sb.append(" enableUserPreferenceAccess: ").append(toIndentedString(enableUserPreferenceAccess)).append("\n"); + sb.append(" accessSchedules: ").append(toIndentedString(accessSchedules)).append("\n"); + sb.append(" blockUnratedItems: ").append(toIndentedString(blockUnratedItems)).append("\n"); + sb.append(" enableRemoteControlOfOtherUsers: ").append(toIndentedString(enableRemoteControlOfOtherUsers)).append("\n"); + sb.append(" enableSharedDeviceControl: ").append(toIndentedString(enableSharedDeviceControl)).append("\n"); + sb.append(" enableRemoteAccess: ").append(toIndentedString(enableRemoteAccess)).append("\n"); + sb.append(" enableLiveTvManagement: ").append(toIndentedString(enableLiveTvManagement)).append("\n"); + sb.append(" enableLiveTvAccess: ").append(toIndentedString(enableLiveTvAccess)).append("\n"); + sb.append(" enableMediaPlayback: ").append(toIndentedString(enableMediaPlayback)).append("\n"); + sb.append(" enableAudioPlaybackTranscoding: ").append(toIndentedString(enableAudioPlaybackTranscoding)).append("\n"); + sb.append(" enableVideoPlaybackTranscoding: ").append(toIndentedString(enableVideoPlaybackTranscoding)).append("\n"); + sb.append(" enablePlaybackRemuxing: ").append(toIndentedString(enablePlaybackRemuxing)).append("\n"); + sb.append(" forceRemoteSourceTranscoding: ").append(toIndentedString(forceRemoteSourceTranscoding)).append("\n"); + sb.append(" enableContentDeletion: ").append(toIndentedString(enableContentDeletion)).append("\n"); + sb.append(" enableContentDeletionFromFolders: ").append(toIndentedString(enableContentDeletionFromFolders)).append("\n"); + sb.append(" enableContentDownloading: ").append(toIndentedString(enableContentDownloading)).append("\n"); + sb.append(" enableSyncTranscoding: ").append(toIndentedString(enableSyncTranscoding)).append("\n"); + sb.append(" enableMediaConversion: ").append(toIndentedString(enableMediaConversion)).append("\n"); + sb.append(" enabledDevices: ").append(toIndentedString(enabledDevices)).append("\n"); + sb.append(" enableAllDevices: ").append(toIndentedString(enableAllDevices)).append("\n"); + sb.append(" enabledChannels: ").append(toIndentedString(enabledChannels)).append("\n"); + sb.append(" enableAllChannels: ").append(toIndentedString(enableAllChannels)).append("\n"); + sb.append(" enabledFolders: ").append(toIndentedString(enabledFolders)).append("\n"); + sb.append(" enableAllFolders: ").append(toIndentedString(enableAllFolders)).append("\n"); + sb.append(" invalidLoginAttemptCount: ").append(toIndentedString(invalidLoginAttemptCount)).append("\n"); + sb.append(" loginAttemptsBeforeLockout: ").append(toIndentedString(loginAttemptsBeforeLockout)).append("\n"); + sb.append(" maxActiveSessions: ").append(toIndentedString(maxActiveSessions)).append("\n"); + sb.append(" enablePublicSharing: ").append(toIndentedString(enablePublicSharing)).append("\n"); + sb.append(" blockedMediaFolders: ").append(toIndentedString(blockedMediaFolders)).append("\n"); + sb.append(" blockedChannels: ").append(toIndentedString(blockedChannels)).append("\n"); + sb.append(" remoteClientBitrateLimit: ").append(toIndentedString(remoteClientBitrateLimit)).append("\n"); + sb.append(" authenticationProviderId: ").append(toIndentedString(authenticationProviderId)).append("\n"); + sb.append(" passwordResetProviderId: ").append(toIndentedString(passwordResetProviderId)).append("\n"); + sb.append(" syncPlayAccess: ").append(toIndentedString(syncPlayAccess)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("IsAdministrator"); + openapiFields.add("IsHidden"); + openapiFields.add("IsDisabled"); + openapiFields.add("MaxParentalRating"); + openapiFields.add("BlockedTags"); + openapiFields.add("EnableUserPreferenceAccess"); + openapiFields.add("AccessSchedules"); + openapiFields.add("BlockUnratedItems"); + openapiFields.add("EnableRemoteControlOfOtherUsers"); + openapiFields.add("EnableSharedDeviceControl"); + openapiFields.add("EnableRemoteAccess"); + openapiFields.add("EnableLiveTvManagement"); + openapiFields.add("EnableLiveTvAccess"); + openapiFields.add("EnableMediaPlayback"); + openapiFields.add("EnableAudioPlaybackTranscoding"); + openapiFields.add("EnableVideoPlaybackTranscoding"); + openapiFields.add("EnablePlaybackRemuxing"); + openapiFields.add("ForceRemoteSourceTranscoding"); + openapiFields.add("EnableContentDeletion"); + openapiFields.add("EnableContentDeletionFromFolders"); + openapiFields.add("EnableContentDownloading"); + openapiFields.add("EnableSyncTranscoding"); + openapiFields.add("EnableMediaConversion"); + openapiFields.add("EnabledDevices"); + openapiFields.add("EnableAllDevices"); + openapiFields.add("EnabledChannels"); + openapiFields.add("EnableAllChannels"); + openapiFields.add("EnabledFolders"); + openapiFields.add("EnableAllFolders"); + openapiFields.add("InvalidLoginAttemptCount"); + openapiFields.add("LoginAttemptsBeforeLockout"); + openapiFields.add("MaxActiveSessions"); + openapiFields.add("EnablePublicSharing"); + openapiFields.add("BlockedMediaFolders"); + openapiFields.add("BlockedChannels"); + openapiFields.add("RemoteClientBitrateLimit"); + openapiFields.add("AuthenticationProviderId"); + openapiFields.add("PasswordResetProviderId"); + openapiFields.add("SyncPlayAccess"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UserPolicy + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UserPolicy.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UserPolicy is not found in the empty JSON string", UserPolicy.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UserPolicy.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UserPolicy` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedTags") != null && !jsonObj.get("BlockedTags").isJsonNull() && !jsonObj.get("BlockedTags").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedTags` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedTags").toString())); + } + if (jsonObj.get("AccessSchedules") != null && !jsonObj.get("AccessSchedules").isJsonNull()) { + JsonArray jsonArrayaccessSchedules = jsonObj.getAsJsonArray("AccessSchedules"); + if (jsonArrayaccessSchedules != null) { + // ensure the json data is an array + if (!jsonObj.get("AccessSchedules").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `AccessSchedules` to be an array in the JSON string but got `%s`", jsonObj.get("AccessSchedules").toString())); + } + + // validate the optional field `AccessSchedules` (array) + for (int i = 0; i < jsonArrayaccessSchedules.size(); i++) { + AccessSchedule.validateJsonElement(jsonArrayaccessSchedules.get(i)); + }; + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockUnratedItems") != null && !jsonObj.get("BlockUnratedItems").isJsonNull() && !jsonObj.get("BlockUnratedItems").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockUnratedItems` to be an array in the JSON string but got `%s`", jsonObj.get("BlockUnratedItems").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnableContentDeletionFromFolders") != null && !jsonObj.get("EnableContentDeletionFromFolders").isJsonNull() && !jsonObj.get("EnableContentDeletionFromFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnableContentDeletionFromFolders` to be an array in the JSON string but got `%s`", jsonObj.get("EnableContentDeletionFromFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledDevices") != null && !jsonObj.get("EnabledDevices").isJsonNull() && !jsonObj.get("EnabledDevices").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledDevices` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledDevices").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledChannels") != null && !jsonObj.get("EnabledChannels").isJsonNull() && !jsonObj.get("EnabledChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledChannels` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledChannels").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("EnabledFolders") != null && !jsonObj.get("EnabledFolders").isJsonNull() && !jsonObj.get("EnabledFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `EnabledFolders` to be an array in the JSON string but got `%s`", jsonObj.get("EnabledFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedMediaFolders") != null && !jsonObj.get("BlockedMediaFolders").isJsonNull() && !jsonObj.get("BlockedMediaFolders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedMediaFolders` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedMediaFolders").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("BlockedChannels") != null && !jsonObj.get("BlockedChannels").isJsonNull() && !jsonObj.get("BlockedChannels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `BlockedChannels` to be an array in the JSON string but got `%s`", jsonObj.get("BlockedChannels").toString())); + } + if ((jsonObj.get("AuthenticationProviderId") != null && !jsonObj.get("AuthenticationProviderId").isJsonNull()) && !jsonObj.get("AuthenticationProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `AuthenticationProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("AuthenticationProviderId").toString())); + } + if ((jsonObj.get("PasswordResetProviderId") != null && !jsonObj.get("PasswordResetProviderId").isJsonNull()) && !jsonObj.get("PasswordResetProviderId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PasswordResetProviderId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PasswordResetProviderId").toString())); + } + // validate the optional field `SyncPlayAccess` + if (jsonObj.get("SyncPlayAccess") != null && !jsonObj.get("SyncPlayAccess").isJsonNull()) { + SyncPlayUserAccessType.validateJsonElement(jsonObj.get("SyncPlayAccess")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UserPolicy.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UserPolicy' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UserPolicy.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UserPolicy value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UserPolicy read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UserPolicy given an JSON string + * + * @param jsonString JSON string + * @return An instance of UserPolicy + * @throws IOException if the JSON string is invalid with respect to UserPolicy + */ + public static UserPolicy fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UserPolicy.class); + } + + /** + * Convert an instance of UserPolicy to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UtcTimeResponse.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UtcTimeResponse.java new file mode 100644 index 0000000000000..b24cb9b87abbb --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/UtcTimeResponse.java @@ -0,0 +1,231 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Class UtcTimeResponse. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class UtcTimeResponse { + public static final String SERIALIZED_NAME_REQUEST_RECEPTION_TIME = "RequestReceptionTime"; + @SerializedName(SERIALIZED_NAME_REQUEST_RECEPTION_TIME) + @javax.annotation.Nullable + private OffsetDateTime requestReceptionTime; + + public static final String SERIALIZED_NAME_RESPONSE_TRANSMISSION_TIME = "ResponseTransmissionTime"; + @SerializedName(SERIALIZED_NAME_RESPONSE_TRANSMISSION_TIME) + @javax.annotation.Nullable + private OffsetDateTime responseTransmissionTime; + + public UtcTimeResponse() { + } + + public UtcTimeResponse requestReceptionTime(@javax.annotation.Nullable OffsetDateTime requestReceptionTime) { + this.requestReceptionTime = requestReceptionTime; + return this; + } + + /** + * Gets the UTC time when request has been received. + * @return requestReceptionTime + */ + @javax.annotation.Nullable + public OffsetDateTime getRequestReceptionTime() { + return requestReceptionTime; + } + + public void setRequestReceptionTime(@javax.annotation.Nullable OffsetDateTime requestReceptionTime) { + this.requestReceptionTime = requestReceptionTime; + } + + + public UtcTimeResponse responseTransmissionTime(@javax.annotation.Nullable OffsetDateTime responseTransmissionTime) { + this.responseTransmissionTime = responseTransmissionTime; + return this; + } + + /** + * Gets the UTC time when response has been sent. + * @return responseTransmissionTime + */ + @javax.annotation.Nullable + public OffsetDateTime getResponseTransmissionTime() { + return responseTransmissionTime; + } + + public void setResponseTransmissionTime(@javax.annotation.Nullable OffsetDateTime responseTransmissionTime) { + this.responseTransmissionTime = responseTransmissionTime; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UtcTimeResponse utcTimeResponse = (UtcTimeResponse) o; + return Objects.equals(this.requestReceptionTime, utcTimeResponse.requestReceptionTime) && + Objects.equals(this.responseTransmissionTime, utcTimeResponse.responseTransmissionTime); + } + + @Override + public int hashCode() { + return Objects.hash(requestReceptionTime, responseTransmissionTime); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UtcTimeResponse {\n"); + sb.append(" requestReceptionTime: ").append(toIndentedString(requestReceptionTime)).append("\n"); + sb.append(" responseTransmissionTime: ").append(toIndentedString(responseTransmissionTime)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RequestReceptionTime"); + openapiFields.add("ResponseTransmissionTime"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UtcTimeResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UtcTimeResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UtcTimeResponse is not found in the empty JSON string", UtcTimeResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UtcTimeResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UtcTimeResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UtcTimeResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UtcTimeResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UtcTimeResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UtcTimeResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UtcTimeResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UtcTimeResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of UtcTimeResponse + * @throws IOException if the JSON string is invalid with respect to UtcTimeResponse + */ + public static UtcTimeResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UtcTimeResponse.class); + } + + /** + * Convert an instance of UtcTimeResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ValidatePathDto.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ValidatePathDto.java new file mode 100644 index 0000000000000..fd70cac3d5dcc --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/ValidatePathDto.java @@ -0,0 +1,272 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Validate path object. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class ValidatePathDto { + public static final String SERIALIZED_NAME_VALIDATE_WRITABLE = "ValidateWritable"; + @SerializedName(SERIALIZED_NAME_VALIDATE_WRITABLE) + @javax.annotation.Nullable + private Boolean validateWritable; + + public static final String SERIALIZED_NAME_PATH = "Path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nullable + private String path; + + public static final String SERIALIZED_NAME_IS_FILE = "IsFile"; + @SerializedName(SERIALIZED_NAME_IS_FILE) + @javax.annotation.Nullable + private Boolean isFile; + + public ValidatePathDto() { + } + + public ValidatePathDto validateWritable(@javax.annotation.Nullable Boolean validateWritable) { + this.validateWritable = validateWritable; + return this; + } + + /** + * Gets or sets a value indicating whether validate if path is writable. + * @return validateWritable + */ + @javax.annotation.Nullable + public Boolean getValidateWritable() { + return validateWritable; + } + + public void setValidateWritable(@javax.annotation.Nullable Boolean validateWritable) { + this.validateWritable = validateWritable; + } + + + public ValidatePathDto path(@javax.annotation.Nullable String path) { + this.path = path; + return this; + } + + /** + * Gets or sets the path. + * @return path + */ + @javax.annotation.Nullable + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nullable String path) { + this.path = path; + } + + + public ValidatePathDto isFile(@javax.annotation.Nullable Boolean isFile) { + this.isFile = isFile; + return this; + } + + /** + * Gets or sets is path file. + * @return isFile + */ + @javax.annotation.Nullable + public Boolean getIsFile() { + return isFile; + } + + public void setIsFile(@javax.annotation.Nullable Boolean isFile) { + this.isFile = isFile; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ValidatePathDto validatePathDto = (ValidatePathDto) o; + return Objects.equals(this.validateWritable, validatePathDto.validateWritable) && + Objects.equals(this.path, validatePathDto.path) && + Objects.equals(this.isFile, validatePathDto.isFile); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(validateWritable, path, isFile); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ValidatePathDto {\n"); + sb.append(" validateWritable: ").append(toIndentedString(validateWritable)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" isFile: ").append(toIndentedString(isFile)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ValidateWritable"); + openapiFields.add("Path"); + openapiFields.add("IsFile"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ValidatePathDto + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ValidatePathDto.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidatePathDto is not found in the empty JSON string", ValidatePathDto.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ValidatePathDto.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ValidatePathDto` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Path") != null && !jsonObj.get("Path").isJsonNull()) && !jsonObj.get("Path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ValidatePathDto.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidatePathDto' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidatePathDto.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ValidatePathDto value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ValidatePathDto read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ValidatePathDto given an JSON string + * + * @param jsonString JSON string + * @return An instance of ValidatePathDto + * @throws IOException if the JSON string is invalid with respect to ValidatePathDto + */ + public static ValidatePathDto fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidatePathDto.class); + } + + /** + * Convert an instance of ValidatePathDto to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VersionInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VersionInfo.java new file mode 100644 index 0000000000000..c7f0218454640 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VersionInfo.java @@ -0,0 +1,457 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Updates.VersionInfo class. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class VersionInfo { + public static final String SERIALIZED_NAME_VERSION = "version"; + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable + private String version; + + public static final String SERIALIZED_NAME_VERSION_NUMBER = "VersionNumber"; + @SerializedName(SERIALIZED_NAME_VERSION_NUMBER) + @javax.annotation.Nullable + private String versionNumber; + + public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + @javax.annotation.Nullable + private String changelog; + + public static final String SERIALIZED_NAME_TARGET_ABI = "targetAbi"; + @SerializedName(SERIALIZED_NAME_TARGET_ABI) + @javax.annotation.Nullable + private String targetAbi; + + public static final String SERIALIZED_NAME_SOURCE_URL = "sourceUrl"; + @SerializedName(SERIALIZED_NAME_SOURCE_URL) + @javax.annotation.Nullable + private String sourceUrl; + + public static final String SERIALIZED_NAME_CHECKSUM = "checksum"; + @SerializedName(SERIALIZED_NAME_CHECKSUM) + @javax.annotation.Nullable + private String checksum; + + public static final String SERIALIZED_NAME_TIMESTAMP = "timestamp"; + @SerializedName(SERIALIZED_NAME_TIMESTAMP) + @javax.annotation.Nullable + private String timestamp; + + public static final String SERIALIZED_NAME_REPOSITORY_NAME = "repositoryName"; + @SerializedName(SERIALIZED_NAME_REPOSITORY_NAME) + @javax.annotation.Nullable + private String repositoryName; + + public static final String SERIALIZED_NAME_REPOSITORY_URL = "repositoryUrl"; + @SerializedName(SERIALIZED_NAME_REPOSITORY_URL) + @javax.annotation.Nullable + private String repositoryUrl; + + public VersionInfo() { + } + + public VersionInfo( + String versionNumber + ) { + this(); + this.versionNumber = versionNumber; + } + + public VersionInfo version(@javax.annotation.Nullable String version) { + this.version = version; + return this; + } + + /** + * Gets or sets the version. + * @return version + */ + @javax.annotation.Nullable + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nullable String version) { + this.version = version; + } + + + /** + * Gets the version as a System.Version. + * @return versionNumber + */ + @javax.annotation.Nullable + public String getVersionNumber() { + return versionNumber; + } + + + + public VersionInfo changelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + return this; + } + + /** + * Gets or sets the changelog for this version. + * @return changelog + */ + @javax.annotation.Nullable + public String getChangelog() { + return changelog; + } + + public void setChangelog(@javax.annotation.Nullable String changelog) { + this.changelog = changelog; + } + + + public VersionInfo targetAbi(@javax.annotation.Nullable String targetAbi) { + this.targetAbi = targetAbi; + return this; + } + + /** + * Gets or sets the ABI that this version was built against. + * @return targetAbi + */ + @javax.annotation.Nullable + public String getTargetAbi() { + return targetAbi; + } + + public void setTargetAbi(@javax.annotation.Nullable String targetAbi) { + this.targetAbi = targetAbi; + } + + + public VersionInfo sourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + return this; + } + + /** + * Gets or sets the source URL. + * @return sourceUrl + */ + @javax.annotation.Nullable + public String getSourceUrl() { + return sourceUrl; + } + + public void setSourceUrl(@javax.annotation.Nullable String sourceUrl) { + this.sourceUrl = sourceUrl; + } + + + public VersionInfo checksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + return this; + } + + /** + * Gets or sets a checksum for the binary. + * @return checksum + */ + @javax.annotation.Nullable + public String getChecksum() { + return checksum; + } + + public void setChecksum(@javax.annotation.Nullable String checksum) { + this.checksum = checksum; + } + + + public VersionInfo timestamp(@javax.annotation.Nullable String timestamp) { + this.timestamp = timestamp; + return this; + } + + /** + * Gets or sets a timestamp of when the binary was built. + * @return timestamp + */ + @javax.annotation.Nullable + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(@javax.annotation.Nullable String timestamp) { + this.timestamp = timestamp; + } + + + public VersionInfo repositoryName(@javax.annotation.Nullable String repositoryName) { + this.repositoryName = repositoryName; + return this; + } + + /** + * Gets or sets the repository name. + * @return repositoryName + */ + @javax.annotation.Nullable + public String getRepositoryName() { + return repositoryName; + } + + public void setRepositoryName(@javax.annotation.Nullable String repositoryName) { + this.repositoryName = repositoryName; + } + + + public VersionInfo repositoryUrl(@javax.annotation.Nullable String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + return this; + } + + /** + * Gets or sets the repository url. + * @return repositoryUrl + */ + @javax.annotation.Nullable + public String getRepositoryUrl() { + return repositoryUrl; + } + + public void setRepositoryUrl(@javax.annotation.Nullable String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VersionInfo versionInfo = (VersionInfo) o; + return Objects.equals(this.version, versionInfo.version) && + Objects.equals(this.versionNumber, versionInfo.versionNumber) && + Objects.equals(this.changelog, versionInfo.changelog) && + Objects.equals(this.targetAbi, versionInfo.targetAbi) && + Objects.equals(this.sourceUrl, versionInfo.sourceUrl) && + Objects.equals(this.checksum, versionInfo.checksum) && + Objects.equals(this.timestamp, versionInfo.timestamp) && + Objects.equals(this.repositoryName, versionInfo.repositoryName) && + Objects.equals(this.repositoryUrl, versionInfo.repositoryUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(version, versionNumber, changelog, targetAbi, sourceUrl, checksum, timestamp, repositoryName, repositoryUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VersionInfo {\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" versionNumber: ").append(toIndentedString(versionNumber)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" targetAbi: ").append(toIndentedString(targetAbi)).append("\n"); + sb.append(" sourceUrl: ").append(toIndentedString(sourceUrl)).append("\n"); + sb.append(" checksum: ").append(toIndentedString(checksum)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" repositoryName: ").append(toIndentedString(repositoryName)).append("\n"); + sb.append(" repositoryUrl: ").append(toIndentedString(repositoryUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("version"); + openapiFields.add("VersionNumber"); + openapiFields.add("changelog"); + openapiFields.add("targetAbi"); + openapiFields.add("sourceUrl"); + openapiFields.add("checksum"); + openapiFields.add("timestamp"); + openapiFields.add("repositoryName"); + openapiFields.add("repositoryUrl"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VersionInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VersionInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VersionInfo is not found in the empty JSON string", VersionInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VersionInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VersionInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("version") != null && !jsonObj.get("version").isJsonNull()) && !jsonObj.get("version").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("version").toString())); + } + if ((jsonObj.get("VersionNumber") != null && !jsonObj.get("VersionNumber").isJsonNull()) && !jsonObj.get("VersionNumber").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `VersionNumber` to be a primitive type in the JSON string but got `%s`", jsonObj.get("VersionNumber").toString())); + } + if ((jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) && !jsonObj.get("changelog").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `changelog` to be a primitive type in the JSON string but got `%s`", jsonObj.get("changelog").toString())); + } + if ((jsonObj.get("targetAbi") != null && !jsonObj.get("targetAbi").isJsonNull()) && !jsonObj.get("targetAbi").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `targetAbi` to be a primitive type in the JSON string but got `%s`", jsonObj.get("targetAbi").toString())); + } + if ((jsonObj.get("sourceUrl") != null && !jsonObj.get("sourceUrl").isJsonNull()) && !jsonObj.get("sourceUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `sourceUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sourceUrl").toString())); + } + if ((jsonObj.get("checksum") != null && !jsonObj.get("checksum").isJsonNull()) && !jsonObj.get("checksum").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `checksum` to be a primitive type in the JSON string but got `%s`", jsonObj.get("checksum").toString())); + } + if ((jsonObj.get("timestamp") != null && !jsonObj.get("timestamp").isJsonNull()) && !jsonObj.get("timestamp").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `timestamp` to be a primitive type in the JSON string but got `%s`", jsonObj.get("timestamp").toString())); + } + if ((jsonObj.get("repositoryName") != null && !jsonObj.get("repositoryName").isJsonNull()) && !jsonObj.get("repositoryName").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `repositoryName` to be a primitive type in the JSON string but got `%s`", jsonObj.get("repositoryName").toString())); + } + if ((jsonObj.get("repositoryUrl") != null && !jsonObj.get("repositoryUrl").isJsonNull()) && !jsonObj.get("repositoryUrl").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `repositoryUrl` to be a primitive type in the JSON string but got `%s`", jsonObj.get("repositoryUrl").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VersionInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VersionInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VersionInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VersionInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VersionInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VersionInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of VersionInfo + * @throws IOException if the JSON string is invalid with respect to VersionInfo + */ + public static VersionInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VersionInfo.class); + } + + /** + * Convert an instance of VersionInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Video3DFormat.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Video3DFormat.java new file mode 100644 index 0000000000000..e4ad2a7fe4579 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/Video3DFormat.java @@ -0,0 +1,84 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Gets or Sets Video3DFormat + */ +@JsonAdapter(Video3DFormat.Adapter.class) +public enum Video3DFormat { + + HALF_SIDE_BY_SIDE("HalfSideBySide"), + + FULL_SIDE_BY_SIDE("FullSideBySide"), + + FULL_TOP_AND_BOTTOM("FullTopAndBottom"), + + HALF_TOP_AND_BOTTOM("HalfTopAndBottom"), + + MVC("MVC"); + + private String value; + + Video3DFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Video3DFormat fromValue(String value) { + for (Video3DFormat b : Video3DFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Video3DFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Video3DFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return Video3DFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + Video3DFormat.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VideoType.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VideoType.java new file mode 100644 index 0000000000000..6548cdbf7c578 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VideoType.java @@ -0,0 +1,82 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Enum VideoType. + */ +@JsonAdapter(VideoType.Adapter.class) +public enum VideoType { + + VIDEO_FILE("VideoFile"), + + ISO("Iso"), + + DVD("Dvd"), + + BLU_RAY("BluRay"); + + private String value; + + VideoType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VideoType fromValue(String value) { + for (VideoType b : VideoType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VideoType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VideoType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return VideoType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + VideoType.fromValue(value); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java new file mode 100644 index 0000000000000..e6ef6d0473db9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/VirtualFolderInfo.java @@ -0,0 +1,440 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.client.model.CollectionTypeOptions; +import org.openapitools.client.model.LibraryOptions; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Used to hold information about a user's list of configured virtual folders. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class VirtualFolderInfo { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_LOCATIONS = "Locations"; + @SerializedName(SERIALIZED_NAME_LOCATIONS) + @javax.annotation.Nullable + private List locations; + + public static final String SERIALIZED_NAME_COLLECTION_TYPE = "CollectionType"; + @SerializedName(SERIALIZED_NAME_COLLECTION_TYPE) + @javax.annotation.Nullable + private CollectionTypeOptions collectionType; + + public static final String SERIALIZED_NAME_LIBRARY_OPTIONS = "LibraryOptions"; + @SerializedName(SERIALIZED_NAME_LIBRARY_OPTIONS) + @javax.annotation.Nullable + private LibraryOptions libraryOptions; + + public static final String SERIALIZED_NAME_ITEM_ID = "ItemId"; + @SerializedName(SERIALIZED_NAME_ITEM_ID) + @javax.annotation.Nullable + private String itemId; + + public static final String SERIALIZED_NAME_PRIMARY_IMAGE_ITEM_ID = "PrimaryImageItemId"; + @SerializedName(SERIALIZED_NAME_PRIMARY_IMAGE_ITEM_ID) + @javax.annotation.Nullable + private String primaryImageItemId; + + public static final String SERIALIZED_NAME_REFRESH_PROGRESS = "RefreshProgress"; + @SerializedName(SERIALIZED_NAME_REFRESH_PROGRESS) + @javax.annotation.Nullable + private Double refreshProgress; + + public static final String SERIALIZED_NAME_REFRESH_STATUS = "RefreshStatus"; + @SerializedName(SERIALIZED_NAME_REFRESH_STATUS) + @javax.annotation.Nullable + private String refreshStatus; + + public VirtualFolderInfo() { + } + + public VirtualFolderInfo name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public VirtualFolderInfo locations(@javax.annotation.Nullable List locations) { + this.locations = locations; + return this; + } + + public VirtualFolderInfo addLocationsItem(String locationsItem) { + if (this.locations == null) { + this.locations = new ArrayList<>(); + } + this.locations.add(locationsItem); + return this; + } + + /** + * Gets or sets the locations. + * @return locations + */ + @javax.annotation.Nullable + public List getLocations() { + return locations; + } + + public void setLocations(@javax.annotation.Nullable List locations) { + this.locations = locations; + } + + + public VirtualFolderInfo collectionType(@javax.annotation.Nullable CollectionTypeOptions collectionType) { + this.collectionType = collectionType; + return this; + } + + /** + * Gets or sets the type of the collection. + * @return collectionType + */ + @javax.annotation.Nullable + public CollectionTypeOptions getCollectionType() { + return collectionType; + } + + public void setCollectionType(@javax.annotation.Nullable CollectionTypeOptions collectionType) { + this.collectionType = collectionType; + } + + + public VirtualFolderInfo libraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + return this; + } + + /** + * Get libraryOptions + * @return libraryOptions + */ + @javax.annotation.Nullable + public LibraryOptions getLibraryOptions() { + return libraryOptions; + } + + public void setLibraryOptions(@javax.annotation.Nullable LibraryOptions libraryOptions) { + this.libraryOptions = libraryOptions; + } + + + public VirtualFolderInfo itemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + return this; + } + + /** + * Gets or sets the item identifier. + * @return itemId + */ + @javax.annotation.Nullable + public String getItemId() { + return itemId; + } + + public void setItemId(@javax.annotation.Nullable String itemId) { + this.itemId = itemId; + } + + + public VirtualFolderInfo primaryImageItemId(@javax.annotation.Nullable String primaryImageItemId) { + this.primaryImageItemId = primaryImageItemId; + return this; + } + + /** + * Gets or sets the primary image item identifier. + * @return primaryImageItemId + */ + @javax.annotation.Nullable + public String getPrimaryImageItemId() { + return primaryImageItemId; + } + + public void setPrimaryImageItemId(@javax.annotation.Nullable String primaryImageItemId) { + this.primaryImageItemId = primaryImageItemId; + } + + + public VirtualFolderInfo refreshProgress(@javax.annotation.Nullable Double refreshProgress) { + this.refreshProgress = refreshProgress; + return this; + } + + /** + * Get refreshProgress + * @return refreshProgress + */ + @javax.annotation.Nullable + public Double getRefreshProgress() { + return refreshProgress; + } + + public void setRefreshProgress(@javax.annotation.Nullable Double refreshProgress) { + this.refreshProgress = refreshProgress; + } + + + public VirtualFolderInfo refreshStatus(@javax.annotation.Nullable String refreshStatus) { + this.refreshStatus = refreshStatus; + return this; + } + + /** + * Get refreshStatus + * @return refreshStatus + */ + @javax.annotation.Nullable + public String getRefreshStatus() { + return refreshStatus; + } + + public void setRefreshStatus(@javax.annotation.Nullable String refreshStatus) { + this.refreshStatus = refreshStatus; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VirtualFolderInfo virtualFolderInfo = (VirtualFolderInfo) o; + return Objects.equals(this.name, virtualFolderInfo.name) && + Objects.equals(this.locations, virtualFolderInfo.locations) && + Objects.equals(this.collectionType, virtualFolderInfo.collectionType) && + Objects.equals(this.libraryOptions, virtualFolderInfo.libraryOptions) && + Objects.equals(this.itemId, virtualFolderInfo.itemId) && + Objects.equals(this.primaryImageItemId, virtualFolderInfo.primaryImageItemId) && + Objects.equals(this.refreshProgress, virtualFolderInfo.refreshProgress) && + Objects.equals(this.refreshStatus, virtualFolderInfo.refreshStatus); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, locations, collectionType, libraryOptions, itemId, primaryImageItemId, refreshProgress, refreshStatus); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VirtualFolderInfo {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" locations: ").append(toIndentedString(locations)).append("\n"); + sb.append(" collectionType: ").append(toIndentedString(collectionType)).append("\n"); + sb.append(" libraryOptions: ").append(toIndentedString(libraryOptions)).append("\n"); + sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); + sb.append(" primaryImageItemId: ").append(toIndentedString(primaryImageItemId)).append("\n"); + sb.append(" refreshProgress: ").append(toIndentedString(refreshProgress)).append("\n"); + sb.append(" refreshStatus: ").append(toIndentedString(refreshStatus)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Locations"); + openapiFields.add("CollectionType"); + openapiFields.add("LibraryOptions"); + openapiFields.add("ItemId"); + openapiFields.add("PrimaryImageItemId"); + openapiFields.add("RefreshProgress"); + openapiFields.add("RefreshStatus"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VirtualFolderInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VirtualFolderInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VirtualFolderInfo is not found in the empty JSON string", VirtualFolderInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VirtualFolderInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VirtualFolderInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Locations") != null && !jsonObj.get("Locations").isJsonNull() && !jsonObj.get("Locations").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `Locations` to be an array in the JSON string but got `%s`", jsonObj.get("Locations").toString())); + } + // validate the optional field `CollectionType` + if (jsonObj.get("CollectionType") != null && !jsonObj.get("CollectionType").isJsonNull()) { + CollectionTypeOptions.validateJsonElement(jsonObj.get("CollectionType")); + } + // validate the optional field `LibraryOptions` + if (jsonObj.get("LibraryOptions") != null && !jsonObj.get("LibraryOptions").isJsonNull()) { + LibraryOptions.validateJsonElement(jsonObj.get("LibraryOptions")); + } + if ((jsonObj.get("ItemId") != null && !jsonObj.get("ItemId").isJsonNull()) && !jsonObj.get("ItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ItemId").toString())); + } + if ((jsonObj.get("PrimaryImageItemId") != null && !jsonObj.get("PrimaryImageItemId").isJsonNull()) && !jsonObj.get("PrimaryImageItemId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `PrimaryImageItemId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("PrimaryImageItemId").toString())); + } + if ((jsonObj.get("RefreshStatus") != null && !jsonObj.get("RefreshStatus").isJsonNull()) && !jsonObj.get("RefreshStatus").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `RefreshStatus` to be a primitive type in the JSON string but got `%s`", jsonObj.get("RefreshStatus").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VirtualFolderInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VirtualFolderInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VirtualFolderInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VirtualFolderInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VirtualFolderInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VirtualFolderInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of VirtualFolderInfo + * @throws IOException if the JSON string is invalid with respect to VirtualFolderInfo + */ + public static VirtualFolderInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VirtualFolderInfo.class); + } + + /** + * Convert an instance of VirtualFolderInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java new file mode 100644 index 0000000000000..95ba41d9484be --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/WakeOnLanInfo.java @@ -0,0 +1,245 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Provides the MAC address and port for wake-on-LAN functionality. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class WakeOnLanInfo { + public static final String SERIALIZED_NAME_MAC_ADDRESS = "MacAddress"; + @SerializedName(SERIALIZED_NAME_MAC_ADDRESS) + @javax.annotation.Nullable + private String macAddress; + + public static final String SERIALIZED_NAME_PORT = "Port"; + @SerializedName(SERIALIZED_NAME_PORT) + @javax.annotation.Nullable + private Integer port; + + public WakeOnLanInfo() { + } + + public WakeOnLanInfo macAddress(@javax.annotation.Nullable String macAddress) { + this.macAddress = macAddress; + return this; + } + + /** + * Gets the MAC address of the device. + * @return macAddress + */ + @javax.annotation.Nullable + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(@javax.annotation.Nullable String macAddress) { + this.macAddress = macAddress; + } + + + public WakeOnLanInfo port(@javax.annotation.Nullable Integer port) { + this.port = port; + return this; + } + + /** + * Gets or sets the wake-on-LAN port. + * @return port + */ + @javax.annotation.Nullable + public Integer getPort() { + return port; + } + + public void setPort(@javax.annotation.Nullable Integer port) { + this.port = port; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WakeOnLanInfo wakeOnLanInfo = (WakeOnLanInfo) o; + return Objects.equals(this.macAddress, wakeOnLanInfo.macAddress) && + Objects.equals(this.port, wakeOnLanInfo.port); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(macAddress, port); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WakeOnLanInfo {\n"); + sb.append(" macAddress: ").append(toIndentedString(macAddress)).append("\n"); + sb.append(" port: ").append(toIndentedString(port)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MacAddress"); + openapiFields.add("Port"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WakeOnLanInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WakeOnLanInfo.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WakeOnLanInfo is not found in the empty JSON string", WakeOnLanInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WakeOnLanInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WakeOnLanInfo` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("MacAddress") != null && !jsonObj.get("MacAddress").isJsonNull()) && !jsonObj.get("MacAddress").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `MacAddress` to be a primitive type in the JSON string but got `%s`", jsonObj.get("MacAddress").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WakeOnLanInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WakeOnLanInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WakeOnLanInfo.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WakeOnLanInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WakeOnLanInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WakeOnLanInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of WakeOnLanInfo + * @throws IOException if the JSON string is invalid with respect to WakeOnLanInfo + */ + public static WakeOnLanInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WakeOnLanInfo.class); + } + + /** + * Convert an instance of WakeOnLanInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java new file mode 100644 index 0000000000000..dd2b924a67568 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XbmcMetadataOptions.java @@ -0,0 +1,329 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * XbmcMetadataOptions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class XbmcMetadataOptions { + public static final String SERIALIZED_NAME_USER_ID = "UserId"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @javax.annotation.Nullable + private String userId; + + public static final String SERIALIZED_NAME_RELEASE_DATE_FORMAT = "ReleaseDateFormat"; + @SerializedName(SERIALIZED_NAME_RELEASE_DATE_FORMAT) + @javax.annotation.Nullable + private String releaseDateFormat; + + public static final String SERIALIZED_NAME_SAVE_IMAGE_PATHS_IN_NFO = "SaveImagePathsInNfo"; + @SerializedName(SERIALIZED_NAME_SAVE_IMAGE_PATHS_IN_NFO) + @javax.annotation.Nullable + private Boolean saveImagePathsInNfo; + + public static final String SERIALIZED_NAME_ENABLE_PATH_SUBSTITUTION = "EnablePathSubstitution"; + @SerializedName(SERIALIZED_NAME_ENABLE_PATH_SUBSTITUTION) + @javax.annotation.Nullable + private Boolean enablePathSubstitution; + + public static final String SERIALIZED_NAME_ENABLE_EXTRA_THUMBS_DUPLICATION = "EnableExtraThumbsDuplication"; + @SerializedName(SERIALIZED_NAME_ENABLE_EXTRA_THUMBS_DUPLICATION) + @javax.annotation.Nullable + private Boolean enableExtraThumbsDuplication; + + public XbmcMetadataOptions() { + } + + public XbmcMetadataOptions userId(@javax.annotation.Nullable String userId) { + this.userId = userId; + return this; + } + + /** + * Get userId + * @return userId + */ + @javax.annotation.Nullable + public String getUserId() { + return userId; + } + + public void setUserId(@javax.annotation.Nullable String userId) { + this.userId = userId; + } + + + public XbmcMetadataOptions releaseDateFormat(@javax.annotation.Nullable String releaseDateFormat) { + this.releaseDateFormat = releaseDateFormat; + return this; + } + + /** + * Get releaseDateFormat + * @return releaseDateFormat + */ + @javax.annotation.Nullable + public String getReleaseDateFormat() { + return releaseDateFormat; + } + + public void setReleaseDateFormat(@javax.annotation.Nullable String releaseDateFormat) { + this.releaseDateFormat = releaseDateFormat; + } + + + public XbmcMetadataOptions saveImagePathsInNfo(@javax.annotation.Nullable Boolean saveImagePathsInNfo) { + this.saveImagePathsInNfo = saveImagePathsInNfo; + return this; + } + + /** + * Get saveImagePathsInNfo + * @return saveImagePathsInNfo + */ + @javax.annotation.Nullable + public Boolean getSaveImagePathsInNfo() { + return saveImagePathsInNfo; + } + + public void setSaveImagePathsInNfo(@javax.annotation.Nullable Boolean saveImagePathsInNfo) { + this.saveImagePathsInNfo = saveImagePathsInNfo; + } + + + public XbmcMetadataOptions enablePathSubstitution(@javax.annotation.Nullable Boolean enablePathSubstitution) { + this.enablePathSubstitution = enablePathSubstitution; + return this; + } + + /** + * Get enablePathSubstitution + * @return enablePathSubstitution + */ + @javax.annotation.Nullable + public Boolean getEnablePathSubstitution() { + return enablePathSubstitution; + } + + public void setEnablePathSubstitution(@javax.annotation.Nullable Boolean enablePathSubstitution) { + this.enablePathSubstitution = enablePathSubstitution; + } + + + public XbmcMetadataOptions enableExtraThumbsDuplication(@javax.annotation.Nullable Boolean enableExtraThumbsDuplication) { + this.enableExtraThumbsDuplication = enableExtraThumbsDuplication; + return this; + } + + /** + * Get enableExtraThumbsDuplication + * @return enableExtraThumbsDuplication + */ + @javax.annotation.Nullable + public Boolean getEnableExtraThumbsDuplication() { + return enableExtraThumbsDuplication; + } + + public void setEnableExtraThumbsDuplication(@javax.annotation.Nullable Boolean enableExtraThumbsDuplication) { + this.enableExtraThumbsDuplication = enableExtraThumbsDuplication; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + XbmcMetadataOptions xbmcMetadataOptions = (XbmcMetadataOptions) o; + return Objects.equals(this.userId, xbmcMetadataOptions.userId) && + Objects.equals(this.releaseDateFormat, xbmcMetadataOptions.releaseDateFormat) && + Objects.equals(this.saveImagePathsInNfo, xbmcMetadataOptions.saveImagePathsInNfo) && + Objects.equals(this.enablePathSubstitution, xbmcMetadataOptions.enablePathSubstitution) && + Objects.equals(this.enableExtraThumbsDuplication, xbmcMetadataOptions.enableExtraThumbsDuplication); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(userId, releaseDateFormat, saveImagePathsInNfo, enablePathSubstitution, enableExtraThumbsDuplication); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class XbmcMetadataOptions {\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" releaseDateFormat: ").append(toIndentedString(releaseDateFormat)).append("\n"); + sb.append(" saveImagePathsInNfo: ").append(toIndentedString(saveImagePathsInNfo)).append("\n"); + sb.append(" enablePathSubstitution: ").append(toIndentedString(enablePathSubstitution)).append("\n"); + sb.append(" enableExtraThumbsDuplication: ").append(toIndentedString(enableExtraThumbsDuplication)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("UserId"); + openapiFields.add("ReleaseDateFormat"); + openapiFields.add("SaveImagePathsInNfo"); + openapiFields.add("EnablePathSubstitution"); + openapiFields.add("EnableExtraThumbsDuplication"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to XbmcMetadataOptions + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!XbmcMetadataOptions.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in XbmcMetadataOptions is not found in the empty JSON string", XbmcMetadataOptions.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!XbmcMetadataOptions.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `XbmcMetadataOptions` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("UserId") != null && !jsonObj.get("UserId").isJsonNull()) && !jsonObj.get("UserId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `UserId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("UserId").toString())); + } + if ((jsonObj.get("ReleaseDateFormat") != null && !jsonObj.get("ReleaseDateFormat").isJsonNull()) && !jsonObj.get("ReleaseDateFormat").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ReleaseDateFormat` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ReleaseDateFormat").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!XbmcMetadataOptions.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'XbmcMetadataOptions' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(XbmcMetadataOptions.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, XbmcMetadataOptions value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public XbmcMetadataOptions read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of XbmcMetadataOptions given an JSON string + * + * @param jsonString JSON string + * @return An instance of XbmcMetadataOptions + * @throws IOException if the JSON string is invalid with respect to XbmcMetadataOptions + */ + public static XbmcMetadataOptions fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, XbmcMetadataOptions.class); + } + + /** + * Convert an instance of XbmcMetadataOptions to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XmlAttribute.java b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XmlAttribute.java new file mode 100644 index 0000000000000..531582afb1e63 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/generated/10.8.13/src/main/java/org/openapitools/client/model/XmlAttribute.java @@ -0,0 +1,248 @@ +/* + * Jellyfin API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 10.8.13 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.openapitools.client.JSON; + +/** + * Defines the MediaBrowser.Model.Dlna.XmlAttribute. + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2024-12-27T20:32:44.334408221+01:00[Europe/Zurich]", comments = "Generator version: 7.10.0") +public class XmlAttribute { + public static final String SERIALIZED_NAME_NAME = "Name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private String value; + + public XmlAttribute() { + } + + public XmlAttribute name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Gets or sets the name of the attribute. + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public XmlAttribute value(@javax.annotation.Nullable String value) { + this.value = value; + return this; + } + + /** + * Gets or sets the value of the attribute. + * @return value + */ + @javax.annotation.Nullable + public String getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + XmlAttribute xmlAttribute = (XmlAttribute) o; + return Objects.equals(this.name, xmlAttribute.name) && + Objects.equals(this.value, xmlAttribute.value); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class XmlAttribute {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Name"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to XmlAttribute + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!XmlAttribute.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in XmlAttribute is not found in the empty JSON string", XmlAttribute.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!XmlAttribute.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `XmlAttribute` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Name") != null && !jsonObj.get("Name").isJsonNull()) && !jsonObj.get("Name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Name").toString())); + } + if ((jsonObj.get("Value") != null && !jsonObj.get("Value").isJsonNull()) && !jsonObj.get("Value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `Value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("Value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!XmlAttribute.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'XmlAttribute' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(XmlAttribute.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, XmlAttribute value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public XmlAttribute read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of XmlAttribute given an JSON string + * + * @param jsonString JSON string + * @return An instance of XmlAttribute + * @throws IOException if the JSON string is invalid with respect to XmlAttribute + */ + public static XmlAttribute fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, XmlAttribute.class); + } + + /** + * Convert an instance of XmlAttribute to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/openapitools.json b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/openapitools.json new file mode 100644 index 0000000000000..89430c43c28a7 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./specifications/json/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.10.0" + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/config.schema.json b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/config.schema.json new file mode 100644 index 0000000000000..84aaf692617f5 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/config.schema.json @@ -0,0 +1,520 @@ +{ + "$id": "https://openapitools.org/openapi-generator-cli/config.schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "OpenAPI Generator CLI - Config", + "type": "object", + "required": ["generator-cli"], + "additionalProperties": false, + "properties": { + "$schema": { + "type": "string" + }, + "spaces": { + "type": "number", + "default": 2 + }, + "generator-cli": { + "type": "object", + "required": ["version"], + "properties": { + "version": { + "type": "string" + }, + "storageDir": { + "type": "string" + }, + "repository": { + "queryUrl": { + "type": "string", + "default": "https://search.maven.org/solrsearch/select?q=g:${group.id}+AND+a:${artifact.id}&core=gav&start=0&rows=200" + }, + "downloadUrl": { + "type": "string", + "default": "https://repo1.maven.org/maven2/${groupId}/${artifactId}/${versionName}/${artifactId}-${versionName}.jar" + } + }, + "useDocker": { + "type": "boolean", + "default": false + }, + "dockerImageName": { + "type": "string", + "default": "openapitools/openapi-generator-cli" + }, + "generators": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/generator" + } + } + } + } + }, + "definitions": { + "strOrAnyObject": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ] + }, + "generator": { + "type": "object", + "anyOf": [ + { + "required": ["inputSpec", "output", "generatorName"] + }, + { + "required": ["glob", "output", "generatorName"] + } + ], + "properties": { + "glob": { + "description": "matches local specification files using a glob pattern", + "type": "string", + "minLength": 1 + }, + "output": { + "type": "string", + "minLength": 1 + }, + "disabled": { + "type": "boolean", + "default": false + }, + "generatorName": { + "description": "generator to use (see list command for list)", + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "ada", + "ada-server", + "android", + "apache2", + "apex", + "asciidoc", + "aspnetcore", + "avro-schema", + "bash", + "c", + "clojure", + "cpp-pistache-server", + "cpp-qt5-client", + "cpp-qt5-qhttpengine-server", + "cpp-restbed-server", + "cpp-restsdk", + "cpp-tizen", + "csharp", + "csharp-nancyfx", + "csharp-netcore", + "cwiki", + "dart", + "dart-dio", + "dart-jaguar", + "dynamic-html", + "eiffel", + "elixir", + "elm", + "erlang-client", + "erlang-proper", + "erlang-server", + "flash", + "fsharp-functions", + "fsharp-giraffe-server", + "go", + "go-experimental", + "go-gin-server", + "go-server", + "graphql-nodejs-express-server", + "graphql-schema", + "groovy", + "haskell", + "haskell-http-client", + "html", + "html2", + "java", + "java-inflector", + "java-msf4j", + "java-pkmst", + "java-play-framework", + "java-undertow-server", + "java-vertx", + "java-vertx-web", + "javascript", + "javascript-apollo", + "javascript-closure-angular", + "javascript-flowtyped", + "jaxrs-cxf", + "jaxrs-cxf-cdi", + "jaxrs-cxf-client", + "jaxrs-cxf-extended", + "jaxrs-jersey", + "jaxrs-resteasy", + "jaxrs-resteasy-eap", + "jaxrs-spec", + "jmeter", + "k6", + "kotlin", + "kotlin-server", + "kotlin-spring", + "kotlin-vertx", + "lua", + "markdown", + "mysql-schema", + "nim", + "nodejs-express-server", + "objc", + "ocaml", + "openapi", + "openapi-yaml", + "perl", + "php", + "php-laravel", + "php-lumen", + "php-silex", + "php-slim4", + "php-symfony", + "php-ze-ph", + "powershell", + "powershell-experimental", + "protobuf-schema", + "python", + "python-aiohttp", + "python-blueplanet", + "python-experimental", + "python-flask", + "r", + "ruby", + "ruby-on-rails", + "ruby-sinatra", + "rust", + "rust-server", + "scala-akka", + "scala-akka-http-server", + "scala-finch", + "scala-gatling", + "scala-lagom-server", + "scala-play-server", + "scala-sttp", + "scalatra", + "scalaz", + "spring", + "swift4", + "swift5", + "typescript-angular", + "typescript-angularjs", + "typescript-aurelia", + "typescript-axios", + "typescript-fetch", + "typescript-inversify", + "typescript-jquery", + "typescript-node", + "typescript-redux-query", + "typescript-rxjs" + ] + } + ] + }, + "auth": { + "type": "string", + "description": "adds authorization headers when fetching the OpenAPI definitions remotely. Pass in a URL-encoded string of name:header with a comma separating multiple values" + }, + "apiNameSuffix": { + "type": "string", + "description": "suffix that will be appended to all API names ('tags'). Default: Api. e.g. Pet => PetApi. Note: Only ruby, python, jaxrs generators support this feature at the moment" + }, + "apiPackage": { + "type": "string", + "description": "package for generated api classes" + }, + "artifactId": { + "type": "string", + "description": "artifactId in generated pom.xml. This also becomes part of the generated library's filename" + }, + "artifactVersion": { + "type": "string", + "description": "artifact version in generated pom.xml. This also becomes part of the generated library's filename" + }, + "config": { + "type": "string", + "description": "path to configuration file. It can be JSON or YAML" + }, + "dryRun": { + "type": "boolean", + "description": "try things out and report on potential changes (without actually making changes)" + }, + "engine": { + "type": "string", + "enum": ["mustache", "handlebars"], + "description": "templating engine: \"mustache\" (default) or \"handlebars\" (beta)" + }, + "enablePostProcessFile": { + "type": "boolean", + "description": "enable post-processing file using environment variables" + }, + "generateAliasAsModel": { + "type": "boolean", + "description": "generate model implementation for aliases to map and array schemas. An 'alias' is an array, map, or list which is defined inline in a OpenAPI document and becomes a model in the generated code. A 'map' schema is an object that can have undeclared properties, i.e. the 'additionalproperties' attribute is set on that object. An 'array' schema is a list of sub schemas in a OAS document" + }, + "gitHost": { + "type": "string", + "description": "git host, e.g. gitlab.com" + }, + "gitRepoId": { + "type": "string", + "description": "git repo ID, e.g. openapi-generator" + }, + "gitUserId": { + "type": "string", + "description": "git user ID, e.g. openapitools" + }, + "globalProperty": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "sets specified global properties (previously called 'system properties') in the format of name=value,name=value (or multiple options, each with name=value)" + }, + "groupId": { + "type": "string", + "description": "groupId in generated pom.xml" + }, + "httpUserAgent": { + "type": "string", + "description": "HTTP user agent, e.g. codegen_csharp_api_client, default to 'OpenAPI-Generator/{packageVersion}}/{language}'" + }, + "inputSpec": { + "type": "string", + "description": "location of the OpenAPI spec, as URL or file (required if not loaded via config using -c)" + }, + "ignoreFileOverride": { + "type": "string", + "description": "specifies an override location for the .openapi-generator-ignore file. Most useful on initial generation.\n" + }, + "importMappings": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "specifies mappings between a given class and the import that should be used for that class in the format of type=import,type=import. You can also have multiple occurrences of this option" + }, + "instantiationTypes": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "sets instantiation type mappings in the format of type=instantiatedType,type=instantiatedType.For example (in Java): array=ArrayList,map=HashMap. In other words array types will get instantiated as ArrayList in generated code. You can also have multiple occurrences of this option" + }, + "invokerPackage": { + "type": "string", + "description": "root package for generated code" + }, + "languageSpecificPrimitives": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "specifies additional language specific primitive types in the format of type1,type2,type3,type3. For example: String,boolean,Boolean,Double. You can also have multiple occurrences of this option" + }, + "legacyDiscriminatorBehavior": { + "type": "boolean", + "description": "this flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}" + }, + "library": { + "type": "string", + "description": "library template (sub-template)" + }, + "logToStderr": { + "type": "boolean", + "description": "write all log messages (not just errors) to STDOUT. Useful for piping the JSON output of debug options (e.g. `-DdebugOperations`) to an external parser directly while testing a generator" + }, + "minimalUpdate": { + "type": "boolean", + "description": "only write output files that have changed" + }, + "modelNamePrefix": { + "type": "string", + "description": "prefix that will be prepended to all model names" + }, + "modelNameSuffix": { + "type": "string", + "description": "suffix that will be appended to all model names" + }, + "modelPackage": { + "type": "string", + "description": "package for generated models" + }, + "additionalProperties": { + "description": "sets additional properties that can be referenced by the mustache templates in the format of name=value,name=value. You can also have multiple occurrences of this option", + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ] + }, + "openapi-normalizer": { + "description": "OpenAPI Normalizer transforms the input OpenAPI doc/spec (which may not perfectly conform to the specification) to make it workable with OpenAPI Generator.", + "type": "object", + "properties": { + "ADD_UNSIGNED_TO_INTEGER_WITH_INVALID_MAX_VALUE": { + "description": "when set to true, auto fix integer with maximum value 4294967295 (2^32-1) or long with 18446744073709551615 (2^64-1) by adding x-unsigned to the schema", + "type": "boolean" + }, + "FILTER": { + "description": "When set to operationId:addPet|getPetById for example, it will add x-internal:true to operations with operationId not equal to addPet/getPetById (which will have x-internal set to false) so that these operations marked as internal won't be generated", + "type": "string" + }, + "KEEP_ONLY_FIRST_TAG_IN_OPERATION": { + "description": "when set to true, only keep the first tag in operation if there are more than one tag defined", + "type": "boolean" + }, + "REF_AS_PARENT_IN_ALLOF": { + "description": "when set to true, child schemas in allOf is considered a parent if it's a $ref (instead of inline schema)", + "type": "boolean" + }, + "REFACTOR_ALLOF_WITH_PROPERTIES_ONLY": { + "description": "When set to true, refactor schema with allOf and properties in the same level to a schema with allOf only and, the allOf contains a new schema containing the properties in the top level", + "type": "boolean" + }, + "REMOVE_ANYOF_ONEOF_AND_KEEP_PROPERTIES_ONLY": { + "description": "when set to true, oneOf/anyOf schema with only required properies only in a schema with properties will be removed", + "type": "boolean" + }, + "REMOVE_X_INTERNAL": { + "description": "Set to true if you want to disable the default behavior of removing/hiding the x-internal in operations and model", + "type": "boolean" + }, + "SET_CONTAINER_TO_NULLABLE": { + "description": "When set to array|set|map (or just array) for example, it will set nullable in array, set and map to true", + "type": "string" + }, + "SET_PRIMITIVE_TYPES_TO_NULLABLE": { + "description": "When set to string|integer|number|boolean (or just string) for example, it will set the type to nullable (nullable: true)", + "type": "string" + }, + "SET_TAGS_FOR_ALL_OPERATIONS": { + "description": "when set to a string value, tags in all operations will reset to the string value provided", + "type": "boolean" + }, + "SET_TAGS_TO_OPERATIONID": { + "description": "when set to true, tags in all operations will be set to operationId or \"default\" if operationId is empty", + "type": "boolean" + }, + "SIMPLIFY_ANYOF_STRING_AND_ENUM_STRING": { + "description": "when set to true, simplify anyOf schema with string and enum of string to just string", + "type": "boolean" + }, + "SIMPLIFY_BOOLEAN_ENUM": { + "description": "when set to true, convert boolean enum to just enum", + "type": "boolean" + }, + "SIMPLIFY_ONEOF_ANYOF": { + "description": "when set to true, simplify oneOf/anyOf by 1) removing null (sub-schema) or enum of null (sub-schema) and setting nullable to true instead, and 2) simplifying oneOf/anyOf with a single sub-schema to just the sub-schema itself", + "type": "boolean" + } + } + }, + "packageName": { + "type": "string", + "description": "package for generated classes (where supported)" + }, + "releaseNote": { + "type": "string", + "description": "release note, default to 'Minor update'" + }, + "removeOperationIdPrefix": { + "type": "boolean", + "description": "remove prefix of operationId, e.g. config_getId => getId" + }, + "reservedWordsMappings": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "specifies how a reserved name should be escaped to. Otherwise, the default _ is used. For example id=identifier. You can also have multiple occurrences of this option" + }, + "skipOverwrite": { + "type": "boolean", + "description": "specifies if the existing files should be overwritten during the generation" + }, + "serverVariables": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "sets server variables overrides for spec documents which support variable templating of servers" + }, + "skipValidateSpec": { + "type": "boolean", + "description": "skips the default behavior of validating an input specification" + }, + "strictSpec": { + "type": "boolean", + "description": "'MUST' and 'SHALL' wording in OpenAPI spec is strictly adhered to. e.g. when false, no fixes will be applied to documents which pass validation but don't follow the spec" + }, + "templateDir": { + "type": "string", + "description": "folder containing the template files" + }, + "typeMappings": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "description": "sets mappings between OpenAPI spec types and generated code types in the format of OpenAPIType=generatedType,OpenAPIType=generatedType. For example: array=List,map=Map,string=String. You can also have multiple occurrences of this option" + }, + "verbose": { + "type": "boolean", + "description": "verbose mode" + } + } + } + } +} diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.10.3.json b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.10.3.json new file mode 100644 index 0000000000000..13c9f6ca977c4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.10.3.json @@ -0,0 +1,59314 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Jellyfin API", + "version": "10.10.3", + "x-jellyfin-version": "10.10.3" + }, + "servers": [ + { + "url": "http://localhost" + } + ], + "paths": { + "/System/ActivityLog/Entries": { + "get": { + "tags": [ + "ActivityLog" + ], + "summary": "Gets activity log entries.", + "operationId": "GetLogEntries", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minDate", + "in": "query", + "description": "Optional. The minimum date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasUserId", + "in": "query", + "description": "Optional. Filter log entries if it has user id, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Activity log returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys": { + "get": { + "tags": [ + "ApiKey" + ], + "summary": "Get all keys.", + "operationId": "GetKeys", + "responses": { + "200": { + "description": "Api keys retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "ApiKey" + ], + "summary": "Create a new api key.", + "operationId": "CreateKey", + "parameters": [ + { + "name": "app", + "in": "query", + "description": "Name of the app using the authentication key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys/{key}": { + "delete": { + "tags": [ + "ApiKey" + ], + "summary": "Remove an api key.", + "operationId": "RevokeKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The access token to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Artists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all artists from a given item, folder, or the entire library.", + "operationId": "GetArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets an artist by name.", + "operationId": "GetArtistByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Artist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/AlbumArtists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all album artists from a given item, folder, or the entire library.", + "operationId": "GetAlbumArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Album artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/stream": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Branding/Configuration": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding configuration.", + "operationId": "GetBrandingOptions", + "responses": { + "200": { + "description": "Branding configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + } + } + } + } + } + }, + "/Branding/Css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Branding/Css.css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss_2", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Channels": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets available channels.", + "operationId": "GetChannels", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "supportsLatestItems", + "in": "query", + "description": "Optional. Filter by channels that support getting latest items.", + "schema": { + "type": "boolean" + } + }, + { + "name": "supportsMediaDeletion", + "in": "query", + "description": "Optional. Filter by channels that support media deletion.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorite.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel features.", + "operationId": "GetChannelFeatures", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Channel features returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Items": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel items.", + "operationId": "GetChannelItems", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "folderId", + "in": "query", + "description": "Optional. Folder Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get all channel features.", + "operationId": "GetAllChannelFeatures", + "responses": { + "200": { + "description": "All channel features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Items/Latest": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets latest channel items.", + "operationId": "GetLatestChannelItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "channelIds", + "in": "query", + "description": "Optional. Specify one or more channel id's, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "200": { + "description": "Latest channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ClientLog/Document": { + "post": { + "tags": [ + "ClientLog" + ], + "summary": "Upload a document.", + "operationId": "LogFile", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Document saved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + } + } + }, + "403": { + "description": "Event logging disabled.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "413": { + "description": "Upload size too large.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Creates a new collection.", + "operationId": "CreateCollection", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the collection.", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item Ids to add to the collection.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Create the collection within a specific folder.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Whether or not to lock the new collection.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Collection created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections/{collectionId}/Items": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Adds items to a collection.", + "operationId": "AddToCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items added to collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Collection" + ], + "summary": "Removes items from a collection.", + "operationId": "RemoveFromCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed from collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets application configuration.", + "operationId": "GetConfiguration", + "responses": { + "200": { + "description": "Application configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates application configuration.", + "operationId": "UpdateConfiguration", + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/{key}": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a named configuration.", + "operationId": "GetNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Configuration returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates named configuration.", + "operationId": "UpdateNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { } + }, + "text/json": { + "schema": { } + }, + "application/*+json": { + "schema": { } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Named configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/MetadataOptions/Default": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a default MetadataOptions object.", + "operationId": "GetDefaultMetadataOptions", + "responses": { + "200": { + "description": "Metadata options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/web/ConfigurationPage": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets a dashboard configuration page.", + "operationId": "GetDashboardConfigurationPage", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the page.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPage returned.", + "content": { + "text/html": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/x-javascript": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Plugin configuration page not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/web/ConfigurationPages": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets the configuration pages.", + "operationId": "GetConfigurationPages", + "parameters": [ + { + "name": "enableInMainMenu", + "in": "query", + "description": "Whether to enable in the main menu.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + } + } + }, + "404": { + "description": "Server still loading.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get Devices.", + "operationId": "GetDevices", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Gets or sets the user identifier.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Devices" + ], + "summary": "Deletes a device.", + "operationId": "DeleteDevice", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device deleted." + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Info": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get info for a device.", + "operationId": "GetDeviceInfo", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device info retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Options": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get options for a device.", + "operationId": "GetDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device options retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Devices" + ], + "summary": "Update device options.", + "operationId": "UpdateDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device Options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Device options updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/DisplayPreferences/{displayPreferencesId}": { + "get": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Get Display Preferences.", + "operationId": "GetDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Display preferences retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Update Display Preferences.", + "operationId": "UpdateDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New Display Preferences object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Display preferences updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsAudioSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio stream using HTTP live streaming.", + "operationId": "GetVariantHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "GetMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "HeadMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsVideoSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The desired segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/live.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a hls live stream.", + "operationId": "GetLiveHlsStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The max width.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The max height.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableSubtitlesInManifest", + "in": "query", + "description": "Optional. Whether to enable subtitles in the manifest.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Hls live stream retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetVariantHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "GetMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTrickplay", + "in": "query", + "description": "Enable trickplay image playlists being added to master playlist.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "HeadMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTrickplay", + "in": "query", + "description": "Enable trickplay image playlists being added to master playlist.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DefaultDirectoryBrowser": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Get Default directory browser.", + "operationId": "GetDefaultDirectoryBrowser", + "responses": { + "200": { + "description": "Default directory browser returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DirectoryContents": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the contents of a given directory in the file system.", + "operationId": "GetDirectoryContents", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeFiles", + "in": "query", + "description": "An optional filter to include or exclude files from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeDirectories", + "in": "query", + "description": "An optional filter to include or exclude folders from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Directory contents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/Drives": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets available drives from the server's file system.", + "operationId": "GetDrives", + "responses": { + "200": { + "description": "List of entries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/NetworkShares": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets network paths.", + "operationId": "GetNetworkShares", + "responses": { + "200": { + "description": "Empty array returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/ParentPath": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the parent path of a given path.", + "operationId": "GetParentPath", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/ValidatePath": { + "post": { + "tags": [ + "Environment" + ], + "summary": "Validates path.", + "operationId": "ValidatePath", + "requestBody": { + "description": "Validate request object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Path validated." + }, + "404": { + "description": "Path not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets legacy query filters.", + "operationId": "GetQueryFiltersLegacy", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Parent id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + } + ], + "responses": { + "200": { + "description": "Legacy filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters2": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets query filters.", + "operationId": "GetQueryFilters", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Is item airing.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Is item movie.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Is item sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Is item kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Is item news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Is item series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Optional. Search recursive.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets all genres from a given item, folder, or the entire library.", + "operationId": "GetGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres/{genreName}": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets a genre, by name.", + "operationId": "GetGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.aac": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyAac", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.mp3": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyMp3", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video segment.", + "operationId": "GetHlsVideoSegmentLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "path", + "description": "The segment container.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video segment returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Hls segment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/stream.m3u8": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video playlist.", + "operationId": "GetHlsPlaylistLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The video id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/ActiveEncodings": { + "delete": { + "tags": [ + "HlsSegment" + ], + "summary": "Stops an active encoding.", + "operationId": "StopEncodingProcess", + "parameters": [ + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Encoding stopped successfully." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "GetArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "HeadArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Branding/Splashscreen": { + "get": { + "tags": [ + "Image" + ], + "summary": "Generates or gets the splashscreen.", + "operationId": "GetSplashscreen", + "parameters": [ + { + "name": "tag", + "in": "query", + "description": "Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "quality", + "in": "query", + "description": "Quality setting, from 0-100.", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32", + "default": 90 + } + } + ], + "responses": { + "200": { + "description": "Splashscreen returned successfully.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.", + "operationId": "UploadCustomSplashscreen", + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Successfully uploaded new splashscreen." + }, + "400": { + "description": "Error reading MimeType from uploaded image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to upload splashscreen..", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete a custom splashscreen.", + "operationId": "DeleteCustomSplashscreen", + "responses": { + "204": { + "description": "Successfully deleted the custom splashscreen." + }, + "403": { + "description": "User does not have permission to delete splashscreen.." + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Genres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Genres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get item image infos.", + "operationId": "GetItemImageInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item images returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Images/{imageType}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "The image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "The image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": { + "post": { + "tags": [ + "Image" + ], + "summary": "Updates the index for an item image.", + "operationId": "UpdateItemImageIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Old image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newIndex", + "in": "query", + "description": "New image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image index updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/MusicGenres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/MusicGenres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/UserImage": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "400": { + "description": "User id not provided.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "400": { + "description": "User id not provided.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Albums/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given album.", + "operationId": "GetInstantMixFromAlbum", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists2", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given item.", + "operationId": "GetInstantMixFromItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{name}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreById", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given playlist.", + "operationId": "GetInstantMixFromPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Songs/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given song.", + "operationId": "GetInstantMixFromSong", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ExternalIdInfos": { + "get": { + "tags": [ + "ItemLookup" + ], + "summary": "Get the item's external id info.", + "operationId": "GetExternalIdInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "External id info retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Apply/{itemId}": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Applies search criteria to an item and refreshes metadata.", + "operationId": "ApplySearchCriteria", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "Optional. Whether or not to replace all images. Default: True.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "requestBody": { + "description": "The remote search result.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item metadata refreshed." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Book": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get book remote search.", + "operationId": "GetBookRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Book remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/BoxSet": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get box set remote search.", + "operationId": "GetBoxSetRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Box set remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Movie": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get movie remote search.", + "operationId": "GetMovieRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Movie remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicAlbum": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music album remote search.", + "operationId": "GetMusicAlbumRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music album remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicArtist": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music artist remote search.", + "operationId": "GetMusicArtistRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music artist remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicVideo": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music video remote search.", + "operationId": "GetMusicVideoRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music video remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Person": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get person remote search.", + "operationId": "GetPersonRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Person remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Series": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get series remote search.", + "operationId": "GetSeriesRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Series remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Trailer": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get trailer remote search.", + "operationId": "GetTrailerRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Trailer remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Refresh": { + "post": { + "tags": [ + "ItemRefresh" + ], + "summary": "Refreshes metadata for an item.", + "operationId": "RefreshItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "metadataRefreshMode", + "in": "query", + "description": "(Optional) Specifies the metadata refresh mode.", + "schema": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "imageRefreshMode", + "in": "query", + "description": "(Optional) Specifies the image refresh mode.", + "schema": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "replaceAllMetadata", + "in": "query", + "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "regenerateTrickplay", + "in": "query", + "description": "(Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Item metadata refresh queued." + }, + "404": { + "description": "Item to refresh not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter; this is required when not using an API key.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "indexNumber", + "in": "query", + "description": "Optional filter by index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an IMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a TMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a TVDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes items from the library and filesystem.", + "operationId": "DeleteItems", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/{itemId}/UserData": { + "get": { + "tags": [ + "Items" + ], + "summary": "Get Item User Data.", + "operationId": "GetItemUserData", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "return item user data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item is not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Items" + ], + "summary": "Update Item User Data.", + "operationId": "UpdateItemUserData", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "New user data object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "return updated user item data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item is not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/Resume": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetResumeItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "The item limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "excludeActiveSessions", + "in": "query", + "description": "Optional. Whether to exclude the currently active sessions.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item.", + "operationId": "UpdateItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new item properties.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes an item from the library and filesystem.", + "operationId": "DeleteItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Item deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets an item from a user's library.", + "operationId": "GetItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ContentType": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item's content type.", + "operationId": "UpdateItemContentType", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "contentType", + "in": "query", + "description": "The content type of the item.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Item content type updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/MetadataEditor": { + "get": { + "tags": [ + "ItemUpdate" + ], + "summary": "Gets metadata editor info for an item.", + "operationId": "GetMetadataEditorInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item metadata editor returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Albums/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarAlbums", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Ancestors": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all parents of an item.", + "operationId": "GetAncestors", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item parents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/CriticReviews": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets critic review for an item.", + "operationId": "GetCriticReviews", + "parameters": [ + { + "name": "itemId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Critic reviews returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Download": { + "get": { + "tags": [ + "Library" + ], + "summary": "Downloads item media.", + "operationId": "GetDownload", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Media downloaded.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "Download", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/File": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get the original file of an item.", + "operationId": "GetFile", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "File stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarItems", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeMedia": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs and videos for an item.", + "operationId": "GetThemeMedia", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme songs and videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeSongs": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs for an item.", + "operationId": "GetThemeSongs", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme songs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeVideos": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme videos for an item.", + "operationId": "GetThemeVideos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Counts": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get item counts.", + "operationId": "GetItemCounts", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Get counts from a specific user's library.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Get counts of favorite items.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item counts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Libraries/AvailableOptions": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets the library options info.", + "operationId": "GetLibraryOptionsInfo", + "parameters": [ + { + "name": "libraryContentType", + "in": "query", + "description": "Library content type.", + "schema": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ] + } + }, + { + "name": "isNewLibrary", + "in": "query", + "description": "Whether this is a new library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Library options info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Media/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMedia", + "requestBody": { + "description": "The update paths.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/MediaFolders": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all user media folders.", + "operationId": "GetMediaFolders", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional. Filter by folders that are marked hidden, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Media folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Movies/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostAddedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Movies/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/PhysicalPaths": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets a list of physical paths from virtual folders.", + "operationId": "GetPhysicalPaths", + "responses": { + "200": { + "description": "Physical paths returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Refresh": { + "post": { + "tags": [ + "Library" + ], + "summary": "Starts a library scan.", + "operationId": "RefreshLibrary", + "responses": { + "204": { + "description": "Library scan started." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Series/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostAddedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Series/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostUpdatedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarMovies", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarShows", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarTrailers", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders": { + "get": { + "tags": [ + "LibraryStructure" + ], + "summary": "Gets all virtual folders.", + "operationId": "GetVirtualFolders", + "responses": { + "200": { + "description": "Virtual folders retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Adds a virtual folder.", + "operationId": "AddVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "collectionType", + "in": "query", + "description": "The type of the collection.", + "schema": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ] + } + }, + { + "name": "paths", + "in": "query", + "description": "The paths of the virtual folder.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The library options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + } + } + }, + "responses": { + "204": { + "description": "Folder added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Removes a virtual folder.", + "operationId": "RemoveVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the folder.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/LibraryOptions": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Update library options.", + "operationId": "UpdateLibraryOptions", + "requestBody": { + "description": "The library name and options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + } + } + }, + "responses": { + "204": { + "description": "Library updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Name": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Renames a virtual folder.", + "operationId": "RenameVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "newName", + "in": "query", + "description": "The new name.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder renamed." + }, + "404": { + "description": "Library doesn't exist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "409": { + "description": "Library already exists.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Add a media path to a library.", + "operationId": "AddMediaPath", + "parameters": [ + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The media path dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Remove a media path.", + "operationId": "RemoveMediaPath", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the library.", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "The path to remove.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Media path removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths/Update": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Updates a media path.", + "operationId": "UpdateMediaPath", + "requestBody": { + "description": "The name of the library and path infos.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ChannelMappingOptions": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get channel mapping options.", + "operationId": "GetChannelMappingOptions", + "parameters": [ + { + "name": "providerId", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Channel mapping options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ChannelMappings": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Set channel mappings.", + "operationId": "SetChannelMapping", + "requestBody": { + "description": "The set channel mapping dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Created channel mapping returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Channels": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv channels.", + "operationId": "GetLiveTvChannels", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Optional. Filter by channel type.", + "schema": { + "enum": [ + "TV", + "Radio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ] + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorites, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLiked", + "in": "query", + "description": "Optional. Filter by channels that are liked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisliked", + "in": "query", + "description": "Optional. Filter by channels that are disliked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "\"Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Key to sort by.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort order.", + "schema": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + }, + { + "name": "enableFavoriteSorting", + "in": "query", + "description": "Optional. Incorporate favorite and like status into channel sorting.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addCurrentProgram", + "in": "query", + "description": "Optional. Adds current program info to each channel.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Available live tv channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Channels/{channelId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel.", + "operationId": "GetChannel", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Live tv channel returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/GuideInfo": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get guid info.", + "operationId": "GetGuideInfo", + "responses": { + "200": { + "description": "Guid info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Info": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv services.", + "operationId": "GetLiveTvInfo", + "responses": { + "200": { + "description": "Available live tv services returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a listings provider.", + "operationId": "AddListingProvider", + "parameters": [ + { + "name": "pw", + "in": "query", + "description": "Password.", + "schema": { + "type": "string" + } + }, + { + "name": "validateListings", + "in": "query", + "description": "Validate listings.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateLogin", + "in": "query", + "description": "Validate login.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "New listings info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created listings provider returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Delete listing provider.", + "operationId": "DeleteListingProvider", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Listing provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Listing provider deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Default": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets default listings provider info.", + "operationId": "GetDefaultListingProvider", + "responses": { + "200": { + "description": "Default listings provider info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Lineups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available lineups.", + "operationId": "GetLineups", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Provider type.", + "schema": { + "type": "string" + } + }, + { + "name": "location", + "in": "query", + "description": "Location.", + "schema": { + "type": "string" + } + }, + { + "name": "country", + "in": "query", + "description": "Country.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Available lineups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/SchedulesDirect/Countries": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available countries.", + "operationId": "GetSchedulesDirectCountries", + "responses": { + "200": { + "description": "Available countries returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/LiveRecordings/{recordingId}/stream": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording stream.", + "operationId": "GetLiveRecordingFile", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Recording stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Recording not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel stream.", + "operationId": "GetLiveStreamFile", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "container", + "in": "path", + "description": "Container type.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Stream not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/Programs": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetLiveTvPrograms", + "parameters": [ + { + "name": "channelIds", + "in": "query", + "description": "The channels to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "minStartDate", + "in": "query", + "description": "Optional. The minimum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "maxStartDate", + "in": "query", + "description": "Optional. The maximum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minEndDate", + "in": "query", + "description": "Optional. The minimum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxEndDate", + "in": "query", + "description": "Optional. The maximum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genre ids to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by series timer id.", + "schema": { + "type": "string" + } + }, + { + "name": "librarySeriesId", + "in": "query", + "description": "Optional. Filter by library series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetPrograms", + "requestBody": { + "description": "Request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + } + } + }, + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Programs/{programId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv program.", + "operationId": "GetProgram", + "parameters": [ + { + "name": "programId", + "in": "path", + "description": "Program id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Program returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Programs/Recommended": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recommended live tv epgs.", + "operationId": "GetRecommendedPrograms", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Recommended epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recordings.", + "operationId": "GetRecordings", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLibraryItem", + "in": "query", + "description": "Optional. Filter for is library item.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/{recordingId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording.", + "operationId": "GetRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a live tv recording.", + "operationId": "DeleteRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Recording deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Folders": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recording folders.", + "operationId": "GetRecordingFolders", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording groups.", + "operationId": "GetRecordingGroups", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording groups returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups/{groupId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get recording group.", + "operationId": "GetRecordingGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "description": "Group id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Series": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording series.", + "operationId": "GetRecordingsSeries", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "groupId", + "in": "query", + "description": "Optional. Filter by recording group.", + "schema": { + "type": "string" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv series timers.", + "operationId": "GetSeriesTimers", + "parameters": [ + { + "name": "sortBy", + "in": "query", + "description": "Optional. Sort by SortName or Priority.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort in Ascending or Descending order.", + "schema": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Timers returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv series timer.", + "operationId": "CreateSeriesTimer", + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer info created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv series timer.", + "operationId": "GetSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Series timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "404": { + "description": "Series timer not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv series timer.", + "operationId": "CancelSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv series timer.", + "operationId": "UpdateSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the live tv timers.", + "operationId": "GetTimers", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by timers belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Optional. Filter by timers that are active.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isScheduled", + "in": "query", + "description": "Optional. Filter by timers that are scheduled.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv timer.", + "operationId": "CreateTimer", + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a timer.", + "operationId": "GetTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv timer.", + "operationId": "CancelTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv timer.", + "operationId": "UpdateTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers/Defaults": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the default values for a new timer.", + "operationId": "GetDefaultTimer", + "parameters": [ + { + "name": "programId", + "in": "query", + "description": "Optional. To attach default values based on a program.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Default values returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/TunerHosts": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a tuner host.", + "operationId": "AddTunerHost", + "requestBody": { + "description": "New tuner host.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created tuner host returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a tuner host.", + "operationId": "DeleteTunerHost", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Tuner host id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner host deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/TunerHosts/Types": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get tuner host types.", + "operationId": "GetTunerHostTypes", + "responses": { + "200": { + "description": "Tuner host types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/{tunerId}/Reset": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Resets a tv tuner.", + "operationId": "ResetTuner", + "parameters": [ + { + "name": "tunerId", + "in": "path", + "description": "Tuner id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner reset." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discvover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscvoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Countries": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known countries.", + "operationId": "GetCountries", + "responses": { + "200": { + "description": "Known countries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Cultures": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known cultures.", + "operationId": "GetCultures", + "responses": { + "200": { + "description": "Known cultures returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Options": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets localization options.", + "operationId": "GetLocalizationOptions", + "responses": { + "200": { + "description": "Localization options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/ParentalRatings": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known parental ratings.", + "operationId": "GetParentalRatings", + "responses": { + "200": { + "description": "Known parental ratings returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/Lyrics": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Gets an item's lyrics.", + "operationId": "GetLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Lyrics returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Something went wrong. No Lyrics will be returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Lyrics" + ], + "summary": "Upload an external lyric file.", + "operationId": "UploadLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the lyric belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fileName", + "in": "query", + "description": "Name of the file being uploaded.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Lyrics uploaded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "400": { + "description": "Error processing upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Lyrics" + ], + "summary": "Deletes an external lyric file.", + "operationId": "DeleteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Lyric deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/RemoteSearch/Lyrics": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Search remote lyrics.", + "operationId": "SearchRemoteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Lyrics retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/RemoteSearch/Lyrics/{lyricId}": { + "post": { + "tags": [ + "Lyrics" + ], + "summary": "Downloads a remote lyric.", + "operationId": "DownloadRemoteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "lyricId", + "in": "path", + "description": "The lyric id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Lyric downloaded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Lyrics/{lyricId}": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Gets the remote lyrics.", + "operationId": "GetRemoteLyrics", + "parameters": [ + { + "name": "lyricId", + "in": "path", + "description": "The remote provider item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Lyric not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/PlaybackInfo": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "operationId": "GetPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "GetPostedPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "autoOpenLiveStream", + "in": "query", + "description": "Whether to auto open the livestream.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTranscoding", + "in": "query", + "description": "Whether to enable transcoding. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether to allow to copy the video stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether to allow to copy the audio stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The playback info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Close": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Closes a media source.", + "operationId": "CloseLiveStream", + "parameters": [ + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Livestream closed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Open": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Opens a media source.", + "operationId": "OpenLiveStream", + "parameters": [ + { + "name": "openToken", + "in": "query", + "description": "The open token.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Always burn-in subtitle when transcoding.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The open live stream dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + } + } + }, + "responses": { + "200": { + "description": "Media source opened.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playback/BitrateTest": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Tests the network with a request with the size of the bitrate.", + "operationId": "GetBitrateTestBytes", + "parameters": [ + { + "name": "size", + "in": "query", + "description": "The bitrate. Defaults to 102400.", + "schema": { + "maximum": 100000000, + "minimum": 1, + "type": "integer", + "format": "int32", + "default": 102400 + } + } + ], + "responses": { + "200": { + "description": "Test buffer returned.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MediaSegments/{itemId}": { + "get": { + "tags": [ + "MediaSegments" + ], + "summary": "Gets all media segments based on an itemId.", + "operationId": "GetItemSegments", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The ItemId.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeSegmentTypes", + "in": "query", + "description": "Optional filter of requested segment types.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSegmentType" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/Recommendations": { + "get": { + "tags": [ + "Movies" + ], + "summary": "Gets movie recommendations.", + "operationId": "GetMovieRecommendations", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. The fields to return.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "categoryLimit", + "in": "query", + "description": "The max number of categories to return.", + "schema": { + "type": "integer", + "format": "int32", + "default": 5 + } + }, + { + "name": "itemLimit", + "in": "query", + "description": "The max number of items to return per category.", + "schema": { + "type": "integer", + "format": "int32", + "default": 8 + } + } + ], + "responses": { + "200": { + "description": "Movie recommendations returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets all music genres from a given item, folder, or the entire library.", + "operationId": "GetMusicGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Music genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{genreName}": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets a music genre, by name.", + "operationId": "GetMusicGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets available packages.", + "operationId": "GetPackages", + "responses": { + "200": { + "description": "Available packages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/{name}": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets a package by name or assembly GUID.", + "operationId": "GetPackageInfo", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the package.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "The GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/Installed/{name}": { + "post": { + "tags": [ + "Package" + ], + "summary": "Installs a package.", + "operationId": "InstallPackage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Package name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "query", + "description": "Optional version. Defaults to latest version.", + "schema": { + "type": "string" + } + }, + { + "name": "repositoryUrl", + "in": "query", + "description": "Optional. Specify the repository to install from.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Package found." + }, + "404": { + "description": "Package not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/Installing/{packageId}": { + "delete": { + "tags": [ + "Package" + ], + "summary": "Cancels a package installation.", + "operationId": "CancelPackageInstallation", + "parameters": [ + { + "name": "packageId", + "in": "path", + "description": "Installation Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Installation cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Repositories": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets all package repositories.", + "operationId": "GetRepositories", + "responses": { + "200": { + "description": "Package repositories returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Package" + ], + "summary": "Sets the enabled and existing package repositories.", + "operationId": "SetRepositories", + "requestBody": { + "description": "The list of package repositories.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Package repositories saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Persons": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Gets all persons.", + "operationId": "GetPersons", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not. userId is required.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludePersonTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "appearsInItemId", + "in": "query", + "description": "Optional. If specified, person results will be filtered on items related to said persons.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Persons returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons/{name}": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Get person by name.", + "operationId": "GetPerson", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Person returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Creates a new playlist.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "CreatePlaylist", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The playlist name.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "deprecated": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media type.", + "deprecated": true, + "schema": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ] + } + } + ], + "requestBody": { + "description": "The create playlist payload.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playlist created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Updates a playlist.", + "operationId": "UpdatePlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Playlist updated." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist.", + "operationId": "GetPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "The playlist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Adds items to a playlist.", + "operationId": "AddItemToPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item id, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The userId.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Items added to playlist." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Removes items from a playlist.", + "operationId": "RemoveItemFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "entryIds", + "in": "query", + "description": "The item ids, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Gets the original items of a playlist.", + "operationId": "GetPlaylistItems", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Original playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Moves a playlist item.", + "operationId": "MoveItem", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newIndex", + "in": "path", + "description": "The new index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Item moved to new index." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Users": { + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist's users.", + "operationId": "GetPlaylistUsers", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Found shares.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + } + } + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Users/{userId}": { + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist user.", + "operationId": "GetPlaylistUser", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User permission found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + } + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Playlists" + ], + "summary": "Modify a user of a playlist's users.", + "operationId": "UpdatePlaylistUser", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User's permissions modified." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Remove a user from a playlist's users.", + "operationId": "RemoveUserFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User permissions removed from playlist." + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "No playlist or user permissions found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized access." + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/PlayingItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a session has begun playing an item.", + "operationId": "OnPlaybackStart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "canSeek", + "in": "query", + "description": "Indicates if the client can seek.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a session has stopped playing an item.", + "operationId": "OnPlaybackStopped", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "nextMediaType", + "in": "query", + "description": "The next media type that will play.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/PlayingItems/{itemId}/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports a session's playback progress.", + "operationId": "OnPlaybackProgress", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "volumeLevel", + "in": "query", + "description": "Scale of 0-100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "repeatMode", + "in": "query", + "description": "The repeat mode.", + "schema": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ] + } + }, + { + "name": "isPaused", + "in": "query", + "description": "Indicates if the player is paused.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isMuted", + "in": "query", + "description": "Indicates if the player is muted.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has started within a session.", + "operationId": "ReportPlaybackStart", + "requestBody": { + "description": "The playback start info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Ping": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Pings a playback session.", + "operationId": "PingPlaybackSession", + "parameters": [ + { + "name": "playSessionId", + "in": "query", + "description": "Playback session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback session pinged." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback progress within a session.", + "operationId": "ReportPlaybackProgress", + "requestBody": { + "description": "The playback progress info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Stopped": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has stopped within a session.", + "operationId": "ReportPlaybackStopped", + "requestBody": { + "description": "The playback stop info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserPlayedItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as played for user.", + "operationId": "MarkPlayedItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "datePlayed", + "in": "query", + "description": "Optional. The date the item was played.", + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "Item marked as played.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as unplayed for user.", + "operationId": "MarkUnplayedItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as unplayed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a list of currently installed plugins.", + "operationId": "GetPlugins", + "responses": { + "200": { + "description": "Installed plugins returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin.", + "operationId": "UninstallPlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin by version.", + "operationId": "UninstallPluginByVersion", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Disable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Disable a plugin.", + "operationId": "DisablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin disabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Enable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Enables a disabled plugin.", + "operationId": "EnablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin enabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Image": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's image.", + "operationId": "GetPluginImage", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Plugin image returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Configuration": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets plugin configuration.", + "operationId": "GetPluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Plugin configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + } + } + }, + "404": { + "description": "Plugin not found or plugin configuration not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Plugins" + ], + "summary": "Updates plugin configuration.", + "description": "Accepts plugin configuration as JSON body.", + "operationId": "UpdatePluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin configuration updated." + }, + "404": { + "description": "Plugin not found or plugin does not have configuration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Manifest": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's manifest.", + "operationId": "GetPluginManifest", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin manifest returned." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/QuickConnect/Authorize": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Authorizes a pending quick connect request.", + "operationId": "AuthorizeQuickConnect", + "parameters": [ + { + "name": "code", + "in": "query", + "description": "Quick connect code to authorize.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user the authorize. Access to the requested user is required.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result authorized successfully.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + }, + "403": { + "description": "Unknown user id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Connect": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Attempts to retrieve authentication information.", + "operationId": "GetQuickConnectState", + "parameters": [ + { + "name": "secret", + "in": "query", + "description": "Secret previously returned from the Initiate endpoint.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "404": { + "description": "Unknown quick connect secret.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/QuickConnect/Enabled": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Gets the current quick connect state.", + "operationId": "GetQuickConnectEnabled", + "responses": { + "200": { + "description": "Quick connect state returned.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + } + } + } + }, + "/QuickConnect/Initiate": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Initiate a new quick connect request.", + "operationId": "InitiateQuickConnect", + "responses": { + "200": { + "description": "Quick connect request successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "401": { + "description": "Quick connect is not active on this server." + } + } + } + }, + "/Items/{itemId}/RemoteImages": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote images for an item.", + "operationId": "GetRemoteImages", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ] + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "providerName", + "in": "query", + "description": "Optional. The image provider to use.", + "schema": { + "type": "string" + } + }, + { + "name": "includeAllLanguages", + "in": "query", + "description": "Optional. Include all languages.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Remote Images returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Download": { + "post": { + "tags": [ + "RemoteImage" + ], + "summary": "Downloads a remote image for an item.", + "operationId": "DownloadRemoteImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageUrl", + "in": "query", + "description": "The image url.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Remote image downloaded." + }, + "404": { + "description": "Remote image not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Providers": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote image providers for an item.", + "operationId": "GetRemoteImageProviders", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Returned remote image providers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ScheduledTasks": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get tasks.", + "operationId": "GetTasks", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter tasks that are hidden, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isEnabled", + "in": "query", + "description": "Optional filter tasks that are enabled, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Scheduled tasks retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get task by id.", + "operationId": "GetTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}/Triggers": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Update specified task triggers.", + "operationId": "UpdateTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Triggers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Task triggers updated." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/Running/{taskId}": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Start specified task.", + "operationId": "StartTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task started." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Stop specified task.", + "operationId": "StopTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task stopped." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Search/Hints": { + "get": { + "tags": [ + "Search" + ], + "summary": "Gets the search hint result.", + "operationId": "GetSearchHints", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Supply a user id to search within a user's library or omit to search all.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term to filter on.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "If specified, only children of the parent are returned.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "includePeople", + "in": "query", + "description": "Optional filter whether to include people.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeMedia", + "in": "query", + "description": "Optional filter whether to include media.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeGenres", + "in": "query", + "description": "Optional filter whether to include genres.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeStudios", + "in": "query", + "description": "Optional filter whether to include studios.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeArtists", + "in": "query", + "description": "Optional filter whether to include artists.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Search hint returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Auth/PasswordResetProviders": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all password reset providers.", + "operationId": "GetPasswordResetProviders", + "responses": { + "200": { + "description": "Password reset providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Providers": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all auth providers.", + "operationId": "GetAuthProviders", + "responses": { + "200": { + "description": "Auth providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Sessions": { + "get": { + "tags": [ + "Session" + ], + "summary": "Gets a list of sessions.", + "operationId": "GetSessions", + "parameters": [ + { + "name": "controllableByUserId", + "in": "query", + "description": "Filter by sessions that a given user is allowed to remote control.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "Filter by device Id.", + "schema": { + "type": "string" + } + }, + { + "name": "activeWithinSeconds", + "in": "query", + "description": "Optional. Filter by sessions that were active in the last n seconds.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "List of sessions returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a full general command to a client.", + "operationId": "SendFullGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.GeneralCommand.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Full general command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a general command to a client.", + "operationId": "SendGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "General command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Message": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a command to a client to display a message to the user.", + "operationId": "SendMessageCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Message sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to play an item.", + "operationId": "Play", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playCommand", + "in": "query", + "description": "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.", + "required": true, + "schema": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Enum PlayCommand." + } + }, + { + "name": "itemIds", + "in": "query", + "description": "The ids of the items to play, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The starting position of the first item.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "Optional. The media source id.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a playstate command to a client.", + "operationId": "SendPlaystateCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The MediaBrowser.Model.Session.PlaystateCommand.", + "required": true, + "schema": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + } + }, + { + "name": "seekPositionTicks", + "in": "query", + "description": "The optional position ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "controllingUserId", + "in": "query", + "description": "The optional controlling user id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playstate command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/System/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a system command to a client.", + "operationId": "SendSystemCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "System command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/User/{userId}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Adds an additional user to a session.", + "operationId": "AddUserToSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User added to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Session" + ], + "summary": "Removes an additional user from a session.", + "operationId": "RemoveUserFromSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User removed from session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to browse to an item or view.", + "operationId": "DisplayContent", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session Id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemType", + "in": "query", + "description": "The type of item to browse to.", + "required": true, + "schema": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + } + }, + { + "name": "itemId", + "in": "query", + "description": "The Id of the item.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemName", + "in": "query", + "description": "The name of the item.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "playableMediaTypes", + "in": "query", + "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "supportedCommands", + "in": "query", + "description": "A list of supported remote control commands, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + } + } + }, + { + "name": "supportsMediaControl", + "in": "query", + "description": "Determines whether media can be played remotely..", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsPersistentIdentifier", + "in": "query", + "description": "Determines whether the device supports a unique identifier.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "204": { + "description": "Capabilities posted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities/Full": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostFullCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.ClientCapabilities.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Capabilities updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Logout": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session has ended.", + "operationId": "ReportSessionEnded", + "responses": { + "204": { + "description": "Session end reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session is viewing an item.", + "operationId": "ReportViewing", + "parameters": [ + { + "name": "sessionId", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Session reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Complete": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Completes the startup wizard.", + "operationId": "CompleteWizard", + "responses": { + "204": { + "description": "Startup wizard completed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Configuration": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the initial startup wizard configuration.", + "operationId": "GetStartupConfiguration", + "responses": { + "200": { + "description": "Initial startup wizard configuration retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the initial startup wizard configuration.", + "operationId": "UpdateInitialConfiguration", + "requestBody": { + "description": "The updated startup configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/FirstUser": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser_2", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/RemoteAccess": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets remote access and UPnP.", + "operationId": "SetRemoteAccess", + "requestBody": { + "description": "The startup remote access dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/User": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the user name and password.", + "operationId": "UpdateStartupUser", + "requestBody": { + "description": "The DTO containing username and password.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + } + } + }, + "responses": { + "204": { + "description": "Updated user name and password." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets all studios from a given item, folder, or the entire library.", + "operationId": "GetStudios", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Studios returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios/{name}": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets a studio by name.", + "operationId": "GetStudio", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Studio returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a list of available fallback font files.", + "operationId": "GetFallbackFontList", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts/{name}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a fallback font file.", + "operationId": "GetFallbackFont", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the fallback font file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Fallback font file retrieved.", + "content": { + "font/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{language}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Search remote subtitles.", + "operationId": "SearchRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "language", + "in": "path", + "description": "The language of the subtitles.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isPerfectMatch", + "in": "query", + "description": "Optional. Only show subtitles which are a perfect match.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Subtitles retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Downloads a remote subtitle.", + "operationId": "DownloadRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "subtitleId", + "in": "path", + "description": "The subtitle id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Subtitle downloaded." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Subtitles/Subtitles/{subtitleId}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets the remote subtitles.", + "operationId": "GetRemoteSubtitles", + "parameters": [ + { + "name": "subtitleId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets an HLS subtitle playlist.", + "operationId": "GetSubtitlePlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "The media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The subtitle segment length.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Subtitle playlist retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Upload an external subtitle file.", + "operationId": "UploadSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the subtitle belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Subtitle uploaded." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles/{index}": { + "delete": { + "tags": [ + "Subtitle" + ], + "summary": "Deletes an external subtitle file.", + "operationId": "DeleteSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the subtitle file.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Subtitle deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitleWithTicks", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeStartPositionTicks", + "in": "path", + "description": "The (route) start position of the subtitle in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitle", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Items/Suggestions": { + "get": { + "tags": [ + "Suggestions" + ], + "summary": "Gets suggestions.", + "operationId": "GetSuggestions", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media types.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "type", + "in": "query", + "description": "The type.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total record count.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Suggestions returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Buffering": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is buffering.", + "operationId": "SyncPlayBuffering", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Join": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Join an existing SyncPlay group.", + "operationId": "SyncPlayJoinGroup", + "requestBody": { + "description": "The group to join.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group join successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Leave": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Leave the joined SyncPlay group.", + "operationId": "SyncPlayLeaveGroup", + "responses": { + "204": { + "description": "Group leave successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/List": { + "get": { + "tags": [ + "SyncPlay" + ], + "summary": "Gets all SyncPlay groups.", + "operationId": "SyncPlayGetGroups", + "responses": { + "200": { + "description": "Groups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/MovePlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to move an item in the playlist in SyncPlay group.", + "operationId": "SyncPlayMovePlaylistItem", + "requestBody": { + "description": "The new position for the item.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/New": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Create a new SyncPlay group.", + "operationId": "SyncPlayCreateGroup", + "requestBody": { + "description": "The settings of the new group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "New group created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayCreateGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/NextItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request next item in SyncPlay group.", + "operationId": "SyncPlayNextItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Next item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Pause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request pause in SyncPlay group.", + "operationId": "SyncPlayPause", + "responses": { + "204": { + "description": "Pause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Ping": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Update session ping.", + "operationId": "SyncPlayPing", + "requestBody": { + "description": "The new ping.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Ping updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/PreviousItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request previous item in SyncPlay group.", + "operationId": "SyncPlayPreviousItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Previous item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Queue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to queue items to the playlist of a SyncPlay group.", + "operationId": "SyncPlayQueue", + "requestBody": { + "description": "The items to add.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Ready": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is ready for playback.", + "operationId": "SyncPlayReady", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/RemoveFromPlaylist": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to remove items from the playlist in SyncPlay group.", + "operationId": "SyncPlayRemoveFromPlaylist", + "requestBody": { + "description": "The items to remove.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Seek": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request seek in SyncPlay group.", + "operationId": "SyncPlaySeek", + "requestBody": { + "description": "The new playback position.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Seek update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetIgnoreWait": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request SyncPlay group to ignore member during group-wait.", + "operationId": "SyncPlaySetIgnoreWait", + "requestBody": { + "description": "The settings to set.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Member state updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetNewQueue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set new playlist in SyncPlay group.", + "operationId": "SyncPlaySetNewQueue", + "requestBody": { + "description": "The new playlist to play in the group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetPlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to change playlist item in SyncPlay group.", + "operationId": "SyncPlaySetPlaylistItem", + "requestBody": { + "description": "The new item to play.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetRepeatMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set repeat mode in SyncPlay group.", + "operationId": "SyncPlaySetRepeatMode", + "requestBody": { + "description": "The new repeat mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetShuffleMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set shuffle mode in SyncPlay group.", + "operationId": "SyncPlaySetShuffleMode", + "requestBody": { + "description": "The new shuffle mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Stop": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request stop in SyncPlay group.", + "operationId": "SyncPlayStop", + "responses": { + "204": { + "description": "Stop update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Unpause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request unpause in SyncPlay group.", + "operationId": "SyncPlayUnpause", + "responses": { + "204": { + "description": "Unpause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Endpoint": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the request endpoint.", + "operationId": "GetEndpointInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + } + } + }, + "403": { + "description": "User does not have permission to get endpoint information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the server.", + "operationId": "GetSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + } + } + }, + "403": { + "description": "User does not have permission to retrieve information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrIgnoreParentalControl", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info/Public": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets public information about the server.", + "operationId": "GetPublicSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + } + } + } + } + } + }, + "/System/Logs": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a list of available server log files.", + "operationId": "GetServerLogs", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + } + } + }, + "403": { + "description": "User does not have permission to get server logs.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Logs/Log": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a log file.", + "operationId": "GetLogFile", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the log file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Log file retrieved.", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "403": { + "description": "User does not have permission to get log files.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Could not find a log file with the name.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Ping": { + "get": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "GetPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "post": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "PostPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/System/Restart": { + "post": { + "tags": [ + "System" + ], + "summary": "Restarts the application.", + "operationId": "RestartApplication", + "responses": { + "204": { + "description": "Server restarted." + }, + "403": { + "description": "User does not have permission to restart server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LocalAccessOrRequiresElevation" + ] + } + ] + } + }, + "/System/Shutdown": { + "post": { + "tags": [ + "System" + ], + "summary": "Shuts down the application.", + "operationId": "ShutdownApplication", + "responses": { + "204": { + "description": "Server shut down." + }, + "403": { + "description": "User does not have permission to shutdown server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/WakeOnLanInfo": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets wake on lan information.", + "operationId": "GetWakeOnLanInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/GetUtcTime": { + "get": { + "tags": [ + "TimeSync" + ], + "summary": "Gets the current UTC time.", + "operationId": "GetUtcTime", + "responses": { + "200": { + "description": "Time returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + } + } + } + } + } + }, + "/Tmdb/ClientConfiguration": { + "get": { + "tags": [ + "Tmdb" + ], + "summary": "Gets the TMDb image configuration options.", + "operationId": "TmdbClientConfiguration", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigImageTypes" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers": { + "get": { + "tags": [ + "Trailers" + ], + "summary": "Finds movies and trailers similar to a given trailer.", + "operationId": "GetTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter; this is required when not using an API key.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an IMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a TMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a TVDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Trickplay/{width}/{index}.jpg": { + "get": { + "tags": [ + "Trickplay" + ], + "summary": "Gets a trickplay tile image.", + "operationId": "GetTrickplayTileImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "width", + "in": "path", + "description": "The width of a single tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the desired tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if using an alternate version.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Tile image not found at specified index.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Trickplay/{width}/tiles.m3u8": { + "get": { + "tags": [ + "Trickplay" + ], + "summary": "Gets an image tiles playlist for trickplay.", + "operationId": "GetTrickplayHlsPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "width", + "in": "path", + "description": "The width of a single tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if using an alternate version.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Tiles playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Episodes": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets episodes for a tv season.", + "operationId": "GetEpisodes", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "season", + "in": "query", + "description": "Optional filter by season number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "seasonId", + "in": "query", + "description": "Optional. Filter by season id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startItemId", + "in": "query", + "description": "Optional. Skip through the list until a given item is found.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "enum": [ + "Default", + "AiredEpisodeOrder", + "Album", + "AlbumArtist", + "Artist", + "DateCreated", + "OfficialRating", + "DatePlayed", + "PremiereDate", + "StartDate", + "SortName", + "Name", + "Random", + "Runtime", + "CommunityRating", + "ProductionYear", + "PlayCount", + "CriticRating", + "IsFolder", + "IsUnplayed", + "IsPlayed", + "SeriesSortName", + "VideoBitRate", + "AirTime", + "Studio", + "IsFavoriteOrLiked", + "DateLastContentAdded", + "SeriesDatePlayed", + "ParentIndexNumber", + "IndexNumber", + "SimilarityScore", + "SearchScore" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ItemSortBy" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Seasons": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets seasons for a tv series.", + "operationId": "GetSeasons", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "isSpecialSeason", + "in": "query", + "description": "Optional. Filter by special season.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/NextUp": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of next up episodes.", + "operationId": "GetNextUp", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the next up episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "seriesId", + "in": "query", + "description": "Optional. Filter by series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "nextUpDateCutoff", + "in": "query", + "description": "Optional. Starting date of shows to show in Next Up section.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total records count. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "disableFirstEpisode", + "in": "query", + "description": "Whether to disable sending the first episode in a series as next up.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableResumable", + "in": "query", + "description": "Whether to include resumable episodes in next up results.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableRewatching", + "in": "query", + "description": "Whether to include watched episodes in next up results.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/Upcoming": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of upcoming episodes.", + "operationId": "GetUpcomingEpisodes", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the upcoming episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/universal": { + "get": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ] + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ] + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of users.", + "operationId": "GetUsers", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter by IsHidden=true or false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisabled", + "in": "query", + "description": "Optional filter by IsDisabled=true or false.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user.", + "operationId": "UpdateUser", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The updated user model.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User updated." + }, + "400": { + "description": "User information was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a user by Id.", + "operationId": "GetUserById", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "IgnoreParentalControl", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "User" + ], + "summary": "Deletes a user.", + "operationId": "DeleteUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User deleted." + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/{userId}/Policy": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user policy.", + "operationId": "UpdateUserPolicy", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user policy.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User policy updated." + }, + "400": { + "description": "User policy was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User policy update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/AuthenticateByName": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user by name.", + "operationId": "AuthenticateUserByName", + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + } + } + } + }, + "/Users/AuthenticateWithQuickConnect": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user with quick connect.", + "operationId": "AuthenticateWithQuickConnect", + "requestBody": { + "description": "The Jellyfin.Api.Models.UserDtos.QuickConnectDto request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "400": { + "description": "Missing token." + } + } + } + }, + "/Users/Configuration": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user configuration.", + "operationId": "UpdateUserConfiguration", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User configuration updated." + }, + "403": { + "description": "User configuration update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/ForgotPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Initiates the forgot password process for a local user.", + "operationId": "ForgotPassword", + "requestBody": { + "description": "The forgot password request containing the entered username.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Password reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + } + } + } + } + } + }, + "/Users/ForgotPassword/Pin": { + "post": { + "tags": [ + "User" + ], + "summary": "Redeems a forgot password pin.", + "operationId": "ForgotPasswordPin", + "requestBody": { + "description": "The forgot password pin request containing the entered pin.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Pin reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + } + } + } + } + } + }, + "/Users/Me": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets the user based on auth token.", + "operationId": "GetCurrentUser", + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "400": { + "description": "Token is not owned by a user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/New": { + "post": { + "tags": [ + "User" + ], + "summary": "Creates a user.", + "operationId": "CreateUserByName", + "requestBody": { + "description": "The create user by name request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/Password": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's password.", + "operationId": "UpdateUserPassword", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/Public": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of publicly visible users for display on a login screen.", + "operationId": "GetPublicUsers", + "responses": { + "200": { + "description": "Public users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + } + } + } + }, + "/Items/{itemId}/Intros": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets intros to play before the main media item plays.", + "operationId": "GetIntros", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Intros returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/LocalTrailers": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets local trailers for an item.", + "operationId": "GetLocalTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/SpecialFeatures": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets special features for an item.", + "operationId": "GetSpecialFeatures", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Special features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Latest": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets latest media.", + "operationId": "GetLatestMedia", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Return item limit.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + }, + { + "name": "groupItems", + "in": "query", + "description": "Whether or not to group items into a parent container.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Latest media returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Root": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets the root folder from a user's library.", + "operationId": "GetRootFolder", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Root folder returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserFavoriteItems/{itemId}": { + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Marks an item as a favorite.", + "operationId": "MarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Unmarks item as a favorite.", + "operationId": "UnmarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item unmarked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/{itemId}/Rating": { + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Deletes a user's saved personal rating for an item.", + "operationId": "DeleteUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Personal rating removed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Updates a user's rating for an item.", + "operationId": "UpdateUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "likes", + "in": "query", + "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item rating updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserViews": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user views.", + "operationId": "GetUserViews", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeExternalContent", + "in": "query", + "description": "Whether or not to include external views such as channels or live tv.", + "schema": { + "type": "boolean" + } + }, + { + "name": "presetViews", + "in": "query", + "description": "Preset views.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionType" + } + } + }, + { + "name": "includeHidden", + "in": "query", + "description": "Whether or not to include hidden content.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "User views returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserViews/GroupingOptions": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user view grouping options.", + "operationId": "GetGroupingOptions", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User view grouping options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}": { + "get": { + "tags": [ + "VideoAttachments" + ], + "summary": "Get video attachment.", + "operationId": "GetAttachment", + "parameters": [ + { + "name": "videoId", + "in": "path", + "description": "Video ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "Media Source ID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "path", + "description": "Attachment Index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Attachment retrieved.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Video or attachment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/AdditionalParts": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets additional parts for a video.", + "operationId": "GetAdditionalPart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Additional parts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/AlternateSources": { + "delete": { + "tags": [ + "Videos" + ], + "summary": "Removes alternate video sources.", + "operationId": "DeleteAlternateSources", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Alternate sources deleted." + }, + "404": { + "description": "Video not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/stream": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/MergeVersions": { + "post": { + "tags": [ + "Videos" + ], + "summary": "Merges videos into a single record.", + "operationId": "MergeVersions", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Item id list. This allows multiple, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Videos merged." + }, + "400": { + "description": "Supply at least 2 video ids.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Years": { + "get": { + "tags": [ + "Years" + ], + "summary": "Get years.", + "operationId": "GetYears", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Skips over a given number of items within the results. Use for paging.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Search recursively.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Year query returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Years/{year}": { + "get": { + "tags": [ + "Years" + ], + "summary": "Gets a year.", + "operationId": "GetYear", + "parameters": [ + { + "name": "year", + "in": "path", + "description": "The year.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Year returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Year not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + } + }, + "components": { + "schemas": { + "AccessSchedule": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id of this instance.", + "format": "int32", + "readOnly": true + }, + "UserId": { + "type": "string", + "description": "Gets the id of the associated user.", + "format": "uuid" + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DynamicDayOfWeek" + } + ], + "description": "Gets or sets the day of week." + }, + "StartHour": { + "type": "number", + "description": "Gets or sets the start hour.", + "format": "double" + }, + "EndHour": { + "type": "number", + "description": "Gets or sets the end hour.", + "format": "double" + } + }, + "additionalProperties": false, + "description": "An entity representing a user's access schedule." + }, + "ActivityLogEntry": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "ShortOverview": { + "type": "string", + "description": "Gets or sets the short overview.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "Date": { + "type": "string", + "description": "Gets or sets the date.", + "format": "date-time" + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true, + "deprecated": true + }, + "Severity": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LogLevel" + } + ], + "description": "Gets or sets the log severity." + } + }, + "additionalProperties": false, + "description": "An activity log entry." + }, + "ActivityLogEntryMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntry", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log created message." + }, + "ActivityLogEntryQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "ActivityLogEntryStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntryStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log entry start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "ActivityLogEntryStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntryStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log entry stop message." + }, + "AddVirtualFolderDto": { + "type": "object", + "properties": { + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Add virtual folder dto." + }, + "AlbumInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the album artist." + }, + "ArtistProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the artist provider ids." + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "AlbumInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AllThemeMediaResult": { + "type": "object", + "properties": { + "ThemeVideosResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "ThemeSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "SoundtrackSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ArtistInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "ArtistInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AudioSpatialFormat": { + "enum": [ + "None", + "DolbyAtmos", + "DTSX" + ], + "type": "string", + "description": "An enum representing formats of spatial audio." + }, + "AuthenticateUserByName": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Pw": { + "type": "string", + "description": "Gets or sets the plain text password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The authenticate user by name request body." + }, + "AuthenticationInfo": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device identifier.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is active." + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateRevoked": { + "type": "string", + "description": "Gets or sets the date revoked.", + "format": "date-time", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "format": "date-time" + }, + "UserName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AuthenticationInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationInfo" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "AuthenticationResult": { + "type": "object", + "properties": { + "User": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "SessionInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionInfoDto" + } + ], + "description": "Session info DTO.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A class representing an authentication result." + }, + "BaseItemDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "Etag": { + "type": "string", + "description": "Gets or sets the etag.", + "nullable": true + }, + "SourceType": { + "type": "string", + "description": "Gets or sets the type of the source.", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier.", + "nullable": true + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time", + "nullable": true + }, + "DateLastMediaAdded": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ExtraType": { + "enum": [ + "Unknown", + "Clip", + "Trailer", + "BehindTheScenes", + "DeletedScene", + "Interview", + "Scene", + "Sample", + "ThemeSong", + "ThemeVideo", + "Featurette", + "Short" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ExtraType" + } + ], + "nullable": true + }, + "AirsBeforeSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsAfterSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsBeforeEpisodeNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CanDelete": { + "type": "boolean", + "nullable": true + }, + "CanDownload": { + "type": "boolean", + "nullable": true + }, + "HasLyrics": { + "type": "boolean", + "nullable": true + }, + "HasSubtitles": { + "type": "boolean", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "nullable": true + }, + "PreferredMetadataCountryCode": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "SortName": { + "type": "string", + "description": "Gets or sets the name of the sort.", + "nullable": true + }, + "ForcedSortName": { + "type": "string", + "nullable": true + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "description": "Gets or sets the video3 D format.", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "description": "Gets or sets the premiere date.", + "format": "date-time", + "nullable": true + }, + "ExternalUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalUrl" + }, + "description": "Gets or sets the external urls.", + "nullable": true + }, + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media versions.", + "nullable": true + }, + "CriticRating": { + "type": "number", + "description": "Gets or sets the critic rating.", + "format": "float", + "nullable": true + }, + "ProductionLocations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "EnableMediaSourceDisplay": { + "type": "boolean", + "nullable": true + }, + "OfficialRating": { + "type": "string", + "description": "Gets or sets the official rating.", + "nullable": true + }, + "CustomRating": { + "type": "string", + "description": "Gets or sets the custom rating.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "Taglines": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the taglines.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres.", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "float", + "nullable": true + }, + "CumulativeRunTimeTicks": { + "type": "integer", + "description": "Gets or sets the cumulative run time ticks.", + "format": "int64", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayAccess" + } + ], + "description": "Gets or sets the play access.", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "IsPlaceHolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is place holder.", + "nullable": true + }, + "Number": { + "type": "string", + "description": "Gets or sets the number.", + "nullable": true + }, + "ChannelNumber": { + "type": "string", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "description": "Gets or sets the index number end.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the trailer urls.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is HD.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "ParentId": { + "type": "string", + "description": "Gets or sets the parent id.", + "format": "uuid", + "nullable": true + }, + "Type": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + }, + "People": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemPerson" + }, + "description": "Gets or sets the people.", + "nullable": true + }, + "Studios": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the studios.", + "nullable": true + }, + "GenreItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "ParentLogoItemId": { + "type": "string", + "description": "Gets or sets whether the item has a logo, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets whether the item has any backdrops, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "LocalTrailerCount": { + "type": "integer", + "description": "Gets or sets the local trailer count.", + "format": "int32", + "nullable": true + }, + "UserData": { + "allOf": [ + { + "$ref": "#/components/schemas/UserItemDataDto" + } + ], + "description": "Gets or sets the user data for this item based on the user it's being requested for.", + "nullable": true + }, + "RecursiveItemCount": { + "type": "integer", + "description": "Gets or sets the recursive item count.", + "format": "int32", + "nullable": true + }, + "ChildCount": { + "type": "integer", + "description": "Gets or sets the child count.", + "format": "int32", + "nullable": true + }, + "SeriesName": { + "type": "string", + "description": "Gets or sets the name of the series.", + "nullable": true + }, + "SeriesId": { + "type": "string", + "description": "Gets or sets the series id.", + "format": "uuid", + "nullable": true + }, + "SeasonId": { + "type": "string", + "description": "Gets or sets the season identifier.", + "format": "uuid", + "nullable": true + }, + "SpecialFeatureCount": { + "type": "integer", + "description": "Gets or sets the special feature count.", + "format": "int32", + "nullable": true + }, + "DisplayPreferencesId": { + "type": "string", + "description": "Gets or sets the display preferences id.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "AirTime": { + "type": "string", + "description": "Gets or sets the air time.", + "nullable": true + }, + "AirDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the air days.", + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the tags.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio, after image enhancements.", + "format": "double", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "ArtistItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the artist items.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "CollectionType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "DisplayOrder": { + "type": "string", + "description": "Gets or sets the display order.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the album image tag.", + "nullable": true + }, + "SeriesPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the series primary image tag.", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "AlbumArtists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the album artists.", + "nullable": true + }, + "SeasonName": { + "type": "string", + "description": "Gets or sets the name of the season.", + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "description": "Gets or sets the media streams.", + "nullable": true + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "description": "Gets or sets the type of the video.", + "nullable": true + }, + "PartCount": { + "type": "integer", + "description": "Gets or sets the part count.", + "format": "int32", + "nullable": true + }, + "MediaSourceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "BackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the backdrop image tags.", + "nullable": true + }, + "ScreenshotImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the screenshot image tags.", + "nullable": true + }, + "ParentLogoImageTag": { + "type": "string", + "description": "Gets or sets the parent logo image tag.", + "nullable": true + }, + "ParentArtItemId": { + "type": "string", + "description": "Gets or sets whether the item has fan art, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentArtImageTag": { + "type": "string", + "description": "Gets or sets the parent art image tag.", + "nullable": true + }, + "SeriesThumbImageTag": { + "type": "string", + "description": "Gets or sets the series thumb image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value.", + "nullable": true + }, + "SeriesStudio": { + "type": "string", + "description": "Gets or sets the series studio.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "format": "uuid", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + }, + "Chapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChapterInfo" + }, + "description": "Gets or sets the chapters.", + "nullable": true + }, + "Trickplay": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TrickplayInfo" + } + }, + "description": "Gets or sets the trickplay manifest.", + "nullable": true + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LocationType" + } + ], + "description": "Gets or sets the type of the location.", + "nullable": true + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "description": "Gets or sets the type of the iso.", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Media types." + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "LockedFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataField" + }, + "description": "Gets or sets the locked fields.", + "nullable": true + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32", + "nullable": true + }, + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32", + "nullable": true + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32", + "nullable": true + }, + "ProgramCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32", + "nullable": true + }, + "ArtistCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32", + "nullable": true + }, + "LockData": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable internet providers].", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CameraMake": { + "type": "string", + "nullable": true + }, + "CameraModel": { + "type": "string", + "nullable": true + }, + "Software": { + "type": "string", + "nullable": true + }, + "ExposureTime": { + "type": "number", + "format": "double", + "nullable": true + }, + "FocalLength": { + "type": "number", + "format": "double", + "nullable": true + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageOrientation" + } + ], + "nullable": true + }, + "Aperture": { + "type": "number", + "format": "double", + "nullable": true + }, + "ShutterSpeed": { + "type": "number", + "format": "double", + "nullable": true + }, + "Latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Altitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "IsoSpeedRating": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the channel primary image tag.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "IsRepeat": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is repeat.", + "nullable": true + }, + "EpisodeTitle": { + "type": "string", + "description": "Gets or sets the episode title.", + "nullable": true + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ], + "description": "Gets or sets the type of the channel.", + "nullable": true + }, + "Audio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProgramAudio" + } + ], + "description": "Gets or sets the audio.", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is movie.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is sports.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is series.", + "nullable": true + }, + "IsLive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is live.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is kids.", + "nullable": true + }, + "IsPremiere": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is premiere.", + "nullable": true + }, + "TimerId": { + "type": "string", + "description": "Gets or sets the timer identifier.", + "nullable": true + }, + "NormalizationGain": { + "type": "number", + "description": "Gets or sets the gain required for audio normalization.", + "format": "float", + "nullable": true + }, + "CurrentProgram": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the current program.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + }, + "BaseItemDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "BaseItemKind": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "type": "string", + "description": "The base item kind." + }, + "BaseItemPerson": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "Role": { + "type": "string", + "description": "Gets or sets the role.", + "nullable": true + }, + "Type": { + "enum": [ + "Unknown", + "Actor", + "Director", + "Composer", + "Writer", + "GuestStar", + "Producer", + "Conductor", + "Lyricist", + "Arranger", + "Engineer", + "Mixer", + "Remixer", + "Creator", + "Artist", + "AlbumArtist", + "Author", + "Illustrator", + "Penciller", + "Inker", + "Colorist", + "Letterer", + "CoverArtist", + "Editor", + "Translator" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PersonKind" + } + ], + "description": "The person kind." + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the primary image blurhash.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a Person within a BaseItem." + }, + "BasePluginConfiguration": { + "type": "object", + "additionalProperties": false, + "description": "Class BasePluginConfiguration." + }, + "BookInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SeriesName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BookInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BoxSetInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "BoxSetInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BrandingOptions": { + "type": "object", + "properties": { + "LoginDisclaimer": { + "type": "string", + "description": "Gets or sets the login disclaimer.", + "nullable": true + }, + "CustomCss": { + "type": "string", + "description": "Gets or sets the custom CSS.", + "nullable": true + }, + "SplashscreenEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable the splashscreen." + } + }, + "additionalProperties": false, + "description": "The branding options." + }, + "BufferRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class BufferRequestDto." + }, + "CastReceiverApplication": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the cast receiver application id." + }, + "Name": { + "type": "string", + "description": "Gets or sets the cast receiver application name." + } + }, + "additionalProperties": false, + "description": "The cast receiver application model." + }, + "ChannelFeatures": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "CanSearch": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can search." + }, + "MediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaType" + }, + "description": "Gets or sets the media types." + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaContentType" + }, + "description": "Gets or sets the content types." + }, + "MaxPageSize": { + "type": "integer", + "description": "Gets or sets the maximum number of records the channel allows retrieving at a time.", + "format": "int32", + "nullable": true + }, + "AutoRefreshLevels": { + "type": "integer", + "description": "Gets or sets the automatic refresh levels.", + "format": "int32", + "nullable": true + }, + "DefaultSortFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelItemSortField" + }, + "description": "Gets or sets the default sort orders." + }, + "SupportsSortOrderToggle": { + "type": "boolean", + "description": "Gets or sets a value indicating whether a sort ascending/descending toggle is supported." + }, + "SupportsLatestMedia": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports latest media]." + }, + "CanFilter": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can filter." + }, + "SupportsContentDownloading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports content downloading]." + } + }, + "additionalProperties": false + }, + "ChannelItemSortField": { + "enum": [ + "Name", + "CommunityRating", + "PremiereDate", + "DateCreated", + "Runtime", + "PlayCount", + "CommunityPlayCount" + ], + "type": "string" + }, + "ChannelMappingOptionsDto": { + "type": "object", + "properties": { + "TunerChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerChannelMapping" + }, + "description": "Gets or sets list of tuner channels." + }, + "ProviderChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + }, + "description": "Gets or sets list of provider channels." + }, + "Mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "description": "Gets or sets list of mappings." + }, + "ProviderName": { + "type": "string", + "description": "Gets or sets provider name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Channel mapping options dto." + }, + "ChannelMediaContentType": { + "enum": [ + "Clip", + "Podcast", + "Trailer", + "Movie", + "Episode", + "Song", + "MovieExtra", + "TvExtra" + ], + "type": "string" + }, + "ChannelMediaType": { + "enum": [ + "Audio", + "Video", + "Photo" + ], + "type": "string" + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "type": "string", + "description": "Enum ChannelType." + }, + "ChapterInfo": { + "type": "object", + "properties": { + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ImagePath": { + "type": "string", + "description": "Gets or sets the image path.", + "nullable": true + }, + "ImageDateModified": { + "type": "string", + "format": "date-time" + }, + "ImageTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ChapterInfo." + }, + "ClientCapabilitiesDto": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + }, + "description": "Gets or sets the list of playable media types." + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the list of supported commands." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports media control." + }, + "SupportsPersistentIdentifier": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports a persistent identifier." + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "description": "Gets or sets the app store url.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Client capabilities dto." + }, + "ClientLogDocumentResponseDto": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "Gets the resulting filename." + } + }, + "additionalProperties": false, + "description": "Client log document response dto." + }, + "CodecProfile": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CodecType" + } + ], + "description": "Gets or sets the MediaBrowser.Model.Dlna.CodecType which this container must meet." + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this profile must meet." + }, + "ApplyConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition to apply if this profile is met." + }, + "Codec": { + "type": "string", + "description": "Gets or sets the codec(s) that this profile applies to.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the container(s) which this profile will be applied to.", + "nullable": true + }, + "SubContainer": { + "type": "string", + "description": "Gets or sets the sub-container(s) which this profile will be applied to.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.CodecProfile." + }, + "CodecType": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "type": "string" + }, + "CollectionCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "CollectionType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "type": "string", + "description": "Collection type." + }, + "CollectionTypeOptions": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "type": "string", + "description": "The collection type options." + }, + "ConfigImageTypes": { + "type": "object", + "properties": { + "BackdropSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "BaseUrl": { + "type": "string", + "nullable": true + }, + "LogoSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "PosterSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ProfileSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SecureBaseUrl": { + "type": "string", + "nullable": true + }, + "StillSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConfigurationPageInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "EnableInMainMenu": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the configurations page is enabled in the main menu." + }, + "MenuSection": { + "type": "string", + "description": "Gets or sets the menu section.", + "nullable": true + }, + "MenuIcon": { + "type": "string", + "description": "Gets or sets the menu icon.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "PluginId": { + "type": "string", + "description": "Gets or sets the plugin id.", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The configuration page info." + }, + "ContainerProfile": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the MediaBrowser.Model.Dlna.DlnaProfileType which this container must meet." + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this container will be applied to." + }, + "Container": { + "type": "string", + "description": "Gets or sets the container(s) which this container must meet.", + "nullable": true + }, + "SubContainer": { + "type": "string", + "description": "Gets or sets the sub container(s) which this container must meet.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.ContainerProfile." + }, + "CountryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "TwoLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the two letter ISO region.", + "nullable": true + }, + "ThreeLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the three letter ISO region.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class CountryInfo." + }, + "CreatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist." + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids to add to the playlist." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Gets or sets the media type.", + "nullable": true + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the playlist users." + }, + "IsPublic": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is public." + } + }, + "additionalProperties": false, + "description": "Create new playlist dto." + }, + "CreateUserByName": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username." + }, + "Password": { + "type": "string", + "description": "Gets or sets the password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The create user by name request body." + }, + "CultureDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "DisplayName": { + "type": "string", + "description": "Gets the display name." + }, + "TwoLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the two letter ISO language." + }, + "ThreeLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the three letter ISO language.", + "nullable": true, + "readOnly": true + }, + "ThreeLetterISOLanguageNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "description": "Class CultureDto." + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "string" + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "type": "string" + }, + "DefaultDirectoryBrowserInfoDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Default directory browser info." + }, + "DeinterlaceMethod": { + "enum": [ + "yadif", + "bwdif" + ], + "type": "string", + "description": "Enum containing deinterlace methods." + }, + "DeviceInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "LastUserName": { + "type": "string", + "description": "Gets or sets the last name of the user.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "LastUserId": { + "type": "string", + "description": "Gets or sets the last user identifier.", + "format": "uuid", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "description": "Gets or sets the date last modified.", + "format": "date-time", + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Gets or sets the capabilities." + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A DTO representing device information." + }, + "DeviceInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "DeviceOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the id.", + "format": "int32" + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A dto representing custom options for a device." + }, + "DeviceProfile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of this device profile. User profiles must have a unique name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique internal identifier.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for all streamed content.", + "format": "int32", + "nullable": true + }, + "MaxStaticBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files).", + "format": "int32", + "nullable": true + }, + "MusicStreamingTranscodingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for transcoded music streams.", + "format": "int32", + "nullable": true + }, + "MaxStaticMusicBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files.", + "format": "int32", + "nullable": true + }, + "DirectPlayProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectPlayProfile" + }, + "description": "Gets or sets the direct play profiles." + }, + "TranscodingProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodingProfile" + }, + "description": "Gets or sets the transcoding profiles." + }, + "ContainerProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContainerProfile" + }, + "description": "Gets or sets the container profiles. Failing to meet these optional conditions causes transcoding to occur." + }, + "CodecProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CodecProfile" + }, + "description": "Gets or sets the codec profiles." + }, + "SubtitleProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubtitleProfile" + }, + "description": "Gets or sets the subtitle profiles." + } + }, + "additionalProperties": false, + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + }, + "DirectPlayProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "description": "Gets or sets the container." + }, + "AudioCodec": { + "type": "string", + "description": "Gets or sets the audio codec.", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the video codec.", + "nullable": true + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the Dlna profile type." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.DirectPlayProfile." + }, + "DisplayPreferencesDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the user id.", + "nullable": true + }, + "ViewType": { + "type": "string", + "description": "Gets or sets the type of the view.", + "nullable": true + }, + "SortBy": { + "type": "string", + "description": "Gets or sets the sort by.", + "nullable": true + }, + "IndexBy": { + "type": "string", + "description": "Gets or sets the index by.", + "nullable": true + }, + "RememberIndexing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember indexing]." + }, + "PrimaryImageHeight": { + "type": "integer", + "description": "Gets or sets the height of the primary image.", + "format": "int32" + }, + "PrimaryImageWidth": { + "type": "integer", + "description": "Gets or sets the width of the primary image.", + "format": "int32" + }, + "CustomPrefs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the custom prefs." + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ScrollDirection" + } + ], + "description": "An enum representing the axis that should be scrolled." + }, + "ShowBackdrop": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to show backdrops on this item." + }, + "RememberSorting": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember sorting]." + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ], + "description": "An enum representing the sorting order." + }, + "ShowSidebar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [show sidebar]." + }, + "Client": { + "type": "string", + "description": "Gets or sets the client.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the display preferences for any item that supports them (usually Folders)." + }, + "DlnaProfileType": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "type": "string" + }, + "DownMixStereoAlgorithms": { + "enum": [ + "None", + "Dave750", + "NightmodeDialogue", + "Rfc7845", + "Ac4" + ], + "type": "string", + "description": "An enum representing an algorithm to downmix surround sound to stereo." + }, + "DynamicDayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "type": "string", + "description": "An enum that represents a day of the week, weekdays, weekends, or all days." + }, + "EmbeddedSubtitleOptions": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "type": "string", + "description": "An enum representing the options to disable embedded subs." + }, + "EncoderPreset": { + "enum": [ + "auto", + "placebo", + "veryslow", + "slower", + "slow", + "medium", + "fast", + "faster", + "veryfast", + "superfast", + "ultrafast" + ], + "type": "string", + "description": "Enum containing encoder presets." + }, + "EncodingContext": { + "enum": [ + "Streaming", + "Static" + ], + "type": "string" + }, + "EncodingOptions": { + "type": "object", + "properties": { + "EncodingThreadCount": { + "type": "integer", + "description": "Gets or sets the thread count used for encoding.", + "format": "int32" + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the temporary transcoding path.", + "nullable": true + }, + "FallbackFontPath": { + "type": "string", + "description": "Gets or sets the path to the fallback font.", + "nullable": true + }, + "EnableFallbackFont": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use the fallback font." + }, + "EnableAudioVbr": { + "type": "boolean", + "description": "Gets or sets a value indicating whether audio VBR is enabled." + }, + "DownMixAudioBoost": { + "type": "number", + "description": "Gets or sets the audio boost applied when downmixing audio.", + "format": "double" + }, + "DownMixStereoAlgorithm": { + "enum": [ + "None", + "Dave750", + "NightmodeDialogue", + "Rfc7845", + "Ac4" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DownMixStereoAlgorithms" + } + ], + "description": "Gets or sets the algorithm used for downmixing audio to stereo." + }, + "MaxMuxingQueueSize": { + "type": "integer", + "description": "Gets or sets the maximum size of the muxing queue.", + "format": "int32" + }, + "EnableThrottling": { + "type": "boolean", + "description": "Gets or sets a value indicating whether throttling is enabled." + }, + "ThrottleDelaySeconds": { + "type": "integer", + "description": "Gets or sets the delay after which throttling happens.", + "format": "int32" + }, + "EnableSegmentDeletion": { + "type": "boolean", + "description": "Gets or sets a value indicating whether segment deletion is enabled." + }, + "SegmentKeepSeconds": { + "type": "integer", + "description": "Gets or sets seconds for which segments should be kept before being deleted.", + "format": "int32" + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/HardwareAccelerationType" + } + ], + "description": "Gets or sets the hardware acceleration type." + }, + "EncoderAppPath": { + "type": "string", + "description": "Gets or sets the FFmpeg path as set by the user via the UI.", + "nullable": true + }, + "EncoderAppPathDisplay": { + "type": "string", + "description": "Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page.", + "nullable": true + }, + "VaapiDevice": { + "type": "string", + "description": "Gets or sets the VA-API device.", + "nullable": true + }, + "QsvDevice": { + "type": "string", + "description": "Gets or sets the QSV device.", + "nullable": true + }, + "EnableTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether tonemapping is enabled." + }, + "EnableVppTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether VPP tonemapping is enabled." + }, + "EnableVideoToolboxTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether videotoolbox tonemapping is enabled." + }, + "TonemappingAlgorithm": { + "enum": [ + "none", + "clip", + "linear", + "gamma", + "reinhard", + "hable", + "mobius", + "bt2390" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingAlgorithm" + } + ], + "description": "Gets or sets the tone-mapping algorithm." + }, + "TonemappingMode": { + "enum": [ + "auto", + "max", + "rgb", + "lum", + "itp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingMode" + } + ], + "description": "Gets or sets the tone-mapping mode." + }, + "TonemappingRange": { + "enum": [ + "auto", + "tv", + "pc" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingRange" + } + ], + "description": "Gets or sets the tone-mapping range." + }, + "TonemappingDesat": { + "type": "number", + "description": "Gets or sets the tone-mapping desaturation.", + "format": "double" + }, + "TonemappingPeak": { + "type": "number", + "description": "Gets or sets the tone-mapping peak.", + "format": "double" + }, + "TonemappingParam": { + "type": "number", + "description": "Gets or sets the tone-mapping parameters.", + "format": "double" + }, + "VppTonemappingBrightness": { + "type": "number", + "description": "Gets or sets the VPP tone-mapping brightness.", + "format": "double" + }, + "VppTonemappingContrast": { + "type": "number", + "description": "Gets or sets the VPP tone-mapping contrast.", + "format": "double" + }, + "H264Crf": { + "type": "integer", + "description": "Gets or sets the H264 CRF.", + "format": "int32" + }, + "H265Crf": { + "type": "integer", + "description": "Gets or sets the H265 CRF.", + "format": "int32" + }, + "EncoderPreset": { + "enum": [ + "auto", + "placebo", + "veryslow", + "slower", + "slow", + "medium", + "fast", + "faster", + "veryfast", + "superfast", + "ultrafast" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncoderPreset" + } + ], + "description": "Gets or sets the encoder preset.", + "nullable": true + }, + "DeinterlaceDoubleRate": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the framerate is doubled when deinterlacing." + }, + "DeinterlaceMethod": { + "enum": [ + "yadif", + "bwdif" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DeinterlaceMethod" + } + ], + "description": "Gets or sets the deinterlace method." + }, + "EnableDecodingColorDepth10Hevc": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 10bit HEVC decoding is enabled." + }, + "EnableDecodingColorDepth10Vp9": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 10bit VP9 decoding is enabled." + }, + "EnableDecodingColorDepth10HevcRext": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 8/10bit HEVC RExt decoding is enabled." + }, + "EnableDecodingColorDepth12HevcRext": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 12bit HEVC RExt decoding is enabled." + }, + "EnableEnhancedNvdecDecoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the enhanced NVDEC is enabled." + }, + "PreferSystemNativeHwDecoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the system native hardware decoder should be used." + }, + "EnableIntelLowPowerH264HwEncoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the Intel H264 low-power hardware encoder should be used." + }, + "EnableIntelLowPowerHevcHwEncoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the Intel HEVC low-power hardware encoder should be used." + }, + "EnableHardwareEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether hardware encoding is enabled." + }, + "AllowHevcEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether HEVC encoding is enabled." + }, + "AllowAv1Encoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether AV1 encoding is enabled." + }, + "EnableSubtitleExtraction": { + "type": "boolean", + "description": "Gets or sets a value indicating whether subtitle extraction is enabled." + }, + "HardwareDecodingCodecs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the codecs hardware encoding is used for.", + "nullable": true + }, + "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class EncodingOptions." + }, + "EndPointInfo": { + "type": "object", + "properties": { + "IsLocal": { + "type": "boolean" + }, + "IsInNetwork": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExternalIdInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc)." + }, + "Key": { + "type": "string", + "description": "Gets or sets the unique key for this id. This key should be unique across all providers." + }, + "Type": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ExternalIdMediaType" + } + ], + "description": "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type.", + "nullable": true + }, + "UrlFormatString": { + "type": "string", + "description": "Gets or sets the URL format string.", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "Represents the external id information for serialization to the client." + }, + "ExternalIdMediaType": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track", + "Book" + ], + "type": "string", + "description": "The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo." + }, + "ExternalUrl": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the type of the item.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExtraType": { + "enum": [ + "Unknown", + "Clip", + "Trailer", + "BehindTheScenes", + "DeletedScene", + "Interview", + "Scene", + "Sample", + "ThemeSong", + "ThemeVideo", + "Featurette", + "Short" + ], + "type": "string" + }, + "FileSystemEntryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "Path": { + "type": "string", + "description": "Gets the path." + }, + "Type": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "allOf": [ + { + "$ref": "#/components/schemas/FileSystemEntryType" + } + ], + "description": "Gets the type." + } + }, + "additionalProperties": false, + "description": "Class FileSystemEntryInfo." + }, + "FileSystemEntryType": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "type": "string", + "description": "Enum FileSystemEntryType." + }, + "FontFile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class FontFile." + }, + "ForceKeepAliveMessage": { + "type": "object", + "properties": { + "Data": { + "type": "integer", + "description": "Gets or sets the data.", + "format": "int32" + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ForceKeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Force keep alive websocket messages." + }, + "ForgotPasswordAction": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "type": "string" + }, + "ForgotPasswordDto": { + "required": [ + "EnteredUsername" + ], + "type": "object", + "properties": { + "EnteredUsername": { + "type": "string", + "description": "Gets or sets the entered username to have its password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password request body DTO." + }, + "ForgotPasswordPinDto": { + "required": [ + "Pin" + ], + "type": "object", + "properties": { + "Pin": { + "type": "string", + "description": "Gets or sets the entered pin to have the password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password Pin enter request body DTO." + }, + "ForgotPasswordResult": { + "type": "object", + "properties": { + "Action": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordAction" + } + ], + "description": "Gets or sets the action." + }, + "PinFile": { + "type": "string", + "description": "Gets or sets the pin file.", + "nullable": true + }, + "PinExpirationDate": { + "type": "string", + "description": "Gets or sets the pin expiration date.", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "GeneralCommand": { + "type": "object", + "properties": { + "Name": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + }, + "ControllingUserId": { + "type": "string", + "format": "uuid" + }, + "Arguments": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + "additionalProperties": false + }, + "GeneralCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "GeneralCommand", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "General command websocket message." + }, + "GeneralCommandType": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "type": "string", + "description": "This exists simply to identify a set of known commands." + }, + "GetProgramsDto": { + "type": "object", + "properties": { + "ChannelIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the channels to return guide information for.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets optional. Filter by user id.", + "format": "uuid", + "nullable": true + }, + "MinStartDate": { + "type": "string", + "description": "Gets or sets the minimum premiere start date.", + "format": "date-time", + "nullable": true + }, + "HasAired": { + "type": "boolean", + "description": "Gets or sets filter by programs that have completed airing, or not.", + "nullable": true + }, + "IsAiring": { + "type": "boolean", + "description": "Gets or sets filter by programs that are currently airing, or not.", + "nullable": true + }, + "MaxStartDate": { + "type": "string", + "description": "Gets or sets the maximum premiere start date.", + "format": "date-time", + "nullable": true + }, + "MinEndDate": { + "type": "string", + "description": "Gets or sets the minimum premiere end date.", + "format": "date-time", + "nullable": true + }, + "MaxEndDate": { + "type": "string", + "description": "Gets or sets the maximum premiere end date.", + "format": "date-time", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets filter for movies.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets filter for series.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets filter for news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets filter for kids.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets filter for sports.", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.", + "format": "int32", + "nullable": true + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the maximum number of records to return.", + "format": "int32", + "nullable": true + }, + "SortBy": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + }, + "description": "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "nullable": true + }, + "SortOrder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + }, + "description": "Gets or sets sort order.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres to return guide information for.", + "nullable": true + }, + "GenreIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the genre ids to return guide information for.", + "nullable": true + }, + "EnableImages": { + "type": "boolean", + "description": "Gets or sets include image information in output.", + "nullable": true + }, + "EnableTotalRecordCount": { + "type": "boolean", + "description": "Gets or sets a value indicating whether retrieve total record count.", + "default": true + }, + "ImageTypeLimit": { + "type": "integer", + "description": "Gets or sets the max number of images to return, per image type.", + "format": "int32", + "nullable": true + }, + "EnableImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the image types to include in the output.", + "nullable": true + }, + "EnableUserData": { + "type": "boolean", + "description": "Gets or sets include user data.", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets filter by series timer id.", + "nullable": true + }, + "LibrarySeriesId": { + "type": "string", + "description": "Gets or sets filter by library series id.", + "format": "uuid", + "nullable": true + }, + "Fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + }, + "description": "Gets or sets specify additional fields of information to return in the output.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Get programs dto." + }, + "GroupInfoDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "GroupName": { + "type": "string", + "description": "Gets the group name." + }, + "State": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the group state." + }, + "Participants": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the participants." + }, + "LastUpdatedAt": { + "type": "string", + "description": "Gets the date when this DTO has been created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class GroupInfoDto." + }, + "GroupInfoDtoGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupInfoDto" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "GroupQueueMode": { + "enum": [ + "Queue", + "QueueNext" + ], + "type": "string", + "description": "Enum GroupQueueMode." + }, + "GroupRepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "type": "string", + "description": "Enum GroupRepeatMode." + }, + "GroupShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "type": "string", + "description": "Enum GroupShuffleMode." + }, + "GroupStateType": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "type": "string", + "description": "Enum GroupState." + }, + "GroupStateUpdate": { + "type": "object", + "properties": { + "State": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the state of the group." + }, + "Reason": { + "enum": [ + "Play", + "SetPlaylistItem", + "RemoveFromPlaylist", + "MovePlaylistItem", + "Queue", + "Unpause", + "Pause", + "Stop", + "Seek", + "Buffer", + "Ready", + "NextItem", + "PreviousItem", + "SetRepeatMode", + "SetShuffleMode", + "Ping", + "IgnoreWait" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackRequestType" + } + ], + "description": "Gets the reason of the state change." + } + }, + "additionalProperties": false, + "description": "Class GroupStateUpdate." + }, + "GroupStateUpdateGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateUpdate" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "GroupUpdate": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/GroupInfoDtoGroupUpdate" + }, + { + "$ref": "#/components/schemas/GroupStateUpdateGroupUpdate" + }, + { + "$ref": "#/components/schemas/StringGroupUpdate" + }, + { + "$ref": "#/components/schemas/PlayQueueUpdateGroupUpdate" + } + ], + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + } + }, + "additionalProperties": false, + "description": "Group update without data.", + "discriminator": { + "propertyName": "Type", + "mapping": { + "UserJoined": "#/components/schemas/StringGroupUpdate", + "UserLeft": "#/components/schemas/StringGroupUpdate", + "GroupJoined": "#/components/schemas/GroupInfoDtoGroupUpdate", + "GroupLeft": "#/components/schemas/StringGroupUpdate", + "StateUpdate": "#/components/schemas/GroupStateUpdateGroupUpdate", + "PlayQueue": "#/components/schemas/PlayQueueUpdateGroupUpdate", + "NotInGroup": "#/components/schemas/StringGroupUpdate", + "GroupDoesNotExist": "#/components/schemas/StringGroupUpdate", + "LibraryAccessDenied": "#/components/schemas/StringGroupUpdate" + } + } + }, + "GroupUpdateType": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "type": "string", + "description": "Enum GroupUpdateType." + }, + "GuideInfo": { + "type": "object", + "properties": { + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "type": "string", + "description": "Enum containing hardware acceleration types." + }, + "IgnoreWaitRequestDto": { + "type": "object", + "properties": { + "IgnoreWait": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client should be ignored." + } + }, + "additionalProperties": false, + "description": "Class IgnoreWaitRequestDto." + }, + "ImageFormat": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "type": "string", + "description": "Enum ImageOutputFormat." + }, + "ImageInfo": { + "type": "object", + "properties": { + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type of the image." + }, + "ImageIndex": { + "type": "integer", + "description": "Gets or sets the index of the image.", + "format": "int32", + "nullable": true + }, + "ImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "BlurHash": { + "type": "string", + "description": "Gets or sets the blurhash.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class ImageInfo." + }, + "ImageOption": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the limit.", + "format": "int32" + }, + "MinWidth": { + "type": "integer", + "description": "Gets or sets the minimum width.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "type": "string" + }, + "ImageProviderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "SupportedImages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets the supported image types." + } + }, + "additionalProperties": false, + "description": "Class ImageProviderInfo." + }, + "ImageResolution": { + "enum": [ + "MatchSource", + "P144", + "P240", + "P360", + "P480", + "P720", + "P1080", + "P1440", + "P2160" + ], + "type": "string", + "description": "Enum ImageResolution." + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "type": "string" + }, + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "type": "string", + "description": "Enum ImageType." + }, + "InboundKeepAliveMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "KeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Keep alive websocket messages." + }, + "InboundWebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityLogEntryStartMessage" + }, + { + "$ref": "#/components/schemas/ActivityLogEntryStopMessage" + }, + { + "$ref": "#/components/schemas/InboundKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoStartMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoStopMessage" + }, + { + "$ref": "#/components/schemas/SessionsStartMessage" + }, + { + "$ref": "#/components/schemas/SessionsStopMessage" + } + ], + "description": "Represents the list of possible inbound websocket types", + "discriminator": { + "propertyName": "MessageType", + "mapping": { + "ActivityLogEntryStart": "#/components/schemas/ActivityLogEntryStartMessage", + "ActivityLogEntryStop": "#/components/schemas/ActivityLogEntryStopMessage", + "KeepAlive": "#/components/schemas/InboundKeepAliveMessage", + "ScheduledTasksInfoStart": "#/components/schemas/ScheduledTasksInfoStartMessage", + "ScheduledTasksInfoStop": "#/components/schemas/ScheduledTasksInfoStopMessage", + "SessionsStart": "#/components/schemas/SessionsStartMessage", + "SessionsStop": "#/components/schemas/SessionsStopMessage" + } + } + }, + "InstallationInfo": { + "type": "object", + "properties": { + "Guid": { + "type": "string", + "description": "Gets or sets the Id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "Changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "SourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "Checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "PackageInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PackageInfo" + } + ], + "description": "Gets or sets package information for the installation.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class InstallationInfo." + }, + "IPlugin": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name of the plugin.", + "nullable": true, + "readOnly": true + }, + "Description": { + "type": "string", + "description": "Gets the Description.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets the unique id.", + "format": "uuid", + "readOnly": true + }, + "Version": { + "type": "string", + "description": "Gets the plugin version.", + "nullable": true, + "readOnly": true + }, + "AssemblyFilePath": { + "type": "string", + "description": "Gets the path to the assembly file.", + "nullable": true, + "readOnly": true + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets a value indicating whether the plugin can be uninstalled.", + "readOnly": true + }, + "DataFolderPath": { + "type": "string", + "description": "Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Plugins.IPlugin." + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum IsoType." + }, + "ItemCounts": { + "type": "object", + "properties": { + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32" + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32" + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32" + }, + "ArtistCount": { + "type": "integer", + "description": "Gets or sets the artist count.", + "format": "int32" + }, + "ProgramCount": { + "type": "integer", + "description": "Gets or sets the program count.", + "format": "int32" + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32" + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32" + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32" + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32" + }, + "BoxSetCount": { + "type": "integer", + "description": "Gets or sets the box set count.", + "format": "int32" + }, + "BookCount": { + "type": "integer", + "description": "Gets or sets the book count.", + "format": "int32" + }, + "ItemCount": { + "type": "integer", + "description": "Gets or sets the item count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class LibrarySummary." + }, + "ItemFields": { + "enum": [ + "AirTime", + "CanDelete", + "CanDownload", + "ChannelInfo", + "Chapters", + "Trickplay", + "ChildCount", + "CumulativeRunTimeTicks", + "CustomRating", + "DateCreated", + "DateLastMediaAdded", + "DisplayPreferencesId", + "Etag", + "ExternalUrls", + "Genres", + "HomePageUrl", + "ItemCounts", + "MediaSourceCount", + "MediaSources", + "OriginalTitle", + "Overview", + "ParentId", + "Path", + "People", + "PlayAccess", + "ProductionLocations", + "ProviderIds", + "PrimaryImageAspectRatio", + "RecursiveItemCount", + "Settings", + "ScreenshotImageTags", + "SeriesPrimaryImage", + "SeriesStudio", + "SortName", + "SpecialEpisodeNumbers", + "Studios", + "Taglines", + "Tags", + "RemoteTrailers", + "MediaStreams", + "SeasonUserData", + "ServiceName", + "ThemeSongIds", + "ThemeVideoIds", + "ExternalEtag", + "PresentationUniqueKey", + "InheritedParentalRatingValue", + "ExternalSeriesId", + "SeriesPresentationUniqueKey", + "DateLastRefreshed", + "DateLastSaved", + "RefreshState", + "ChannelImage", + "EnableMediaSourceDisplay", + "Width", + "Height", + "ExtraIds", + "LocalTrailerCount", + "IsHD", + "SpecialFeatureCount" + ], + "type": "string", + "description": "Used to control the data that gets attached to DtoBaseItems." + }, + "ItemFilter": { + "enum": [ + "IsFolder", + "IsNotFolder", + "IsUnplayed", + "IsPlayed", + "IsFavorite", + "IsResumable", + "Likes", + "Dislikes", + "IsFavoriteOrLikes" + ], + "type": "string", + "description": "Enum ItemFilter." + }, + "ItemSortBy": { + "enum": [ + "Default", + "AiredEpisodeOrder", + "Album", + "AlbumArtist", + "Artist", + "DateCreated", + "OfficialRating", + "DatePlayed", + "PremiereDate", + "StartDate", + "SortName", + "Name", + "Random", + "Runtime", + "CommunityRating", + "ProductionYear", + "PlayCount", + "CriticRating", + "IsFolder", + "IsUnplayed", + "IsPlayed", + "SeriesSortName", + "VideoBitRate", + "AirTime", + "Studio", + "IsFavoriteOrLiked", + "DateLastContentAdded", + "SeriesDatePlayed", + "ParentIndexNumber", + "IndexNumber", + "SimilarityScore", + "SearchScore" + ], + "type": "string", + "description": "These represent sort orders." + }, + "JoinGroupRequestDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets or sets the group identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class JoinGroupRequestDto." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "type": "string" + }, + "LibraryChangedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryUpdateInfo" + } + ], + "description": "Class LibraryUpdateInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "LibraryChanged", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Library changed message." + }, + "LibraryOptionInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets name.", + "nullable": true + }, + "DefaultEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether default enabled." + } + }, + "additionalProperties": false, + "description": "Library option info dto." + }, + "LibraryOptions": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + }, + "EnablePhotos": { + "type": "boolean" + }, + "EnableRealtimeMonitor": { + "type": "boolean" + }, + "EnableLUFSScan": { + "type": "boolean" + }, + "EnableChapterImageExtraction": { + "type": "boolean" + }, + "ExtractChapterImagesDuringLibraryScan": { + "type": "boolean" + }, + "EnableTrickplayImageExtraction": { + "type": "boolean" + }, + "ExtractTrickplayImagesDuringLibraryScan": { + "type": "boolean" + }, + "PathInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaPathInfo" + } + }, + "SaveLocalMetadata": { + "type": "boolean" + }, + "EnableInternetProviders": { + "type": "boolean", + "deprecated": true + }, + "EnableAutomaticSeriesGrouping": { + "type": "boolean" + }, + "EnableEmbeddedTitles": { + "type": "boolean" + }, + "EnableEmbeddedExtrasTitles": { + "type": "boolean" + }, + "EnableEmbeddedEpisodeInfos": { + "type": "boolean" + }, + "AutomaticRefreshIntervalDays": { + "type": "integer", + "format": "int32" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "SeasonZeroDisplayName": { + "type": "string" + }, + "MetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledLocalMetadataReaders": { + "type": "array", + "items": { + "type": "string" + } + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledSubtitleFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "DisabledMediaSegmentProviders": { + "type": "array", + "items": { + "type": "string" + } + }, + "MediaSegmentProvideOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "SkipSubtitlesIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipSubtitlesIfAudioTrackMatches": { + "type": "boolean" + }, + "SubtitleDownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RequirePerfectSubtitleMatch": { + "type": "boolean" + }, + "SaveSubtitlesWithMedia": { + "type": "boolean" + }, + "SaveLyricsWithMedia": { + "type": "boolean", + "default": false + }, + "SaveTrickplayWithMedia": { + "type": "boolean", + "default": false + }, + "DisabledLyricFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "LyricFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "PreferNonstandardArtistsTag": { + "type": "boolean", + "default": false + }, + "UseCustomTagDelimiters": { + "type": "boolean", + "default": false + }, + "CustomTagDelimiters": { + "type": "array", + "items": { + "type": "string" + } + }, + "DelimiterWhitelist": { + "type": "array", + "items": { + "type": "string" + } + }, + "AutomaticallyAddToCollection": { + "type": "boolean" + }, + "AllowEmbeddedSubtitles": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EmbeddedSubtitleOptions" + } + ], + "description": "An enum representing the options to disable embedded subs." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeOptions" + } + } + }, + "additionalProperties": false + }, + "LibraryOptionsResultDto": { + "type": "object", + "properties": { + "MetadataSavers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata savers." + }, + "MetadataReaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata readers." + }, + "SubtitleFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the subtitle fetchers." + }, + "LyricFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the list of lyric fetchers." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryTypeOptionsDto" + }, + "description": "Gets or sets the type options." + } + }, + "additionalProperties": false, + "description": "Library options result dto." + }, + "LibraryTypeOptionsDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata fetchers." + }, + "ImageFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the image fetchers." + }, + "SupportedImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the supported image types." + }, + "DefaultImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "description": "Gets or sets the default image options." + } + }, + "additionalProperties": false, + "description": "Library type options dto." + }, + "LibraryUpdateInfo": { + "type": "object", + "properties": { + "FoldersAddedTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders added to." + }, + "FoldersRemovedFrom": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders removed from." + }, + "ItemsAdded": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items added." + }, + "ItemsRemoved": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items removed." + }, + "ItemsUpdated": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items updated." + }, + "CollectionFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "IsEmpty": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class LibraryUpdateInfo." + }, + "ListingsProviderInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "Username": { + "type": "string", + "nullable": true + }, + "Password": { + "type": "string", + "nullable": true + }, + "ListingsId": { + "type": "string", + "nullable": true + }, + "ZipCode": { + "type": "string", + "nullable": true + }, + "Country": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EnabledTuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllTuners": { + "type": "boolean" + }, + "NewsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SportsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "KidsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MovieCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ChannelMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "nullable": true + }, + "MoviePrefix": { + "type": "string", + "nullable": true + }, + "PreferredLanguage": { + "type": "string", + "nullable": true + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveStreamResponse": { + "type": "object", + "properties": { + "MediaSource": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceInfo" + } + ] + } + }, + "additionalProperties": false + }, + "LiveTvInfo": { + "type": "object", + "properties": { + "Services": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveTvServiceInfo" + }, + "description": "Gets or sets the services." + }, + "IsEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is enabled." + }, + "EnabledUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the enabled users." + } + }, + "additionalProperties": false + }, + "LiveTvOptions": { + "type": "object", + "properties": { + "GuideDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RecordingPath": { + "type": "string", + "nullable": true + }, + "MovieRecordingPath": { + "type": "string", + "nullable": true + }, + "SeriesRecordingPath": { + "type": "string", + "nullable": true + }, + "EnableRecordingSubfolders": { + "type": "boolean" + }, + "EnableOriginalAudioWithEncodedRecordings": { + "type": "boolean" + }, + "TunerHosts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + }, + "nullable": true + }, + "ListingProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListingsProviderInfo" + }, + "nullable": true + }, + "PrePaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "MediaLocationsCreated": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RecordingPostProcessor": { + "type": "string", + "nullable": true + }, + "RecordingPostProcessorArguments": { + "type": "string", + "nullable": true + }, + "SaveRecordingNFO": { + "type": "boolean" + }, + "SaveRecordingImages": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "LiveTvServiceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "HomePageUrl": { + "type": "string", + "description": "Gets or sets the home page URL.", + "nullable": true + }, + "Status": { + "enum": [ + "Ok", + "Unavailable" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LiveTvServiceStatus" + } + ], + "description": "Gets or sets the status." + }, + "StatusMessage": { + "type": "string", + "description": "Gets or sets the status message.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available." + }, + "IsVisible": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is visible." + }, + "Tuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ServiceInfo." + }, + "LiveTvServiceStatus": { + "enum": [ + "Ok", + "Unavailable" + ], + "type": "string" + }, + "LocalizationOption": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "type": "string", + "description": "Enum LocationType." + }, + "LogFile": { + "type": "object", + "properties": { + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + } + }, + "additionalProperties": false + }, + "LogLevel": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "type": "string" + }, + "LyricDto": { + "type": "object", + "properties": { + "Metadata": { + "allOf": [ + { + "$ref": "#/components/schemas/LyricMetadata" + } + ], + "description": "Gets or sets Metadata for the lyrics." + }, + "Lyrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LyricLine" + }, + "description": "Gets or sets a collection of individual lyric lines." + } + }, + "additionalProperties": false, + "description": "LyricResponse model." + }, + "LyricLine": { + "type": "object", + "properties": { + "Text": { + "type": "string", + "description": "Gets the text of this lyric line." + }, + "Start": { + "type": "integer", + "description": "Gets the start time in ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Lyric model." + }, + "LyricMetadata": { + "type": "object", + "properties": { + "Artist": { + "type": "string", + "description": "Gets or sets the song artist.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album this song is on.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title of the song.", + "nullable": true + }, + "Author": { + "type": "string", + "description": "Gets or sets the author of the lyric data.", + "nullable": true + }, + "Length": { + "type": "integer", + "description": "Gets or sets the length of the song in ticks.", + "format": "int64", + "nullable": true + }, + "By": { + "type": "string", + "description": "Gets or sets who the LRC file was created by.", + "nullable": true + }, + "Offset": { + "type": "integer", + "description": "Gets or sets the lyric offset compared to audio in ticks.", + "format": "int64", + "nullable": true + }, + "Creator": { + "type": "string", + "description": "Gets or sets the software used to create the LRC file.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version of the creator used.", + "nullable": true + }, + "IsSynced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this lyric is synced.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "LyricMetadata model." + }, + "MediaAttachment": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "FileName": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "MimeType": { + "type": "string", + "description": "Gets or sets the MIME type.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaAttachment." + }, + "MediaPathDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the library." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path to add.", + "nullable": true + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets the path info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Media Path dto." + }, + "MediaPathInfo": { + "type": "object", + "properties": { + "Path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "MediaProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "type": "string" + }, + "MediaSegmentDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the id of the media segment.", + "format": "uuid" + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the id of the associated item.", + "format": "uuid" + }, + "Type": { + "enum": [ + "Unknown", + "Commercial", + "Preview", + "Recap", + "Outro", + "Intro" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaSegmentType" + } + ], + "description": "Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents." + }, + "StartTicks": { + "type": "integer", + "description": "Gets or sets the start of the segment.", + "format": "int64" + }, + "EndTicks": { + "type": "integer", + "description": "Gets or sets the end of the segment.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Api model for MediaSegment's." + }, + "MediaSegmentDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSegmentDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "MediaSegmentType": { + "enum": [ + "Unknown", + "Commercial", + "Preview", + "Recap", + "Outro", + "Intro" + ], + "type": "string", + "description": "Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents." + }, + "MediaSourceInfo": { + "type": "object", + "properties": { + "Protocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ] + }, + "Id": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EncoderPath": { + "type": "string", + "nullable": true + }, + "EncoderProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ], + "nullable": true + }, + "Type": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceType" + } + ] + }, + "Container": { + "type": "string", + "nullable": true + }, + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "IsRemote": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + }, + "ETag": { + "type": "string", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ReadAtNativeFramerate": { + "type": "boolean" + }, + "IgnoreDts": { + "type": "boolean" + }, + "IgnoreIndex": { + "type": "boolean" + }, + "GenPtsInput": { + "type": "boolean" + }, + "SupportsTranscoding": { + "type": "boolean" + }, + "SupportsDirectStream": { + "type": "boolean" + }, + "SupportsDirectPlay": { + "type": "boolean" + }, + "IsInfiniteStream": { + "type": "boolean" + }, + "UseMostCompatibleTranscodingProfile": { + "type": "boolean", + "default": false + }, + "RequiresOpening": { + "type": "boolean" + }, + "OpenToken": { + "type": "string", + "nullable": true + }, + "RequiresClosing": { + "type": "boolean" + }, + "LiveStreamId": { + "type": "string", + "nullable": true + }, + "BufferMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RequiresLooping": { + "type": "boolean" + }, + "SupportsProbing": { + "type": "boolean" + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "nullable": true + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "nullable": true + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "nullable": true + }, + "MediaAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaAttachment" + }, + "nullable": true + }, + "Formats": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "FallbackMaxStreamingBitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Timestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TransportStreamTimestamp" + } + ], + "nullable": true + }, + "RequiredHttpHeaders": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "TranscodingUrl": { + "type": "string", + "nullable": true + }, + "TranscodingSubProtocol": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ], + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "TranscodingContainer": { + "type": "string", + "nullable": true + }, + "AnalyzeDurationMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultAudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultSubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "HasSegments": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MediaSourceType": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "type": "string" + }, + "MediaStream": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "ColorRange": { + "type": "string", + "description": "Gets or sets the color range.", + "nullable": true + }, + "ColorSpace": { + "type": "string", + "description": "Gets or sets the color space.", + "nullable": true + }, + "ColorTransfer": { + "type": "string", + "description": "Gets or sets the color transfer.", + "nullable": true + }, + "ColorPrimaries": { + "type": "string", + "description": "Gets or sets the color primaries.", + "nullable": true + }, + "DvVersionMajor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version major.", + "format": "int32", + "nullable": true + }, + "DvVersionMinor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version minor.", + "format": "int32", + "nullable": true + }, + "DvProfile": { + "type": "integer", + "description": "Gets or sets the Dolby Vision profile.", + "format": "int32", + "nullable": true + }, + "DvLevel": { + "type": "integer", + "description": "Gets or sets the Dolby Vision level.", + "format": "int32", + "nullable": true + }, + "RpuPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision rpu present flag.", + "format": "int32", + "nullable": true + }, + "ElPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision el present flag.", + "format": "int32", + "nullable": true + }, + "BlPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl present flag.", + "format": "int32", + "nullable": true + }, + "DvBlSignalCompatibilityId": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl signal compatibility id.", + "format": "int32", + "nullable": true + }, + "Rotation": { + "type": "integer", + "description": "Gets or sets the Rotation in degrees.", + "format": "int32", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "TimeBase": { + "type": "string", + "description": "Gets or sets the time base.", + "nullable": true + }, + "CodecTimeBase": { + "type": "string", + "description": "Gets or sets the codec time base.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title.", + "nullable": true + }, + "VideoRange": { + "enum": [ + "Unknown", + "SDR", + "HDR" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoRange" + } + ], + "description": "An enum representing video ranges.", + "readOnly": true + }, + "VideoRangeType": { + "enum": [ + "Unknown", + "SDR", + "HDR10", + "HLG", + "DOVI", + "DOVIWithHDR10", + "DOVIWithHLG", + "DOVIWithSDR", + "HDR10Plus" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoRangeType" + } + ], + "description": "An enum representing types of video ranges.", + "readOnly": true + }, + "VideoDoViTitle": { + "type": "string", + "description": "Gets the video dovi title.", + "nullable": true, + "readOnly": true + }, + "AudioSpatialFormat": { + "enum": [ + "None", + "DolbyAtmos", + "DTSX" + ], + "allOf": [ + { + "$ref": "#/components/schemas/AudioSpatialFormat" + } + ], + "description": "An enum representing formats of spatial audio.", + "default": "None", + "readOnly": true + }, + "LocalizedUndefined": { + "type": "string", + "nullable": true + }, + "LocalizedDefault": { + "type": "string", + "nullable": true + }, + "LocalizedForced": { + "type": "string", + "nullable": true + }, + "LocalizedExternal": { + "type": "string", + "nullable": true + }, + "LocalizedHearingImpaired": { + "type": "string", + "nullable": true + }, + "DisplayTitle": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "NalLengthSize": { + "type": "string", + "nullable": true + }, + "IsInterlaced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is interlaced." + }, + "IsAVC": { + "type": "boolean", + "nullable": true + }, + "ChannelLayout": { + "type": "string", + "description": "Gets or sets the channel layout.", + "nullable": true + }, + "BitRate": { + "type": "integer", + "description": "Gets or sets the bit rate.", + "format": "int32", + "nullable": true + }, + "BitDepth": { + "type": "integer", + "description": "Gets or sets the bit depth.", + "format": "int32", + "nullable": true + }, + "RefFrames": { + "type": "integer", + "description": "Gets or sets the reference frames.", + "format": "int32", + "nullable": true + }, + "PacketLength": { + "type": "integer", + "description": "Gets or sets the length of the packet.", + "format": "int32", + "nullable": true + }, + "Channels": { + "type": "integer", + "description": "Gets or sets the channels.", + "format": "int32", + "nullable": true + }, + "SampleRate": { + "type": "integer", + "description": "Gets or sets the sample rate.", + "format": "int32", + "nullable": true + }, + "IsDefault": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is default." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is forced." + }, + "IsHearingImpaired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is for the hearing impaired." + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "AverageFrameRate": { + "type": "number", + "description": "Gets or sets the average frame rate.", + "format": "float", + "nullable": true + }, + "RealFrameRate": { + "type": "number", + "description": "Gets or sets the real frame rate.", + "format": "float", + "nullable": true + }, + "ReferenceFrameRate": { + "type": "number", + "description": "Gets the framerate used as reference.\r\nPrefer AverageFrameRate, if that is null or an unrealistic value\r\nthen fallback to RealFrameRate.", + "format": "float", + "nullable": true, + "readOnly": true + }, + "Profile": { + "type": "string", + "description": "Gets or sets the profile.", + "nullable": true + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamType" + } + ], + "description": "Gets or sets the type." + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "Score": { + "type": "integer", + "description": "Gets or sets the score.", + "format": "int32", + "nullable": true + }, + "IsExternal": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external." + }, + "DeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the method.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + }, + "IsExternalUrl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external URL.", + "nullable": true + }, + "IsTextSubtitleStream": { + "type": "boolean", + "readOnly": true + }, + "SupportsExternalStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports external stream]." + }, + "Path": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "PixelFormat": { + "type": "string", + "description": "Gets or sets the pixel format.", + "nullable": true + }, + "Level": { + "type": "number", + "description": "Gets or sets the level.", + "format": "double", + "nullable": true + }, + "IsAnamorphic": { + "type": "boolean", + "description": "Gets or sets whether this instance is anamorphic.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaStream." + }, + "MediaStreamProtocol": { + "enum": [ + "http", + "hls" + ], + "type": "string", + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "MediaStreamType": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data", + "Lyric" + ], + "type": "string", + "description": "Enum MediaStreamType." + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "type": "string", + "description": "Media types." + }, + "MediaUpdateInfoDto": { + "type": "object", + "properties": { + "Updates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUpdateInfoPathDto" + }, + "description": "Gets or sets the list of updates." + } + }, + "additionalProperties": false, + "description": "Media Update Info Dto." + }, + "MediaUpdateInfoPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media path.", + "nullable": true + }, + "UpdateType": { + "type": "string", + "description": "Gets or sets media update type.\r\nCreated, Modified, Deleted.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The media update info path." + }, + "MediaUrl": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MessageCommand": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Header": { + "type": "string", + "nullable": true + }, + "Text": { + "type": "string" + }, + "TimeoutMs": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetadataConfiguration": { + "type": "object", + "properties": { + "UseFileCreationTimeForDateAdded": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MetadataEditorInfo": { + "type": "object", + "properties": { + "ParentalRatingOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + }, + "Countries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + }, + "Cultures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + }, + "ExternalIdInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + }, + "ContentType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ], + "nullable": true + }, + "ContentTypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + } + }, + "additionalProperties": false + }, + "MetadataField": { + "enum": [ + "Cast", + "Genres", + "ProductionLocations", + "Studios", + "Tags", + "Name", + "Overview", + "Runtime", + "OfficialRating" + ], + "type": "string", + "description": "Enum MetadataFields." + }, + "MetadataOptions": { + "type": "object", + "properties": { + "ItemType": { + "type": "string", + "nullable": true + }, + "DisabledMetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledMetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MetadataOptions." + }, + "MetadataRefreshMode": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "type": "string" + }, + "MovePlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the item.", + "format": "uuid" + }, + "NewIndex": { + "type": "integer", + "description": "Gets or sets the new position.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class MovePlaylistItemRequestDto." + }, + "MovieInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MovieInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "MusicVideoInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MusicVideoInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "NameGuidPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "NameIdPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NameValuePair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "BaseUrl": { + "type": "string", + "description": "Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at." + }, + "EnableHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use HTTPS." + }, + "RequireHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the server should force connections over HTTPS." + }, + "CertificatePath": { + "type": "string", + "description": "Gets or sets the filesystem path of an X.509 certificate to use for SSL." + }, + "CertificatePassword": { + "type": "string", + "description": "Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Common.Net.NetworkConfiguration.CertificatePath." + }, + "InternalHttpPort": { + "type": "integer", + "description": "Gets or sets the internal HTTP server port.", + "format": "int32" + }, + "InternalHttpsPort": { + "type": "integer", + "description": "Gets or sets the internal HTTPS server port.", + "format": "int32" + }, + "PublicHttpPort": { + "type": "integer", + "description": "Gets or sets the public HTTP port.", + "format": "int32" + }, + "PublicHttpsPort": { + "type": "integer", + "description": "Gets or sets the public HTTPS port.", + "format": "int32" + }, + "AutoDiscovery": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery is enabled." + }, + "EnableUPnP": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable automatic port forwarding." + }, + "EnableIPv4": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IPv6 is enabled." + }, + "EnableIPv6": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IPv6 is enabled." + }, + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether access from outside of the LAN is permitted." + }, + "LocalNetworkSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the subnets that are deemed to make up the LAN." + }, + "LocalNetworkAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used." + }, + "KnownProxies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the known proxies." + }, + "IgnoreVirtualInterfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether address names that match MediaBrowser.Common.Net.NetworkConfiguration.VirtualInterfaceNames should be ignored for the purposes of binding." + }, + "VirtualInterfaceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets a value indicating the interface name prefixes that should be ignored. The list can be comma separated and values are case-insensitive. ." + }, + "EnablePublishedServerUriByRequest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the published server uri is based on information in HTTP requests." + }, + "PublishedServerUriBySubnet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + }, + "RemoteIPFilter": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the filter for remote IP connectivity. Used in conjunction with ." + }, + "IsRemoteIPFilterBlacklist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Net.NetworkConfiguration." + }, + "NewGroupRequestDto": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Gets or sets the group name." + } + }, + "additionalProperties": false, + "description": "Class NewGroupRequestDto." + }, + "NextItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class NextItemRequestDto." + }, + "OpenLiveStreamDto": { + "type": "object", + "properties": { + "OpenToken": { + "type": "string", + "description": "Gets or sets the open token.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session id.", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enale direct stream.", + "nullable": true + }, + "AlwaysBurnInSubtitleWhenTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether always burn in subtitles when transcoding.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "DirectPlayProtocols": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaProtocol" + }, + "description": "Gets or sets the device play protocols." + } + }, + "additionalProperties": false, + "description": "Open live stream dto." + }, + "OutboundKeepAliveMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "KeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Keep alive websocket messages." + }, + "OutboundWebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityLogEntryMessage" + }, + { + "$ref": "#/components/schemas/ForceKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/GeneralCommandMessage" + }, + { + "$ref": "#/components/schemas/LibraryChangedMessage" + }, + { + "$ref": "#/components/schemas/OutboundKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/PlayMessage" + }, + { + "$ref": "#/components/schemas/PlaystateMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationCancelledMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationCompletedMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationFailedMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallingMessage" + }, + { + "$ref": "#/components/schemas/PluginUninstalledMessage" + }, + { + "$ref": "#/components/schemas/RefreshProgressMessage" + }, + { + "$ref": "#/components/schemas/RestartRequiredMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTaskEndedMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoMessage" + }, + { + "$ref": "#/components/schemas/SeriesTimerCancelledMessage" + }, + { + "$ref": "#/components/schemas/SeriesTimerCreatedMessage" + }, + { + "$ref": "#/components/schemas/ServerRestartingMessage" + }, + { + "$ref": "#/components/schemas/ServerShuttingDownMessage" + }, + { + "$ref": "#/components/schemas/SessionsMessage" + }, + { + "$ref": "#/components/schemas/SyncPlayCommandMessage" + }, + { + "$ref": "#/components/schemas/SyncPlayGroupUpdateCommandMessage" + }, + { + "$ref": "#/components/schemas/TimerCancelledMessage" + }, + { + "$ref": "#/components/schemas/TimerCreatedMessage" + }, + { + "$ref": "#/components/schemas/UserDataChangedMessage" + }, + { + "$ref": "#/components/schemas/UserDeletedMessage" + }, + { + "$ref": "#/components/schemas/UserUpdatedMessage" + } + ], + "description": "Represents the list of possible outbound websocket types", + "discriminator": { + "propertyName": "MessageType", + "mapping": { + "ActivityLogEntry": "#/components/schemas/ActivityLogEntryMessage", + "ForceKeepAlive": "#/components/schemas/ForceKeepAliveMessage", + "GeneralCommand": "#/components/schemas/GeneralCommandMessage", + "LibraryChanged": "#/components/schemas/LibraryChangedMessage", + "KeepAlive": "#/components/schemas/OutboundKeepAliveMessage", + "Play": "#/components/schemas/PlayMessage", + "Playstate": "#/components/schemas/PlaystateMessage", + "PackageInstallationCancelled": "#/components/schemas/PluginInstallationCancelledMessage", + "PackageInstallationCompleted": "#/components/schemas/PluginInstallationCompletedMessage", + "PackageInstallationFailed": "#/components/schemas/PluginInstallationFailedMessage", + "PackageInstalling": "#/components/schemas/PluginInstallingMessage", + "PackageUninstalled": "#/components/schemas/PluginUninstalledMessage", + "RefreshProgress": "#/components/schemas/RefreshProgressMessage", + "RestartRequired": "#/components/schemas/RestartRequiredMessage", + "ScheduledTaskEnded": "#/components/schemas/ScheduledTaskEndedMessage", + "ScheduledTasksInfo": "#/components/schemas/ScheduledTasksInfoMessage", + "SeriesTimerCancelled": "#/components/schemas/SeriesTimerCancelledMessage", + "SeriesTimerCreated": "#/components/schemas/SeriesTimerCreatedMessage", + "ServerRestarting": "#/components/schemas/ServerRestartingMessage", + "ServerShuttingDown": "#/components/schemas/ServerShuttingDownMessage", + "Sessions": "#/components/schemas/SessionsMessage", + "SyncPlayCommand": "#/components/schemas/SyncPlayCommandMessage", + "SyncPlayGroupUpdate": "#/components/schemas/SyncPlayGroupUpdateCommandMessage", + "TimerCancelled": "#/components/schemas/TimerCancelledMessage", + "TimerCreated": "#/components/schemas/TimerCreatedMessage", + "UserDataChanged": "#/components/schemas/UserDataChangedMessage", + "UserDeleted": "#/components/schemas/UserDeletedMessage", + "UserUpdated": "#/components/schemas/UserUpdatedMessage" + } + } + }, + "PackageInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name." + }, + "description": { + "type": "string", + "description": "Gets or sets a long description of the plugin containing features or helpful explanations." + }, + "overview": { + "type": "string", + "description": "Gets or sets a short overview of what the plugin does." + }, + "owner": { + "type": "string", + "description": "Gets or sets the owner." + }, + "category": { + "type": "string", + "description": "Gets or sets the category." + }, + "guid": { + "type": "string", + "description": "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates.", + "format": "uuid" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VersionInfo" + }, + "description": "Gets or sets the versions." + }, + "imageUrl": { + "type": "string", + "description": "Gets or sets the image url for the package.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PackageInfo." + }, + "ParentalRating": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "integer", + "description": "Gets or sets the value.", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ParentalRating." + }, + "PathSubstitution": { + "type": "object", + "properties": { + "From": { + "type": "string", + "description": "Gets or sets the value to substitute." + }, + "To": { + "type": "string", + "description": "Gets or sets the value to substitution with." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Configuration.PathSubstitution." + }, + "PersonKind": { + "enum": [ + "Unknown", + "Actor", + "Director", + "Composer", + "Writer", + "GuestStar", + "Producer", + "Conductor", + "Lyricist", + "Arranger", + "Engineer", + "Mixer", + "Remixer", + "Creator", + "Artist", + "AlbumArtist", + "Author", + "Illustrator", + "Penciller", + "Inker", + "Colorist", + "Letterer", + "CoverArtist", + "Editor", + "Translator" + ], + "type": "string", + "description": "The person kind." + }, + "PersonLookupInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "PersonLookupInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "PingRequestDto": { + "type": "object", + "properties": { + "Ping": { + "type": "integer", + "description": "Gets or sets the ping time.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PingRequestDto." + }, + "PinRedeemResult": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success." + }, + "UsersReset": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the users reset." + } + }, + "additionalProperties": false + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "type": "string" + }, + "PlaybackErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "type": "string" + }, + "PlaybackInfoDto": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the playback userId.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media source id.", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream id.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct stream.", + "nullable": true + }, + "EnableTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable transcoding.", + "nullable": true + }, + "AllowVideoStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable video stream copy.", + "nullable": true + }, + "AllowAudioStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to allow audio stream copy.", + "nullable": true + }, + "AutoOpenLiveStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to auto open the live stream.", + "nullable": true + }, + "AlwaysBurnInSubtitleWhenTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether always burn in subtitles when transcoding.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Plabyback info dto." + }, + "PlaybackInfoResponse": { + "type": "object", + "properties": { + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media sources." + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "ErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackErrorCode" + } + ], + "description": "Gets or sets the error code.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackInfoResponse." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "type": "string", + "description": "Enum PlaybackOrder." + }, + "PlaybackProgressInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackProgressInfo." + }, + "PlaybackRequestType": { + "enum": [ + "Play", + "SetPlaylistItem", + "RemoveFromPlaylist", + "MovePlaylistItem", + "Queue", + "Unpause", + "Pause", + "Stop", + "Seek", + "Buffer", + "Ready", + "NextItem", + "PreviousItem", + "SetRepeatMode", + "SetShuffleMode", + "Ping", + "IgnoreWait" + ], + "type": "string", + "description": "Enum PlaybackRequestType." + }, + "PlaybackStartInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStartInfo." + }, + "PlaybackStopInfo": { + "type": "object", + "properties": { + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "Failed": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed." + }, + "NextMediaType": { + "type": "string", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStopInfo." + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "type": "string", + "description": "Enum PlayCommand." + }, + "PlayerStateInfo": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the now playing position ticks.", + "format": "int64", + "nullable": true + }, + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing subtitle stream.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the now playing media version identifier.", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the now playing live stream identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PlaylistCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PlaylistDto": { + "type": "object", + "properties": { + "OpenAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is publicly readable." + }, + "Shares": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the share permissions." + }, + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids." + } + }, + "additionalProperties": false, + "description": "DTO for playlists." + }, + "PlaylistUserPermissions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "CanEdit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the user has edit permissions." + } + }, + "additionalProperties": false, + "description": "Class to hold data on user permissions for playlists." + }, + "PlayMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequest" + } + ], + "description": "Class PlayRequest.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Play", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Play command websocket message." + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "type": "string" + }, + "PlayQueueUpdate": { + "type": "object", + "properties": { + "Reason": { + "enum": [ + "NewPlaylist", + "SetCurrentItem", + "RemoveItems", + "MoveItem", + "Queue", + "QueueNext", + "NextItem", + "PreviousItem", + "RepeatMode", + "ShuffleMode" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayQueueUpdateReason" + } + ], + "description": "Gets the request type that originated this update." + }, + "LastUpdate": { + "type": "string", + "description": "Gets the UTC time of the last change to the playing queue.", + "format": "date-time" + }, + "Playlist": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SyncPlayQueueItem" + }, + "description": "Gets the playlist." + }, + "PlayingItemIndex": { + "type": "integer", + "description": "Gets the playing item index in the playlist.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets the start position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets a value indicating whether the current item is playing." + }, + "ShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Gets the shuffle mode." + }, + "RepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Gets the repeat mode." + } + }, + "additionalProperties": false, + "description": "Class PlayQueueUpdate." + }, + "PlayQueueUpdateGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayQueueUpdate" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "PlayQueueUpdateReason": { + "enum": [ + "NewPlaylist", + "SetCurrentItem", + "RemoveItems", + "MoveItem", + "Queue", + "QueueNext", + "NextItem", + "PreviousItem", + "RepeatMode", + "ShuffleMode" + ], + "type": "string", + "description": "Enum PlayQueueUpdateReason." + }, + "PlayRequest": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids.", + "nullable": true + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks that the first item should be played at.", + "format": "int64", + "nullable": true + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Gets or sets the play command." + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "format": "uuid" + }, + "SubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlayRequest." + }, + "PlayRequestDto": { + "type": "object", + "properties": { + "PlayingQueue": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playing queue." + }, + "PlayingItemPosition": { + "type": "integer", + "description": "Gets or sets the position of the playing item in the queue.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PlayRequestDto." + }, + "PlaystateCommand": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "type": "string", + "description": "Enum PlaystateCommand." + }, + "PlaystateMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateRequest" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Playstate", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Playstate message." + }, + "PlaystateRequest": { + "type": "object", + "properties": { + "Command": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + }, + "SeekPositionTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PluginInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Version": { + "type": "string", + "description": "Gets or sets the version." + }, + "ConfigurationFileName": { + "type": "string", + "description": "Gets or sets the name of the configuration file.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description." + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique id.", + "format": "uuid" + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the plugin can be uninstalled." + }, + "HasImage": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this plugin has a valid image." + }, + "Status": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PluginStatus" + } + ], + "description": "Gets or sets a value indicating the status of the plugin." + } + }, + "additionalProperties": false, + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins." + }, + "PluginInstallationCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation cancelled message." + }, + "PluginInstallationCompletedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationCompleted", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation completed message." + }, + "PluginInstallationFailedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationFailed", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation failed message." + }, + "PluginInstallingMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstalling", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Package installing message." + }, + "PluginStatus": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "type": "string", + "description": "Plugin load status." + }, + "PluginUninstalledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PluginInfo" + } + ], + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageUninstalled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin uninstalled message." + }, + "PreviousItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class PreviousItemRequestDto." + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "ProcessPriorityClass": { + "enum": [ + "Normal", + "Idle", + "High", + "RealTime", + "BelowNormal", + "AboveNormal" + ], + "type": "string" + }, + "ProfileCondition": { + "type": "object", + "properties": { + "Condition": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionType" + } + ] + }, + "Property": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionValue" + } + ] + }, + "Value": { + "type": "string", + "nullable": true + }, + "IsRequired": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProfileConditionType": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "type": "string" + }, + "ProfileConditionValue": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "type": "string" + }, + "ProgramAudio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "type": "string" + }, + "PublicSystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true, + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFilters": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFiltersLegacy": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "OfficialRatings": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueItem": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueRequestDto": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the items to enqueue." + }, + "Mode": { + "enum": [ + "Queue", + "QueueNext" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupQueueMode" + } + ], + "description": "Gets or sets the mode in which to add the new items." + } + }, + "additionalProperties": false, + "description": "Class QueueRequestDto." + }, + "QuickConnectDto": { + "required": [ + "Secret" + ], + "type": "object", + "properties": { + "Secret": { + "type": "string", + "description": "Gets or sets the quick connect secret." + } + }, + "additionalProperties": false, + "description": "The quick connect request body." + }, + "QuickConnectResult": { + "type": "object", + "properties": { + "Authenticated": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this request is authorized." + }, + "Secret": { + "type": "string", + "description": "Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information." + }, + "Code": { + "type": "string", + "description": "Gets the user facing code used so the user can quickly differentiate this request from others." + }, + "DeviceId": { + "type": "string", + "description": "Gets the requesting device id." + }, + "DeviceName": { + "type": "string", + "description": "Gets the requesting device name." + }, + "AppName": { + "type": "string", + "description": "Gets the requesting app name." + }, + "AppVersion": { + "type": "string", + "description": "Gets the requesting app version." + }, + "DateAdded": { + "type": "string", + "description": "Gets or sets the DateTime that this request was created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Stores the state of an quick connect request." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "type": "string" + }, + "ReadyRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ReadyRequest." + }, + "RecommendationDto": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecommendationType" + } + ] + }, + "BaselineItemName": { + "type": "string", + "nullable": true + }, + "CategoryId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "type": "string" + }, + "RecordingStatus": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "type": "string" + }, + "RefreshProgressMessage": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "RefreshProgress", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Refresh progress message." + }, + "RemoteImageInfo": { + "type": "object", + "properties": { + "ProviderName": { + "type": "string", + "description": "Gets or sets the name of the provider.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "ThumbnailUrl": { + "type": "string", + "description": "Gets or sets a url used for previewing a smaller version.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "double", + "nullable": true + }, + "VoteCount": { + "type": "integer", + "description": "Gets or sets the vote count.", + "format": "int32", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Type": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RatingType" + } + ], + "description": "Gets or sets the type of the rating." + } + }, + "additionalProperties": false, + "description": "Class RemoteImageInfo." + }, + "RemoteImageResult": { + "type": "object", + "properties": { + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteImageInfo" + }, + "description": "Gets or sets the images.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total record count.", + "format": "int32" + }, + "Providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the providers.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class RemoteImageResult." + }, + "RemoteLyricInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the id for the lyric." + }, + "ProviderName": { + "type": "string", + "description": "Gets the provider name." + }, + "Lyrics": { + "allOf": [ + { + "$ref": "#/components/schemas/LyricDto" + } + ], + "description": "Gets the lyrics." + } + }, + "additionalProperties": false, + "description": "The remote lyric info dto." + }, + "RemoteSearchResult": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ImageUrl": { + "type": "string", + "nullable": true + }, + "SearchProviderName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "nullable": true + }, + "AlbumArtist": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ], + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoteSubtitleInfo": { + "type": "object", + "properties": { + "ThreeLetterISOLanguageName": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + }, + "ProviderName": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Format": { + "type": "string", + "nullable": true + }, + "Author": { + "type": "string", + "nullable": true + }, + "Comment": { + "type": "string", + "nullable": true + }, + "DateCreated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "format": "float", + "nullable": true + }, + "FrameRate": { + "type": "number", + "format": "float", + "nullable": true + }, + "DownloadCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IsHashMatch": { + "type": "boolean", + "nullable": true + }, + "AiTranslated": { + "type": "boolean", + "nullable": true + }, + "MachineTranslated": { + "type": "boolean", + "nullable": true + }, + "Forced": { + "type": "boolean", + "nullable": true + }, + "HearingImpaired": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoveFromPlaylistRequestDto": { + "type": "object", + "properties": { + "PlaylistItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playlist identifiers of the items. Ignored when clearing the playlist." + }, + "ClearPlaylist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the entire playlist should be cleared." + }, + "ClearPlayingItem": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist." + } + }, + "additionalProperties": false, + "description": "Class RemoveFromPlaylistRequestDto." + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "type": "string" + }, + "RepositoryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the repository is enabled." + } + }, + "additionalProperties": false, + "description": "Class RepositoryInfo." + }, + "RestartRequiredMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "RestartRequired", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Restart required." + }, + "ScheduledTaskEndedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Class TaskExecutionInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTaskEnded", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled task ended message." + }, + "ScheduledTasksInfoMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfo", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info message." + }, + "ScheduledTasksInfoStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfoStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "ScheduledTasksInfoStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfoStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info stop message." + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "type": "string", + "description": "An enum representing the axis that should be scrolled." + }, + "SearchHint": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "MatchedTerm": { + "type": "string", + "description": "Gets or sets the matched term.", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "ThumbImageTag": { + "type": "string", + "description": "Gets or sets the thumb image tag.", + "nullable": true + }, + "ThumbImageItemId": { + "type": "string", + "description": "Gets or sets the thumb image item identifier.", + "nullable": true + }, + "BackdropImageTag": { + "type": "string", + "description": "Gets or sets the backdrop image tag.", + "nullable": true + }, + "BackdropImageItemId": { + "type": "string", + "description": "Gets or sets the backdrop image item identifier.", + "nullable": true + }, + "Type": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Media types." + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time", + "nullable": true + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "Series": { + "type": "string", + "description": "Gets or sets the series.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists." + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the name of the channel.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SearchHintResult": { + "type": "object", + "properties": { + "SearchHints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchHint" + }, + "description": "Gets the search hints." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets the total record count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SeekRequestDto": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class SeekRequestDto." + }, + "SendCommand": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the playing item.", + "format": "uuid" + }, + "When": { + "type": "string", + "description": "Gets or sets the UTC time when to execute the command.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets the position ticks.", + "format": "int64", + "nullable": true + }, + "Command": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SendCommandType" + } + ], + "description": "Gets the command." + }, + "EmittedAt": { + "type": "string", + "description": "Gets the UTC time when this command has been emitted.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class SendCommand." + }, + "SendCommandType": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "type": "string", + "description": "Enum SendCommandType." + }, + "SeriesInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SeriesInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "SeriesStatus": { + "enum": [ + "Continuing", + "Ended", + "Unreleased" + ], + "type": "string", + "description": "The status of a series." + }, + "SeriesTimerCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SeriesTimerCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Series timer cancelled message." + }, + "SeriesTimerCreatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SeriesTimerCreated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Series timer created message." + }, + "SeriesTimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "RecordAnyTime": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any time]." + }, + "SkipEpisodesInLibrary": { + "type": "boolean" + }, + "RecordAnyChannel": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any channel]." + }, + "KeepUpTo": { + "type": "integer", + "format": "int32" + }, + "RecordNewOnly": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record new only]." + }, + "Days": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the days.", + "nullable": true + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DayPattern" + } + ], + "description": "Gets or sets the day pattern.", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SeriesTimerInfoDto." + }, + "SeriesTimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "ServerConfiguration": { + "type": "object", + "properties": { + "LogFileRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain log files.", + "format": "int32" + }, + "IsStartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is first run." + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "PreviousVersion": { + "type": "string", + "description": "Gets or sets the last known version that was ran using the configuration.", + "nullable": true + }, + "PreviousVersionStr": { + "type": "string", + "description": "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable.", + "nullable": true + }, + "EnableMetrics": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable prometheus metrics exporting." + }, + "EnableNormalizedItemByNameIds": { + "type": "boolean" + }, + "IsPortAuthorized": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is port authorized." + }, + "QuickConnectAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether quick connect is available for use on this server." + }, + "EnableCaseSensitiveItemIds": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable case sensitive item ids]." + }, + "DisableLiveTvChannelUserDataName": { + "type": "boolean" + }, + "MetadataPath": { + "type": "string", + "description": "Gets or sets the metadata path." + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language." + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code." + }, + "SortReplaceCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be replaced with a ' ' in strings to create a sort name." + }, + "SortRemoveCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be removed from strings to create a sort name." + }, + "SortRemoveWords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets words to be removed from strings to create a sort name." + }, + "MinResumePct": { + "type": "integer", + "description": "Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxResumePct": { + "type": "integer", + "description": "Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "MinResumeDurationSeconds": { + "type": "integer", + "description": "Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates..", + "format": "int32" + }, + "MinAudiobookResume": { + "type": "integer", + "description": "Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxAudiobookResume": { + "type": "integer", + "description": "Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "InactiveSessionThreshold": { + "type": "integer", + "description": "Gets or sets the threshold in minutes after a inactive session gets closed automatically.\r\nIf set to 0 the check for inactive sessions gets disabled.", + "format": "int32" + }, + "LibraryMonitorDelay": { + "type": "integer", + "description": "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files.", + "format": "int32" + }, + "LibraryUpdateDuration": { + "type": "integer", + "description": "Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification.", + "format": "int32" + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageSavingConvention" + } + ], + "description": "Gets or sets the image saving convention." + }, + "MetadataOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "SkipDeserializationForBasicTypes": { + "type": "boolean" + }, + "ServerName": { + "type": "string" + }, + "UICulture": { + "type": "string" + }, + "SaveMetadataHidden": { + "type": "boolean" + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "EnableFolderView": { + "type": "boolean" + }, + "EnableGroupingIntoCollections": { + "type": "boolean" + }, + "DisplaySpecialsWithinSeasons": { + "type": "boolean" + }, + "CodecsUsed": { + "type": "array", + "items": { + "type": "string" + } + }, + "PluginRepositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + }, + "EnableExternalContentInSuggestions": { + "type": "boolean" + }, + "ImageExtractionTimeoutMs": { + "type": "integer", + "format": "int32" + }, + "PathSubstitutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathSubstitution" + } + }, + "EnableSlowResponseWarning": { + "type": "boolean", + "description": "Gets or sets a value indicating whether slow server responses should be logged as a warning." + }, + "SlowResponseThresholdMs": { + "type": "integer", + "description": "Gets or sets the threshold for the slow response time warning in ms.", + "format": "int64" + }, + "CorsHosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the cors hosts." + }, + "ActivityLogRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain activity logs.", + "format": "int32", + "nullable": true + }, + "LibraryScanFanoutConcurrency": { + "type": "integer", + "description": "Gets or sets the how the library scan fans out.", + "format": "int32" + }, + "LibraryMetadataRefreshConcurrency": { + "type": "integer", + "description": "Gets or sets the how many metadata refreshes can run concurrently.", + "format": "int32" + }, + "RemoveOldPlugins": { + "type": "boolean", + "description": "Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder." + }, + "AllowClientLogUpload": { + "type": "boolean", + "description": "Gets or sets a value indicating whether clients should be allowed to upload logs." + }, + "DummyChapterDuration": { + "type": "integer", + "description": "Gets or sets the dummy chapter duration in seconds, use 0 (zero) or less to disable generation alltogether.", + "format": "int32" + }, + "ChapterImageResolution": { + "enum": [ + "MatchSource", + "P144", + "P240", + "P360", + "P480", + "P720", + "P1080", + "P1440", + "P2160" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageResolution" + } + ], + "description": "Gets or sets the chapter image resolution." + }, + "ParallelImageEncodingLimit": { + "type": "integer", + "description": "Gets or sets the limit for parallel image encoding.", + "format": "int32" + }, + "CastReceiverApplications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CastReceiverApplication" + }, + "description": "Gets or sets the list of cast receiver applications." + }, + "TrickplayOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/TrickplayOptions" + } + ], + "description": "Gets or sets the trickplay options." + } + }, + "additionalProperties": false, + "description": "Represents the server configuration." + }, + "ServerDiscoveryInfo": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Gets the address." + }, + "Id": { + "type": "string", + "description": "Gets the server identifier." + }, + "Name": { + "type": "string", + "description": "Gets the name." + }, + "EndpointAddress": { + "type": "string", + "description": "Gets the endpoint address.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The server discovery info model." + }, + "ServerRestartingMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ServerRestarting", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Server restarting down message." + }, + "ServerShuttingDownMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ServerShuttingDown", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Server shutting down message." + }, + "SessionInfoDto": { + "type": "object", + "properties": { + "PlayState": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayerStateInfo" + } + ], + "description": "Gets or sets the play state.", + "nullable": true + }, + "AdditionalUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionUserInfo" + }, + "description": "Gets or sets the additional users.", + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Gets or sets the client capabilities.", + "nullable": true + }, + "RemoteEndPoint": { + "type": "string", + "description": "Gets or sets the remote end point.", + "nullable": true + }, + "PlayableMediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + }, + "description": "Gets or sets the playable media types." + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Client": { + "type": "string", + "description": "Gets or sets the type of the client.", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time" + }, + "LastPlaybackCheckIn": { + "type": "string", + "description": "Gets or sets the last playback check in.", + "format": "date-time" + }, + "LastPausedDate": { + "type": "string", + "description": "Gets or sets the last paused date.", + "format": "date-time", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "DeviceType": { + "type": "string", + "description": "Gets or sets the type of the device.", + "nullable": true + }, + "NowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the now playing item.", + "nullable": true + }, + "NowViewingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the now viewing item.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "ApplicationVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "TranscodingInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodingInfo" + } + ], + "description": "Gets or sets the transcoding info.", + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this session is active." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session supports media control." + }, + "SupportsRemoteControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session supports remote control." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "description": "Gets or sets the now playing queue.", + "nullable": true + }, + "NowPlayingQueueFullItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the now playing queue full items.", + "nullable": true + }, + "HasCustomDeviceName": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session has a custom device name." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item id.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server id.", + "nullable": true + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the supported commands." + } + }, + "additionalProperties": false, + "description": "Session info DTO." + }, + "SessionMessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "type": "string", + "description": "The different kinds of messages that are used in the WebSocket api." + }, + "SessionsMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Sessions", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions message." + }, + "SessionsStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SessionsStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "SessionsStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SessionsStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions stop message." + }, + "SessionUserInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the name of the user.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SessionUserInfo." + }, + "SetChannelMappingDto": { + "required": [ + "ProviderChannelId", + "ProviderId", + "TunerChannelId" + ], + "type": "object", + "properties": { + "ProviderId": { + "type": "string", + "description": "Gets or sets the provider id." + }, + "TunerChannelId": { + "type": "string", + "description": "Gets or sets the tuner channel id." + }, + "ProviderChannelId": { + "type": "string", + "description": "Gets or sets the provider channel id." + } + }, + "additionalProperties": false, + "description": "Set channel mapping dto." + }, + "SetPlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class SetPlaylistItemRequestDto." + }, + "SetRepeatModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + } + }, + "additionalProperties": false, + "description": "Class SetRepeatModeRequestDto." + }, + "SetShuffleModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Gets or sets the shuffle mode." + } + }, + "additionalProperties": false, + "description": "Class SetShuffleModeRequestDto." + }, + "SongInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Album": { + "type": "string", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string", + "description": "An enum representing the sorting order." + }, + "SpecialViewOptionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets view option name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets view option id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Special view option dto." + }, + "StartupConfigurationDto": { + "type": "object", + "properties": { + "UICulture": { + "type": "string", + "description": "Gets or sets UI language culture.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred language for the metadata.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup configuration DTO." + }, + "StartupRemoteAccessDto": { + "required": [ + "EnableAutomaticPortMapping", + "EnableRemoteAccess" + ], + "type": "object", + "properties": { + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable remote access." + }, + "EnableAutomaticPortMapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable automatic port mapping." + } + }, + "additionalProperties": false, + "description": "Startup remote access dto." + }, + "StartupUserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the user's password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup user DTO." + }, + "StringGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "type": "string", + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "SubtitleDeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "type": "string", + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "SubtitleOptions": { + "type": "object", + "properties": { + "SkipIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipIfAudioTrackMatches": { + "type": "boolean" + }, + "DownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DownloadMovieSubtitles": { + "type": "boolean" + }, + "DownloadEpisodeSubtitles": { + "type": "boolean" + }, + "OpenSubtitlesUsername": { + "type": "string", + "nullable": true + }, + "OpenSubtitlesPasswordHash": { + "type": "string", + "nullable": true + }, + "IsOpenSubtitleVipAccount": { + "type": "boolean" + }, + "RequirePerfectMatch": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubtitlePlaybackMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "type": "string", + "description": "An enum representing a subtitle playback mode." + }, + "SubtitleProfile": { + "type": "object", + "properties": { + "Format": { + "type": "string", + "description": "Gets or sets the format.", + "nullable": true + }, + "Method": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the delivery method." + }, + "DidlMode": { + "type": "string", + "description": "Gets or sets the DIDL mode.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the container.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A class for subtitle profile information." + }, + "SyncPlayCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/SendCommand" + } + ], + "description": "Class SendCommand.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SyncPlayCommand", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sync play command." + }, + "SyncPlayGroupUpdateCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdate" + } + ], + "description": "Group update without data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SyncPlayGroupUpdate", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Untyped sync play command." + }, + "SyncPlayQueueItem": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets the item identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the item.", + "format": "uuid", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class QueueItem." + }, + "SyncPlayUserAccessType": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "type": "string", + "description": "Enum SyncPlayUserAccessType." + }, + "SystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true, + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + }, + "OperatingSystemDisplayName": { + "type": "string", + "description": "Gets or sets the display name of the operating system.", + "nullable": true, + "deprecated": true + }, + "PackageName": { + "type": "string", + "description": "Gets or sets the package name.", + "nullable": true + }, + "HasPendingRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has pending restart." + }, + "IsShuttingDown": { + "type": "boolean" + }, + "SupportsLibraryMonitor": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports library monitor]." + }, + "WebSocketPortNumber": { + "type": "integer", + "description": "Gets or sets the web socket port number.", + "format": "int32" + }, + "CompletedInstallations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InstallationInfo" + }, + "description": "Gets or sets the completed installations.", + "nullable": true + }, + "CanSelfRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can self restart.", + "default": true, + "deprecated": true + }, + "CanLaunchWebBrowser": { + "type": "boolean", + "default": false, + "deprecated": true + }, + "ProgramDataPath": { + "type": "string", + "description": "Gets or sets the program data path.", + "nullable": true + }, + "WebPath": { + "type": "string", + "description": "Gets or sets the web UI resources path.", + "nullable": true + }, + "ItemsByNamePath": { + "type": "string", + "description": "Gets or sets the items by name path.", + "nullable": true + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "LogPath": { + "type": "string", + "description": "Gets or sets the log path.", + "nullable": true + }, + "InternalMetadataPath": { + "type": "string", + "description": "Gets or sets the internal metadata path.", + "nullable": true + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the transcode path.", + "nullable": true + }, + "CastReceiverApplications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CastReceiverApplication" + }, + "description": "Gets or sets the list of cast receiver applications.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available.", + "default": false, + "deprecated": true + }, + "EncoderLocation": { + "type": "string", + "default": "System", + "nullable": true, + "deprecated": true + }, + "SystemArchitecture": { + "type": "string", + "default": "X64", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "Class SystemInfo." + }, + "TaskCompletionStatus": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "type": "string", + "description": "Enum TaskCompletionStatus." + }, + "TaskInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "State": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TaskState" + } + ], + "description": "Gets or sets the state of the task." + }, + "CurrentProgressPercentage": { + "type": "number", + "description": "Gets or sets the progress.", + "format": "double", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "LastExecutionResult": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Gets or sets the last execution result.", + "nullable": true + }, + "Triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + }, + "description": "Gets or sets the triggers.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description.", + "nullable": true + }, + "Category": { + "type": "string", + "description": "Gets or sets the category.", + "nullable": true + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskInfo." + }, + "TaskResult": { + "type": "object", + "properties": { + "StartTimeUtc": { + "type": "string", + "description": "Gets or sets the start time UTC.", + "format": "date-time" + }, + "EndTimeUtc": { + "type": "string", + "description": "Gets or sets the end time UTC.", + "format": "date-time" + }, + "Status": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TaskCompletionStatus" + } + ], + "description": "Gets or sets the status." + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "ErrorMessage": { + "type": "string", + "description": "Gets or sets the error message.", + "nullable": true + }, + "LongErrorMessage": { + "type": "string", + "description": "Gets or sets the long error message.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskExecutionInfo." + }, + "TaskState": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "type": "string", + "description": "Enum TaskState." + }, + "TaskTriggerInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "TimeOfDayTicks": { + "type": "integer", + "description": "Gets or sets the time of day.", + "format": "int64", + "nullable": true + }, + "IntervalTicks": { + "type": "integer", + "description": "Gets or sets the interval.", + "format": "int64", + "nullable": true + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DayOfWeek" + } + ], + "description": "Gets or sets the day of week.", + "nullable": true + }, + "MaxRuntimeTicks": { + "type": "integer", + "description": "Gets or sets the maximum runtime ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskTriggerInfo." + }, + "ThemeMediaResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + }, + "OwnerId": { + "type": "string", + "description": "Gets or sets the owner id.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ThemeMediaResult." + }, + "TimerCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "TimerCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Timer cancelled message." + }, + "TimerCreatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "TimerCreated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Timer created message." + }, + "TimerEventInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string" + }, + "ProgramId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "Status": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ], + "description": "Gets or sets the status." + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ExternalSeriesTimerId": { + "type": "string", + "description": "Gets or sets the external series timer identifier.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "ProgramInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the program information.", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimerInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "TonemappingAlgorithm": { + "enum": [ + "none", + "clip", + "linear", + "gamma", + "reinhard", + "hable", + "mobius", + "bt2390" + ], + "type": "string", + "description": "Enum containing tonemapping algorithms." + }, + "TonemappingMode": { + "enum": [ + "auto", + "max", + "rgb", + "lum", + "itp" + ], + "type": "string", + "description": "Enum containing tonemapping modes." + }, + "TonemappingRange": { + "enum": [ + "auto", + "tv", + "pc" + ], + "type": "string", + "description": "Enum containing tonemapping ranges." + }, + "TrailerInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TrailerInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "TranscodeReason": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported", + "VideoCodecTagNotSupported" + ], + "type": "string" + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "type": "string" + }, + "TranscodingInfo": { + "type": "object", + "properties": { + "AudioCodec": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "IsVideoDirect": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the video is passed through." + }, + "IsAudioDirect": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the audio is passed through." + }, + "Bitrate": { + "type": "integer", + "description": "Gets or sets the bitrate.", + "format": "int32", + "nullable": true + }, + "Framerate": { + "type": "number", + "description": "Gets or sets the framerate.", + "format": "float", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the video width.", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the video height.", + "format": "int32", + "nullable": true + }, + "AudioChannels": { + "type": "integer", + "description": "Gets or sets the audio channels.", + "format": "int32", + "nullable": true + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/HardwareAccelerationType" + } + ], + "description": "Gets or sets the hardware acceleration type.", + "nullable": true + }, + "TranscodeReasons": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported", + "VideoCodecTagNotSupported" + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodeReason" + }, + "description": "Gets or sets the transcode reasons." + } + }, + "additionalProperties": false, + "description": "Class holding information on a runnning transcode." + }, + "TranscodingProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "description": "Gets or sets the container." + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the DLNA profile type." + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the video codec." + }, + "AudioCodec": { + "type": "string", + "description": "Gets or sets the audio codec." + }, + "Protocol": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ], + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "EstimateContentLength": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the content length should be estimated.", + "default": false + }, + "EnableMpegtsM2TsMode": { + "type": "boolean", + "description": "Gets or sets a value indicating whether M2TS mode is enabled.", + "default": false + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TranscodeSeekInfo" + } + ], + "description": "Gets or sets the transcoding seek info mode.", + "default": "Auto" + }, + "CopyTimestamps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether timestamps should be copied.", + "default": false + }, + "Context": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ], + "description": "Gets or sets the encoding context.", + "default": "Streaming" + }, + "EnableSubtitlesInManifest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether subtitles are allowed in the manifest.", + "default": false + }, + "MaxAudioChannels": { + "type": "string", + "description": "Gets or sets the maximum audio channels.", + "nullable": true + }, + "MinSegments": { + "type": "integer", + "description": "Gets or sets the minimum amount of segments.", + "format": "int32", + "default": 0 + }, + "SegmentLength": { + "type": "integer", + "description": "Gets or sets the segment length.", + "format": "int32", + "default": 0 + }, + "BreakOnNonKeyFrames": { + "type": "boolean", + "description": "Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported.", + "default": false + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the profile conditions." + }, + "EnableAudioVbrEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether variable bitrate encoding is supported.", + "default": true + } + }, + "additionalProperties": false, + "description": "A class for transcoding profile information." + }, + "TransportStreamTimestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "type": "string" + }, + "TrickplayInfo": { + "type": "object", + "properties": { + "Width": { + "type": "integer", + "description": "Gets or sets width of an individual thumbnail.", + "format": "int32" + }, + "Height": { + "type": "integer", + "description": "Gets or sets height of an individual thumbnail.", + "format": "int32" + }, + "TileWidth": { + "type": "integer", + "description": "Gets or sets amount of thumbnails per row.", + "format": "int32" + }, + "TileHeight": { + "type": "integer", + "description": "Gets or sets amount of thumbnails per column.", + "format": "int32" + }, + "ThumbnailCount": { + "type": "integer", + "description": "Gets or sets total amount of non-black thumbnails.", + "format": "int32" + }, + "Interval": { + "type": "integer", + "description": "Gets or sets interval in milliseconds between each trickplay thumbnail.", + "format": "int32" + }, + "Bandwidth": { + "type": "integer", + "description": "Gets or sets peak bandwith usage in bits per second.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "An entity representing the metadata for a group of trickplay tiles." + }, + "TrickplayOptions": { + "type": "object", + "properties": { + "EnableHwAcceleration": { + "type": "boolean", + "description": "Gets or sets a value indicating whether or not to use HW acceleration." + }, + "EnableHwEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding." + }, + "EnableKeyFrameOnlyExtraction": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to only extract key frames.\r\nSignificantly faster, but is not compatible with all decoders and/or video files." + }, + "ScanBehavior": { + "enum": [ + "Blocking", + "NonBlocking" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TrickplayScanBehavior" + } + ], + "description": "Gets or sets the behavior used by trickplay provider on library scan/update." + }, + "ProcessPriority": { + "enum": [ + "Normal", + "Idle", + "High", + "RealTime", + "BelowNormal", + "AboveNormal" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProcessPriorityClass" + } + ], + "description": "Gets or sets the process priority for the ffmpeg process." + }, + "Interval": { + "type": "integer", + "description": "Gets or sets the interval, in ms, between each new trickplay image.", + "format": "int32" + }, + "WidthResolutions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Gets or sets the target width resolutions, in px, to generates preview images for." + }, + "TileWidth": { + "type": "integer", + "description": "Gets or sets number of tile images to allow in X dimension.", + "format": "int32" + }, + "TileHeight": { + "type": "integer", + "description": "Gets or sets number of tile images to allow in Y dimension.", + "format": "int32" + }, + "Qscale": { + "type": "integer", + "description": "Gets or sets the ffmpeg output quality level.", + "format": "int32" + }, + "JpegQuality": { + "type": "integer", + "description": "Gets or sets the jpeg quality to use for image tiles.", + "format": "int32" + }, + "ProcessThreads": { + "type": "integer", + "description": "Gets or sets the number of threads to be used by ffmpeg.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class TrickplayOptions." + }, + "TrickplayScanBehavior": { + "enum": [ + "Blocking", + "NonBlocking" + ], + "type": "string", + "description": "Enum TrickplayScanBehavior." + }, + "TunerChannelMapping": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "ProviderChannelName": { + "type": "string", + "nullable": true + }, + "ProviderChannelId": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TunerHostInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Url": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "DeviceId": { + "type": "string", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "nullable": true + }, + "ImportFavoritesOnly": { + "type": "boolean" + }, + "AllowHWTranscoding": { + "type": "boolean" + }, + "AllowFmp4TranscodingContainer": { + "type": "boolean" + }, + "AllowStreamSharing": { + "type": "boolean" + }, + "FallbackMaxStreamingBitrate": { + "type": "integer", + "format": "int32" + }, + "EnableStreamLooping": { + "type": "boolean" + }, + "Source": { + "type": "string", + "nullable": true + }, + "TunerCount": { + "type": "integer", + "format": "int32" + }, + "UserAgent": { + "type": "string", + "nullable": true + }, + "IgnoreDts": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TypeOptions": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "UnratedItem": { + "enum": [ + "Movie", + "Trailer", + "Series", + "Music", + "Book", + "LiveTvChannel", + "LiveTvProgram", + "ChannelContent", + "Other" + ], + "type": "string", + "description": "An enum representing an unrated item." + }, + "UpdateLibraryOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the library item id.", + "format": "uuid" + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateMediaPathRequestDto": { + "required": [ + "Name", + "PathInfo" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the library name." + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets library folder path information." + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist.", + "nullable": true + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids of the playlist.", + "nullable": true + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the playlist users.", + "nullable": true + }, + "IsPublic": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is public.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + }, + "UpdatePlaylistUserDto": { + "type": "object", + "properties": { + "CanEdit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the user can edit the playlist.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + }, + "UpdateUserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64", + "nullable": true + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32", + "nullable": true + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite.", + "nullable": true + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UpdateUserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a item user data." + }, + "UpdateUserPassword": { + "type": "object", + "properties": { + "CurrentPassword": { + "type": "string", + "description": "Gets or sets the current sha1-hashed password.", + "nullable": true + }, + "CurrentPw": { + "type": "string", + "description": "Gets or sets the current plain text password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new plain text password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user password request body." + }, + "UploadSubtitleDto": { + "required": [ + "Data", + "Format", + "IsForced", + "IsHearingImpaired", + "Language" + ], + "type": "object", + "properties": { + "Language": { + "type": "string", + "description": "Gets or sets the subtitle language." + }, + "Format": { + "type": "string", + "description": "Gets or sets the subtitle format." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is forced." + }, + "IsHearingImpaired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is for hearing impaired." + }, + "Data": { + "type": "string", + "description": "Gets or sets the subtitle data." + } + }, + "additionalProperties": false, + "description": "Upload subtitles dto." + }, + "UserConfiguration": { + "type": "object", + "properties": { + "AudioLanguagePreference": { + "type": "string", + "description": "Gets or sets the audio language preference.", + "nullable": true + }, + "PlayDefaultAudioTrack": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [play default audio track]." + }, + "SubtitleLanguagePreference": { + "type": "string", + "description": "Gets or sets the subtitle language preference.", + "nullable": true + }, + "DisplayMissingEpisodes": { + "type": "boolean" + }, + "GroupedFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "SubtitleMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitlePlaybackMode" + } + ], + "description": "An enum representing a subtitle playback mode." + }, + "DisplayCollectionsView": { + "type": "boolean" + }, + "EnableLocalPassword": { + "type": "boolean" + }, + "OrderedViews": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "LatestItemsExcludes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "MyMediaExcludes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "HidePlayedInLatest": { + "type": "boolean" + }, + "RememberAudioSelections": { + "type": "boolean" + }, + "RememberSubtitleSelections": { + "type": "boolean" + }, + "EnableNextEpisodeAutoPlay": { + "type": "boolean" + }, + "CastReceiverId": { + "type": "string", + "description": "Gets or sets the id of the selected cast receiver.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserConfiguration." + }, + "UserDataChangedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDataChangeInfo" + } + ], + "description": "Class UserDataChangeInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserDataChanged", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User data changed message." + }, + "UserDataChangeInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserDataList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserItemDataDto" + }, + "description": "Gets or sets the user data list." + } + }, + "additionalProperties": false, + "description": "Class UserDataChangeInfo." + }, + "UserDeletedMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "format": "uuid" + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserDeleted", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User deleted message." + }, + "UserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "HasPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has password." + }, + "HasConfiguredPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured password." + }, + "HasConfiguredEasyPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured easy password.", + "deprecated": true + }, + "EnableAutoLogin": { + "type": "boolean", + "description": "Gets or sets whether async login is enabled or not.", + "nullable": true + }, + "LastLoginDate": { + "type": "string", + "description": "Gets or sets the last login date.", + "format": "date-time", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time", + "nullable": true + }, + "Configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Gets or sets the configuration.", + "nullable": true + }, + "Policy": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ], + "description": "Gets or sets the policy.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserDto." + }, + "UserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64" + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32" + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite." + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class UserItemDataDto." + }, + "UserPolicy": { + "required": [ + "AuthenticationProviderId", + "PasswordResetProviderId" + ], + "type": "object", + "properties": { + "IsAdministrator": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is administrator." + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "EnableCollectionManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can manage collections.", + "default": false + }, + "EnableSubtitleManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can manage subtitles.", + "default": false + }, + "EnableLyricManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this user can manage lyrics.", + "default": false + }, + "IsDisabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is disabled." + }, + "MaxParentalRating": { + "type": "integer", + "description": "Gets or sets the max parental rating.", + "format": "int32", + "nullable": true + }, + "BlockedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "AllowedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableUserPreferenceAccess": { + "type": "boolean" + }, + "AccessSchedules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessSchedule" + }, + "nullable": true + }, + "BlockUnratedItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnratedItem" + }, + "nullable": true + }, + "EnableRemoteControlOfOtherUsers": { + "type": "boolean" + }, + "EnableSharedDeviceControl": { + "type": "boolean" + }, + "EnableRemoteAccess": { + "type": "boolean" + }, + "EnableLiveTvManagement": { + "type": "boolean" + }, + "EnableLiveTvAccess": { + "type": "boolean" + }, + "EnableMediaPlayback": { + "type": "boolean" + }, + "EnableAudioPlaybackTranscoding": { + "type": "boolean" + }, + "EnableVideoPlaybackTranscoding": { + "type": "boolean" + }, + "EnablePlaybackRemuxing": { + "type": "boolean" + }, + "ForceRemoteSourceTranscoding": { + "type": "boolean" + }, + "EnableContentDeletion": { + "type": "boolean" + }, + "EnableContentDeletionFromFolders": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableContentDownloading": { + "type": "boolean" + }, + "EnableSyncTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable synchronize]." + }, + "EnableMediaConversion": { + "type": "boolean" + }, + "EnabledDevices": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllDevices": { + "type": "boolean" + }, + "EnabledChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllChannels": { + "type": "boolean" + }, + "EnabledFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllFolders": { + "type": "boolean" + }, + "InvalidLoginAttemptCount": { + "type": "integer", + "format": "int32" + }, + "LoginAttemptsBeforeLockout": { + "type": "integer", + "format": "int32" + }, + "MaxActiveSessions": { + "type": "integer", + "format": "int32" + }, + "EnablePublicSharing": { + "type": "boolean" + }, + "BlockedMediaFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "BlockedChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "AuthenticationProviderId": { + "type": "string" + }, + "PasswordResetProviderId": { + "type": "string" + }, + "SyncPlayAccess": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SyncPlayUserAccessType" + } + ], + "description": "Enum SyncPlayUserAccessType." + } + }, + "additionalProperties": false + }, + "UserUpdatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserUpdated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User updated message." + }, + "UtcTimeResponse": { + "type": "object", + "properties": { + "RequestReceptionTime": { + "type": "string", + "description": "Gets the UTC time when request has been received.", + "format": "date-time" + }, + "ResponseTransmissionTime": { + "type": "string", + "description": "Gets the UTC time when response has been sent.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class UtcTimeResponse." + }, + "ValidatePathDto": { + "type": "object", + "properties": { + "ValidateWritable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether validate if path is writable." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "IsFile": { + "type": "boolean", + "description": "Gets or sets is path file.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Validate path object." + }, + "VersionInfo": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "Gets or sets the version." + }, + "VersionNumber": { + "type": "string", + "description": "Gets the version as a System.Version.", + "readOnly": true + }, + "changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "targetAbi": { + "type": "string", + "description": "Gets or sets the ABI that this version was built against.", + "nullable": true + }, + "sourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "timestamp": { + "type": "string", + "description": "Gets or sets a timestamp of when the binary was built.", + "nullable": true + }, + "repositoryName": { + "type": "string", + "description": "Gets or sets the repository name." + }, + "repositoryUrl": { + "type": "string", + "description": "Gets or sets the repository url." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Updates.VersionInfo class." + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "type": "string" + }, + "VideoRange": { + "enum": [ + "Unknown", + "SDR", + "HDR" + ], + "type": "string", + "description": "An enum representing video ranges." + }, + "VideoRangeType": { + "enum": [ + "Unknown", + "SDR", + "HDR10", + "HLG", + "DOVI", + "DOVIWithHDR10", + "DOVIWithHLG", + "DOVIWithSDR", + "HDR10Plus" + ], + "type": "string", + "description": "An enum representing types of video ranges." + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum VideoType." + }, + "VirtualFolderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the locations.", + "nullable": true + }, + "CollectionType": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "PrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the primary image item identifier.", + "nullable": true + }, + "RefreshProgress": { + "type": "number", + "format": "double", + "nullable": true + }, + "RefreshStatus": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Used to hold information about a user's list of configured virtual folders." + }, + "WakeOnLanInfo": { + "type": "object", + "properties": { + "MacAddress": { + "type": "string", + "description": "Gets the MAC address of the device.", + "nullable": true + }, + "Port": { + "type": "integer", + "description": "Gets or sets the wake-on-LAN port.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Provides the MAC address and port for wake-on-LAN functionality." + }, + "WebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/InboundWebSocketMessage" + }, + { + "$ref": "#/components/schemas/OutboundWebSocketMessage" + } + ], + "description": "Represents the possible websocket types" + }, + "XbmcMetadataOptions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "nullable": true + }, + "ReleaseDateFormat": { + "type": "string" + }, + "SaveImagePathsInNfo": { + "type": "boolean" + }, + "EnablePathSubstitution": { + "type": "boolean" + }, + "EnableExtraThumbsDuplication": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "securitySchemes": { + "CustomAuthentication": { + "type": "apiKey", + "description": "API key header parameter", + "name": "Authorization", + "in": "header" + } + } + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.8.13.json b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.8.13.json new file mode 100644 index 0000000000000..9b60e838b1de9 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/json/jellyfin-openapi-10.8.13.json @@ -0,0 +1,55485 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Jellyfin API", + "version": "10.8.13", + "x-jellyfin-version": "10.8.13" + }, + "servers": [ + { + "url": "http://localhost" + } + ], + "paths": { + "/System/ActivityLog/Entries": { + "get": { + "tags": [ + "ActivityLog" + ], + "summary": "Gets activity log entries.", + "operationId": "GetLogEntries", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minDate", + "in": "query", + "description": "Optional. The minimum date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasUserId", + "in": "query", + "description": "Optional. Filter log entries if it has user id, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Activity log returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys": { + "get": { + "tags": [ + "ApiKey" + ], + "summary": "Get all keys.", + "operationId": "GetKeys", + "responses": { + "200": { + "description": "Api keys retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "ApiKey" + ], + "summary": "Create a new api key.", + "operationId": "CreateKey", + "parameters": [ + { + "name": "app", + "in": "query", + "description": "Name of the app using the authentication key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys/{key}": { + "delete": { + "tags": [ + "ApiKey" + ], + "summary": "Remove an api key.", + "operationId": "RevokeKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The access token to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Artists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all artists from a given item, folder, or the entire library.", + "operationId": "GetArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets an artist by name.", + "operationId": "GetArtistByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Artist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/AlbumArtists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all album artists from a given item, folder, or the entire library.", + "operationId": "GetAlbumArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Album artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/stream": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Branding/Configuration": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding configuration.", + "operationId": "GetBrandingOptions", + "responses": { + "200": { + "description": "Branding configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + } + } + } + } + } + }, + "/Branding/Css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Branding/Css.css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss_2", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Channels": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets available channels.", + "operationId": "GetChannels", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "supportsLatestItems", + "in": "query", + "description": "Optional. Filter by channels that support getting latest items.", + "schema": { + "type": "boolean" + } + }, + { + "name": "supportsMediaDeletion", + "in": "query", + "description": "Optional. Filter by channels that support media deletion.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorite.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel features.", + "operationId": "GetChannelFeatures", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Channel features returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Items": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel items.", + "operationId": "GetChannelItems", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "folderId", + "in": "query", + "description": "Optional. Folder Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get all channel features.", + "operationId": "GetAllChannelFeatures", + "responses": { + "200": { + "description": "All channel features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Items/Latest": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets latest channel items.", + "operationId": "GetLatestChannelItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "channelIds", + "in": "query", + "description": "Optional. Specify one or more channel id's, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "200": { + "description": "Latest channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ClientLog/Document": { + "post": { + "tags": [ + "ClientLog" + ], + "summary": "Upload a document.", + "operationId": "LogFile", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Document saved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + } + } + }, + "403": { + "description": "Event logging disabled.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "413": { + "description": "Upload size too large.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Creates a new collection.", + "operationId": "CreateCollection", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the collection.", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item Ids to add to the collection.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Create the collection within a specific folder.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Whether or not to lock the new collection.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Collection created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections/{collectionId}/Items": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Adds items to a collection.", + "operationId": "AddToCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items added to collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Collection" + ], + "summary": "Removes items from a collection.", + "operationId": "RemoveFromCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed from collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets application configuration.", + "operationId": "GetConfiguration", + "responses": { + "200": { + "description": "Application configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates application configuration.", + "operationId": "UpdateConfiguration", + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/{key}": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a named configuration.", + "operationId": "GetNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Configuration returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates named configuration.", + "operationId": "UpdateNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { } + }, + "text/json": { + "schema": { } + }, + "application/*+json": { + "schema": { } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Named configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/MetadataOptions/Default": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a default MetadataOptions object.", + "operationId": "GetDefaultMetadataOptions", + "responses": { + "200": { + "description": "Metadata options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/MediaEncoder/Path": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates the path to the media encoder.", + "operationId": "UpdateMediaEncoderPath", + "requestBody": { + "description": "Media encoder path form body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media encoder path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/web/ConfigurationPage": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets a dashboard configuration page.", + "operationId": "GetDashboardConfigurationPage", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the page.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPage returned.", + "content": { + "text/html": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/x-javascript": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Plugin configuration page not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/web/ConfigurationPages": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets the configuration pages.", + "operationId": "GetConfigurationPages", + "parameters": [ + { + "name": "enableInMainMenu", + "in": "query", + "description": "Whether to enable in the main menu.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + } + } + }, + "404": { + "description": "Server still loading.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Devices": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get Devices.", + "operationId": "GetDevices", + "parameters": [ + { + "name": "supportsSync", + "in": "query", + "description": "Gets or sets a value indicating whether [supports synchronize].", + "schema": { + "type": "boolean" + } + }, + { + "name": "userId", + "in": "query", + "description": "Gets or sets the user identifier.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Devices" + ], + "summary": "Deletes a device.", + "operationId": "DeleteDevice", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device deleted." + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Info": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get info for a device.", + "operationId": "GetDeviceInfo", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device info retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Options": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get options for a device.", + "operationId": "GetDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device options retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Devices" + ], + "summary": "Update device options.", + "operationId": "UpdateDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device Options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Device options updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/DisplayPreferences/{displayPreferencesId}": { + "get": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Get Display Preferences.", + "operationId": "GetDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Display preferences retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Update Display Preferences.", + "operationId": "UpdateDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New Display Preferences object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Display preferences updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Dlna/ProfileInfos": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Get profile infos.", + "operationId": "GetProfileInfos", + "responses": { + "200": { + "description": "Device profile infos returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles": { + "post": { + "tags": [ + "Dlna" + ], + "summary": "Creates a profile.", + "operationId": "CreateProfile", + "requestBody": { + "description": "Device profile.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + } + } + }, + "responses": { + "204": { + "description": "Device profile created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles/{profileId}": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Gets a single profile.", + "operationId": "GetProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device profile returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + } + } + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Dlna" + ], + "summary": "Deletes a profile.", + "operationId": "DeleteProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device profile deleted." + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Dlna" + ], + "summary": "Updates a profile.", + "operationId": "UpdateProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device profile.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + } + } + }, + "responses": { + "204": { + "description": "Device profile updated." + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles/Default": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Gets the default profile.", + "operationId": "GetDefaultProfile", + "responses": { + "200": { + "description": "Default device profile returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/ConnectionManager": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a connection manager control request.", + "operationId": "ProcessConnectionManagerControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/ContentDirectory": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a content directory control request.", + "operationId": "ProcessContentDirectoryControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/description": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Get Description Xml.", + "operationId": "GetDescriptionXml", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Description xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/description.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Get Description Xml.", + "operationId": "GetDescriptionXml_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Description xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/icons/{fileName}": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets a server icon.", + "operationId": "GetIconId", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fileName", + "in": "path", + "description": "The icon filename.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a media receiver registrar control request.", + "operationId": "ProcessMediaReceiverRegistrarControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/icons/{fileName}": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets a server icon.", + "operationId": "GetIcon", + "parameters": [ + { + "name": "fileName", + "in": "path", + "description": "The icon filename.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsAudioSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio stream using HTTP live streaming.", + "operationId": "GetVariantHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "GetMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "HeadMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsVideoSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The desired segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/live.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a hls live stream.", + "operationId": "GetLiveHlsStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The max width.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The max height.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableSubtitlesInManifest", + "in": "query", + "description": "Optional. Whether to enable subtitles in the manifest.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Hls live stream retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetVariantHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "GetMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "HeadMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DefaultDirectoryBrowser": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Get Default directory browser.", + "operationId": "GetDefaultDirectoryBrowser", + "responses": { + "200": { + "description": "Default directory browser returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/DirectoryContents": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the contents of a given directory in the file system.", + "operationId": "GetDirectoryContents", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeFiles", + "in": "query", + "description": "An optional filter to include or exclude files from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeDirectories", + "in": "query", + "description": "An optional filter to include or exclude folders from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Directory contents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/Drives": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets available drives from the server's file system.", + "operationId": "GetDrives", + "responses": { + "200": { + "description": "List of entries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/NetworkShares": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets network paths.", + "operationId": "GetNetworkShares", + "responses": { + "200": { + "description": "Empty array returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/ParentPath": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the parent path of a given path.", + "operationId": "GetParentPath", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/ValidatePath": { + "post": { + "tags": [ + "Environment" + ], + "summary": "Validates path.", + "operationId": "ValidatePath", + "requestBody": { + "description": "Validate request object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Path validated." + }, + "404": { + "description": "Path not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Items/Filters": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets legacy query filters.", + "operationId": "GetQueryFiltersLegacy", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Parent id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "Legacy filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters2": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets query filters.", + "operationId": "GetQueryFilters", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Is item airing.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Is item movie.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Is item sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Is item kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Is item news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Is item series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Optional. Search recursive.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets all genres from a given item, folder, or the entire library.", + "operationId": "GetGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres/{genreName}": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets a genre, by name.", + "operationId": "GetGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.aac": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyAac", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.mp3": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyMp3", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video segment.", + "operationId": "GetHlsVideoSegmentLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "path", + "description": "The segment container.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video segment returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Hls segment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/stream.m3u8": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video playlist.", + "operationId": "GetHlsPlaylistLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The video id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/ActiveEncodings": { + "delete": { + "tags": [ + "HlsSegment" + ], + "summary": "Stops an active encoding.", + "operationId": "StopEncodingProcess", + "parameters": [ + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Encoding stopped successfully." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "GetArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "HeadArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Branding/Splashscreen": { + "get": { + "tags": [ + "Image" + ], + "summary": "Generates or gets the splashscreen.", + "operationId": "GetSplashscreen", + "parameters": [ + { + "name": "tag", + "in": "query", + "description": "Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "quality", + "in": "query", + "description": "Quality setting, from 0-100.", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32", + "default": 90 + } + } + ], + "responses": { + "200": { + "description": "Splashscreen returned successfully.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.", + "operationId": "UploadCustomSplashscreen", + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Successfully uploaded new splashscreen." + }, + "400": { + "description": "Error reading MimeType from uploaded image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to upload splashscreen..", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete a custom splashscreen.", + "operationId": "DeleteCustomSplashscreen", + "responses": { + "204": { + "description": "Successfully deleted the custom splashscreen." + }, + "403": { + "description": "User does not have permission to delete splashscreen.." + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Genres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Genres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get item image infos.", + "operationId": "GetItemImageInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item images returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Images/{imageType}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "The image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "The image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": { + "post": { + "tags": [ + "Image" + ], + "summary": "Updates the index for an item image.", + "operationId": "UpdateItemImageIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Old image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newIndex", + "in": "query", + "description": "New image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image index updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/MusicGenres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/MusicGenres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "query", + "description": "(Unused) Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "query", + "description": "(Unused) Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}/{index}": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/General": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all general images.", + "operationId": "GetGeneralImages", + "responses": { + "200": { + "description": "Retrieved list of images.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/General/{name}/{type}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get General Image.", + "operationId": "GetGeneralImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "path", + "description": "Image Type (primary, backdrop, logo, etc).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Images/MediaInfo": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all media info images.", + "operationId": "GetMediaInfoImages", + "responses": { + "200": { + "description": "Image list retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/MediaInfo/{theme}/{name}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get media info image.", + "operationId": "GetMediaInfoImage", + "parameters": [ + { + "name": "theme", + "in": "path", + "description": "The theme to get the image from.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Images/Ratings": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all general images.", + "operationId": "GetRatingImages", + "responses": { + "200": { + "description": "Retrieved list of images.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/Ratings/{theme}/{name}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get rating image.", + "operationId": "GetRatingImage", + "parameters": [ + { + "name": "theme", + "in": "path", + "description": "The theme to get the image from.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Albums/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given album.", + "operationId": "GetInstantMixFromAlbum", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists2", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given item.", + "operationId": "GetInstantMixFromItem", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{name}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreById", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given playlist.", + "operationId": "GetInstantMixFromPlaylist", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Songs/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given song.", + "operationId": "GetInstantMixFromSong", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ExternalIdInfos": { + "get": { + "tags": [ + "ItemLookup" + ], + "summary": "Get the item's external id info.", + "operationId": "GetExternalIdInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "External id info retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Apply/{itemId}": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Applies search criteria to an item and refreshes metadata.", + "operationId": "ApplySearchCriteria", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "Optional. Whether or not to replace all images. Default: True.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "requestBody": { + "description": "The remote search result.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item metadata refreshed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Book": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get book remote search.", + "operationId": "GetBookRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Book remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/BoxSet": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get box set remote search.", + "operationId": "GetBoxSetRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Box set remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Movie": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get movie remote search.", + "operationId": "GetMovieRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Movie remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicAlbum": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music album remote search.", + "operationId": "GetMusicAlbumRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music album remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicArtist": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music artist remote search.", + "operationId": "GetMusicArtistRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music artist remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicVideo": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music video remote search.", + "operationId": "GetMusicVideoRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music video remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Person": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get person remote search.", + "operationId": "GetPersonRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Person remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Series": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get series remote search.", + "operationId": "GetSeriesRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Series remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Trailer": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get trailer remote search.", + "operationId": "GetTrailerRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Trailer remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Refresh": { + "post": { + "tags": [ + "ItemRefresh" + ], + "summary": "Refreshes metadata for an item.", + "operationId": "RefreshItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "metadataRefreshMode", + "in": "query", + "description": "(Optional) Specifies the metadata refresh mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "imageRefreshMode", + "in": "query", + "description": "(Optional) Specifies the image refresh mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "replaceAllMetadata", + "in": "query", + "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Item metadata refresh queued." + }, + "404": { + "description": "Item to refresh not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes items from the library and filesystem.", + "operationId": "DeleteItems", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItemsByUserId", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id supplied as query parameter.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Resume": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetResumeItems", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "The item limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "excludeActiveSessions", + "in": "query", + "description": "Optional. Whether to exclude the currently active sessions.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item.", + "operationId": "UpdateItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new item properties.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes an item from the library and filesystem.", + "operationId": "DeleteItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Item deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ContentType": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item's content type.", + "operationId": "UpdateItemContentType", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "contentType", + "in": "query", + "description": "The content type of the item.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Item content type updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/MetadataEditor": { + "get": { + "tags": [ + "ItemUpdate" + ], + "summary": "Gets metadata editor info for an item.", + "operationId": "GetMetadataEditorInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item metadata editor returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Albums/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarAlbums", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Ancestors": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all parents of an item.", + "operationId": "GetAncestors", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item parents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/CriticReviews": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets critic review for an item.", + "operationId": "GetCriticReviews", + "parameters": [ + { + "name": "itemId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Critic reviews returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Download": { + "get": { + "tags": [ + "Library" + ], + "summary": "Downloads item media.", + "operationId": "GetDownload", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Media downloaded.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "Download" + ] + } + ] + } + }, + "/Items/{itemId}/File": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get the original file of an item.", + "operationId": "GetFile", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "File stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarItems", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeMedia": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs and videos for an item.", + "operationId": "GetThemeMedia", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme songs and videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeSongs": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs for an item.", + "operationId": "GetThemeSongs", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme songs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeVideos": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme videos for an item.", + "operationId": "GetThemeVideos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Counts": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get item counts.", + "operationId": "GetItemCounts", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Get counts from a specific user's library.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Get counts of favorite items.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item counts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Libraries/AvailableOptions": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets the library options info.", + "operationId": "GetLibraryOptionsInfo", + "parameters": [ + { + "name": "libraryContentType", + "in": "query", + "description": "Library content type.", + "schema": { + "type": "string" + } + }, + { + "name": "isNewLibrary", + "in": "query", + "description": "Whether this is a new library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Library options info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Library/Media/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMedia", + "requestBody": { + "description": "The update paths.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/MediaFolders": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all user media folders.", + "operationId": "GetMediaFolders", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional. Filter by folders that are marked hidden, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Media folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Movies/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostAddedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Movies/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/PhysicalPaths": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets a list of physical paths from virtual folders.", + "operationId": "GetPhysicalPaths", + "responses": { + "200": { + "description": "Physical paths returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Refresh": { + "post": { + "tags": [ + "Library" + ], + "summary": "Starts a library scan.", + "operationId": "RefreshLibrary", + "responses": { + "204": { + "description": "Library scan started." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Series/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostAddedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Series/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostUpdatedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarMovies", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarShows", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarTrailers", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders": { + "get": { + "tags": [ + "LibraryStructure" + ], + "summary": "Gets all virtual folders.", + "operationId": "GetVirtualFolders", + "responses": { + "200": { + "description": "Virtual folders retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Adds a virtual folder.", + "operationId": "AddVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "collectionType", + "in": "query", + "description": "The type of the collection.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ] + } + }, + { + "name": "paths", + "in": "query", + "description": "The paths of the virtual folder.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The library options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + } + } + }, + "responses": { + "204": { + "description": "Folder added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Removes a virtual folder.", + "operationId": "RemoveVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the folder.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/LibraryOptions": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Update library options.", + "operationId": "UpdateLibraryOptions", + "requestBody": { + "description": "The library name and options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + } + } + }, + "responses": { + "204": { + "description": "Library updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Name": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Renames a virtual folder.", + "operationId": "RenameVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "newName", + "in": "query", + "description": "The new name.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder renamed." + }, + "404": { + "description": "Library doesn't exist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "409": { + "description": "Library already exists.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Add a media path to a library.", + "operationId": "AddMediaPath", + "parameters": [ + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The media path dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Remove a media path.", + "operationId": "RemoveMediaPath", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the library.", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "The path to remove.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Media path removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths/Update": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Updates a media path.", + "operationId": "UpdateMediaPath", + "requestBody": { + "description": "The name of the library and path infos.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/LiveTv/ChannelMappingOptions": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get channel mapping options.", + "operationId": "GetChannelMappingOptions", + "parameters": [ + { + "name": "providerId", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Channel mapping options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ChannelMappings": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Set channel mappings.", + "operationId": "SetChannelMapping", + "requestBody": { + "description": "The set channel mapping dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Created channel mapping returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Channels": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv channels.", + "operationId": "GetLiveTvChannels", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Optional. Filter by channel type.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ] + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorites, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLiked", + "in": "query", + "description": "Optional. Filter by channels that are liked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisliked", + "in": "query", + "description": "Optional. Filter by channels that are disliked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "\"Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Key to sort by.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort order.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + }, + { + "name": "enableFavoriteSorting", + "in": "query", + "description": "Optional. Incorporate favorite and like status into channel sorting.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addCurrentProgram", + "in": "query", + "description": "Optional. Adds current program info to each channel.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Available live tv channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Channels/{channelId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel.", + "operationId": "GetChannel", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Live tv channel returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/GuideInfo": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get guid info.", + "operationId": "GetGuideInfo", + "responses": { + "200": { + "description": "Guid info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Info": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv services.", + "operationId": "GetLiveTvInfo", + "responses": { + "200": { + "description": "Available live tv services returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a listings provider.", + "operationId": "AddListingProvider", + "parameters": [ + { + "name": "pw", + "in": "query", + "description": "Password.", + "schema": { + "type": "string" + } + }, + { + "name": "validateListings", + "in": "query", + "description": "Validate listings.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateLogin", + "in": "query", + "description": "Validate login.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "New listings info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created listings provider returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Delete listing provider.", + "operationId": "DeleteListingProvider", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Listing provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Listing provider deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Default": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets default listings provider info.", + "operationId": "GetDefaultListingProvider", + "responses": { + "200": { + "description": "Default listings provider info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Lineups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available lineups.", + "operationId": "GetLineups", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Provider type.", + "schema": { + "type": "string" + } + }, + { + "name": "location", + "in": "query", + "description": "Location.", + "schema": { + "type": "string" + } + }, + { + "name": "country", + "in": "query", + "description": "Country.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Available lineups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/SchedulesDirect/Countries": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available countries.", + "operationId": "GetSchedulesDirectCountries", + "responses": { + "200": { + "description": "Available countries returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/LiveRecordings/{recordingId}/stream": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording stream.", + "operationId": "GetLiveRecordingFile", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Recording stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Recording not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel stream.", + "operationId": "GetLiveStreamFile", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "container", + "in": "path", + "description": "Container type.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Stream not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/Programs": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetLiveTvPrograms", + "parameters": [ + { + "name": "channelIds", + "in": "query", + "description": "The channels to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "minStartDate", + "in": "query", + "description": "Optional. The minimum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "maxStartDate", + "in": "query", + "description": "Optional. The maximum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minEndDate", + "in": "query", + "description": "Optional. The minimum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxEndDate", + "in": "query", + "description": "Optional. The maximum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genre ids to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by series timer id.", + "schema": { + "type": "string" + } + }, + { + "name": "librarySeriesId", + "in": "query", + "description": "Optional. Filter by library series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetPrograms", + "requestBody": { + "description": "Request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + } + } + }, + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Programs/{programId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv program.", + "operationId": "GetProgram", + "parameters": [ + { + "name": "programId", + "in": "path", + "description": "Program id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Program returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Programs/Recommended": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recommended live tv epgs.", + "operationId": "GetRecommendedPrograms", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Recommended epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recordings.", + "operationId": "GetRecordings", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLibraryItem", + "in": "query", + "description": "Optional. Filter for is library item.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/{recordingId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording.", + "operationId": "GetRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a live tv recording.", + "operationId": "DeleteRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Recording deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Recordings/Folders": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recording folders.", + "operationId": "GetRecordingFolders", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording groups.", + "operationId": "GetRecordingGroups", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording groups returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups/{groupId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get recording group.", + "operationId": "GetRecordingGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "description": "Group id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Series": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording series.", + "operationId": "GetRecordingsSeries", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "groupId", + "in": "query", + "description": "Optional. Filter by recording group.", + "schema": { + "type": "string" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv series timers.", + "operationId": "GetSeriesTimers", + "parameters": [ + { + "name": "sortBy", + "in": "query", + "description": "Optional. Sort by SortName or Priority.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort in Ascending or Descending order.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Timers returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv series timer.", + "operationId": "CreateSeriesTimer", + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer info created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv series timer.", + "operationId": "GetSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Series timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "404": { + "description": "Series timer not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv series timer.", + "operationId": "CancelSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv series timer.", + "operationId": "UpdateSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Timers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the live tv timers.", + "operationId": "GetTimers", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by timers belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Optional. Filter by timers that are active.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isScheduled", + "in": "query", + "description": "Optional. Filter by timers that are scheduled.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv timer.", + "operationId": "CreateTimer", + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Timers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a timer.", + "operationId": "GetTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv timer.", + "operationId": "CancelTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv timer.", + "operationId": "UpdateTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Timers/Defaults": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the default values for a new timer.", + "operationId": "GetDefaultTimer", + "parameters": [ + { + "name": "programId", + "in": "query", + "description": "Optional. To attach default values based on a program.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Default values returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/TunerHosts": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a tuner host.", + "operationId": "AddTunerHost", + "requestBody": { + "description": "New tuner host.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created tuner host returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a tuner host.", + "operationId": "DeleteTunerHost", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Tuner host id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner host deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/TunerHosts/Types": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get tuner host types.", + "operationId": "GetTunerHostTypes", + "responses": { + "200": { + "description": "Tuner host types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Tuners/{tunerId}/Reset": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Resets a tv tuner.", + "operationId": "ResetTuner", + "parameters": [ + { + "name": "tunerId", + "in": "path", + "description": "Tuner id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner reset." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discvover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscvoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/Localization/Countries": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known countries.", + "operationId": "GetCountries", + "responses": { + "200": { + "description": "Known countries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/Cultures": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known cultures.", + "operationId": "GetCultures", + "responses": { + "200": { + "description": "Known cultures returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/Options": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets localization options.", + "operationId": "GetLocalizationOptions", + "responses": { + "200": { + "description": "Localization options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/ParentalRatings": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known parental ratings.", + "operationId": "GetParentalRatings", + "responses": { + "200": { + "description": "Known parental ratings returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Items/{itemId}/PlaybackInfo": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "operationId": "GetPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "GetPostedPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "autoOpenLiveStream", + "in": "query", + "description": "Whether to auto open the livestream.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTranscoding", + "in": "query", + "description": "Whether to enable transcoding. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether to allow to copy the video stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether to allow to copy the audio stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The playback info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Close": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Closes a media source.", + "operationId": "CloseLiveStream", + "parameters": [ + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Livestream closed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Open": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Opens a media source.", + "operationId": "OpenLiveStream", + "parameters": [ + { + "name": "openToken", + "in": "query", + "description": "The open token.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The open live stream dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + } + } + }, + "responses": { + "200": { + "description": "Media source opened.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playback/BitrateTest": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Tests the network with a request with the size of the bitrate.", + "operationId": "GetBitrateTestBytes", + "parameters": [ + { + "name": "size", + "in": "query", + "description": "The bitrate. Defaults to 102400.", + "schema": { + "maximum": 100000000, + "minimum": 1, + "type": "integer", + "format": "int32", + "default": 102400 + } + } + ], + "responses": { + "200": { + "description": "Test buffer returned.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/Recommendations": { + "get": { + "tags": [ + "Movies" + ], + "summary": "Gets movie recommendations.", + "operationId": "GetMovieRecommendations", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. The fields to return.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "categoryLimit", + "in": "query", + "description": "The max number of categories to return.", + "schema": { + "type": "integer", + "format": "int32", + "default": 5 + } + }, + { + "name": "itemLimit", + "in": "query", + "description": "The max number of items to return per category.", + "schema": { + "type": "integer", + "format": "int32", + "default": 8 + } + } + ], + "responses": { + "200": { + "description": "Movie recommendations returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets all music genres from a given item, folder, or the entire library.", + "operationId": "GetMusicGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Music genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{genreName}": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets a music genre, by name.", + "operationId": "GetMusicGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets a user's notifications.", + "operationId": "GetNotifications", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Notifications returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Read": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sets notifications as read.", + "operationId": "SetRead", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Notifications set as read." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Summary": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets a user's notification summary.", + "operationId": "GetNotificationsSummary", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Summary of user's notifications returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Unread": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sets notifications as unread.", + "operationId": "SetUnread", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Notifications set as unread." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Admin": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sends a notification to all admins.", + "operationId": "CreateAdminNotification", + "requestBody": { + "description": "The notification request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Notification sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Services": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets notification services.", + "operationId": "GetNotificationServices", + "responses": { + "200": { + "description": "All notification services returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Types": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets notification types.", + "operationId": "GetNotificationTypes", + "responses": { + "200": { + "description": "All notification types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets available packages.", + "operationId": "GetPackages", + "responses": { + "200": { + "description": "Available packages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/{name}": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets a package by name or assembly GUID.", + "operationId": "GetPackageInfo", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the package.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "The GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/Installed/{name}": { + "post": { + "tags": [ + "Package" + ], + "summary": "Installs a package.", + "operationId": "InstallPackage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Package name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "query", + "description": "Optional version. Defaults to latest version.", + "schema": { + "type": "string" + } + }, + { + "name": "repositoryUrl", + "in": "query", + "description": "Optional. Specify the repository to install from.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Package found." + }, + "404": { + "description": "Package not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/Installing/{packageId}": { + "delete": { + "tags": [ + "Package" + ], + "summary": "Cancels a package installation.", + "operationId": "CancelPackageInstallation", + "parameters": [ + { + "name": "packageId", + "in": "path", + "description": "Installation Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Installation cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Repositories": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets all package repositories.", + "operationId": "GetRepositories", + "responses": { + "200": { + "description": "Package repositories returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Package" + ], + "summary": "Sets the enabled and existing package repositories.", + "operationId": "SetRepositories", + "requestBody": { + "description": "The list of package repositories.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Package repositories saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Gets all persons.", + "operationId": "GetPersons", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not. userId is required.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludePersonTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "appearsInItemId", + "in": "query", + "description": "Optional. If specified, person results will be filtered on items related to said persons.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Persons returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons/{name}": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Get person by name.", + "operationId": "GetPerson", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Person returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Creates a new playlist.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "CreatePlaylist", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The playlist name.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "deprecated": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media type.", + "deprecated": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The create playlist payload.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Adds items to a playlist.", + "operationId": "AddToPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item id, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The userId.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Items added to playlist." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Removes items from a playlist.", + "operationId": "RemoveFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "entryIds", + "in": "query", + "description": "The item ids, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Gets the original items of a playlist.", + "operationId": "GetPlaylistItems", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Original playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Playlist not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Moves a playlist item.", + "operationId": "MoveItem", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newIndex", + "in": "path", + "description": "The new index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Item moved to new index." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has started within a session.", + "operationId": "ReportPlaybackStart", + "requestBody": { + "description": "The playback start info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Ping": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Pings a playback session.", + "operationId": "PingPlaybackSession", + "parameters": [ + { + "name": "playSessionId", + "in": "query", + "description": "Playback session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback session pinged." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback progress within a session.", + "operationId": "ReportPlaybackProgress", + "requestBody": { + "description": "The playback progress info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Stopped": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has stopped within a session.", + "operationId": "ReportPlaybackStopped", + "requestBody": { + "description": "The playback stop info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayedItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as played for user.", + "operationId": "MarkPlayedItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "datePlayed", + "in": "query", + "description": "Optional. The date the item was played.", + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "Item marked as played.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as unplayed for user.", + "operationId": "MarkUnplayedItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as unplayed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayingItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a user has begun playing an item.", + "operationId": "OnPlaybackStart", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "canSeek", + "in": "query", + "description": "Indicates if the client can seek.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a user has stopped playing an item.", + "operationId": "OnPlaybackStopped", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "nextMediaType", + "in": "query", + "description": "The next media type that will play.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayingItems/{itemId}/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports a user's playback progress.", + "operationId": "OnPlaybackProgress", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "volumeLevel", + "in": "query", + "description": "Scale of 0-100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "repeatMode", + "in": "query", + "description": "The repeat mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ] + } + }, + { + "name": "isPaused", + "in": "query", + "description": "Indicates if the player is paused.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isMuted", + "in": "query", + "description": "Indicates if the player is muted.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a list of currently installed plugins.", + "operationId": "GetPlugins", + "responses": { + "200": { + "description": "Installed plugins returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin.", + "operationId": "UninstallPlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin by version.", + "operationId": "UninstallPluginByVersion", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Disable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Disable a plugin.", + "operationId": "DisablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin disabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Enable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Enables a disabled plugin.", + "operationId": "EnablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin enabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Image": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's image.", + "operationId": "GetPluginImage", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Plugin image returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Configuration": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets plugin configuration.", + "operationId": "GetPluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Plugin configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + } + } + }, + "404": { + "description": "Plugin not found or plugin configuration not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Plugins" + ], + "summary": "Updates plugin configuration.", + "description": "Accepts plugin configuration as JSON body.", + "operationId": "UpdatePluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin configuration updated." + }, + "404": { + "description": "Plugin not found or plugin does not have configuration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Manifest": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's manifest.", + "operationId": "GetPluginManifest", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin manifest returned." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Authorize": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Authorizes a pending quick connect request.", + "operationId": "Authorize", + "parameters": [ + { + "name": "code", + "in": "query", + "description": "Quick connect code to authorize.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result authorized successfully.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + }, + "403": { + "description": "Unknown user id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Connect": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Attempts to retrieve authentication information.", + "operationId": "Connect", + "parameters": [ + { + "name": "secret", + "in": "query", + "description": "Secret previously returned from the Initiate endpoint.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "404": { + "description": "Unknown quick connect secret.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/QuickConnect/Enabled": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Gets the current quick connect state.", + "operationId": "GetEnabled", + "responses": { + "200": { + "description": "Quick connect state returned.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + } + } + } + }, + "/QuickConnect/Initiate": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Initiate a new quick connect request.", + "operationId": "Initiate", + "responses": { + "200": { + "description": "Quick connect request successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "401": { + "description": "Quick connect is not active on this server." + } + } + } + }, + "/Items/{itemId}/RemoteImages": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote images for an item.", + "operationId": "GetRemoteImages", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ] + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "providerName", + "in": "query", + "description": "Optional. The image provider to use.", + "schema": { + "type": "string" + } + }, + { + "name": "includeAllLanguages", + "in": "query", + "description": "Optional. Include all languages.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Remote Images returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Download": { + "post": { + "tags": [ + "RemoteImage" + ], + "summary": "Downloads a remote image for an item.", + "operationId": "DownloadRemoteImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageUrl", + "in": "query", + "description": "The image url.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Remote image downloaded." + }, + "404": { + "description": "Remote image not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Providers": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote image providers for an item.", + "operationId": "GetRemoteImageProviders", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Returned remote image providers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ScheduledTasks": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get tasks.", + "operationId": "GetTasks", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter tasks that are hidden, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isEnabled", + "in": "query", + "description": "Optional filter tasks that are enabled, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Scheduled tasks retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get task by id.", + "operationId": "GetTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}/Triggers": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Update specified task triggers.", + "operationId": "UpdateTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Triggers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Task triggers updated." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/Running/{taskId}": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Start specified task.", + "operationId": "StartTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task started." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Stop specified task.", + "operationId": "StopTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task stopped." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Search/Hints": { + "get": { + "tags": [ + "Search" + ], + "summary": "Gets the search hint result.", + "operationId": "Get", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Supply a user id to search within a user's library or omit to search all.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term to filter on.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "If specified, only children of the parent are returned.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "includePeople", + "in": "query", + "description": "Optional filter whether to include people.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeMedia", + "in": "query", + "description": "Optional filter whether to include media.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeGenres", + "in": "query", + "description": "Optional filter whether to include genres.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeStudios", + "in": "query", + "description": "Optional filter whether to include studios.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeArtists", + "in": "query", + "description": "Optional filter whether to include artists.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Search hint returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Auth/PasswordResetProviders": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all password reset providers.", + "operationId": "GetPasswordResetProviders", + "responses": { + "200": { + "description": "Password reset providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Providers": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all auth providers.", + "operationId": "GetAuthProviders", + "responses": { + "200": { + "description": "Auth providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Sessions": { + "get": { + "tags": [ + "Session" + ], + "summary": "Gets a list of sessions.", + "operationId": "GetSessions", + "parameters": [ + { + "name": "controllableByUserId", + "in": "query", + "description": "Filter by sessions that a given user is allowed to remote control.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "Filter by device Id.", + "schema": { + "type": "string" + } + }, + { + "name": "activeWithinSeconds", + "in": "query", + "description": "Optional. Filter by sessions that were active in the last n seconds.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "List of sessions returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a full general command to a client.", + "operationId": "SendFullGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.GeneralCommand.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Full general command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a general command to a client.", + "operationId": "SendGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "General command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Message": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a command to a client to display a message to the user.", + "operationId": "SendMessageCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Message sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to play an item.", + "operationId": "Play", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playCommand", + "in": "query", + "description": "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Enum PlayCommand." + } + }, + { + "name": "itemIds", + "in": "query", + "description": "The ids of the items to play, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The starting position of the first item.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "Optional. The media source id.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a playstate command to a client.", + "operationId": "SendPlaystateCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The MediaBrowser.Model.Session.PlaystateCommand.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + } + }, + { + "name": "seekPositionTicks", + "in": "query", + "description": "The optional position ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "controllingUserId", + "in": "query", + "description": "The optional controlling user id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playstate command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/System/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a system command to a client.", + "operationId": "SendSystemCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "System command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/User/{userId}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Adds an additional user to a session.", + "operationId": "AddUserToSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User added to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Session" + ], + "summary": "Removes an additional user from a session.", + "operationId": "RemoveUserFromSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User removed from session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to browse to an item or view.", + "operationId": "DisplayContent", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session Id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemType", + "in": "query", + "description": "The type of item to browse to.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + } + }, + { + "name": "itemId", + "in": "query", + "description": "The Id of the item.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemName", + "in": "query", + "description": "The name of the item.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "playableMediaTypes", + "in": "query", + "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "supportedCommands", + "in": "query", + "description": "A list of supported remote control commands, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + } + } + }, + { + "name": "supportsMediaControl", + "in": "query", + "description": "Determines whether media can be played remotely..", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsSync", + "in": "query", + "description": "Determines whether sync is supported.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsPersistentIdentifier", + "in": "query", + "description": "Determines whether the device supports a unique identifier.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "204": { + "description": "Capabilities posted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities/Full": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostFullCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.ClientCapabilities.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Capabilities updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Logout": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session has ended.", + "operationId": "ReportSessionEnded", + "responses": { + "204": { + "description": "Session end reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session is viewing an item.", + "operationId": "ReportViewing", + "parameters": [ + { + "name": "sessionId", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Session reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Complete": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Completes the startup wizard.", + "operationId": "CompleteWizard", + "responses": { + "204": { + "description": "Startup wizard completed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/Configuration": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the initial startup wizard configuration.", + "operationId": "GetStartupConfiguration", + "responses": { + "200": { + "description": "Initial startup wizard configuration retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the initial startup wizard configuration.", + "operationId": "UpdateInitialConfiguration", + "requestBody": { + "description": "The updated startup configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/FirstUser": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser_2", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/RemoteAccess": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets remote access and UPnP.", + "operationId": "SetRemoteAccess", + "requestBody": { + "description": "The startup remote access dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/User": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the user name and password.", + "operationId": "UpdateStartupUser", + "requestBody": { + "description": "The DTO containing username and password.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + } + } + }, + "responses": { + "204": { + "description": "Updated user name and password." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Studios": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets all studios from a given item, folder, or the entire library.", + "operationId": "GetStudios", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Studios returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios/{name}": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets a studio by name.", + "operationId": "GetStudio", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Studio returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a list of available fallback font files.", + "operationId": "GetFallbackFontList", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts/{name}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a fallback font file.", + "operationId": "GetFallbackFont", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the fallback font file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Fallback font file retrieved.", + "content": { + "font/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{language}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Search remote subtitles.", + "operationId": "SearchRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "language", + "in": "path", + "description": "The language of the subtitles.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isPerfectMatch", + "in": "query", + "description": "Optional. Only show subtitles which are a perfect match.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Subtitles retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Downloads a remote subtitle.", + "operationId": "DownloadRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "subtitleId", + "in": "path", + "description": "The subtitle id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Subtitle downloaded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Subtitles/Subtitles/{id}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets the remote subtitles.", + "operationId": "GetRemoteSubtitles", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets an HLS subtitle playlist.", + "operationId": "GetSubtitlePlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "The media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The subtitle segment length.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Subtitle playlist retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Upload an external subtitle file.", + "operationId": "UploadSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the subtitle belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Subtitle uploaded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles/{index}": { + "delete": { + "tags": [ + "Subtitle" + ], + "summary": "Deletes an external subtitle file.", + "operationId": "DeleteSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the subtitle file.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Subtitle deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitleWithTicks", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeStartPositionTicks", + "in": "path", + "description": "The (route) start position of the subtitle in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitle", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Users/{userId}/Suggestions": { + "get": { + "tags": [ + "Suggestions" + ], + "summary": "Gets suggestions.", + "operationId": "GetSuggestions", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media types.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "type", + "in": "query", + "description": "The type.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total record count.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Suggestions returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Buffering": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is buffering.", + "operationId": "SyncPlayBuffering", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Join": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Join an existing SyncPlay group.", + "operationId": "SyncPlayJoinGroup", + "requestBody": { + "description": "The group to join.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group join successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Leave": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Leave the joined SyncPlay group.", + "operationId": "SyncPlayLeaveGroup", + "responses": { + "204": { + "description": "Group leave successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/List": { + "get": { + "tags": [ + "SyncPlay" + ], + "summary": "Gets all SyncPlay groups.", + "operationId": "SyncPlayGetGroups", + "responses": { + "200": { + "description": "Groups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/MovePlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to move an item in the playlist in SyncPlay group.", + "operationId": "SyncPlayMovePlaylistItem", + "requestBody": { + "description": "The new position for the item.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/New": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Create a new SyncPlay group.", + "operationId": "SyncPlayCreateGroup", + "requestBody": { + "description": "The settings of the new group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "New group created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayCreateGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/NextItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request next item in SyncPlay group.", + "operationId": "SyncPlayNextItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Next item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Pause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request pause in SyncPlay group.", + "operationId": "SyncPlayPause", + "responses": { + "204": { + "description": "Pause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Ping": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Update session ping.", + "operationId": "SyncPlayPing", + "requestBody": { + "description": "The new ping.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Ping updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/PreviousItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request previous item in SyncPlay group.", + "operationId": "SyncPlayPreviousItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Previous item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Queue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to queue items to the playlist of a SyncPlay group.", + "operationId": "SyncPlayQueue", + "requestBody": { + "description": "The items to add.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Ready": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is ready for playback.", + "operationId": "SyncPlayReady", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/RemoveFromPlaylist": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to remove items from the playlist in SyncPlay group.", + "operationId": "SyncPlayRemoveFromPlaylist", + "requestBody": { + "description": "The items to remove.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Seek": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request seek in SyncPlay group.", + "operationId": "SyncPlaySeek", + "requestBody": { + "description": "The new playback position.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Seek update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetIgnoreWait": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request SyncPlay group to ignore member during group-wait.", + "operationId": "SyncPlaySetIgnoreWait", + "requestBody": { + "description": "The settings to set.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Member state updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetNewQueue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set new playlist in SyncPlay group.", + "operationId": "SyncPlaySetNewQueue", + "requestBody": { + "description": "The new playlist to play in the group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetPlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to change playlist item in SyncPlay group.", + "operationId": "SyncPlaySetPlaylistItem", + "requestBody": { + "description": "The new item to play.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetRepeatMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set repeat mode in SyncPlay group.", + "operationId": "SyncPlaySetRepeatMode", + "requestBody": { + "description": "The new repeat mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetShuffleMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set shuffle mode in SyncPlay group.", + "operationId": "SyncPlaySetShuffleMode", + "requestBody": { + "description": "The new shuffle mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Stop": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request stop in SyncPlay group.", + "operationId": "SyncPlayStop", + "responses": { + "204": { + "description": "Stop update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Unpause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request unpause in SyncPlay group.", + "operationId": "SyncPlayUnpause", + "responses": { + "204": { + "description": "Unpause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/System/Endpoint": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the request endpoint.", + "operationId": "GetEndpointInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the server.", + "operationId": "GetSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrIgnoreParentalControl" + ] + } + ] + } + }, + "/System/Info/Public": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets public information about the server.", + "operationId": "GetPublicSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + } + } + } + } + } + }, + "/System/Logs": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a list of available server log files.", + "operationId": "GetServerLogs", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Logs/Log": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a log file.", + "operationId": "GetLogFile", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the log file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Log file retrieved.", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Ping": { + "get": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "GetPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "post": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "PostPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/System/Restart": { + "post": { + "tags": [ + "System" + ], + "summary": "Restarts the application.", + "operationId": "RestartApplication", + "responses": { + "204": { + "description": "Server restarted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LocalAccessOrRequiresElevation" + ] + } + ] + } + }, + "/System/Shutdown": { + "post": { + "tags": [ + "System" + ], + "summary": "Shuts down the application.", + "operationId": "ShutdownApplication", + "responses": { + "204": { + "description": "Server shut down." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/WakeOnLanInfo": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets wake on lan information.", + "operationId": "GetWakeOnLanInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/GetUtcTime": { + "get": { + "tags": [ + "TimeSync" + ], + "summary": "Gets the current UTC time.", + "operationId": "GetUtcTime", + "responses": { + "200": { + "description": "Time returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + } + } + } + } + } + }, + "/Tmdb/ClientConfiguration": { + "get": { + "tags": [ + "Tmdb" + ], + "summary": "Gets the TMDb image configuration options.", + "operationId": "TmdbClientConfiguration", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigImageTypes" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers": { + "get": { + "tags": [ + "Trailers" + ], + "summary": "Finds movies and trailers similar to a given trailer.", + "operationId": "GetTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Episodes": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets episodes for a tv season.", + "operationId": "GetEpisodes", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "season", + "in": "query", + "description": "Optional filter by season number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "seasonId", + "in": "query", + "description": "Optional. Filter by season id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "startItemId", + "in": "query", + "description": "Optional. Skip through the list until a given item is found.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Seasons": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets seasons for a tv series.", + "operationId": "GetSeasons", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "isSpecialSeason", + "in": "query", + "description": "Optional. Filter by special season.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/NextUp": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of next up episodes.", + "operationId": "GetNextUp", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the next up episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "seriesId", + "in": "query", + "description": "Optional. Filter by series id.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "nextUpDateCutoff", + "in": "query", + "description": "Optional. Starting date of shows to show in Next Up section.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total records count. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "disableFirstEpisode", + "in": "query", + "description": "Whether to disable sending the first episode in a series as next up.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRewatching", + "in": "query", + "description": "Whether to include watched episode in next up results.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/Upcoming": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of upcoming episodes.", + "operationId": "GetUpcomingEpisodes", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the upcoming episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/universal": { + "get": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "type": "string" + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "type": "string" + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of users.", + "operationId": "GetUsers", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter by IsHidden=true or false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisabled", + "in": "query", + "description": "Optional filter by IsDisabled=true or false.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a user by Id.", + "operationId": "GetUserById", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "IgnoreParentalControl" + ] + } + ] + }, + "delete": { + "tags": [ + "User" + ], + "summary": "Deletes a user.", + "operationId": "DeleteUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User deleted." + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user.", + "operationId": "UpdateUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The updated user model.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User updated." + }, + "400": { + "description": "User information was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Authenticate": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user.", + "operationId": "AuthenticateUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "pw", + "in": "query", + "description": "The password as plain text.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "The password sha1-hash.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "403": { + "description": "Sha1-hashed password only is not allowed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Configuration": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user configuration.", + "operationId": "UpdateUserConfiguration", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User configuration updated." + }, + "403": { + "description": "User configuration update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/EasyPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's easy password.", + "operationId": "UpdateUserEasyPassword", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Password": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's password.", + "operationId": "UpdateUserPassword", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Policy": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user policy.", + "operationId": "UpdateUserPolicy", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user policy.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User policy updated." + }, + "400": { + "description": "User policy was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User policy update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/AuthenticateByName": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user by name.", + "operationId": "AuthenticateUserByName", + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + } + } + } + }, + "/Users/AuthenticateWithQuickConnect": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user with quick connect.", + "operationId": "AuthenticateWithQuickConnect", + "requestBody": { + "description": "The Jellyfin.Api.Models.UserDtos.QuickConnectDto request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "400": { + "description": "Missing token." + } + } + } + }, + "/Users/ForgotPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Initiates the forgot password process for a local user.", + "operationId": "ForgotPassword", + "requestBody": { + "description": "The forgot password request containing the entered username.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Password reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + } + } + } + } + } + }, + "/Users/ForgotPassword/Pin": { + "post": { + "tags": [ + "User" + ], + "summary": "Redeems a forgot password pin.", + "operationId": "ForgotPasswordPin", + "requestBody": { + "description": "The forgot password pin request containing the entered pin.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Pin reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + } + } + } + } + } + }, + "/Users/Me": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets the user based on auth token.", + "operationId": "GetCurrentUser", + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "400": { + "description": "Token is not owned by a user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/New": { + "post": { + "tags": [ + "User" + ], + "summary": "Creates a user.", + "operationId": "CreateUserByName", + "requestBody": { + "description": "The create user by name request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/Public": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of publicly visible users for display on a login screen.", + "operationId": "GetPublicUsers", + "responses": { + "200": { + "description": "Public users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + } + } + } + }, + "/Users/{userId}/FavoriteItems/{itemId}": { + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Marks an item as a favorite.", + "operationId": "MarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Unmarks item as a favorite.", + "operationId": "UnmarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item unmarked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets an item from a user's library.", + "operationId": "GetItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/Intros": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets intros to play before the main media item plays.", + "operationId": "GetIntros", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Intros returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/LocalTrailers": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets local trailers for an item.", + "operationId": "GetLocalTrailers", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/Rating": { + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Deletes a user's saved personal rating for an item.", + "operationId": "DeleteUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Personal rating removed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Updates a user's rating for an item.", + "operationId": "UpdateUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "likes", + "in": "query", + "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item rating updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/SpecialFeatures": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets special features for an item.", + "operationId": "GetSpecialFeatures", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Special features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Latest": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets latest media.", + "operationId": "GetLatestMedia", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Return item limit.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + }, + { + "name": "groupItems", + "in": "query", + "description": "Whether or not to group items into a parent container.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Latest media returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Root": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets the root folder from a user's library.", + "operationId": "GetRootFolder", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Root folder returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/GroupingOptions": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user view grouping options.", + "operationId": "GetGroupingOptions", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User view grouping options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Views": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user views.", + "operationId": "GetUserViews", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeExternalContent", + "in": "query", + "description": "Whether or not to include external views such as channels or live tv.", + "schema": { + "type": "boolean" + } + }, + { + "name": "presetViews", + "in": "query", + "description": "Preset views.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "includeHidden", + "in": "query", + "description": "Whether or not to include hidden content.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "User views returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}": { + "get": { + "tags": [ + "VideoAttachments" + ], + "summary": "Get video attachment.", + "operationId": "GetAttachment", + "parameters": [ + { + "name": "videoId", + "in": "path", + "description": "Video ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "Media Source ID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "path", + "description": "Attachment Index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Attachment retrieved.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Video or attachment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/AdditionalParts": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets additional parts for a video.", + "operationId": "GetAdditionalPart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Additional parts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/AlternateSources": { + "delete": { + "tags": [ + "Videos" + ], + "summary": "Removes alternate video sources.", + "operationId": "DeleteAlternateSources", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Alternate sources deleted." + }, + "404": { + "description": "Video not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/stream": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/MergeVersions": { + "post": { + "tags": [ + "Videos" + ], + "summary": "Merges videos into a single record.", + "operationId": "MergeVersions", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Item id list. This allows multiple, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Videos merged." + }, + "400": { + "description": "Supply at least 2 video ids.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Years": { + "get": { + "tags": [ + "Years" + ], + "summary": "Get years.", + "operationId": "GetYears", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Skips over a given number of items within the results. Use for paging.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Search recursively.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Year query returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Years/{year}": { + "get": { + "tags": [ + "Years" + ], + "summary": "Gets a year.", + "operationId": "GetYear", + "parameters": [ + { + "name": "year", + "in": "path", + "description": "The year.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Year returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Year not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + } + }, + "components": { + "schemas": { + "AccessSchedule": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id of this instance.", + "format": "int32", + "readOnly": true + }, + "UserId": { + "type": "string", + "description": "Gets the id of the associated user.", + "format": "uuid" + }, + "DayOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/DynamicDayOfWeek" + } + ], + "description": "Gets or sets the day of week." + }, + "StartHour": { + "type": "number", + "description": "Gets or sets the start hour.", + "format": "double" + }, + "EndHour": { + "type": "number", + "description": "Gets or sets the end hour.", + "format": "double" + } + }, + "additionalProperties": false, + "description": "An entity representing a user's access schedule." + }, + "ActivityLogEntry": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "ShortOverview": { + "type": "string", + "description": "Gets or sets the short overview.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "Date": { + "type": "string", + "description": "Gets or sets the date.", + "format": "date-time" + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true, + "deprecated": true + }, + "Severity": { + "allOf": [ + { + "$ref": "#/components/schemas/LogLevel" + } + ], + "description": "Gets or sets the log severity." + } + }, + "additionalProperties": false, + "description": "An activity log entry." + }, + "ActivityLogEntryQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AddVirtualFolderDto": { + "type": "object", + "properties": { + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Add virtual folder dto." + }, + "AdminNotificationDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the notification name.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the notification description.", + "nullable": true + }, + "NotificationLevel": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the notification level.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the notification url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The admin notification dto." + }, + "AlbumInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the album artist." + }, + "ArtistProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the artist provider ids." + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "AlbumInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AllThemeMediaResult": { + "type": "object", + "properties": { + "ThemeVideosResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "ThemeSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "SoundtrackSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + } + }, + "additionalProperties": false + }, + "Architecture": { + "enum": [ + "X86", + "X64", + "Arm", + "Arm64", + "Wasm", + "S390x" + ], + "type": "string" + }, + "ArtistInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "ArtistInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AuthenticateUserByName": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Pw": { + "type": "string", + "description": "Gets or sets the plain text password.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the sha1-hashed password.", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "The authenticate user by name request body." + }, + "AuthenticationInfo": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device identifier.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is active." + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateRevoked": { + "type": "string", + "description": "Gets or sets the date revoked.", + "format": "date-time", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "format": "date-time" + }, + "UserName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AuthenticationInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationInfo" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AuthenticationResult": { + "type": "object", + "properties": { + "User": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "SessionInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionInfo" + } + ], + "description": "Class SessionInfo.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BaseItem": { + "type": "object", + "properties": { + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "readOnly": true + }, + "IsShortcut": { + "type": "boolean" + }, + "ShortcutPath": { + "type": "string", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32" + }, + "Height": { + "type": "integer", + "format": "int32" + }, + "ExtraIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "DateLastSaved": { + "type": "string", + "format": "date-time" + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the remote trailers.", + "nullable": true + }, + "SupportsExternalTransfer": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class BaseItem." + }, + "BaseItemDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "Etag": { + "type": "string", + "description": "Gets or sets the etag.", + "nullable": true + }, + "SourceType": { + "type": "string", + "description": "Gets or sets the type of the source.", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier.", + "nullable": true + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time", + "nullable": true + }, + "DateLastMediaAdded": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ExtraType": { + "type": "string", + "nullable": true + }, + "AirsBeforeSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsAfterSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsBeforeEpisodeNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CanDelete": { + "type": "boolean", + "nullable": true + }, + "CanDownload": { + "type": "boolean", + "nullable": true + }, + "HasSubtitles": { + "type": "boolean", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "nullable": true + }, + "PreferredMetadataCountryCode": { + "type": "string", + "nullable": true + }, + "SupportsSync": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports synchronize].", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "SortName": { + "type": "string", + "description": "Gets or sets the name of the sort.", + "nullable": true + }, + "ForcedSortName": { + "type": "string", + "nullable": true + }, + "Video3DFormat": { + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "description": "Gets or sets the video3 D format.", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "description": "Gets or sets the premiere date.", + "format": "date-time", + "nullable": true + }, + "ExternalUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalUrl" + }, + "description": "Gets or sets the external urls.", + "nullable": true + }, + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media versions.", + "nullable": true + }, + "CriticRating": { + "type": "number", + "description": "Gets or sets the critic rating.", + "format": "float", + "nullable": true + }, + "ProductionLocations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "EnableMediaSourceDisplay": { + "type": "boolean", + "nullable": true + }, + "OfficialRating": { + "type": "string", + "description": "Gets or sets the official rating.", + "nullable": true + }, + "CustomRating": { + "type": "string", + "description": "Gets or sets the custom rating.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "Taglines": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the taglines.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres.", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "float", + "nullable": true + }, + "CumulativeRunTimeTicks": { + "type": "integer", + "description": "Gets or sets the cumulative run time ticks.", + "format": "int64", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "PlayAccess": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayAccess" + } + ], + "description": "Gets or sets the play access.", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "IsPlaceHolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is place holder.", + "nullable": true + }, + "Number": { + "type": "string", + "description": "Gets or sets the number.", + "nullable": true + }, + "ChannelNumber": { + "type": "string", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "description": "Gets or sets the index number end.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the trailer urls.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is HD.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "ParentId": { + "type": "string", + "description": "Gets or sets the parent id.", + "format": "uuid", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "Gets or sets the type." + }, + "People": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemPerson" + }, + "description": "Gets or sets the people.", + "nullable": true + }, + "Studios": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the studios.", + "nullable": true + }, + "GenreItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "ParentLogoItemId": { + "type": "string", + "description": "Gets or sets wether the item has a logo, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets wether the item has any backdrops, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "LocalTrailerCount": { + "type": "integer", + "description": "Gets or sets the local trailer count.", + "format": "int32", + "nullable": true + }, + "UserData": { + "allOf": [ + { + "$ref": "#/components/schemas/UserItemDataDto" + } + ], + "description": "Gets or sets the user data for this item based on the user it's being requested for.", + "nullable": true + }, + "RecursiveItemCount": { + "type": "integer", + "description": "Gets or sets the recursive item count.", + "format": "int32", + "nullable": true + }, + "ChildCount": { + "type": "integer", + "description": "Gets or sets the child count.", + "format": "int32", + "nullable": true + }, + "SeriesName": { + "type": "string", + "description": "Gets or sets the name of the series.", + "nullable": true + }, + "SeriesId": { + "type": "string", + "description": "Gets or sets the series id.", + "format": "uuid", + "nullable": true + }, + "SeasonId": { + "type": "string", + "description": "Gets or sets the season identifier.", + "format": "uuid", + "nullable": true + }, + "SpecialFeatureCount": { + "type": "integer", + "description": "Gets or sets the special feature count.", + "format": "int32", + "nullable": true + }, + "DisplayPreferencesId": { + "type": "string", + "description": "Gets or sets the display preferences id.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "AirTime": { + "type": "string", + "description": "Gets or sets the air time.", + "nullable": true + }, + "AirDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the air days.", + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the tags.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio, after image enhancements.", + "format": "double", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "ArtistItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the artist items.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "CollectionType": { + "type": "string", + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "DisplayOrder": { + "type": "string", + "description": "Gets or sets the display order.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the album image tag.", + "nullable": true + }, + "SeriesPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the series primary image tag.", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "AlbumArtists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the album artists.", + "nullable": true + }, + "SeasonName": { + "type": "string", + "description": "Gets or sets the name of the season.", + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "description": "Gets or sets the media streams.", + "nullable": true + }, + "VideoType": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "description": "Gets or sets the type of the video.", + "nullable": true + }, + "PartCount": { + "type": "integer", + "description": "Gets or sets the part count.", + "format": "int32", + "nullable": true + }, + "MediaSourceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "BackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the backdrop image tags.", + "nullable": true + }, + "ScreenshotImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the screenshot image tags.", + "nullable": true + }, + "ParentLogoImageTag": { + "type": "string", + "description": "Gets or sets the parent logo image tag.", + "nullable": true + }, + "ParentArtItemId": { + "type": "string", + "description": "Gets or sets wether the item has fan art, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentArtImageTag": { + "type": "string", + "description": "Gets or sets the parent art image tag.", + "nullable": true + }, + "SeriesThumbImageTag": { + "type": "string", + "description": "Gets or sets the series thumb image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value.", + "nullable": true + }, + "SeriesStudio": { + "type": "string", + "description": "Gets or sets the series studio.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "format": "uuid", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + }, + "Chapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChapterInfo" + }, + "description": "Gets or sets the chapters.", + "nullable": true + }, + "LocationType": { + "allOf": [ + { + "$ref": "#/components/schemas/LocationType" + } + ], + "description": "Gets or sets the type of the location.", + "nullable": true + }, + "IsoType": { + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "description": "Gets or sets the type of the iso.", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the type of the media.", + "nullable": true + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "LockedFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataField" + }, + "description": "Gets or sets the locked fields.", + "nullable": true + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32", + "nullable": true + }, + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32", + "nullable": true + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32", + "nullable": true + }, + "ProgramCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32", + "nullable": true + }, + "ArtistCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32", + "nullable": true + }, + "LockData": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable internet providers].", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CameraMake": { + "type": "string", + "nullable": true + }, + "CameraModel": { + "type": "string", + "nullable": true + }, + "Software": { + "type": "string", + "nullable": true + }, + "ExposureTime": { + "type": "number", + "format": "double", + "nullable": true + }, + "FocalLength": { + "type": "number", + "format": "double", + "nullable": true + }, + "ImageOrientation": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageOrientation" + } + ], + "nullable": true + }, + "Aperture": { + "type": "number", + "format": "double", + "nullable": true + }, + "ShutterSpeed": { + "type": "number", + "format": "double", + "nullable": true + }, + "Latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Altitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "IsoSpeedRating": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the channel primary image tag.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "IsRepeat": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is repeat.", + "nullable": true + }, + "EpisodeTitle": { + "type": "string", + "description": "Gets or sets the episode title.", + "nullable": true + }, + "ChannelType": { + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ], + "description": "Gets or sets the type of the channel.", + "nullable": true + }, + "Audio": { + "allOf": [ + { + "$ref": "#/components/schemas/ProgramAudio" + } + ], + "description": "Gets or sets the audio.", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is movie.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is sports.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is series.", + "nullable": true + }, + "IsLive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is live.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is kids.", + "nullable": true + }, + "IsPremiere": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is premiere.", + "nullable": true + }, + "TimerId": { + "type": "string", + "description": "Gets or sets the timer identifier.", + "nullable": true + }, + "CurrentProgram": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the current program.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + }, + "BaseItemDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "BaseItemKind": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "type": "string", + "description": "The base item kind." + }, + "BaseItemPerson": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "Role": { + "type": "string", + "description": "Gets or sets the role.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the primary image blurhash.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a Person within a BaseItem." + }, + "BasePluginConfiguration": { + "type": "object", + "additionalProperties": false, + "description": "Class BasePluginConfiguration." + }, + "BookInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SeriesName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BookInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BoxSetInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "BoxSetInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BrandingOptions": { + "type": "object", + "properties": { + "LoginDisclaimer": { + "type": "string", + "description": "Gets or sets the login disclaimer.", + "nullable": true + }, + "CustomCss": { + "type": "string", + "description": "Gets or sets the custom CSS.", + "nullable": true + }, + "SplashscreenEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable the splashscreen." + } + }, + "additionalProperties": false, + "description": "The branding options." + }, + "BufferRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class BufferRequestDto." + }, + "ChannelFeatures": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "CanSearch": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can search." + }, + "MediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaType" + }, + "description": "Gets or sets the media types." + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaContentType" + }, + "description": "Gets or sets the content types." + }, + "MaxPageSize": { + "type": "integer", + "description": "Gets or sets the maximum number of records the channel allows retrieving at a time.", + "format": "int32", + "nullable": true + }, + "AutoRefreshLevels": { + "type": "integer", + "description": "Gets or sets the automatic refresh levels.", + "format": "int32", + "nullable": true + }, + "DefaultSortFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelItemSortField" + }, + "description": "Gets or sets the default sort orders." + }, + "SupportsSortOrderToggle": { + "type": "boolean", + "description": "Gets or sets a value indicating whether a sort ascending/descending toggle is supported." + }, + "SupportsLatestMedia": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports latest media]." + }, + "CanFilter": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can filter." + }, + "SupportsContentDownloading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports content downloading]." + } + }, + "additionalProperties": false + }, + "ChannelItemSortField": { + "enum": [ + "Name", + "CommunityRating", + "PremiereDate", + "DateCreated", + "Runtime", + "PlayCount", + "CommunityPlayCount" + ], + "type": "string" + }, + "ChannelMappingOptionsDto": { + "type": "object", + "properties": { + "TunerChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerChannelMapping" + }, + "description": "Gets or sets list of tuner channels." + }, + "ProviderChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + }, + "description": "Gets or sets list of provider channels." + }, + "Mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "description": "Gets or sets list of mappings." + }, + "ProviderName": { + "type": "string", + "description": "Gets or sets provider name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Channel mapping options dto." + }, + "ChannelMediaContentType": { + "enum": [ + "Clip", + "Podcast", + "Trailer", + "Movie", + "Episode", + "Song", + "MovieExtra", + "TvExtra" + ], + "type": "string" + }, + "ChannelMediaType": { + "enum": [ + "Audio", + "Video", + "Photo" + ], + "type": "string" + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "type": "string", + "description": "Enum ChannelType." + }, + "ChapterInfo": { + "type": "object", + "properties": { + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ImagePath": { + "type": "string", + "description": "Gets or sets the image path.", + "nullable": true + }, + "ImageDateModified": { + "type": "string", + "format": "date-time" + }, + "ImageTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ChapterInfo." + }, + "ClientCapabilities": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "nullable": true + }, + "SupportsMediaControl": { + "type": "boolean" + }, + "SupportsContentUploading": { + "type": "boolean" + }, + "MessageCallbackUrl": { + "type": "string", + "nullable": true + }, + "SupportsPersistentIdentifier": { + "type": "boolean" + }, + "SupportsSync": { + "type": "boolean" + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "nullable": true + }, + "IconUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ClientCapabilitiesDto": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the list of playable media types." + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the list of supported commands." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports media control." + }, + "SupportsContentUploading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports content uploading." + }, + "MessageCallbackUrl": { + "type": "string", + "description": "Gets or sets the message callback url.", + "nullable": true + }, + "SupportsPersistentIdentifier": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports a persistent identifier." + }, + "SupportsSync": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports sync." + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "description": "Gets or sets the app store url.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Client capabilities dto." + }, + "ClientLogDocumentResponseDto": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "Gets the resulting filename." + } + }, + "additionalProperties": false, + "description": "Client log document response dto." + }, + "CodecProfile": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/CodecType" + } + ] + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "ApplyConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "Codec": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CodecType": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "type": "string" + }, + "CollectionCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "CollectionTypeOptions": { + "enum": [ + "Movies", + "TvShows", + "Music", + "MusicVideos", + "HomeVideos", + "BoxSets", + "Books", + "Mixed" + ], + "type": "string" + }, + "ConfigImageTypes": { + "type": "object", + "properties": { + "BackdropSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "BaseUrl": { + "type": "string", + "nullable": true + }, + "LogoSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "PosterSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ProfileSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SecureBaseUrl": { + "type": "string", + "nullable": true + }, + "StillSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConfigurationPageInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "EnableInMainMenu": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the configurations page is enabled in the main menu." + }, + "MenuSection": { + "type": "string", + "description": "Gets or sets the menu section.", + "nullable": true + }, + "MenuIcon": { + "type": "string", + "description": "Gets or sets the menu icon.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "PluginId": { + "type": "string", + "description": "Gets or sets the plugin id.", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The configuration page info." + }, + "ContainerProfile": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "Container": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ControlResponse": { + "type": "object", + "properties": { + "Headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "Xml": { + "type": "string" + }, + "IsSuccessful": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "CountryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "TwoLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the two letter ISO region.", + "nullable": true + }, + "ThreeLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the three letter ISO region.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class CountryInfo." + }, + "CreatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist.", + "nullable": true + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids to add to the playlist." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the media type.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Create new playlist dto." + }, + "CreateUserByName": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The create user by name request body." + }, + "CultureDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "DisplayName": { + "type": "string", + "description": "Gets the display name." + }, + "TwoLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the two letter ISO language." + }, + "ThreeLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the three letter ISO language.", + "nullable": true, + "readOnly": true + }, + "ThreeLetterISOLanguageNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "description": "Class CultureDto." + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "string" + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "type": "string" + }, + "DefaultDirectoryBrowserInfoDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Default directory browser info." + }, + "DeviceIdentification": { + "type": "object", + "properties": { + "FriendlyName": { + "type": "string", + "description": "Gets or sets the name of the friendly." + }, + "ModelNumber": { + "type": "string", + "description": "Gets or sets the model number." + }, + "SerialNumber": { + "type": "string", + "description": "Gets or sets the serial number." + }, + "ModelName": { + "type": "string", + "description": "Gets or sets the name of the model." + }, + "ModelDescription": { + "type": "string", + "description": "Gets or sets the model description." + }, + "ModelUrl": { + "type": "string", + "description": "Gets or sets the model URL." + }, + "Manufacturer": { + "type": "string", + "description": "Gets or sets the manufacturer." + }, + "ManufacturerUrl": { + "type": "string", + "description": "Gets or sets the manufacturer URL." + }, + "Headers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HttpHeaderInfo" + }, + "description": "Gets or sets the headers." + } + }, + "additionalProperties": false + }, + "DeviceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "LastUserName": { + "type": "string", + "description": "Gets or sets the last name of the user.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "LastUserId": { + "type": "string", + "description": "Gets or sets the last user identifier.", + "format": "uuid" + }, + "DateLastActivity": { + "type": "string", + "description": "Gets or sets the date last modified.", + "format": "date-time" + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilities" + } + ], + "description": "Gets or sets the capabilities.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DeviceInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceInfo" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "DeviceOptions": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id.", + "format": "int32", + "readOnly": true + }, + "DeviceId": { + "type": "string", + "description": "Gets the device id." + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "An entity representing custom options for a device." + }, + "DeviceOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the id.", + "format": "int32" + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A dto representing custom options for a device." + }, + "DeviceProfile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of this device profile.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the Id.", + "nullable": true + }, + "Identification": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceIdentification" + } + ], + "description": "Gets or sets the Identification.", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "description": "Gets or sets the friendly name of the device profile, which can be shown to users.", + "nullable": true + }, + "Manufacturer": { + "type": "string", + "description": "Gets or sets the manufacturer of the device which this profile represents.", + "nullable": true + }, + "ManufacturerUrl": { + "type": "string", + "description": "Gets or sets an url for the manufacturer of the device which this profile represents.", + "nullable": true + }, + "ModelName": { + "type": "string", + "description": "Gets or sets the model name of the device which this profile represents.", + "nullable": true + }, + "ModelDescription": { + "type": "string", + "description": "Gets or sets the model description of the device which this profile represents.", + "nullable": true + }, + "ModelNumber": { + "type": "string", + "description": "Gets or sets the model number of the device which this profile represents.", + "nullable": true + }, + "ModelUrl": { + "type": "string", + "description": "Gets or sets the ModelUrl.", + "nullable": true + }, + "SerialNumber": { + "type": "string", + "description": "Gets or sets the serial number of the device which this profile represents.", + "nullable": true + }, + "EnableAlbumArtInDidl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableAlbumArtInDidl.", + "default": false + }, + "EnableSingleAlbumArtLimit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableSingleAlbumArtLimit.", + "default": false + }, + "EnableSingleSubtitleLimit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableSingleSubtitleLimit.", + "default": false + }, + "SupportedMediaTypes": { + "type": "string", + "description": "Gets or sets the SupportedMediaTypes." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the UserId.", + "nullable": true + }, + "AlbumArtPn": { + "type": "string", + "description": "Gets or sets the AlbumArtPn.", + "nullable": true + }, + "MaxAlbumArtWidth": { + "type": "integer", + "description": "Gets or sets the MaxAlbumArtWidth.", + "format": "int32", + "nullable": true + }, + "MaxAlbumArtHeight": { + "type": "integer", + "description": "Gets or sets the MaxAlbumArtHeight.", + "format": "int32", + "nullable": true + }, + "MaxIconWidth": { + "type": "integer", + "description": "Gets or sets the maximum allowed width of embedded icons.", + "format": "int32", + "nullable": true + }, + "MaxIconHeight": { + "type": "integer", + "description": "Gets or sets the maximum allowed height of embedded icons.", + "format": "int32", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for all streamed content.", + "format": "int32", + "nullable": true + }, + "MaxStaticBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files).", + "format": "int32", + "nullable": true + }, + "MusicStreamingTranscodingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for transcoded music streams.", + "format": "int32", + "nullable": true + }, + "MaxStaticMusicBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files.", + "format": "int32", + "nullable": true + }, + "SonyAggregationFlags": { + "type": "string", + "description": "Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.", + "nullable": true + }, + "ProtocolInfo": { + "type": "string", + "description": "Gets or sets the ProtocolInfo.", + "nullable": true + }, + "TimelineOffsetSeconds": { + "type": "integer", + "description": "Gets or sets the TimelineOffsetSeconds.", + "format": "int32", + "default": 0 + }, + "RequiresPlainVideoItems": { + "type": "boolean", + "description": "Gets or sets a value indicating whether RequiresPlainVideoItems.", + "default": false + }, + "RequiresPlainFolders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether RequiresPlainFolders.", + "default": false + }, + "EnableMSMediaReceiverRegistrar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar.", + "default": false + }, + "IgnoreTranscodeByteRangeRequests": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests.", + "default": false + }, + "XmlRootAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/XmlAttribute" + }, + "description": "Gets or sets the XmlRootAttributes." + }, + "DirectPlayProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectPlayProfile" + }, + "description": "Gets or sets the direct play profiles." + }, + "TranscodingProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodingProfile" + }, + "description": "Gets or sets the transcoding profiles." + }, + "ContainerProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContainerProfile" + }, + "description": "Gets or sets the container profiles." + }, + "CodecProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CodecProfile" + }, + "description": "Gets or sets the codec profiles." + }, + "ResponseProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseProfile" + }, + "description": "Gets or sets the ResponseProfiles." + }, + "SubtitleProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubtitleProfile" + }, + "description": "Gets or sets the subtitle profiles." + } + }, + "additionalProperties": false, + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + }, + "DeviceProfileInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfileType" + } + ], + "description": "Gets or sets the type." + } + }, + "additionalProperties": false + }, + "DeviceProfileType": { + "enum": [ + "System", + "User" + ], + "type": "string" + }, + "DirectPlayProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "nullable": true + }, + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + } + }, + "additionalProperties": false + }, + "DisplayPreferencesDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the user id.", + "nullable": true + }, + "ViewType": { + "type": "string", + "description": "Gets or sets the type of the view.", + "nullable": true + }, + "SortBy": { + "type": "string", + "description": "Gets or sets the sort by.", + "nullable": true + }, + "IndexBy": { + "type": "string", + "description": "Gets or sets the index by.", + "nullable": true + }, + "RememberIndexing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember indexing]." + }, + "PrimaryImageHeight": { + "type": "integer", + "description": "Gets or sets the height of the primary image.", + "format": "int32" + }, + "PrimaryImageWidth": { + "type": "integer", + "description": "Gets or sets the width of the primary image.", + "format": "int32" + }, + "CustomPrefs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the custom prefs." + }, + "ScrollDirection": { + "allOf": [ + { + "$ref": "#/components/schemas/ScrollDirection" + } + ], + "description": "Gets or sets the scroll direction." + }, + "ShowBackdrop": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to show backdrops on this item." + }, + "RememberSorting": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember sorting]." + }, + "SortOrder": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ], + "description": "Gets or sets the sort order." + }, + "ShowSidebar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [show sidebar]." + }, + "Client": { + "type": "string", + "description": "Gets or sets the client.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the display preferences for any item that supports them (usually Folders)." + }, + "DlnaOptions": { + "type": "object", + "properties": { + "EnablePlayTo": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem." + }, + "EnableServer": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem." + }, + "EnableDebugLog": { + "type": "boolean", + "description": "Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "EnablePlayToTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna.PlayTo\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "ClientDiscoveryIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the ssdp client discovery interval time (in seconds).\r\nThis is the time after which the server will send a ssdp search request.", + "format": "int32" + }, + "AliveMessageIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the frequency at which ssdp alive notifications are transmitted.", + "format": "int32" + }, + "BlastAliveMessageIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED.", + "format": "int32" + }, + "DefaultUserId": { + "type": "string", + "description": "Gets or sets the default user account that the dlna server uses.", + "nullable": true + }, + "AutoCreatePlayToProfiles": { + "type": "boolean", + "description": "Gets or sets a value indicating whether playTo device profiles should be created." + }, + "BlastAliveMessages": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to blast alive messages." + }, + "SendOnlyMatchedHost": { + "type": "boolean", + "description": "gets or sets a value indicating whether to send only matched host." + } + }, + "additionalProperties": false, + "description": "The DlnaOptions class contains the user definable parameters for the dlna subsystems." + }, + "DlnaProfileType": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle" + ], + "type": "string" + }, + "DynamicDayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "type": "string", + "description": "An enum that represents a day of the week, weekdays, weekends, or all days." + }, + "EmbeddedSubtitleOptions": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "type": "string", + "description": "An enum representing the options to disable embedded subs." + }, + "EncodingContext": { + "enum": [ + "Streaming", + "Static" + ], + "type": "string" + }, + "EncodingOptions": { + "type": "object", + "properties": { + "EncodingThreadCount": { + "type": "integer", + "format": "int32" + }, + "TranscodingTempPath": { + "type": "string", + "nullable": true + }, + "FallbackFontPath": { + "type": "string", + "nullable": true + }, + "EnableFallbackFont": { + "type": "boolean" + }, + "DownMixAudioBoost": { + "type": "number", + "format": "double" + }, + "MaxMuxingQueueSize": { + "type": "integer", + "format": "int32" + }, + "EnableThrottling": { + "type": "boolean" + }, + "ThrottleDelaySeconds": { + "type": "integer", + "format": "int32" + }, + "HardwareAccelerationType": { + "type": "string", + "nullable": true + }, + "EncoderAppPath": { + "type": "string", + "description": "Gets or sets the FFmpeg path as set by the user via the UI.", + "nullable": true + }, + "EncoderAppPathDisplay": { + "type": "string", + "description": "Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page.", + "nullable": true + }, + "VaapiDevice": { + "type": "string", + "nullable": true + }, + "EnableTonemapping": { + "type": "boolean" + }, + "EnableVppTonemapping": { + "type": "boolean" + }, + "TonemappingAlgorithm": { + "type": "string", + "nullable": true + }, + "TonemappingMode": { + "type": "string", + "nullable": true + }, + "TonemappingRange": { + "type": "string", + "nullable": true + }, + "TonemappingDesat": { + "type": "number", + "format": "double" + }, + "TonemappingPeak": { + "type": "number", + "format": "double" + }, + "TonemappingParam": { + "type": "number", + "format": "double" + }, + "VppTonemappingBrightness": { + "type": "number", + "format": "double" + }, + "VppTonemappingContrast": { + "type": "number", + "format": "double" + }, + "H264Crf": { + "type": "integer", + "format": "int32" + }, + "H265Crf": { + "type": "integer", + "format": "int32" + }, + "EncoderPreset": { + "type": "string", + "nullable": true + }, + "DeinterlaceDoubleRate": { + "type": "boolean" + }, + "DeinterlaceMethod": { + "type": "string", + "nullable": true + }, + "EnableDecodingColorDepth10Hevc": { + "type": "boolean" + }, + "EnableDecodingColorDepth10Vp9": { + "type": "boolean" + }, + "EnableEnhancedNvdecDecoder": { + "type": "boolean" + }, + "PreferSystemNativeHwDecoder": { + "type": "boolean" + }, + "EnableIntelLowPowerH264HwEncoder": { + "type": "boolean" + }, + "EnableIntelLowPowerHevcHwEncoder": { + "type": "boolean" + }, + "EnableHardwareEncoding": { + "type": "boolean" + }, + "AllowHevcEncoding": { + "type": "boolean" + }, + "EnableSubtitleExtraction": { + "type": "boolean" + }, + "HardwareDecodingCodecs": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "EndPointInfo": { + "type": "object", + "properties": { + "IsLocal": { + "type": "boolean" + }, + "IsInNetwork": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExternalIdInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc)." + }, + "Key": { + "type": "string", + "description": "Gets or sets the unique key for this id. This key should be unique across all providers." + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ExternalIdMediaType" + } + ], + "description": "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type.", + "nullable": true + }, + "UrlFormatString": { + "type": "string", + "description": "Gets or sets the URL format string.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents the external id information for serialization to the client." + }, + "ExternalIdMediaType": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track" + ], + "type": "string", + "description": "The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo." + }, + "ExternalUrl": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the type of the item.", + "nullable": true + } + }, + "additionalProperties": false + }, + "FFmpegLocation": { + "enum": [ + "NotFound", + "SetByArgument", + "Custom", + "System" + ], + "type": "string", + "description": "Enum describing the location of the FFmpeg tool." + }, + "FileSystemEntryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "Path": { + "type": "string", + "description": "Gets the path." + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/FileSystemEntryType" + } + ], + "description": "Gets the type." + } + }, + "additionalProperties": false, + "description": "Class FileSystemEntryInfo." + }, + "FileSystemEntryType": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "type": "string", + "description": "Enum FileSystemEntryType." + }, + "FontFile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class FontFile." + }, + "ForgotPasswordAction": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "type": "string" + }, + "ForgotPasswordDto": { + "required": [ + "EnteredUsername" + ], + "type": "object", + "properties": { + "EnteredUsername": { + "type": "string", + "description": "Gets or sets the entered username to have its password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password request body DTO." + }, + "ForgotPasswordPinDto": { + "required": [ + "Pin" + ], + "type": "object", + "properties": { + "Pin": { + "type": "string", + "description": "Gets or sets the entered pin to have the password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password Pin enter request body DTO." + }, + "ForgotPasswordResult": { + "type": "object", + "properties": { + "Action": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordAction" + } + ], + "description": "Gets or sets the action." + }, + "PinFile": { + "type": "string", + "description": "Gets or sets the pin file.", + "nullable": true + }, + "PinExpirationDate": { + "type": "string", + "description": "Gets or sets the pin expiration date.", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "GeneralCommand": { + "type": "object", + "properties": { + "Name": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + }, + "ControllingUserId": { + "type": "string", + "format": "uuid" + }, + "Arguments": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + "additionalProperties": false + }, + "GeneralCommandType": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate" + ], + "type": "string", + "description": "This exists simply to identify a set of known commands." + }, + "GetProgramsDto": { + "type": "object", + "properties": { + "ChannelIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the channels to return guide information for." + }, + "UserId": { + "type": "string", + "description": "Gets or sets optional. Filter by user id.", + "format": "uuid" + }, + "MinStartDate": { + "type": "string", + "description": "Gets or sets the minimum premiere start date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "HasAired": { + "type": "boolean", + "description": "Gets or sets filter by programs that have completed airing, or not.\r\nOptional.", + "nullable": true + }, + "IsAiring": { + "type": "boolean", + "description": "Gets or sets filter by programs that are currently airing, or not.\r\nOptional.", + "nullable": true + }, + "MaxStartDate": { + "type": "string", + "description": "Gets or sets the maximum premiere start date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "MinEndDate": { + "type": "string", + "description": "Gets or sets the minimum premiere end date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "MaxEndDate": { + "type": "string", + "description": "Gets or sets the maximum premiere end date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets filter for movies.\r\nOptional.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets filter for series.\r\nOptional.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets filter for news.\r\nOptional.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets filter for kids.\r\nOptional.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets filter for sports.\r\nOptional.", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the maximum number of records to return.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "SortBy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.\r\nOptional." + }, + "SortOrder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + }, + "description": "Gets or sets sort Order - Ascending,Descending." + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres to return guide information for." + }, + "GenreIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the genre ids to return guide information for." + }, + "EnableImages": { + "type": "boolean", + "description": "Gets or sets include image information in output.\r\nOptional.", + "nullable": true + }, + "EnableTotalRecordCount": { + "type": "boolean", + "description": "Gets or sets a value indicating whether retrieve total record count." + }, + "ImageTypeLimit": { + "type": "integer", + "description": "Gets or sets the max number of images to return, per image type.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "EnableImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the image types to include in the output.\r\nOptional." + }, + "EnableUserData": { + "type": "boolean", + "description": "Gets or sets include user data.\r\nOptional.", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets filter by series timer id.\r\nOptional.", + "nullable": true + }, + "LibrarySeriesId": { + "type": "string", + "description": "Gets or sets filter by library series id.\r\nOptional.", + "format": "uuid" + }, + "Fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + }, + "description": "Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.\r\nOptional." + } + }, + "additionalProperties": false, + "description": "Get programs dto." + }, + "GroupInfoDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "GroupName": { + "type": "string", + "description": "Gets the group name." + }, + "State": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the group state." + }, + "Participants": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the participants." + }, + "LastUpdatedAt": { + "type": "string", + "description": "Gets the date when this DTO has been created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class GroupInfoDto." + }, + "GroupQueueMode": { + "enum": [ + "Queue", + "QueueNext" + ], + "type": "string", + "description": "Enum GroupQueueMode." + }, + "GroupRepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "type": "string", + "description": "Enum GroupRepeatMode." + }, + "GroupShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "type": "string", + "description": "Enum GroupShuffleMode." + }, + "GroupStateType": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "type": "string", + "description": "Enum GroupState." + }, + "GroupUpdateType": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "type": "string", + "description": "Enum GroupUpdateType." + }, + "GuideInfo": { + "type": "object", + "properties": { + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "HardwareEncodingType": { + "enum": [ + "AMF", + "QSV", + "NVENC", + "V4L2M2M", + "VAAPI", + "VideoToolBox" + ], + "type": "string", + "description": "Enum HardwareEncodingType." + }, + "HeaderMatchType": { + "enum": [ + "Equals", + "Regex", + "Substring" + ], + "type": "string" + }, + "HttpHeaderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + }, + "Match": { + "allOf": [ + { + "$ref": "#/components/schemas/HeaderMatchType" + } + ] + } + }, + "additionalProperties": false + }, + "IgnoreWaitRequestDto": { + "type": "object", + "properties": { + "IgnoreWait": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client should be ignored." + } + }, + "additionalProperties": false, + "description": "Class IgnoreWaitRequestDto." + }, + "ImageByNameInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Theme": { + "type": "string", + "description": "Gets or sets the theme.", + "nullable": true + }, + "Context": { + "type": "string", + "description": "Gets or sets the context.", + "nullable": true + }, + "FileLength": { + "type": "integer", + "description": "Gets or sets the length of the file.", + "format": "int64" + }, + "Format": { + "type": "string", + "description": "Gets or sets the format.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ImageFormat": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp" + ], + "type": "string", + "description": "Enum ImageOutputFormat." + }, + "ImageInfo": { + "type": "object", + "properties": { + "ImageType": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type of the image." + }, + "ImageIndex": { + "type": "integer", + "description": "Gets or sets the index of the image.", + "format": "int32", + "nullable": true + }, + "ImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "BlurHash": { + "type": "string", + "description": "Gets or sets the blurhash.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class ImageInfo." + }, + "ImageOption": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the limit.", + "format": "int32" + }, + "MinWidth": { + "type": "integer", + "description": "Gets or sets the minimum width.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "type": "string" + }, + "ImageProviderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "SupportedImages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets the supported image types." + } + }, + "additionalProperties": false, + "description": "Class ImageProviderInfo." + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "type": "string" + }, + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "type": "string", + "description": "Enum ImageType." + }, + "InstallationInfo": { + "type": "object", + "properties": { + "Guid": { + "type": "string", + "description": "Gets or sets the Id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "Changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "SourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "Checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "PackageInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PackageInfo" + } + ], + "description": "Gets or sets package information for the installation.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class InstallationInfo." + }, + "IPlugin": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name of the plugin.", + "nullable": true, + "readOnly": true + }, + "Description": { + "type": "string", + "description": "Gets the Description.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets the unique id.", + "format": "uuid", + "readOnly": true + }, + "Version": { + "type": "string", + "description": "Gets the plugin version.", + "nullable": true, + "readOnly": true + }, + "AssemblyFilePath": { + "type": "string", + "description": "Gets the path to the assembly file.", + "nullable": true, + "readOnly": true + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets a value indicating whether the plugin can be uninstalled.", + "readOnly": true + }, + "DataFolderPath": { + "type": "string", + "description": "Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Plugins.IPlugin." + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum IsoType." + }, + "ItemCounts": { + "type": "object", + "properties": { + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32" + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32" + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32" + }, + "ArtistCount": { + "type": "integer", + "description": "Gets or sets the artist count.", + "format": "int32" + }, + "ProgramCount": { + "type": "integer", + "description": "Gets or sets the program count.", + "format": "int32" + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32" + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32" + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32" + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32" + }, + "BoxSetCount": { + "type": "integer", + "description": "Gets or sets the box set count.", + "format": "int32" + }, + "BookCount": { + "type": "integer", + "description": "Gets or sets the book count.", + "format": "int32" + }, + "ItemCount": { + "type": "integer", + "description": "Gets or sets the item count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class LibrarySummary." + }, + "ItemFields": { + "enum": [ + "AirTime", + "CanDelete", + "CanDownload", + "ChannelInfo", + "Chapters", + "ChildCount", + "CumulativeRunTimeTicks", + "CustomRating", + "DateCreated", + "DateLastMediaAdded", + "DisplayPreferencesId", + "Etag", + "ExternalUrls", + "Genres", + "HomePageUrl", + "ItemCounts", + "MediaSourceCount", + "MediaSources", + "OriginalTitle", + "Overview", + "ParentId", + "Path", + "People", + "PlayAccess", + "ProductionLocations", + "ProviderIds", + "PrimaryImageAspectRatio", + "RecursiveItemCount", + "Settings", + "ScreenshotImageTags", + "SeriesPrimaryImage", + "SeriesStudio", + "SortName", + "SpecialEpisodeNumbers", + "Studios", + "BasicSyncInfo", + "SyncInfo", + "Taglines", + "Tags", + "RemoteTrailers", + "MediaStreams", + "SeasonUserData", + "ServiceName", + "ThemeSongIds", + "ThemeVideoIds", + "ExternalEtag", + "PresentationUniqueKey", + "InheritedParentalRatingValue", + "ExternalSeriesId", + "SeriesPresentationUniqueKey", + "DateLastRefreshed", + "DateLastSaved", + "RefreshState", + "ChannelImage", + "EnableMediaSourceDisplay", + "Width", + "Height", + "ExtraIds", + "LocalTrailerCount", + "IsHD", + "SpecialFeatureCount" + ], + "type": "string", + "description": "Used to control the data that gets attached to DtoBaseItems." + }, + "ItemFilter": { + "enum": [ + "IsFolder", + "IsNotFolder", + "IsUnplayed", + "IsPlayed", + "IsFavorite", + "IsResumable", + "Likes", + "Dislikes", + "IsFavoriteOrLikes" + ], + "type": "string", + "description": "Enum ItemFilter." + }, + "JoinGroupRequestDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets or sets the group identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class JoinGroupRequestDto." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "type": "string" + }, + "LibraryOptionInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets name.", + "nullable": true + }, + "DefaultEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether default enabled." + } + }, + "additionalProperties": false, + "description": "Library option info dto." + }, + "LibraryOptions": { + "type": "object", + "properties": { + "EnablePhotos": { + "type": "boolean" + }, + "EnableRealtimeMonitor": { + "type": "boolean" + }, + "EnableChapterImageExtraction": { + "type": "boolean" + }, + "ExtractChapterImagesDuringLibraryScan": { + "type": "boolean" + }, + "PathInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaPathInfo" + } + }, + "SaveLocalMetadata": { + "type": "boolean" + }, + "EnableInternetProviders": { + "type": "boolean", + "deprecated": true + }, + "EnableAutomaticSeriesGrouping": { + "type": "boolean" + }, + "EnableEmbeddedTitles": { + "type": "boolean" + }, + "EnableEmbeddedEpisodeInfos": { + "type": "boolean" + }, + "AutomaticRefreshIntervalDays": { + "type": "integer", + "format": "int32" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "SeasonZeroDisplayName": { + "type": "string" + }, + "MetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledLocalMetadataReaders": { + "type": "array", + "items": { + "type": "string" + } + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledSubtitleFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "SkipSubtitlesIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipSubtitlesIfAudioTrackMatches": { + "type": "boolean" + }, + "SubtitleDownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RequirePerfectSubtitleMatch": { + "type": "boolean" + }, + "SaveSubtitlesWithMedia": { + "type": "boolean" + }, + "AutomaticallyAddToCollection": { + "type": "boolean" + }, + "AllowEmbeddedSubtitles": { + "allOf": [ + { + "$ref": "#/components/schemas/EmbeddedSubtitleOptions" + } + ], + "description": "An enum representing the options to disable embedded subs." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeOptions" + } + } + }, + "additionalProperties": false + }, + "LibraryOptionsResultDto": { + "type": "object", + "properties": { + "MetadataSavers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata savers." + }, + "MetadataReaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata readers." + }, + "SubtitleFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the subtitle fetchers." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryTypeOptionsDto" + }, + "description": "Gets or sets the type options." + } + }, + "additionalProperties": false, + "description": "Library options result dto." + }, + "LibraryTypeOptionsDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata fetchers." + }, + "ImageFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the image fetchers." + }, + "SupportedImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the supported image types." + }, + "DefaultImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "description": "Gets or sets the default image options." + } + }, + "additionalProperties": false, + "description": "Library type options dto." + }, + "LibraryUpdateInfo": { + "type": "object", + "properties": { + "FoldersAddedTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders added to." + }, + "FoldersRemovedFrom": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders removed from." + }, + "ItemsAdded": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items added." + }, + "ItemsRemoved": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items removed." + }, + "ItemsUpdated": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items updated." + }, + "CollectionFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "IsEmpty": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class LibraryUpdateInfo." + }, + "ListingsProviderInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "Username": { + "type": "string", + "nullable": true + }, + "Password": { + "type": "string", + "nullable": true + }, + "ListingsId": { + "type": "string", + "nullable": true + }, + "ZipCode": { + "type": "string", + "nullable": true + }, + "Country": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EnabledTuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllTuners": { + "type": "boolean" + }, + "NewsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SportsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "KidsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MovieCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ChannelMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "nullable": true + }, + "MoviePrefix": { + "type": "string", + "nullable": true + }, + "PreferredLanguage": { + "type": "string", + "nullable": true + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveStreamResponse": { + "type": "object", + "properties": { + "MediaSource": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceInfo" + } + ] + } + }, + "additionalProperties": false + }, + "LiveTvInfo": { + "type": "object", + "properties": { + "Services": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveTvServiceInfo" + }, + "description": "Gets or sets the services." + }, + "IsEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is enabled." + }, + "EnabledUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the enabled users." + } + }, + "additionalProperties": false + }, + "LiveTvOptions": { + "type": "object", + "properties": { + "GuideDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RecordingPath": { + "type": "string", + "nullable": true + }, + "MovieRecordingPath": { + "type": "string", + "nullable": true + }, + "SeriesRecordingPath": { + "type": "string", + "nullable": true + }, + "EnableRecordingSubfolders": { + "type": "boolean" + }, + "EnableOriginalAudioWithEncodedRecordings": { + "type": "boolean" + }, + "TunerHosts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + }, + "nullable": true + }, + "ListingProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListingsProviderInfo" + }, + "nullable": true + }, + "PrePaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "MediaLocationsCreated": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RecordingPostProcessor": { + "type": "string", + "nullable": true + }, + "RecordingPostProcessorArguments": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveTvServiceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "HomePageUrl": { + "type": "string", + "description": "Gets or sets the home page URL.", + "nullable": true + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/LiveTvServiceStatus" + } + ], + "description": "Gets or sets the status." + }, + "StatusMessage": { + "type": "string", + "description": "Gets or sets the status message.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available." + }, + "IsVisible": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is visible." + }, + "Tuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ServiceInfo." + }, + "LiveTvServiceStatus": { + "enum": [ + "Ok", + "Unavailable" + ], + "type": "string" + }, + "LocalizationOption": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "type": "string", + "description": "Enum LocationType." + }, + "LogFile": { + "type": "object", + "properties": { + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + } + }, + "additionalProperties": false + }, + "LogLevel": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "type": "string" + }, + "MediaAttachment": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "FileName": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "MimeType": { + "type": "string", + "description": "Gets or sets the MIME type.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaAttachment." + }, + "MediaEncoderPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media encoder path." + }, + "PathType": { + "type": "string", + "description": "Gets or sets media encoder path type." + } + }, + "additionalProperties": false, + "description": "Media Encoder Path Dto." + }, + "MediaPathDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the library." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path to add.", + "nullable": true + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets the path info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Media Path dto." + }, + "MediaPathInfo": { + "type": "object", + "properties": { + "Path": { + "type": "string" + }, + "NetworkPath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MediaProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "type": "string" + }, + "MediaSourceInfo": { + "type": "object", + "properties": { + "Protocol": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ] + }, + "Id": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EncoderPath": { + "type": "string", + "nullable": true + }, + "EncoderProtocol": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ], + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceType" + } + ] + }, + "Container": { + "type": "string", + "nullable": true + }, + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "IsRemote": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + }, + "ETag": { + "type": "string", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ReadAtNativeFramerate": { + "type": "boolean" + }, + "IgnoreDts": { + "type": "boolean" + }, + "IgnoreIndex": { + "type": "boolean" + }, + "GenPtsInput": { + "type": "boolean" + }, + "SupportsTranscoding": { + "type": "boolean" + }, + "SupportsDirectStream": { + "type": "boolean" + }, + "SupportsDirectPlay": { + "type": "boolean" + }, + "IsInfiniteStream": { + "type": "boolean" + }, + "RequiresOpening": { + "type": "boolean" + }, + "OpenToken": { + "type": "string", + "nullable": true + }, + "RequiresClosing": { + "type": "boolean" + }, + "LiveStreamId": { + "type": "string", + "nullable": true + }, + "BufferMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RequiresLooping": { + "type": "boolean" + }, + "SupportsProbing": { + "type": "boolean" + }, + "VideoType": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "nullable": true + }, + "IsoType": { + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "nullable": true + }, + "Video3DFormat": { + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "nullable": true + }, + "MediaAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaAttachment" + }, + "nullable": true + }, + "Formats": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Timestamp": { + "allOf": [ + { + "$ref": "#/components/schemas/TransportStreamTimestamp" + } + ], + "nullable": true + }, + "RequiredHttpHeaders": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "TranscodingUrl": { + "type": "string", + "nullable": true + }, + "TranscodingSubProtocol": { + "type": "string", + "nullable": true + }, + "TranscodingContainer": { + "type": "string", + "nullable": true + }, + "AnalyzeDurationMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultAudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultSubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "MediaSourceType": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "type": "string" + }, + "MediaStream": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "ColorRange": { + "type": "string", + "description": "Gets or sets the color range.", + "nullable": true + }, + "ColorSpace": { + "type": "string", + "description": "Gets or sets the color space.", + "nullable": true + }, + "ColorTransfer": { + "type": "string", + "description": "Gets or sets the color transfer.", + "nullable": true + }, + "ColorPrimaries": { + "type": "string", + "description": "Gets or sets the color primaries.", + "nullable": true + }, + "DvVersionMajor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version major.", + "format": "int32", + "nullable": true + }, + "DvVersionMinor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version minor.", + "format": "int32", + "nullable": true + }, + "DvProfile": { + "type": "integer", + "description": "Gets or sets the Dolby Vision profile.", + "format": "int32", + "nullable": true + }, + "DvLevel": { + "type": "integer", + "description": "Gets or sets the Dolby Vision level.", + "format": "int32", + "nullable": true + }, + "RpuPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision rpu present flag.", + "format": "int32", + "nullable": true + }, + "ElPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision el present flag.", + "format": "int32", + "nullable": true + }, + "BlPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl present flag.", + "format": "int32", + "nullable": true + }, + "DvBlSignalCompatibilityId": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl signal compatibility id.", + "format": "int32", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "TimeBase": { + "type": "string", + "description": "Gets or sets the time base.", + "nullable": true + }, + "CodecTimeBase": { + "type": "string", + "description": "Gets or sets the codec time base.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title.", + "nullable": true + }, + "VideoRange": { + "type": "string", + "description": "Gets the video range.", + "nullable": true, + "readOnly": true + }, + "VideoRangeType": { + "type": "string", + "description": "Gets the video range type.", + "nullable": true, + "readOnly": true + }, + "VideoDoViTitle": { + "type": "string", + "description": "Gets the video dovi title.", + "nullable": true, + "readOnly": true + }, + "LocalizedUndefined": { + "type": "string", + "nullable": true + }, + "LocalizedDefault": { + "type": "string", + "nullable": true + }, + "LocalizedForced": { + "type": "string", + "nullable": true + }, + "LocalizedExternal": { + "type": "string", + "nullable": true + }, + "DisplayTitle": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "NalLengthSize": { + "type": "string", + "nullable": true + }, + "IsInterlaced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is interlaced." + }, + "IsAVC": { + "type": "boolean", + "nullable": true + }, + "ChannelLayout": { + "type": "string", + "description": "Gets or sets the channel layout.", + "nullable": true + }, + "BitRate": { + "type": "integer", + "description": "Gets or sets the bit rate.", + "format": "int32", + "nullable": true + }, + "BitDepth": { + "type": "integer", + "description": "Gets or sets the bit depth.", + "format": "int32", + "nullable": true + }, + "RefFrames": { + "type": "integer", + "description": "Gets or sets the reference frames.", + "format": "int32", + "nullable": true + }, + "PacketLength": { + "type": "integer", + "description": "Gets or sets the length of the packet.", + "format": "int32", + "nullable": true + }, + "Channels": { + "type": "integer", + "description": "Gets or sets the channels.", + "format": "int32", + "nullable": true + }, + "SampleRate": { + "type": "integer", + "description": "Gets or sets the sample rate.", + "format": "int32", + "nullable": true + }, + "IsDefault": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is default." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is forced." + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "AverageFrameRate": { + "type": "number", + "description": "Gets or sets the average frame rate.", + "format": "float", + "nullable": true + }, + "RealFrameRate": { + "type": "number", + "description": "Gets or sets the real frame rate.", + "format": "float", + "nullable": true + }, + "Profile": { + "type": "string", + "description": "Gets or sets the profile.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamType" + } + ], + "description": "Gets or sets the type." + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "Score": { + "type": "integer", + "description": "Gets or sets the score.", + "format": "int32", + "nullable": true + }, + "IsExternal": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external." + }, + "DeliveryMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the method.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + }, + "IsExternalUrl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external URL.", + "nullable": true + }, + "IsTextSubtitleStream": { + "type": "boolean", + "readOnly": true + }, + "SupportsExternalStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports external stream]." + }, + "Path": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "PixelFormat": { + "type": "string", + "description": "Gets or sets the pixel format.", + "nullable": true + }, + "Level": { + "type": "number", + "description": "Gets or sets the level.", + "format": "double", + "nullable": true + }, + "IsAnamorphic": { + "type": "boolean", + "description": "Gets or sets whether this instance is anamorphic.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaStream." + }, + "MediaStreamType": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data" + ], + "type": "string", + "description": "Enum MediaStreamType." + }, + "MediaUpdateInfoDto": { + "type": "object", + "properties": { + "Updates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUpdateInfoPathDto" + }, + "description": "Gets or sets the list of updates." + } + }, + "additionalProperties": false, + "description": "Media Update Info Dto." + }, + "MediaUpdateInfoPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media path.", + "nullable": true + }, + "UpdateType": { + "type": "string", + "description": "Gets or sets media update type.\r\nCreated, Modified, Deleted.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The media update info path." + }, + "MediaUrl": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MessageCommand": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Header": { + "type": "string", + "nullable": true + }, + "Text": { + "type": "string" + }, + "TimeoutMs": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetadataConfiguration": { + "type": "object", + "properties": { + "UseFileCreationTimeForDateAdded": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MetadataEditorInfo": { + "type": "object", + "properties": { + "ParentalRatingOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + }, + "Countries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + }, + "Cultures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + }, + "ExternalIdInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + }, + "ContentType": { + "type": "string", + "nullable": true + }, + "ContentTypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + } + }, + "additionalProperties": false + }, + "MetadataField": { + "enum": [ + "Cast", + "Genres", + "ProductionLocations", + "Studios", + "Tags", + "Name", + "Overview", + "Runtime", + "OfficialRating" + ], + "type": "string", + "description": "Enum MetadataFields." + }, + "MetadataOptions": { + "type": "object", + "properties": { + "ItemType": { + "type": "string", + "nullable": true + }, + "DisabledMetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledMetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MetadataOptions." + }, + "MetadataRefreshMode": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "type": "string" + }, + "MovePlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the item.", + "format": "uuid" + }, + "NewIndex": { + "type": "integer", + "description": "Gets or sets the new position.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class MovePlaylistItemRequestDto." + }, + "MovieInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MovieInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "MusicVideoInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MusicVideoInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "NameGuidPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "NameIdPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NameValuePair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "RequireHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the server should force connections over HTTPS." + }, + "CertificatePath": { + "type": "string", + "description": "Gets or sets the filesystem path of an X.509 certificate to use for SSL." + }, + "CertificatePassword": { + "type": "string", + "description": "Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath." + }, + "BaseUrl": { + "type": "string", + "description": "Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at." + }, + "PublicHttpsPort": { + "type": "integer", + "description": "Gets or sets the public HTTPS port.", + "format": "int32" + }, + "HttpServerPortNumber": { + "type": "integer", + "description": "Gets or sets the HTTP server port number.", + "format": "int32" + }, + "HttpsPortNumber": { + "type": "integer", + "description": "Gets or sets the HTTPS server port number.", + "format": "int32" + }, + "EnableHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use HTTPS." + }, + "PublicPort": { + "type": "integer", + "description": "Gets or sets the public mapped port.", + "format": "int32" + }, + "UPnPCreateHttpPortMap": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding." + }, + "UDPPortRange": { + "type": "string", + "description": "Gets or sets the UDPPortRange." + }, + "EnableIPV6": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets IPV6 capability." + }, + "EnableIPV4": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets IPV4 capability." + }, + "EnableSSDPTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log.\r\n\"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect." + }, + "SSDPTracingFilter": { + "type": "string", + "description": "Gets or sets the SSDPTracingFilter\r\nGets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "UDPSendCount": { + "type": "integer", + "description": "Gets or sets the number of times SSDP UDP messages are sent.", + "format": "int32" + }, + "UDPSendDelay": { + "type": "integer", + "description": "Gets or sets the delay between each groups of SSDP messages (in ms).", + "format": "int32" + }, + "IgnoreVirtualInterfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding." + }, + "VirtualInterfaceNames": { + "type": "string", + "description": "Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. ." + }, + "GatewayMonitorPeriod": { + "type": "integer", + "description": "Gets or sets the time (in seconds) between the pings of SSDP gateway monitor.", + "format": "int32" + }, + "EnableMultiSocketBinding": { + "type": "boolean", + "description": "Gets a value indicating whether multi-socket binding is available.", + "readOnly": true + }, + "TrustAllIP6Interfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network.\r\nDepending on the address range implemented ULA ranges might not be used." + }, + "HDHomerunPortRange": { + "type": "string", + "description": "Gets or sets the ports that HDHomerun uses." + }, + "PublishedServerUriBySubnet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + }, + "AutoDiscoveryTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery tracing is enabled." + }, + "AutoDiscovery": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery is enabled." + }, + "RemoteIPFilter": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the filter for remote IP connectivity. Used in conjuntion with ." + }, + "IsRemoteIPFilterBlacklist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist." + }, + "EnableUPnP": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable automatic port forwarding." + }, + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether access outside of the LAN is permitted." + }, + "LocalNetworkSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the subnets that are deemed to make up the LAN." + }, + "LocalNetworkAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used." + }, + "KnownProxies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the known proxies. If the proxy is a network, it's added to the KnownNetworks." + }, + "EnablePublishedServerUriByRequest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the published server uri is based on information in HTTP requests." + } + }, + "additionalProperties": false, + "description": "Defines the Jellyfin.Networking.Configuration.NetworkConfiguration." + }, + "NewGroupRequestDto": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Gets or sets the group name." + } + }, + "additionalProperties": false, + "description": "Class NewGroupRequestDto." + }, + "NextItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class NextItemRequestDto." + }, + "NotificationDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the notification ID. Defaults to an empty string." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the notification's user ID. Defaults to an empty string." + }, + "Date": { + "type": "string", + "description": "Gets or sets the notification date.", + "format": "date-time" + }, + "IsRead": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the notification has been read. Defaults to false." + }, + "Name": { + "type": "string", + "description": "Gets or sets the notification's name. Defaults to an empty string." + }, + "Description": { + "type": "string", + "description": "Gets or sets the notification's description. Defaults to an empty string." + }, + "Url": { + "type": "string", + "description": "Gets or sets the notification's URL. Defaults to an empty string." + }, + "Level": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the notification level." + } + }, + "additionalProperties": false, + "description": "The notification DTO." + }, + "NotificationLevel": { + "enum": [ + "Normal", + "Warning", + "Error" + ], + "type": "string" + }, + "NotificationOption": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "DisabledMonitorUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets user Ids to not monitor (it's opt out)." + }, + "SendToUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets user Ids to send to (if SendToUserMode == Custom)." + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Notifications.NotificationOption is enabled." + }, + "DisabledServices": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the disabled services." + }, + "SendToUserMode": { + "allOf": [ + { + "$ref": "#/components/schemas/SendToUserType" + } + ], + "description": "Gets or sets the send to user mode." + } + }, + "additionalProperties": false + }, + "NotificationOptions": { + "type": "object", + "properties": { + "Options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NotificationResultDto": { + "type": "object", + "properties": { + "Notifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationDto" + }, + "description": "Gets or sets the current page of notifications." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of notifications.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "A list of notifications with the total record count for pagination." + }, + "NotificationsSummaryDto": { + "type": "object", + "properties": { + "UnreadCount": { + "type": "integer", + "description": "Gets or sets the number of unread notifications.", + "format": "int32" + }, + "MaxUnreadNotificationLevel": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the maximum unread notification level.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The notification summary DTO." + }, + "NotificationTypeInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Enabled": { + "type": "boolean" + }, + "Category": { + "type": "string", + "nullable": true + }, + "IsBasedOnUserEvent": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ObjectGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "OpenLiveStreamDto": { + "type": "object", + "properties": { + "OpenToken": { + "type": "string", + "description": "Gets or sets the open token.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session id.", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enale direct stream.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't.", + "nullable": true + }, + "DirectPlayProtocols": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaProtocol" + }, + "description": "Gets or sets the device play protocols." + } + }, + "additionalProperties": false, + "description": "Open live stream dto." + }, + "PackageInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name." + }, + "description": { + "type": "string", + "description": "Gets or sets a long description of the plugin containing features or helpful explanations." + }, + "overview": { + "type": "string", + "description": "Gets or sets a short overview of what the plugin does." + }, + "owner": { + "type": "string", + "description": "Gets or sets the owner." + }, + "category": { + "type": "string", + "description": "Gets or sets the category." + }, + "guid": { + "type": "string", + "description": "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates.", + "format": "uuid" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VersionInfo" + }, + "description": "Gets or sets the versions." + }, + "imageUrl": { + "type": "string", + "description": "Gets or sets the image url for the package.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PackageInfo." + }, + "ParentalRating": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "integer", + "description": "Gets or sets the value.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class ParentalRating." + }, + "PathSubstitution": { + "type": "object", + "properties": { + "From": { + "type": "string", + "description": "Gets or sets the value to substitute." + }, + "To": { + "type": "string", + "description": "Gets or sets the value to substitution with." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Configuration.PathSubstitution." + }, + "PersonLookupInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "PersonLookupInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "PingRequestDto": { + "type": "object", + "properties": { + "Ping": { + "type": "integer", + "description": "Gets or sets the ping time.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PingRequestDto." + }, + "PinRedeemResult": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success." + }, + "UsersReset": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the users reset." + } + }, + "additionalProperties": false + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "type": "string" + }, + "PlaybackErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "type": "string" + }, + "PlaybackInfoDto": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the playback userId.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media source id.", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream id.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't.", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct stream.", + "nullable": true + }, + "EnableTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable transcoding.", + "nullable": true + }, + "AllowVideoStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable video stream copy.", + "nullable": true + }, + "AllowAudioStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to allow audio stream copy.", + "nullable": true + }, + "AutoOpenLiveStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to auto open the live stream.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Plabyback info dto." + }, + "PlaybackInfoResponse": { + "type": "object", + "properties": { + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media sources." + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "ErrorCode": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackErrorCode" + } + ], + "description": "Gets or sets the error code.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackInfoResponse." + }, + "PlaybackProgressInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackProgressInfo." + }, + "PlaybackStartInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStartInfo." + }, + "PlaybackStopInfo": { + "type": "object", + "properties": { + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "Failed": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed." + }, + "NextMediaType": { + "type": "string", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStopInfo." + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "type": "string", + "description": "Enum PlayCommand." + }, + "PlayerStateInfo": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the now playing position ticks.", + "format": "int64", + "nullable": true + }, + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing subtitle stream.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the now playing media version identifier.", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the now playing live stream identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PlaylistCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "type": "string" + }, + "PlayRequest": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids.", + "nullable": true + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks that the first item should be played at.", + "format": "int64", + "nullable": true + }, + "PlayCommand": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Gets or sets the play command." + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "format": "uuid" + }, + "SubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlayRequest." + }, + "PlayRequestDto": { + "type": "object", + "properties": { + "PlayingQueue": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playing queue." + }, + "PlayingItemPosition": { + "type": "integer", + "description": "Gets or sets the position of the playing item in the queue.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PlayRequestDto." + }, + "PlaystateCommand": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "type": "string", + "description": "Enum PlaystateCommand." + }, + "PlaystateRequest": { + "type": "object", + "properties": { + "Command": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + }, + "SeekPositionTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PluginInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Version": { + "type": "string", + "description": "Gets or sets the version." + }, + "ConfigurationFileName": { + "type": "string", + "description": "Gets or sets the name of the configuration file.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description." + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique id.", + "format": "uuid" + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the plugin can be uninstalled." + }, + "HasImage": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this plugin has a valid image." + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/PluginStatus" + } + ], + "description": "Gets or sets a value indicating the status of the plugin." + } + }, + "additionalProperties": false, + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins." + }, + "PluginStatus": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "type": "string", + "description": "Plugin load status." + }, + "PreviousItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class PreviousItemRequestDto." + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "ProfileCondition": { + "type": "object", + "properties": { + "Condition": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionType" + } + ] + }, + "Property": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionValue" + } + ] + }, + "Value": { + "type": "string", + "nullable": true + }, + "IsRequired": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProfileConditionType": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "type": "string" + }, + "ProfileConditionValue": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "type": "string" + }, + "ProgramAudio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "type": "string" + }, + "PublicSystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFilters": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFiltersLegacy": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "OfficialRatings": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueItem": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueRequestDto": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the items to enqueue." + }, + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupQueueMode" + } + ], + "description": "Enum GroupQueueMode." + } + }, + "additionalProperties": false, + "description": "Class QueueRequestDto." + }, + "QuickConnectDto": { + "required": [ + "Secret" + ], + "type": "object", + "properties": { + "Secret": { + "type": "string", + "description": "Gets or sets the quick connect secret." + } + }, + "additionalProperties": false, + "description": "The quick connect request body." + }, + "QuickConnectResult": { + "type": "object", + "properties": { + "Authenticated": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this request is authorized." + }, + "Secret": { + "type": "string", + "description": "Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information." + }, + "Code": { + "type": "string", + "description": "Gets the user facing code used so the user can quickly differentiate this request from others." + }, + "DeviceId": { + "type": "string", + "description": "Gets the requesting device id." + }, + "DeviceName": { + "type": "string", + "description": "Gets the requesting device name." + }, + "AppName": { + "type": "string", + "description": "Gets the requesting app name." + }, + "AppVersion": { + "type": "string", + "description": "Gets the requesting app version." + }, + "DateAdded": { + "type": "string", + "description": "Gets or sets the DateTime that this request was created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Stores the state of an quick connect request." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "type": "string" + }, + "ReadyRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ReadyRequest." + }, + "RecommendationDto": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "RecommendationType": { + "allOf": [ + { + "$ref": "#/components/schemas/RecommendationType" + } + ] + }, + "BaselineItemName": { + "type": "string", + "nullable": true + }, + "CategoryId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "type": "string" + }, + "RecordingStatus": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "type": "string" + }, + "RemoteImageInfo": { + "type": "object", + "properties": { + "ProviderName": { + "type": "string", + "description": "Gets or sets the name of the provider.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "ThumbnailUrl": { + "type": "string", + "description": "Gets or sets a url used for previewing a smaller version.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "double", + "nullable": true + }, + "VoteCount": { + "type": "integer", + "description": "Gets or sets the vote count.", + "format": "int32", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "RatingType": { + "allOf": [ + { + "$ref": "#/components/schemas/RatingType" + } + ], + "description": "Gets or sets the type of the rating." + } + }, + "additionalProperties": false, + "description": "Class RemoteImageInfo." + }, + "RemoteImageResult": { + "type": "object", + "properties": { + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteImageInfo" + }, + "description": "Gets or sets the images.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total record count.", + "format": "int32" + }, + "Providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the providers.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class RemoteImageResult." + }, + "RemoteSearchResult": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ImageUrl": { + "type": "string", + "nullable": true + }, + "SearchProviderName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "nullable": true + }, + "AlbumArtist": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ], + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoteSubtitleInfo": { + "type": "object", + "properties": { + "ThreeLetterISOLanguageName": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + }, + "ProviderName": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Format": { + "type": "string", + "nullable": true + }, + "Author": { + "type": "string", + "nullable": true + }, + "Comment": { + "type": "string", + "nullable": true + }, + "DateCreated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "format": "float", + "nullable": true + }, + "DownloadCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IsHashMatch": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoveFromPlaylistRequestDto": { + "type": "object", + "properties": { + "PlaylistItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playlist identifiers ot the items. Ignored when clearing the playlist." + }, + "ClearPlaylist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the entire playlist should be cleared." + }, + "ClearPlayingItem": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist." + } + }, + "additionalProperties": false, + "description": "Class RemoveFromPlaylistRequestDto." + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "type": "string" + }, + "RepositoryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the repository is enabled." + } + }, + "additionalProperties": false, + "description": "Class RepositoryInfo." + }, + "ResponseProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "nullable": true + }, + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "OrgPn": { + "type": "string", + "nullable": true + }, + "MimeType": { + "type": "string", + "nullable": true + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "type": "string", + "description": "An enum representing the axis that should be scrolled." + }, + "SearchHint": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid" + }, + "Id": { + "type": "string", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "MatchedTerm": { + "type": "string", + "description": "Gets or sets the matched term.", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "ThumbImageTag": { + "type": "string", + "description": "Gets or sets the thumb image tag.", + "nullable": true + }, + "ThumbImageItemId": { + "type": "string", + "description": "Gets or sets the thumb image item identifier.", + "nullable": true + }, + "BackdropImageTag": { + "type": "string", + "description": "Gets or sets the backdrop image tag.", + "nullable": true + }, + "BackdropImageItemId": { + "type": "string", + "description": "Gets or sets the backdrop image item identifier.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the type of the media.", + "nullable": true + }, + "StartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "EndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "Series": { + "type": "string", + "description": "Gets or sets the series.", + "nullable": true + }, + "Status": { + "type": "string", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "format": "uuid" + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid" + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the name of the channel.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SearchHintResult": { + "type": "object", + "properties": { + "SearchHints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchHint" + }, + "description": "Gets the search hints." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets the total record count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SeekRequestDto": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class SeekRequestDto." + }, + "SendCommand": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the playing item.", + "format": "uuid" + }, + "When": { + "type": "string", + "description": "Gets or sets the UTC time when to execute the command.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets the position ticks.", + "format": "int64", + "nullable": true + }, + "Command": { + "allOf": [ + { + "$ref": "#/components/schemas/SendCommandType" + } + ], + "description": "Gets the command." + }, + "EmittedAt": { + "type": "string", + "description": "Gets the UTC time when this command has been emitted.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class SendCommand." + }, + "SendCommandType": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "type": "string", + "description": "Enum SendCommandType." + }, + "SendToUserType": { + "enum": [ + "All", + "Admins", + "Custom" + ], + "type": "string" + }, + "SeriesInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SeriesInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "SeriesStatus": { + "enum": [ + "Continuing", + "Ended" + ], + "type": "string", + "description": "Enum SeriesStatus." + }, + "SeriesTimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "RecordAnyTime": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any time]." + }, + "SkipEpisodesInLibrary": { + "type": "boolean" + }, + "RecordAnyChannel": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any channel]." + }, + "KeepUpTo": { + "type": "integer", + "format": "int32" + }, + "RecordNewOnly": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record new only]." + }, + "Days": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the days.", + "nullable": true + }, + "DayPattern": { + "allOf": [ + { + "$ref": "#/components/schemas/DayPattern" + } + ], + "description": "Gets or sets the day pattern.", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SeriesTimerInfoDto." + }, + "SeriesTimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ServerConfiguration": { + "type": "object", + "properties": { + "LogFileRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain log files.", + "format": "int32" + }, + "IsStartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is first run." + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "PreviousVersion": { + "type": "string", + "description": "Gets or sets the last known version that was ran using the configuration.", + "nullable": true + }, + "PreviousVersionStr": { + "type": "string", + "description": "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable.", + "nullable": true + }, + "EnableMetrics": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable prometheus metrics exporting." + }, + "EnableNormalizedItemByNameIds": { + "type": "boolean" + }, + "IsPortAuthorized": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is port authorized." + }, + "QuickConnectAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether quick connect is available for use on this server." + }, + "EnableCaseSensitiveItemIds": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable case sensitive item ids]." + }, + "DisableLiveTvChannelUserDataName": { + "type": "boolean" + }, + "MetadataPath": { + "type": "string", + "description": "Gets or sets the metadata path." + }, + "MetadataNetworkPath": { + "type": "string" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language." + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code." + }, + "SortReplaceCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be replaced with a ' ' in strings to create a sort name." + }, + "SortRemoveCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be removed from strings to create a sort name." + }, + "SortRemoveWords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets words to be removed from strings to create a sort name." + }, + "MinResumePct": { + "type": "integer", + "description": "Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxResumePct": { + "type": "integer", + "description": "Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "MinResumeDurationSeconds": { + "type": "integer", + "description": "Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates..", + "format": "int32" + }, + "MinAudiobookResume": { + "type": "integer", + "description": "Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxAudiobookResume": { + "type": "integer", + "description": "Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "LibraryMonitorDelay": { + "type": "integer", + "description": "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files.", + "format": "int32" + }, + "ImageSavingConvention": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageSavingConvention" + } + ], + "description": "Gets or sets the image saving convention." + }, + "MetadataOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "SkipDeserializationForBasicTypes": { + "type": "boolean" + }, + "ServerName": { + "type": "string" + }, + "UICulture": { + "type": "string" + }, + "SaveMetadataHidden": { + "type": "boolean" + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "EnableFolderView": { + "type": "boolean" + }, + "EnableGroupingIntoCollections": { + "type": "boolean" + }, + "DisplaySpecialsWithinSeasons": { + "type": "boolean" + }, + "CodecsUsed": { + "type": "array", + "items": { + "type": "string" + } + }, + "PluginRepositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + }, + "EnableExternalContentInSuggestions": { + "type": "boolean" + }, + "ImageExtractionTimeoutMs": { + "type": "integer", + "format": "int32" + }, + "PathSubstitutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathSubstitution" + } + }, + "EnableSlowResponseWarning": { + "type": "boolean", + "description": "Gets or sets a value indicating whether slow server responses should be logged as a warning." + }, + "SlowResponseThresholdMs": { + "type": "integer", + "description": "Gets or sets the threshold for the slow response time warning in ms.", + "format": "int64" + }, + "CorsHosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the cors hosts." + }, + "ActivityLogRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain activity logs.", + "format": "int32", + "nullable": true + }, + "LibraryScanFanoutConcurrency": { + "type": "integer", + "description": "Gets or sets the how the library scan fans out.", + "format": "int32" + }, + "LibraryMetadataRefreshConcurrency": { + "type": "integer", + "description": "Gets or sets the how many metadata refreshes can run concurrently.", + "format": "int32" + }, + "RemoveOldPlugins": { + "type": "boolean", + "description": "Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder." + }, + "AllowClientLogUpload": { + "type": "boolean", + "description": "Gets or sets a value indicating whether clients should be allowed to upload logs." + } + }, + "additionalProperties": false, + "description": "Represents the server configuration." + }, + "ServerDiscoveryInfo": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Gets the address." + }, + "Id": { + "type": "string", + "description": "Gets the server identifier." + }, + "Name": { + "type": "string", + "description": "Gets the name." + }, + "EndpointAddress": { + "type": "string", + "description": "Gets the endpoint address.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The server discovery info model." + }, + "SessionInfo": { + "type": "object", + "properties": { + "PlayState": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayerStateInfo" + } + ], + "nullable": true + }, + "AdditionalUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionUserInfo" + }, + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilities" + } + ], + "nullable": true + }, + "RemoteEndPoint": { + "type": "string", + "description": "Gets or sets the remote end point.", + "nullable": true + }, + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the playable media types.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Client": { + "type": "string", + "description": "Gets or sets the type of the client.", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time" + }, + "LastPlaybackCheckIn": { + "type": "string", + "description": "Gets or sets the last playback check in.", + "format": "date-time" + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "DeviceType": { + "type": "string", + "description": "Gets or sets the type of the device.", + "nullable": true + }, + "NowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the now playing item.", + "nullable": true + }, + "FullNowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItem" + } + ], + "description": "Class BaseItem.", + "nullable": true + }, + "NowViewingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "ApplicationVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "TranscodingInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodingInfo" + } + ], + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Gets a value indicating whether this instance is active.", + "readOnly": true + }, + "SupportsMediaControl": { + "type": "boolean", + "readOnly": true + }, + "SupportsRemoteControl": { + "type": "boolean", + "readOnly": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "NowPlayingQueueFullItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "HasCustomDeviceName": { + "type": "boolean" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "nullable": true + }, + "UserPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets the supported commands.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class SessionInfo." + }, + "SessionMessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "type": "string", + "description": "The different kinds of messages that are used in the WebSocket api." + }, + "SessionUserInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the name of the user.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SessionUserInfo." + }, + "SetChannelMappingDto": { + "required": [ + "ProviderChannelId", + "ProviderId", + "TunerChannelId" + ], + "type": "object", + "properties": { + "ProviderId": { + "type": "string", + "description": "Gets or sets the provider id." + }, + "TunerChannelId": { + "type": "string", + "description": "Gets or sets the tuner channel id." + }, + "ProviderChannelId": { + "type": "string", + "description": "Gets or sets the provider channel id." + } + }, + "additionalProperties": false, + "description": "Set channel mapping dto." + }, + "SetPlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class SetPlaylistItemRequestDto." + }, + "SetRepeatModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Enum GroupRepeatMode." + } + }, + "additionalProperties": false, + "description": "Class SetRepeatModeRequestDto." + }, + "SetShuffleModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Enum GroupShuffleMode." + } + }, + "additionalProperties": false, + "description": "Class SetShuffleModeRequestDto." + }, + "SongInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Album": { + "type": "string", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string", + "description": "An enum representing the sorting order." + }, + "SpecialViewOptionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets view option name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets view option id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Special view option dto." + }, + "StartupConfigurationDto": { + "type": "object", + "properties": { + "UICulture": { + "type": "string", + "description": "Gets or sets UI language culture.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred language for the metadata.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup configuration DTO." + }, + "StartupRemoteAccessDto": { + "required": [ + "EnableAutomaticPortMapping", + "EnableRemoteAccess" + ], + "type": "object", + "properties": { + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable remote access." + }, + "EnableAutomaticPortMapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable automatic port mapping." + } + }, + "additionalProperties": false, + "description": "Startup remote access dto." + }, + "StartupUserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the user's password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup user DTO." + }, + "SubtitleDeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "type": "string", + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "SubtitleOptions": { + "type": "object", + "properties": { + "SkipIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipIfAudioTrackMatches": { + "type": "boolean" + }, + "DownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DownloadMovieSubtitles": { + "type": "boolean" + }, + "DownloadEpisodeSubtitles": { + "type": "boolean" + }, + "OpenSubtitlesUsername": { + "type": "string", + "nullable": true + }, + "OpenSubtitlesPasswordHash": { + "type": "string", + "nullable": true + }, + "IsOpenSubtitleVipAccount": { + "type": "boolean" + }, + "RequirePerfectMatch": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubtitlePlaybackMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "type": "string", + "description": "An enum representing a subtitle playback mode." + }, + "SubtitleProfile": { + "type": "object", + "properties": { + "Format": { + "type": "string", + "nullable": true + }, + "Method": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "DidlMode": { + "type": "string", + "nullable": true + }, + "Language": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SyncPlayUserAccessType": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "type": "string", + "description": "Enum SyncPlayUserAccessType." + }, + "SystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + }, + "OperatingSystemDisplayName": { + "type": "string", + "description": "Gets or sets the display name of the operating system.", + "nullable": true + }, + "PackageName": { + "type": "string", + "description": "Gets or sets the package name.", + "nullable": true + }, + "HasPendingRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has pending restart." + }, + "IsShuttingDown": { + "type": "boolean" + }, + "SupportsLibraryMonitor": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports library monitor]." + }, + "WebSocketPortNumber": { + "type": "integer", + "description": "Gets or sets the web socket port number.", + "format": "int32" + }, + "CompletedInstallations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InstallationInfo" + }, + "description": "Gets or sets the completed installations.", + "nullable": true + }, + "CanSelfRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can self restart." + }, + "CanLaunchWebBrowser": { + "type": "boolean" + }, + "ProgramDataPath": { + "type": "string", + "description": "Gets or sets the program data path.", + "nullable": true + }, + "WebPath": { + "type": "string", + "description": "Gets or sets the web UI resources path.", + "nullable": true + }, + "ItemsByNamePath": { + "type": "string", + "description": "Gets or sets the items by name path.", + "nullable": true + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "LogPath": { + "type": "string", + "description": "Gets or sets the log path.", + "nullable": true + }, + "InternalMetadataPath": { + "type": "string", + "description": "Gets or sets the internal metadata path.", + "nullable": true + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the transcode path.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available.", + "deprecated": true + }, + "EncoderLocation": { + "allOf": [ + { + "$ref": "#/components/schemas/FFmpegLocation" + } + ], + "description": "Enum describing the location of the FFmpeg tool.", + "deprecated": true + }, + "SystemArchitecture": { + "allOf": [ + { + "$ref": "#/components/schemas/Architecture" + } + ] + } + }, + "additionalProperties": false, + "description": "Class SystemInfo." + }, + "TaskCompletionStatus": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "type": "string", + "description": "Enum TaskCompletionStatus." + }, + "TaskInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "State": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskState" + } + ], + "description": "Gets or sets the state of the task." + }, + "CurrentProgressPercentage": { + "type": "number", + "description": "Gets or sets the progress.", + "format": "double", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "LastExecutionResult": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Gets or sets the last execution result.", + "nullable": true + }, + "Triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + }, + "description": "Gets or sets the triggers.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description.", + "nullable": true + }, + "Category": { + "type": "string", + "description": "Gets or sets the category.", + "nullable": true + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskInfo." + }, + "TaskResult": { + "type": "object", + "properties": { + "StartTimeUtc": { + "type": "string", + "description": "Gets or sets the start time UTC.", + "format": "date-time" + }, + "EndTimeUtc": { + "type": "string", + "description": "Gets or sets the end time UTC.", + "format": "date-time" + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskCompletionStatus" + } + ], + "description": "Gets or sets the status." + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "ErrorMessage": { + "type": "string", + "description": "Gets or sets the error message.", + "nullable": true + }, + "LongErrorMessage": { + "type": "string", + "description": "Gets or sets the long error message.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskExecutionInfo." + }, + "TaskState": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "type": "string", + "description": "Enum TaskState." + }, + "TaskTriggerInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "TimeOfDayTicks": { + "type": "integer", + "description": "Gets or sets the time of day.", + "format": "int64", + "nullable": true + }, + "IntervalTicks": { + "type": "integer", + "description": "Gets or sets the interval.", + "format": "int64", + "nullable": true + }, + "DayOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/DayOfWeek" + } + ], + "description": "Gets or sets the day of week.", + "nullable": true + }, + "MaxRuntimeTicks": { + "type": "integer", + "description": "Gets or sets the maximum runtime ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskTriggerInfo." + }, + "ThemeMediaResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + }, + "OwnerId": { + "type": "string", + "description": "Gets or sets the owner id.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ThemeMediaResult." + }, + "TimerEventInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string" + }, + "ProgramId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ], + "description": "Gets or sets the status." + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ExternalSeriesTimerId": { + "type": "string", + "description": "Gets or sets the external series timer identifier.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "ProgramInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the program information.", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimerInfoDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "TrailerInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TrailerInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "TranscodeReason": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported" + ], + "type": "string" + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "type": "string" + }, + "TranscodingInfo": { + "type": "object", + "properties": { + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "IsVideoDirect": { + "type": "boolean" + }, + "IsAudioDirect": { + "type": "boolean" + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Framerate": { + "type": "number", + "format": "float", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "format": "double", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioChannels": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "HardwareAccelerationType": { + "allOf": [ + { + "$ref": "#/components/schemas/HardwareEncodingType" + } + ], + "nullable": true + }, + "TranscodeReasons": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodeReason" + } + } + }, + "additionalProperties": false + }, + "TranscodingProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string" + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "VideoCodec": { + "type": "string" + }, + "AudioCodec": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "EstimateContentLength": { + "type": "boolean", + "default": false + }, + "EnableMpegtsM2TsMode": { + "type": "boolean", + "default": false + }, + "TranscodeSeekInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodeSeekInfo" + } + ], + "default": "Auto" + }, + "CopyTimestamps": { + "type": "boolean", + "default": false + }, + "Context": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ], + "default": "Streaming" + }, + "EnableSubtitlesInManifest": { + "type": "boolean", + "default": false + }, + "MaxAudioChannels": { + "type": "string", + "nullable": true + }, + "MinSegments": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "SegmentLength": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "BreakOnNonKeyFrames": { + "type": "boolean", + "default": false + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + } + } + }, + "additionalProperties": false + }, + "TransportStreamTimestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "type": "string" + }, + "TunerChannelMapping": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "ProviderChannelName": { + "type": "string", + "nullable": true + }, + "ProviderChannelId": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TunerHostInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Url": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "DeviceId": { + "type": "string", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "nullable": true + }, + "ImportFavoritesOnly": { + "type": "boolean" + }, + "AllowHWTranscoding": { + "type": "boolean" + }, + "EnableStreamLooping": { + "type": "boolean" + }, + "Source": { + "type": "string", + "nullable": true + }, + "TunerCount": { + "type": "integer", + "format": "int32" + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TypeOptions": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "UnratedItem": { + "enum": [ + "Movie", + "Trailer", + "Series", + "Music", + "Book", + "LiveTvChannel", + "LiveTvProgram", + "ChannelContent", + "Other" + ], + "type": "string", + "description": "An enum representing an unrated item." + }, + "UpdateLibraryOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the library item id.", + "format": "uuid" + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateMediaPathRequestDto": { + "required": [ + "Name", + "PathInfo" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the library name." + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets library folder path information." + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateUserEasyPassword": { + "type": "object", + "properties": { + "NewPassword": { + "type": "string", + "description": "Gets or sets the new sha1-hashed password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user easy password request body." + }, + "UpdateUserPassword": { + "type": "object", + "properties": { + "CurrentPassword": { + "type": "string", + "description": "Gets or sets the current sha1-hashed password.", + "nullable": true + }, + "CurrentPw": { + "type": "string", + "description": "Gets or sets the current plain text password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new plain text password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user password request body." + }, + "UploadSubtitleDto": { + "required": [ + "Data", + "Format", + "IsForced", + "Language" + ], + "type": "object", + "properties": { + "Language": { + "type": "string", + "description": "Gets or sets the subtitle language." + }, + "Format": { + "type": "string", + "description": "Gets or sets the subtitle format." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is forced." + }, + "Data": { + "type": "string", + "description": "Gets or sets the subtitle data." + } + }, + "additionalProperties": false, + "description": "Upload subtitles dto." + }, + "UserConfiguration": { + "type": "object", + "properties": { + "AudioLanguagePreference": { + "type": "string", + "description": "Gets or sets the audio language preference.", + "nullable": true + }, + "PlayDefaultAudioTrack": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [play default audio track]." + }, + "SubtitleLanguagePreference": { + "type": "string", + "description": "Gets or sets the subtitle language preference.", + "nullable": true + }, + "DisplayMissingEpisodes": { + "type": "boolean" + }, + "GroupedFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleMode": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitlePlaybackMode" + } + ], + "description": "An enum representing a subtitle playback mode." + }, + "DisplayCollectionsView": { + "type": "boolean" + }, + "EnableLocalPassword": { + "type": "boolean" + }, + "OrderedViews": { + "type": "array", + "items": { + "type": "string" + } + }, + "LatestItemsExcludes": { + "type": "array", + "items": { + "type": "string" + } + }, + "MyMediaExcludes": { + "type": "array", + "items": { + "type": "string" + } + }, + "HidePlayedInLatest": { + "type": "boolean" + }, + "RememberAudioSelections": { + "type": "boolean" + }, + "RememberSubtitleSelections": { + "type": "boolean" + }, + "EnableNextEpisodeAutoPlay": { + "type": "boolean" + } + }, + "additionalProperties": false, + "description": "Class UserConfiguration." + }, + "UserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "HasPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has password." + }, + "HasConfiguredPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured password." + }, + "HasConfiguredEasyPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured easy password." + }, + "EnableAutoLogin": { + "type": "boolean", + "description": "Gets or sets whether async login is enabled or not.", + "nullable": true + }, + "LastLoginDate": { + "type": "string", + "description": "Gets or sets the last login date.", + "format": "date-time", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time", + "nullable": true + }, + "Configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Gets or sets the configuration.", + "nullable": true + }, + "Policy": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ], + "description": "Gets or sets the policy.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserDto." + }, + "UserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64" + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32" + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite." + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserItemDataDto." + }, + "UserPolicy": { + "type": "object", + "properties": { + "IsAdministrator": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is administrator." + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "IsDisabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is disabled." + }, + "MaxParentalRating": { + "type": "integer", + "description": "Gets or sets the max parental rating.", + "format": "int32", + "nullable": true + }, + "BlockedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableUserPreferenceAccess": { + "type": "boolean" + }, + "AccessSchedules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessSchedule" + }, + "nullable": true + }, + "BlockUnratedItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnratedItem" + }, + "nullable": true + }, + "EnableRemoteControlOfOtherUsers": { + "type": "boolean" + }, + "EnableSharedDeviceControl": { + "type": "boolean" + }, + "EnableRemoteAccess": { + "type": "boolean" + }, + "EnableLiveTvManagement": { + "type": "boolean" + }, + "EnableLiveTvAccess": { + "type": "boolean" + }, + "EnableMediaPlayback": { + "type": "boolean" + }, + "EnableAudioPlaybackTranscoding": { + "type": "boolean" + }, + "EnableVideoPlaybackTranscoding": { + "type": "boolean" + }, + "EnablePlaybackRemuxing": { + "type": "boolean" + }, + "ForceRemoteSourceTranscoding": { + "type": "boolean" + }, + "EnableContentDeletion": { + "type": "boolean" + }, + "EnableContentDeletionFromFolders": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableContentDownloading": { + "type": "boolean" + }, + "EnableSyncTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable synchronize]." + }, + "EnableMediaConversion": { + "type": "boolean" + }, + "EnabledDevices": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllDevices": { + "type": "boolean" + }, + "EnabledChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllChannels": { + "type": "boolean" + }, + "EnabledFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllFolders": { + "type": "boolean" + }, + "InvalidLoginAttemptCount": { + "type": "integer", + "format": "int32" + }, + "LoginAttemptsBeforeLockout": { + "type": "integer", + "format": "int32" + }, + "MaxActiveSessions": { + "type": "integer", + "format": "int32" + }, + "EnablePublicSharing": { + "type": "boolean" + }, + "BlockedMediaFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "BlockedChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "AuthenticationProviderId": { + "type": "string", + "nullable": true + }, + "PasswordResetProviderId": { + "type": "string", + "nullable": true + }, + "SyncPlayAccess": { + "allOf": [ + { + "$ref": "#/components/schemas/SyncPlayUserAccessType" + } + ], + "description": "Gets or sets a value indicating what SyncPlay features the user can access." + } + }, + "additionalProperties": false + }, + "UtcTimeResponse": { + "type": "object", + "properties": { + "RequestReceptionTime": { + "type": "string", + "description": "Gets the UTC time when request has been received.", + "format": "date-time" + }, + "ResponseTransmissionTime": { + "type": "string", + "description": "Gets the UTC time when response has been sent.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class UtcTimeResponse." + }, + "ValidatePathDto": { + "type": "object", + "properties": { + "ValidateWritable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether validate if path is writable." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "IsFile": { + "type": "boolean", + "description": "Gets or sets is path file.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Validate path object." + }, + "VersionInfo": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "Gets or sets the version." + }, + "VersionNumber": { + "type": "string", + "description": "Gets the version as a System.Version.", + "readOnly": true + }, + "changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "targetAbi": { + "type": "string", + "description": "Gets or sets the ABI that this version was built against.", + "nullable": true + }, + "sourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "timestamp": { + "type": "string", + "description": "Gets or sets a timestamp of when the binary was built.", + "nullable": true + }, + "repositoryName": { + "type": "string", + "description": "Gets or sets the repository name." + }, + "repositoryUrl": { + "type": "string", + "description": "Gets or sets the repository url." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Updates.VersionInfo class." + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "type": "string" + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum VideoType." + }, + "VirtualFolderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the locations.", + "nullable": true + }, + "CollectionType": { + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "PrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the primary image item identifier.", + "nullable": true + }, + "RefreshProgress": { + "type": "number", + "format": "double", + "nullable": true + }, + "RefreshStatus": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Used to hold information about a user's list of configured virtual folders." + }, + "WakeOnLanInfo": { + "type": "object", + "properties": { + "MacAddress": { + "type": "string", + "description": "Gets the MAC address of the device.", + "nullable": true + }, + "Port": { + "type": "integer", + "description": "Gets or sets the wake-on-LAN port.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Provides the MAC address and port for wake-on-LAN functionality." + }, + "XbmcMetadataOptions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "nullable": true + }, + "ReleaseDateFormat": { + "type": "string" + }, + "SaveImagePathsInNfo": { + "type": "boolean" + }, + "EnablePathSubstitution": { + "type": "boolean" + }, + "EnableExtraThumbsDuplication": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "XmlAttribute": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the attribute.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value of the attribute.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.XmlAttribute." + } + }, + "securitySchemes": { + "CustomAuthentication": { + "type": "apiKey", + "description": "API key header parameter", + "name": "Authorization", + "in": "header" + } + } + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.10.3.yaml b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.10.3.yaml new file mode 100644 index 0000000000000..84e7ec828dbbe --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.10.3.yaml @@ -0,0 +1,39347 @@ +openapi: 3.0.1 +info: + title: Jellyfin API + version: 10.10.3 + x-jellyfin-version: 10.10.3 +servers: + - url: http://localhost +paths: + /System/ActivityLog/Entries: + get: + tags: + - ActivityLog + summary: Gets activity log entries. + operationId: GetLogEntries + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: minDate + in: query + description: Optional. The minimum date. Format = ISO. + schema: + type: string + format: date-time + - name: hasUserId + in: query + description: Optional. Filter log entries if it has user id, or not. + schema: + type: boolean + responses: + "200": + description: Activity log returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Keys: + get: + tags: + - ApiKey + summary: Get all keys. + operationId: GetKeys + responses: + "200": + description: Api keys retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - ApiKey + summary: Create a new api key. + operationId: CreateKey + parameters: + - name: app + in: query + description: Name of the app using the authentication key. + required: true + schema: + type: string + responses: + "204": + description: Api key created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Keys/{key}: + delete: + tags: + - ApiKey + summary: Remove an api key. + operationId: RevokeKey + parameters: + - name: key + in: path + description: The access token to delete. + required: true + schema: + type: string + responses: + "204": + description: Api key deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Artists: + get: + tags: + - Artists + summary: Gets all artists from a given item, folder, or the entire library. + operationId: GetArtists + parameters: + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person ids. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Artists returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{name}: + get: + tags: + - Artists + summary: Gets an artist by name. + operationId: GetArtistByName + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Artist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/AlbumArtists: + get: + tags: + - Artists + summary: Gets all album artists from a given item, folder, or the entire library. + operationId: GetAlbumArtists + parameters: + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person ids. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Album artists returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/stream: + get: + tags: + - Audio + summary: Gets an audio stream. + operationId: GetAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + head: + tags: + - Audio + summary: Gets an audio stream. + operationId: HeadAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + /Audio/{itemId}/stream.{container}: + get: + tags: + - Audio + summary: Gets an audio stream. + operationId: GetAudioStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: The audio container. + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamporphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + head: + tags: + - Audio + summary: Gets an audio stream. + operationId: HeadAudioStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: The audio container. + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamporphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + /Branding/Configuration: + get: + tags: + - Branding + summary: Gets branding configuration. + operationId: GetBrandingOptions + responses: + "200": + description: Branding configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BrandingOptions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BrandingOptions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BrandingOptions' + /Branding/Css: + get: + tags: + - Branding + summary: Gets branding css. + operationId: GetBrandingCss + responses: + "200": + description: Branding css returned. + content: + text/css: + schema: + type: string + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "204": + description: No branding css configured. + /Branding/Css.css: + get: + tags: + - Branding + summary: Gets branding css. + operationId: GetBrandingCss_2 + responses: + "200": + description: Branding css returned. + content: + text/css: + schema: + type: string + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "204": + description: No branding css configured. + /Channels: + get: + tags: + - Channels + summary: Gets available channels. + operationId: GetChannels + parameters: + - name: userId + in: query + description: User Id to filter by. Use System.Guid.Empty to not filter by user. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: supportsLatestItems + in: query + description: Optional. Filter by channels that support getting latest items. + schema: + type: boolean + - name: supportsMediaDeletion + in: query + description: Optional. Filter by channels that support media deletion. + schema: + type: boolean + - name: isFavorite + in: query + description: Optional. Filter by channels that are favorite. + schema: + type: boolean + responses: + "200": + description: Channels returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/{channelId}/Features: + get: + tags: + - Channels + summary: Get channel features. + operationId: GetChannelFeatures + parameters: + - name: channelId + in: path + description: Channel id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Channel features returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ChannelFeatures' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/{channelId}/Items: + get: + tags: + - Channels + summary: Get channel items. + operationId: GetChannelItems + parameters: + - name: channelId + in: path + description: Channel Id. + required: true + schema: + type: string + format: uuid + - name: folderId + in: query + description: Optional. Folder Id. + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. User Id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortOrder + in: query + description: Optional. Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Channel items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/Features: + get: + tags: + - Channels + summary: Get all channel features. + operationId: GetAllChannelFeatures + responses: + "200": + description: All channel features returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/Items/Latest: + get: + tags: + - Channels + summary: Gets latest channel items. + operationId: GetLatestChannelItems + parameters: + - name: userId + in: query + description: Optional. User Id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: channelIds + in: query + description: Optional. Specify one or more channel id's, comma delimited. + schema: + type: array + items: + type: string + format: uuid + responses: + "200": + description: Latest channel items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /ClientLog/Document: + post: + tags: + - ClientLog + summary: Upload a document. + operationId: LogFile + requestBody: + content: + text/plain: + schema: + type: string + format: binary + responses: + "200": + description: Document saved. + content: + application/json: + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + "403": + description: Event logging disabled. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "413": + description: Upload size too large. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Collections: + post: + tags: + - Collection + summary: Creates a new collection. + operationId: CreateCollection + parameters: + - name: name + in: query + description: The name of the collection. + schema: + type: string + - name: ids + in: query + description: Item Ids to add to the collection. + schema: + type: array + items: + type: string + - name: parentId + in: query + description: Optional. Create the collection within a specific folder. + schema: + type: string + format: uuid + - name: isLocked + in: query + description: Whether or not to lock the new collection. + schema: + type: boolean + default: false + responses: + "200": + description: Collection created. + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/CollectionCreationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/CollectionCreationResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - CollectionManagement + - DefaultAuthorization + /Collections/{collectionId}/Items: + post: + tags: + - Collection + summary: Adds items to a collection. + operationId: AddToCollection + parameters: + - name: collectionId + in: path + description: The collection id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item ids, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items added to collection. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - CollectionManagement + - DefaultAuthorization + delete: + tags: + - Collection + summary: Removes items from a collection. + operationId: RemoveFromCollection + parameters: + - name: collectionId + in: path + description: The collection id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item ids, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items removed from collection. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - CollectionManagement + - DefaultAuthorization + /System/Configuration: + get: + tags: + - Configuration + summary: Gets application configuration. + operationId: GetConfiguration + responses: + "200": + description: Application configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ServerConfiguration' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ServerConfiguration' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ServerConfiguration' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Configuration + summary: Updates application configuration. + operationId: UpdateConfiguration + requestBody: + description: Configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + required: true + responses: + "204": + description: Configuration updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /System/Configuration/{key}: + get: + tags: + - Configuration + summary: Gets a named configuration. + operationId: GetNamedConfiguration + parameters: + - name: key + in: path + description: Configuration key. + required: true + schema: + type: string + responses: + "200": + description: Configuration returned. + content: + application/json: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Configuration + summary: Updates named configuration. + operationId: UpdateNamedConfiguration + parameters: + - name: key + in: path + description: Configuration key. + required: true + schema: + type: string + requestBody: + description: Configuration. + content: + application/json: + schema: {} + text/json: + schema: {} + application/*+json: + schema: {} + required: true + responses: + "204": + description: Named configuration updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /System/Configuration/MetadataOptions/Default: + get: + tags: + - Configuration + summary: Gets a default MetadataOptions object. + operationId: GetDefaultMetadataOptions + responses: + "200": + description: Metadata options returned. + content: + application/json: + schema: + $ref: '#/components/schemas/MetadataOptions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/MetadataOptions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/MetadataOptions' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /web/ConfigurationPage: + get: + tags: + - Dashboard + summary: Gets a dashboard configuration page. + operationId: GetDashboardConfigurationPage + parameters: + - name: name + in: query + description: The name of the page. + schema: + type: string + responses: + "200": + description: ConfigurationPage returned. + content: + text/html: + schema: + type: string + format: binary + application/x-javascript: + schema: + type: string + format: binary + "404": + description: Plugin configuration page not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /web/ConfigurationPages: + get: + tags: + - Dashboard + summary: Gets the configuration pages. + operationId: GetConfigurationPages + parameters: + - name: enableInMainMenu + in: query + description: Whether to enable in the main menu. + schema: + type: boolean + responses: + "200": + description: ConfigurationPages returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + "404": + description: Server still loading. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Devices: + get: + tags: + - Devices + summary: Get Devices. + operationId: GetDevices + parameters: + - name: userId + in: query + description: Gets or sets the user identifier. + schema: + type: string + format: uuid + responses: + "200": + description: Devices retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceInfoDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceInfoDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceInfoDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Devices + summary: Deletes a device. + operationId: DeleteDevice + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "204": + description: Device deleted. + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Devices/Info: + get: + tags: + - Devices + summary: Get info for a device. + operationId: GetDeviceInfo + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "200": + description: Device info retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceInfoDto' + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Devices/Options: + get: + tags: + - Devices + summary: Get options for a device. + operationId: GetDeviceOptions + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "200": + description: Device options retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceOptionsDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceOptionsDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceOptionsDto' + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Devices + summary: Update device options. + operationId: UpdateDeviceOptions + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + requestBody: + description: Device Options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + required: true + responses: + "204": + description: Device options updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /DisplayPreferences/{displayPreferencesId}: + get: + tags: + - DisplayPreferences + summary: Get Display Preferences. + operationId: GetDisplayPreferences + parameters: + - name: displayPreferencesId + in: path + description: Display preferences id. + required: true + schema: + type: string + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: client + in: query + description: Client. + required: true + schema: + type: string + responses: + "200": + description: Display preferences retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - DisplayPreferences + summary: Update Display Preferences. + operationId: UpdateDisplayPreferences + parameters: + - name: displayPreferencesId + in: path + description: Display preferences id. + required: true + schema: + type: string + - name: userId + in: query + description: User Id. + schema: + type: string + format: uuid + - name: client + in: query + description: Client. + required: true + schema: + type: string + requestBody: + description: New Display Preferences object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + required: true + responses: + "204": + description: Display preferences updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetHlsAudioSegment + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: integer + format: int32 + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: runtimeTicks + in: query + description: The position of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: actualSegmentLengthTicks + in: query + description: The length of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + audio/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/main.m3u8: + get: + tags: + - DynamicHls + summary: Gets an audio stream using HTTP live streaming. + operationId: GetVariantHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/master.m3u8: + get: + tags: + - DynamicHls + summary: Gets an audio hls playlist stream. + operationId: GetMasterHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - DynamicHls + summary: Gets an audio hls playlist stream. + operationId: HeadMasterHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetHlsVideoSegment + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: integer + format: int32 + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: runtimeTicks + in: query + description: The position of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: actualSegmentLengthTicks + in: query + description: The length of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The desired segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Whether to always burn in subtitles when transcoding. + schema: + type: boolean + default: false + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/live.m3u8: + get: + tags: + - DynamicHls + summary: Gets a hls live stream. + operationId: GetLiveHlsStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: maxWidth + in: query + description: Optional. The max width. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The max height. + schema: + type: integer + format: int32 + - name: enableSubtitlesInManifest + in: query + description: Optional. Whether to enable subtitles in the manifest. + schema: + type: boolean + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Whether to always burn in subtitles when transcoding. + schema: + type: boolean + default: false + responses: + "200": + description: Hls live stream retrieved. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/main.m3u8: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetVariantHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Whether to always burn in subtitles when transcoding. + schema: + type: boolean + default: false + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/master.m3u8: + get: + tags: + - DynamicHls + summary: Gets a video hls playlist stream. + operationId: GetMasterHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + - name: enableTrickplay + in: query + description: Enable trickplay image playlists being added to master playlist. + schema: + type: boolean + default: true + - name: enableAudioVbrEncoding + in: query + description: Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Whether to always burn in subtitles when transcoding. + schema: + type: boolean + default: false + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - DynamicHls + summary: Gets a video hls playlist stream. + operationId: HeadMasterHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + - name: enableTrickplay + in: query + description: Enable trickplay image playlists being added to master playlist. + schema: + type: boolean + default: true + - name: enableAudioVbrEncoding + in: query + description: Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Whether to always burn in subtitles when transcoding. + schema: + type: boolean + default: false + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Environment/DefaultDirectoryBrowser: + get: + tags: + - Environment + summary: Get Default directory browser. + operationId: GetDefaultDirectoryBrowser + responses: + "200": + description: Default directory browser returned. + content: + application/json: + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Environment/DirectoryContents: + get: + tags: + - Environment + summary: Gets the contents of a given directory in the file system. + operationId: GetDirectoryContents + parameters: + - name: path + in: query + description: The path. + required: true + schema: + type: string + - name: includeFiles + in: query + description: An optional filter to include or exclude files from the results. true/false. + schema: + type: boolean + default: false + - name: includeDirectories + in: query + description: An optional filter to include or exclude folders from the results. true/false. + schema: + type: boolean + default: false + responses: + "200": + description: Directory contents returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Environment/Drives: + get: + tags: + - Environment + summary: Gets available drives from the server's file system. + operationId: GetDrives + responses: + "200": + description: List of entries returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Environment/NetworkShares: + get: + tags: + - Environment + summary: Gets network paths. + operationId: GetNetworkShares + responses: + "200": + description: Empty array returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Environment/ParentPath: + get: + tags: + - Environment + summary: Gets the parent path of a given path. + operationId: GetParentPath + parameters: + - name: path + in: query + description: The path. + required: true + schema: + type: string + responses: + "200": + description: Success + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Environment/ValidatePath: + post: + tags: + - Environment + summary: Validates path. + operationId: ValidatePath + requestBody: + description: Validate request object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + required: true + responses: + "204": + description: Path validated. + "404": + description: Path not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Items/Filters: + get: + tags: + - Filter + summary: Gets legacy query filters. + operationId: GetQueryFiltersLegacy + parameters: + - name: userId + in: query + description: Optional. User id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Optional. Parent id. + schema: + type: string + format: uuid + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + responses: + "200": + description: Legacy filters retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Filters2: + get: + tags: + - Filter + summary: Gets query filters. + operationId: GetQueryFilters + parameters: + - name: userId + in: query + description: Optional. User id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isAiring + in: query + description: Optional. Is item airing. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Is item movie. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Is item sports. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Is item kids. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Is item news. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Is item series. + schema: + type: boolean + - name: recursive + in: query + description: Optional. Search recursive. + schema: + type: boolean + responses: + "200": + description: Filters retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryFilters' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QueryFilters' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QueryFilters' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Genres: + get: + tags: + - Genres + summary: Gets all genres from a given item, folder, or the entire library. + operationId: GetGenres + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Optional. Include total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Genres/{genreName}: + get: + tags: + - Genres + summary: Gets a genre, by name. + operationId: GetGenre + parameters: + - name: genreName + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + responses: + "200": + description: Genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/hls/{segmentId}/stream.aac: + get: + tags: + - HlsSegment + summary: Gets the specified audio segment for an audio item. + operationId: GetHlsAudioSegmentLegacyAac + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + responses: + "200": + description: Hls audio segment returned. + content: + audio/*: + schema: + type: string + format: binary + /Audio/{itemId}/hls/{segmentId}/stream.mp3: + get: + tags: + - HlsSegment + summary: Gets the specified audio segment for an audio item. + operationId: GetHlsAudioSegmentLegacyMp3 + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + responses: + "200": + description: Hls audio segment returned. + content: + audio/*: + schema: + type: string + format: binary + /Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}: + get: + tags: + - HlsSegment + summary: Gets a hls video segment. + operationId: GetHlsVideoSegmentLegacy + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + - name: segmentContainer + in: path + description: The segment container. + required: true + schema: + type: string + responses: + "200": + description: Hls video segment returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Hls segment not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Videos/{itemId}/hls/{playlistId}/stream.m3u8: + get: + tags: + - HlsSegment + summary: Gets a hls video playlist. + operationId: GetHlsPlaylistLegacy + parameters: + - name: itemId + in: path + description: The video id. + required: true + schema: + type: string + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + responses: + "200": + description: Hls video playlist returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/ActiveEncodings: + delete: + tags: + - HlsSegment + summary: Stops an active encoding. + operationId: StopEncodingProcess + parameters: + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + required: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + required: true + schema: + type: string + responses: + "204": + description: Encoding stopped successfully. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get artist image by name. + operationId: GetArtistImage + parameters: + - name: name + in: path + description: Artist name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get artist image by name. + operationId: HeadArtistImage + parameters: + - name: name + in: path + description: Artist name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Branding/Splashscreen: + get: + tags: + - Image + summary: Generates or gets the splashscreen. + operationId: GetSplashscreen + parameters: + - name: tag + in: query + description: Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Apply a foreground layer on top of the image. + schema: + type: string + - name: quality + in: query + description: Quality setting, from 0-100. + schema: + maximum: 100 + minimum: 0 + type: integer + format: int32 + default: 90 + responses: + "200": + description: Splashscreen returned successfully. + content: + image/*: + schema: + type: string + format: binary + post: + tags: + - Image + summary: "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded." + operationId: UploadCustomSplashscreen + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Successfully uploaded new splashscreen. + "400": + description: Error reading MimeType from uploaded image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User does not have permission to upload splashscreen.. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Image + summary: Delete a custom splashscreen. + operationId: DeleteCustomSplashscreen + responses: + "204": + description: Successfully deleted the custom splashscreen. + "403": + description: User does not have permission to delete splashscreen.. + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /Genres/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get genre image by name. + operationId: GetGenreImage + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get genre image by name. + operationId: HeadGenreImage + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Genres/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get genre image by name. + operationId: GetGenreImageByIndex + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get genre image by name. + operationId: HeadGenreImageByIndex + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images: + get: + tags: + - Image + summary: Get item image infos. + operationId: GetItemImageInfos + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item images returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Images/{imageType}: + delete: + tags: + - Image + summary: Delete an item's image. + operationId: DeleteItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: query + description: The image index. + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Image + summary: Set item image. + operationId: SetItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image saved. + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}: + delete: + tags: + - Image + summary: Delete an item's image. + operationId: DeleteItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: The image index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Image + summary: Set item image. + operationId: SetItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: (Unused) Image index. + required: true + schema: + type: integer + format: int32 + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image saved. + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}: + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImage2 + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: path + description: The maximum image width to return. + required: true + schema: + type: integer + format: int32 + - name: maxHeight + in: path + description: The maximum image height to return. + required: true + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: path + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + required: true + schema: + type: string + - name: format + in: path + description: Determines the output format of the image - original,gif,jpg,png. + required: true + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + description: Enum ImageOutputFormat. + - name: percentPlayed + in: path + description: Optional. Percent to render for the percent played overlay. + required: true + schema: + type: number + format: double + - name: unplayedCount + in: path + description: Optional. Unplayed count overlay to render. + required: true + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImage2 + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: path + description: The maximum image width to return. + required: true + schema: + type: integer + format: int32 + - name: maxHeight + in: path + description: The maximum image height to return. + required: true + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: path + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + required: true + schema: + type: string + - name: format + in: path + description: Determines the output format of the image - original,gif,jpg,png. + required: true + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + description: Enum ImageOutputFormat. + - name: percentPlayed + in: path + description: Optional. Percent to render for the percent played overlay. + required: true + schema: + type: number + format: double + - name: unplayedCount + in: path + description: Optional. Unplayed count overlay to render. + required: true + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}/Index: + post: + tags: + - Image + summary: Updates the index for an item image. + operationId: UpdateItemImageIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Old image index. + required: true + schema: + type: integer + format: int32 + - name: newIndex + in: query + description: New image index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Image index updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /MusicGenres/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get music genre image by name. + operationId: GetMusicGenreImage + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get music genre image by name. + operationId: HeadMusicGenreImage + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /MusicGenres/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get music genre image by name. + operationId: GetMusicGenreImageByIndex + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get music genre image by name. + operationId: HeadMusicGenreImageByIndex + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Persons/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get person image by name. + operationId: GetPersonImage + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get person image by name. + operationId: HeadPersonImage + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Persons/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get person image by name. + operationId: GetPersonImageByIndex + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get person image by name. + operationId: HeadPersonImageByIndex + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Studios/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get studio image by name. + operationId: GetStudioImage + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get studio image by name. + operationId: HeadStudioImage + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Studios/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get studio image by name. + operationId: GetStudioImageByIndex + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get studio image by name. + operationId: HeadStudioImageByIndex + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /UserImage: + post: + tags: + - Image + summary: Sets the user image. + operationId: PostUserImage + parameters: + - name: userId + in: query + description: User Id. + schema: + type: string + format: uuid + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image updated. + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Image + summary: Delete the user's image. + operationId: DeleteUserImage + parameters: + - name: userId + in: query + description: User Id. + schema: + type: string + format: uuid + responses: + "204": + description: Image deleted. + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - Image + summary: Get user profile image. + operationId: GetUserImage + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "400": + description: User id not provided. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get user profile image. + operationId: HeadUserImage + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "400": + description: User id not provided. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Albums/{itemId}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given album. + operationId: GetInstantMixFromAlbum + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{itemId}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given artist. + operationId: GetInstantMixFromArtists + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given artist. + operationId: GetInstantMixFromArtists2 + parameters: + - name: id + in: query + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given item. + operationId: GetInstantMixFromItem + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/{name}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given genre. + operationId: GetInstantMixFromMusicGenreByName + parameters: + - name: name + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given genre. + operationId: GetInstantMixFromMusicGenreById + parameters: + - name: id + in: query + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{itemId}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given playlist. + operationId: GetInstantMixFromPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Songs/{itemId}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given song. + operationId: GetInstantMixFromSong + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ExternalIdInfos: + get: + tags: + - ItemLookup + summary: Get the item's external id info. + operationId: GetExternalIdInfos + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: External id info retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Apply/{itemId}: + post: + tags: + - ItemLookup + summary: Applies search criteria to an item and refreshes metadata. + operationId: ApplySearchCriteria + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: replaceAllImages + in: query + description: 'Optional. Whether or not to replace all images. Default: True.' + schema: + type: boolean + default: true + requestBody: + description: The remote search result. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + required: true + responses: + "204": + description: Item metadata refreshed. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Book: + post: + tags: + - ItemLookup + summary: Get book remote search. + operationId: GetBookRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Book remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/BoxSet: + post: + tags: + - ItemLookup + summary: Get box set remote search. + operationId: GetBoxSetRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Box set remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Movie: + post: + tags: + - ItemLookup + summary: Get movie remote search. + operationId: GetMovieRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Movie remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicAlbum: + post: + tags: + - ItemLookup + summary: Get music album remote search. + operationId: GetMusicAlbumRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music album remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicArtist: + post: + tags: + - ItemLookup + summary: Get music artist remote search. + operationId: GetMusicArtistRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music artist remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicVideo: + post: + tags: + - ItemLookup + summary: Get music video remote search. + operationId: GetMusicVideoRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music video remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Person: + post: + tags: + - ItemLookup + summary: Get person remote search. + operationId: GetPersonRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Person remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Series: + post: + tags: + - ItemLookup + summary: Get series remote search. + operationId: GetSeriesRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Series remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Trailer: + post: + tags: + - ItemLookup + summary: Get trailer remote search. + operationId: GetTrailerRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Trailer remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Refresh: + post: + tags: + - ItemRefresh + summary: Refreshes metadata for an item. + operationId: RefreshItem + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: metadataRefreshMode + in: query + description: (Optional) Specifies the metadata refresh mode. + schema: + enum: + - None + - ValidationOnly + - Default + - FullRefresh + allOf: + - $ref: '#/components/schemas/MetadataRefreshMode' + default: None + - name: imageRefreshMode + in: query + description: (Optional) Specifies the image refresh mode. + schema: + enum: + - None + - ValidationOnly + - Default + - FullRefresh + allOf: + - $ref: '#/components/schemas/MetadataRefreshMode' + default: None + - name: replaceAllMetadata + in: query + description: (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. + schema: + type: boolean + default: false + - name: replaceAllImages + in: query + description: (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. + schema: + type: boolean + default: false + - name: regenerateTrickplay + in: query + description: (Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh. + schema: + type: boolean + default: false + responses: + "204": + description: Item metadata refresh queued. + "404": + description: Item to refresh not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items: + get: + tags: + - Items + summary: Gets items based on a query. + operationId: GetItems + parameters: + - name: userId + in: query + description: The user id supplied as query parameter; this is required when not using an API key. + schema: + type: string + format: uuid + - name: maxOfficialRating + in: query + description: Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: hasThemeSong + in: query + description: Optional filter by items with theme songs. + schema: + type: boolean + - name: hasThemeVideo + in: query + description: Optional filter by items with theme videos. + schema: + type: boolean + - name: hasSubtitles + in: query + description: Optional filter by items with subtitles. + schema: + type: boolean + - name: hasSpecialFeature + in: query + description: Optional filter by items with special features. + schema: + type: boolean + - name: hasTrailer + in: query + description: Optional filter by items with trailers. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + format: uuid + - name: indexNumber + in: query + description: Optional filter by index number. + schema: + type: integer + format: int32 + - name: parentIndexNumber + in: query + description: Optional filter by parent index number. + schema: + type: integer + format: int32 + - name: hasParentalRating + in: query + description: Optional filter by items that have or do not have a parental rating. + schema: + type: boolean + - name: isHd + in: query + description: Optional filter by items that are HD or not. + schema: + type: boolean + - name: is4K + in: query + description: Optional filter by items that are 4K or not. + schema: + type: boolean + - name: locationTypes + in: query + description: Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: excludeLocationTypes + in: query + description: Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: isMissing + in: query + description: Optional filter by items that are missing episodes or not. + schema: + type: boolean + - name: isUnaired + in: query + description: Optional filter by items that are unaired episodes or not. + schema: + type: boolean + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: minCriticRating + in: query + description: Optional filter by minimum critic rating. + schema: + type: number + format: double + - name: minPremiereDate + in: query + description: Optional. The minimum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSaved + in: query + description: Optional. The minimum last saved date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSavedForUser + in: query + description: Optional. The minimum last saved date for the current user. Format = ISO. + schema: + type: string + format: date-time + - name: maxPremiereDate + in: query + description: Optional. The maximum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: hasOverview + in: query + description: Optional filter by items that have an overview or not. + schema: + type: boolean + - name: hasImdbId + in: query + description: Optional filter by items that have an IMDb id or not. + schema: + type: boolean + - name: hasTmdbId + in: query + description: Optional filter by items that have a TMDb id or not. + schema: + type: boolean + - name: hasTvdbId + in: query + description: Optional filter by items that have a TVDb id or not. + schema: + type: boolean + - name: isMovie + in: query + description: Optional filter for live tv movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for live tv series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for live tv news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for live tv kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for live tv sports. + schema: + type: boolean + - name: excludeItemIds + in: query + description: Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: recursive + in: query + description: When searching within folders, this determines whether or not the search will be recursive. true/false. + schema: + type: boolean + - name: searchTerm + in: query + description: Optional. Filter based on a search term. + schema: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending, Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: 'Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: imageTypes + in: query + description: Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: isPlayed + in: query + description: Optional filter by items that are played, or not. + schema: + type: boolean + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person id. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: artists + in: query + description: Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: excludeArtistIds + in: query + description: Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: artistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albumArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified album artist id. + schema: + type: array + items: + type: string + format: uuid + - name: contributingArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albums + in: query + description: Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: albumIds + in: query + description: Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: ids + in: query + description: Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: videoTypes + in: query + description: Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/VideoType' + - name: minOfficialRating + in: query + description: Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: isLocked + in: query + description: Optional filter by items that are locked. + schema: + type: boolean + - name: isPlaceHolder + in: query + description: Optional filter by items that are placeholders. + schema: + type: boolean + - name: hasOfficialRating + in: query + description: Optional filter by items that have official ratings. + schema: + type: boolean + - name: collapseBoxSetItems + in: query + description: Whether or not to hide items behind their boxsets. + schema: + type: boolean + - name: minWidth + in: query + description: Optional. Filter by the minimum width of the item. + schema: + type: integer + format: int32 + - name: minHeight + in: query + description: Optional. Filter by the minimum height of the item. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. Filter by the maximum width of the item. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. Filter by the maximum height of the item. + schema: + type: integer + format: int32 + - name: is3D + in: query + description: Optional filter by items that are 3D, or not. + schema: + type: boolean + - name: seriesStatus + in: query + description: Optional filter by Series Status. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/SeriesStatus' + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Library + summary: Deletes items from the library and filesystem. + operationId: DeleteItems + parameters: + - name: ids + in: query + description: The item ids. + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items deleted. + "401": + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserItems/{itemId}/UserData: + get: + tags: + - Items + summary: Get Item User Data. + operationId: GetItemUserData + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: return item user data. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "404": + description: Item is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Items + summary: Update Item User Data. + operationId: UpdateItemUserData + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + requestBody: + description: New user data object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserItemDataDto' + description: This is used by the api to get information about a item user data. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserItemDataDto' + description: This is used by the api to get information about a item user data. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserItemDataDto' + description: This is used by the api to get information about a item user data. + required: true + responses: + "200": + description: return updated user item data. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "404": + description: Item is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserItems/Resume: + get: + tags: + - Items + summary: Gets items based on a query. + operationId: GetResumeItems + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: The start index. + schema: + type: integer + format: int32 + - name: limit + in: query + description: The item limit. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + default: true + - name: excludeActiveSessions + in: query + description: Optional. Whether to exclude the currently active sessions. + schema: + type: boolean + default: false + responses: + "200": + description: Items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}: + post: + tags: + - ItemUpdate + summary: Updates an item. + operationId: UpdateItem + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The new item properties. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + required: true + responses: + "204": + description: Item updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Library + summary: Deletes an item from the library and filesystem. + operationId: DeleteItem + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Item deleted. + "401": + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - UserLibrary + summary: Gets an item from a user's library. + operationId: GetItem + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ContentType: + post: + tags: + - ItemUpdate + summary: Updates an item's content type. + operationId: UpdateItemContentType + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: contentType + in: query + description: The content type of the item. + schema: + type: string + responses: + "204": + description: Item content type updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items/{itemId}/MetadataEditor: + get: + tags: + - ItemUpdate + summary: Gets metadata editor info for an item. + operationId: GetMetadataEditorInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item metadata editor returned. + content: + application/json: + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Albums/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarAlbums + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarArtists + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Ancestors: + get: + tags: + - Library + summary: Gets all parents of an item. + operationId: GetAncestors + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Item parents returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/CriticReviews: + get: + tags: + - Library + summary: Gets critic review for an item. + operationId: GetCriticReviews + parameters: + - name: itemId + in: path + required: true + schema: + type: string + responses: + "200": + description: Critic reviews returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Download: + get: + tags: + - Library + summary: Downloads item media. + operationId: GetDownload + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Media downloaded. + content: + video/*: + schema: + type: string + format: binary + audio/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - Download + - DefaultAuthorization + /Items/{itemId}/File: + get: + tags: + - Library + summary: Get the original file of an item. + operationId: GetFile + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: File stream returned. + content: + video/*: + schema: + type: string + format: binary + audio/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarItems + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeMedia: + get: + tags: + - Library + summary: Get theme songs and videos for an item. + operationId: GetThemeMedia + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Optional. Sort Order - Ascending, Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + responses: + "200": + description: Theme songs and videos returned. + content: + application/json: + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + "404": + description: Item not found. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeSongs: + get: + tags: + - Library + summary: Get theme songs for an item. + operationId: GetThemeSongs + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Optional. Sort Order - Ascending, Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + responses: + "200": + description: Theme songs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeVideos: + get: + tags: + - Library + summary: Get theme videos for an item. + operationId: GetThemeVideos + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Optional. Sort Order - Ascending, Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + responses: + "200": + description: Theme videos returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Counts: + get: + tags: + - Library + summary: Get item counts. + operationId: GetItemCounts + parameters: + - name: userId + in: query + description: Optional. Get counts from a specific user's library. + schema: + type: string + format: uuid + - name: isFavorite + in: query + description: Optional. Get counts of favorite items. + schema: + type: boolean + responses: + "200": + description: Item counts returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ItemCounts' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ItemCounts' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ItemCounts' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Libraries/AvailableOptions: + get: + tags: + - Library + summary: Gets the library options info. + operationId: GetLibraryOptionsInfo + parameters: + - name: libraryContentType + in: query + description: Library content type. + schema: + enum: + - unknown + - movies + - tvshows + - music + - musicvideos + - trailers + - homevideos + - boxsets + - books + - photos + - livetv + - playlists + - folders + allOf: + - $ref: '#/components/schemas/CollectionType' + - name: isNewLibrary + in: query + description: Whether this is a new library. + schema: + type: boolean + default: false + responses: + "200": + description: Library options info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + - DefaultAuthorization + /Library/Media/Updated: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostUpdatedMedia + requestBody: + description: The update paths. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + required: true + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/MediaFolders: + get: + tags: + - Library + summary: Gets all user media folders. + operationId: GetMediaFolders + parameters: + - name: isHidden + in: query + description: Optional. Filter by folders that are marked hidden, or not. + schema: + type: boolean + responses: + "200": + description: Media folders returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Movies/Added: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostAddedMovies + parameters: + - name: tmdbId + in: query + description: The tmdbId. + schema: + type: string + - name: imdbId + in: query + description: The imdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/Movies/Updated: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostUpdatedMovies + parameters: + - name: tmdbId + in: query + description: The tmdbId. + schema: + type: string + - name: imdbId + in: query + description: The imdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/PhysicalPaths: + get: + tags: + - Library + summary: Gets a list of physical paths from virtual folders. + operationId: GetPhysicalPaths + responses: + "200": + description: Physical paths returned. + content: + application/json: + schema: + type: array + items: + type: string + application/json; profile="CamelCase": + schema: + type: array + items: + type: string + application/json; profile="PascalCase": + schema: + type: array + items: + type: string + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Refresh: + post: + tags: + - Library + summary: Starts a library scan. + operationId: RefreshLibrary + responses: + "204": + description: Library scan started. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Series/Added: + post: + tags: + - Library + summary: Reports that new episodes of a series have been added by an external source. + operationId: PostAddedSeries + parameters: + - name: tvdbId + in: query + description: The tvdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/Series/Updated: + post: + tags: + - Library + summary: Reports that new episodes of a series have been added by an external source. + operationId: PostUpdatedSeries + parameters: + - name: tvdbId + in: query + description: The tvdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Movies/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarMovies + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarShows + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Trailers/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarTrailers + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/VirtualFolders: + get: + tags: + - LibraryStructure + summary: Gets all virtual folders. + operationId: GetVirtualFolders + responses: + "200": + description: Virtual folders retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + post: + tags: + - LibraryStructure + summary: Adds a virtual folder. + operationId: AddVirtualFolder + parameters: + - name: name + in: query + description: The name of the virtual folder. + schema: + type: string + - name: collectionType + in: query + description: The type of the collection. + schema: + enum: + - movies + - tvshows + - music + - musicvideos + - homevideos + - boxsets + - books + - mixed + allOf: + - $ref: '#/components/schemas/CollectionTypeOptions' + - name: paths + in: query + description: The paths of the virtual folder. + schema: + type: array + items: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + requestBody: + description: The library options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + responses: + "204": + description: Folder added. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + delete: + tags: + - LibraryStructure + summary: Removes a virtual folder. + operationId: RemoveVirtualFolder + parameters: + - name: name + in: query + description: The name of the folder. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Folder removed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Library/VirtualFolders/LibraryOptions: + post: + tags: + - LibraryStructure + summary: Update library options. + operationId: UpdateLibraryOptions + requestBody: + description: The library name and options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + responses: + "204": + description: Library updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Library/VirtualFolders/Name: + post: + tags: + - LibraryStructure + summary: Renames a virtual folder. + operationId: RenameVirtualFolder + parameters: + - name: name + in: query + description: The name of the virtual folder. + schema: + type: string + - name: newName + in: query + description: The new name. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Folder renamed. + "404": + description: Library doesn't exist. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: Library already exists. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Library/VirtualFolders/Paths: + post: + tags: + - LibraryStructure + summary: Add a media path to a library. + operationId: AddMediaPath + parameters: + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + requestBody: + description: The media path dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + required: true + responses: + "204": + description: Media path added. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + delete: + tags: + - LibraryStructure + summary: Remove a media path. + operationId: RemoveMediaPath + parameters: + - name: name + in: query + description: The name of the library. + schema: + type: string + - name: path + in: query + description: The path to remove. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Media path removed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Library/VirtualFolders/Paths/Update: + post: + tags: + - LibraryStructure + summary: Updates a media path. + operationId: UpdateMediaPath + requestBody: + description: The name of the library and path infos. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + required: true + responses: + "204": + description: Media path updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /LiveTv/ChannelMappingOptions: + get: + tags: + - LiveTv + summary: Get channel mapping options. + operationId: GetChannelMappingOptions + parameters: + - name: providerId + in: query + description: Provider id. + schema: + type: string + responses: + "200": + description: Channel mapping options returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/ChannelMappings: + post: + tags: + - LiveTv + summary: Set channel mappings. + operationId: SetChannelMapping + requestBody: + description: The set channel mapping dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + required: true + responses: + "200": + description: Created channel mapping returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TunerChannelMapping' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TunerChannelMapping' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TunerChannelMapping' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Channels: + get: + tags: + - LiveTv + summary: Gets available live tv channels. + operationId: GetLiveTvChannels + parameters: + - name: type + in: query + description: Optional. Filter by channel type. + schema: + enum: + - TV + - Radio + allOf: + - $ref: '#/components/schemas/ChannelType' + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: isFavorite + in: query + description: Optional. Filter by channels that are favorites, or not. + schema: + type: boolean + - name: isLiked + in: query + description: Optional. Filter by channels that are liked, or not. + schema: + type: boolean + - name: isDisliked + in: query + description: Optional. Filter by channels that are disliked, or not. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: '"Optional. The image types to include in the output.' + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: sortBy + in: query + description: Optional. Key to sort by. + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Optional. Sort order. + schema: + enum: + - Ascending + - Descending + allOf: + - $ref: '#/components/schemas/SortOrder' + - name: enableFavoriteSorting + in: query + description: Optional. Incorporate favorite and like status into channel sorting. + schema: + type: boolean + default: false + - name: addCurrentProgram + in: query + description: Optional. Adds current program info to each channel. + schema: + type: boolean + default: true + responses: + "200": + description: Available live tv channels returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Channels/{channelId}: + get: + tags: + - LiveTv + summary: Gets a live tv channel. + operationId: GetChannel + parameters: + - name: channelId + in: path + description: Channel id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Live tv channel returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/GuideInfo: + get: + tags: + - LiveTv + summary: Get guid info. + operationId: GetGuideInfo + responses: + "200": + description: Guid info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/GuideInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/GuideInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/GuideInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Info: + get: + tags: + - LiveTv + summary: Gets available live tv services. + operationId: GetLiveTvInfo + responses: + "200": + description: Available live tv services returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LiveTvInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LiveTvInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LiveTvInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/ListingProviders: + post: + tags: + - LiveTv + summary: Adds a listings provider. + operationId: AddListingProvider + parameters: + - name: pw + in: query + description: Password. + schema: + type: string + - name: validateListings + in: query + description: Validate listings. + schema: + type: boolean + default: false + - name: validateLogin + in: query + description: Validate login. + schema: + type: boolean + default: false + requestBody: + description: New listings info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + responses: + "200": + description: Created listings provider returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + delete: + tags: + - LiveTv + summary: Delete listing provider. + operationId: DeleteListingProvider + parameters: + - name: id + in: query + description: Listing provider id. + schema: + type: string + responses: + "204": + description: Listing provider deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/ListingProviders/Default: + get: + tags: + - LiveTv + summary: Gets default listings provider info. + operationId: GetDefaultListingProvider + responses: + "200": + description: Default listings provider info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/ListingProviders/Lineups: + get: + tags: + - LiveTv + summary: Gets available lineups. + operationId: GetLineups + parameters: + - name: id + in: query + description: Provider id. + schema: + type: string + - name: type + in: query + description: Provider type. + schema: + type: string + - name: location + in: query + description: Location. + schema: + type: string + - name: country + in: query + description: Country. + schema: + type: string + responses: + "200": + description: Available lineups returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/ListingProviders/SchedulesDirect/Countries: + get: + tags: + - LiveTv + summary: Gets available countries. + operationId: GetSchedulesDirectCountries + responses: + "200": + description: Available countries returned. + content: + application/json: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/LiveRecordings/{recordingId}/stream: + get: + tags: + - LiveTv + summary: Gets a live tv recording stream. + operationId: GetLiveRecordingFile + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + responses: + "200": + description: Recording stream returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Recording not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /LiveTv/LiveStreamFiles/{streamId}/stream.{container}: + get: + tags: + - LiveTv + summary: Gets a live tv channel stream. + operationId: GetLiveStreamFile + parameters: + - name: streamId + in: path + description: Stream id. + required: true + schema: + type: string + - name: container + in: path + description: Container type. + required: true + schema: + type: string + responses: + "200": + description: Stream returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Stream not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /LiveTv/Programs: + get: + tags: + - LiveTv + summary: Gets available live tv epgs. + operationId: GetLiveTvPrograms + parameters: + - name: channelIds + in: query + description: The channels to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id. + schema: + type: string + format: uuid + - name: minStartDate + in: query + description: Optional. The minimum premiere start date. + schema: + type: string + format: date-time + - name: hasAired + in: query + description: Optional. Filter by programs that have completed airing, or not. + schema: + type: boolean + - name: isAiring + in: query + description: Optional. Filter by programs that are currently airing, or not. + schema: + type: boolean + - name: maxStartDate + in: query + description: Optional. The maximum premiere start date. + schema: + type: string + format: date-time + - name: minEndDate + in: query + description: Optional. The minimum premiere end date. + schema: + type: string + format: date-time + - name: maxEndDate + in: query + description: Optional. The maximum premiere end date. + schema: + type: string + format: date-time + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: genres + in: query + description: The genres to return guide information for. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: The genre ids to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by series timer id. + schema: + type: string + - name: librarySeriesId + in: query + description: Optional. Filter by library series id. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableTotalRecordCount + in: query + description: Retrieve total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + post: + tags: + - LiveTv + summary: Gets available live tv epgs. + operationId: GetPrograms + requestBody: + description: Request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + responses: + "200": + description: Live tv epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Programs/{programId}: + get: + tags: + - LiveTv + summary: Gets a live tv program. + operationId: GetProgram + parameters: + - name: programId + in: path + description: Program id. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Program returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Programs/Recommended: + get: + tags: + - LiveTv + summary: Gets recommended live tv epgs. + operationId: GetRecommendedPrograms + parameters: + - name: userId + in: query + description: Optional. filter by user id. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: isAiring + in: query + description: Optional. Filter by programs that are currently airing, or not. + schema: + type: boolean + - name: hasAired + in: query + description: Optional. Filter by programs that have completed airing, or not. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: genreIds + in: query + description: The genres to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. include user data. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Retrieve total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Recommended epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Recordings: + get: + tags: + - LiveTv + summary: Gets live tv recordings. + operationId: GetRecordings + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: status + in: query + description: Optional. Filter by recording status. + schema: + enum: + - New + - InProgress + - Completed + - Cancelled + - ConflictedOk + - ConflictedNotOk + - Error + allOf: + - $ref: '#/components/schemas/RecordingStatus' + - name: isInProgress + in: query + description: Optional. Filter by recordings that are in progress, or not. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by recordings belonging to a series timer. + schema: + type: string + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isLibraryItem + in: query + description: Optional. Filter for is library item. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Optional. Return total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv recordings returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Recordings/{recordingId}: + get: + tags: + - LiveTv + summary: Gets a live tv recording. + operationId: GetRecording + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + delete: + tags: + - LiveTv + summary: Deletes a live tv recording. + operationId: DeleteRecording + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Recording deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Recordings/Folders: + get: + tags: + - LiveTv + summary: Gets recording folders. + operationId: GetRecordingFolders + parameters: + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording folders returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Recordings/Groups: + get: + tags: + - LiveTv + summary: Gets live tv recording groups. + operationId: GetRecordingGroups + parameters: + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording groups returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Recordings/Groups/{groupId}: + get: + tags: + - LiveTv + summary: Get recording group. + operationId: GetRecordingGroup + parameters: + - name: groupId + in: path + description: Group id. + required: true + schema: + type: string + format: uuid + responses: + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Recordings/Series: + get: + tags: + - LiveTv + summary: Gets live tv recording series. + operationId: GetRecordingsSeries + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: groupId + in: query + description: Optional. Filter by recording group. + schema: + type: string + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: status + in: query + description: Optional. Filter by recording status. + schema: + enum: + - New + - InProgress + - Completed + - Cancelled + - ConflictedOk + - ConflictedNotOk + - Error + allOf: + - $ref: '#/components/schemas/RecordingStatus' + - name: isInProgress + in: query + description: Optional. Filter by recordings that are in progress, or not. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by recordings belonging to a series timer. + schema: + type: string + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Optional. Return total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv recordings returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/SeriesTimers: + get: + tags: + - LiveTv + summary: Gets live tv series timers. + operationId: GetSeriesTimers + parameters: + - name: sortBy + in: query + description: Optional. Sort by SortName or Priority. + schema: + type: string + - name: sortOrder + in: query + description: Optional. Sort in Ascending or Descending order. + schema: + enum: + - Ascending + - Descending + allOf: + - $ref: '#/components/schemas/SortOrder' + responses: + "200": + description: Timers returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + post: + tags: + - LiveTv + summary: Creates a live tv series timer. + operationId: CreateSeriesTimer + requestBody: + description: New series timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + responses: + "204": + description: Series timer info created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/SeriesTimers/{timerId}: + get: + tags: + - LiveTv + summary: Gets a live tv series timer. + operationId: GetSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "200": + description: Series timer returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + "404": + description: Series timer not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + delete: + tags: + - LiveTv + summary: Cancels a live tv series timer. + operationId: CancelSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "204": + description: Timer cancelled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + post: + tags: + - LiveTv + summary: Updates a live tv series timer. + operationId: UpdateSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + requestBody: + description: New series timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + responses: + "204": + description: Series timer updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Timers: + get: + tags: + - LiveTv + summary: Gets the live tv timers. + operationId: GetTimers + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: seriesTimerId + in: query + description: Optional. Filter by timers belonging to a series timer. + schema: + type: string + - name: isActive + in: query + description: Optional. Filter by timers that are active. + schema: + type: boolean + - name: isScheduled + in: query + description: Optional. Filter by timers that are scheduled. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + post: + tags: + - LiveTv + summary: Creates a live tv timer. + operationId: CreateTimer + requestBody: + description: New timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + responses: + "204": + description: Timer created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Timers/{timerId}: + get: + tags: + - LiveTv + summary: Gets a timer. + operationId: GetTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "200": + description: Timer returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TimerInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + delete: + tags: + - LiveTv + summary: Cancels a live tv timer. + operationId: CancelTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "204": + description: Timer deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + post: + tags: + - LiveTv + summary: Updates a live tv timer. + operationId: UpdateTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + requestBody: + description: New timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + responses: + "204": + description: Timer updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Timers/Defaults: + get: + tags: + - LiveTv + summary: Gets the default values for a new timer. + operationId: GetDefaultTimer + parameters: + - name: programId + in: query + description: Optional. To attach default values based on a program. + schema: + type: string + responses: + "200": + description: Default values returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/TunerHosts: + post: + tags: + - LiveTv + summary: Adds a tuner host. + operationId: AddTunerHost + requestBody: + description: New tuner host. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + responses: + "200": + description: Created tuner host returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + delete: + tags: + - LiveTv + summary: Deletes a tuner host. + operationId: DeleteTunerHost + parameters: + - name: id + in: query + description: Tuner host id. + schema: + type: string + responses: + "204": + description: Tuner host deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/TunerHosts/Types: + get: + tags: + - LiveTv + summary: Get tuner host types. + operationId: GetTunerHostTypes + responses: + "200": + description: Tuner host types returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + - DefaultAuthorization + /LiveTv/Tuners/{tunerId}/Reset: + post: + tags: + - LiveTv + summary: Resets a tv tuner. + operationId: ResetTuner + parameters: + - name: tunerId + in: path + description: Tuner id. + required: true + schema: + type: string + responses: + "204": + description: Tuner reset. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Tuners/Discover: + get: + tags: + - LiveTv + summary: Discover tuners. + operationId: DiscoverTuners + parameters: + - name: newDevicesOnly + in: query + description: Only discover new tuners. + schema: + type: boolean + default: false + responses: + "200": + description: Tuners returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /LiveTv/Tuners/Discvover: + get: + tags: + - LiveTv + summary: Discover tuners. + operationId: DiscvoverTuners + parameters: + - name: newDevicesOnly + in: query + description: Only discover new tuners. + schema: + type: boolean + default: false + responses: + "200": + description: Tuners returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + - DefaultAuthorization + /Localization/Countries: + get: + tags: + - Localization + summary: Gets known countries. + operationId: GetCountries + responses: + "200": + description: Known countries returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + - DefaultAuthorization + /Localization/Cultures: + get: + tags: + - Localization + summary: Gets known cultures. + operationId: GetCultures + responses: + "200": + description: Known cultures returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + - DefaultAuthorization + /Localization/Options: + get: + tags: + - Localization + summary: Gets localization options. + operationId: GetLocalizationOptions + responses: + "200": + description: Localization options returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + - DefaultAuthorization + /Localization/ParentalRatings: + get: + tags: + - Localization + summary: Gets known parental ratings. + operationId: GetParentalRatings + responses: + "200": + description: Known parental ratings returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + - DefaultAuthorization + /Audio/{itemId}/Lyrics: + get: + tags: + - Lyrics + summary: Gets an item's lyrics. + operationId: GetLyrics + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Lyrics returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LyricDto' + "404": + description: Something went wrong. No Lyrics will be returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Lyrics + summary: Upload an external lyric file. + operationId: UploadLyrics + parameters: + - name: itemId + in: path + description: The item the lyric belongs to. + required: true + schema: + type: string + format: uuid + - name: fileName + in: query + description: Name of the file being uploaded. + required: true + schema: + type: string + requestBody: + content: + text/plain: + schema: + type: string + format: binary + responses: + "200": + description: Lyrics uploaded. + content: + application/json: + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LyricDto' + "400": + description: Error processing upload. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LyricManagement + - DefaultAuthorization + delete: + tags: + - Lyrics + summary: Deletes an external lyric file. + operationId: DeleteLyrics + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Lyric deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LyricManagement + - DefaultAuthorization + /Audio/{itemId}/RemoteSearch/Lyrics: + get: + tags: + - Lyrics + summary: Search remote lyrics. + operationId: SearchRemoteLyrics + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Lyrics retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteLyricInfoDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteLyricInfoDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteLyricInfoDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LyricManagement + - DefaultAuthorization + /Audio/{itemId}/RemoteSearch/Lyrics/{lyricId}: + post: + tags: + - Lyrics + summary: Downloads a remote lyric. + operationId: DownloadRemoteLyrics + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: lyricId + in: path + description: The lyric id. + required: true + schema: + type: string + responses: + "200": + description: Lyric downloaded. + content: + application/json: + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LyricDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LyricManagement + - DefaultAuthorization + /Providers/Lyrics/{lyricId}: + get: + tags: + - Lyrics + summary: Gets the remote lyrics. + operationId: GetRemoteLyrics + parameters: + - name: lyricId + in: path + description: The remote provider item id. + required: true + schema: + type: string + responses: + "200": + description: File returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LyricDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LyricDto' + "404": + description: Lyric not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LyricManagement + - DefaultAuthorization + /Items/{itemId}/PlaybackInfo: + get: + tags: + - MediaInfo + summary: Gets live playback media info for an item. + operationId: GetPlaybackInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + responses: + "200": + description: Playback info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - MediaInfo + summary: Gets live playback media info for an item. + description: "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete." + operationId: GetPostedPlaybackInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + deprecated: true + schema: + type: string + format: uuid + - name: maxStreamingBitrate + in: query + description: The maximum streaming bitrate. + deprecated: true + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: The start time in ticks. + deprecated: true + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: The maximum number of audio channels. + deprecated: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: liveStreamId + in: query + description: The livestream id. + deprecated: true + schema: + type: string + - name: autoOpenLiveStream + in: query + description: Whether to auto open the livestream. + deprecated: true + schema: + type: boolean + - name: enableDirectPlay + in: query + description: 'Whether to enable direct play. Default: true.' + deprecated: true + schema: + type: boolean + - name: enableDirectStream + in: query + description: 'Whether to enable direct stream. Default: true.' + deprecated: true + schema: + type: boolean + - name: enableTranscoding + in: query + description: 'Whether to enable transcoding. Default: true.' + deprecated: true + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: 'Whether to allow to copy the video stream. Default: true.' + deprecated: true + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: 'Whether to allow to copy the audio stream. Default: true.' + deprecated: true + schema: + type: boolean + requestBody: + description: The playback info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + responses: + "200": + description: Playback info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /LiveStreams/Close: + post: + tags: + - MediaInfo + summary: Closes a media source. + operationId: CloseLiveStream + parameters: + - name: liveStreamId + in: query + description: The livestream id. + required: true + schema: + type: string + responses: + "204": + description: Livestream closed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /LiveStreams/Open: + post: + tags: + - MediaInfo + summary: Opens a media source. + operationId: OpenLiveStream + parameters: + - name: openToken + in: query + description: The open token. + schema: + type: string + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: maxStreamingBitrate + in: query + description: The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: The start time in ticks. + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: itemId + in: query + description: The item id. + schema: + type: string + format: uuid + - name: enableDirectPlay + in: query + description: 'Whether to enable direct play. Default: true.' + schema: + type: boolean + - name: enableDirectStream + in: query + description: 'Whether to enable direct stream. Default: true.' + schema: + type: boolean + - name: alwaysBurnInSubtitleWhenTranscoding + in: query + description: Always burn-in subtitle when transcoding. + schema: + type: boolean + requestBody: + description: The open live stream dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + responses: + "200": + description: Media source opened. + content: + application/json: + schema: + $ref: '#/components/schemas/LiveStreamResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LiveStreamResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LiveStreamResponse' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playback/BitrateTest: + get: + tags: + - MediaInfo + summary: Tests the network with a request with the size of the bitrate. + operationId: GetBitrateTestBytes + parameters: + - name: size + in: query + description: The bitrate. Defaults to 102400. + schema: + maximum: 100000000 + minimum: 1 + type: integer + format: int32 + default: 102400 + responses: + "200": + description: Test buffer returned. + content: + application/octet-stream: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MediaSegments/{itemId}: + get: + tags: + - MediaSegments + summary: Gets all media segments based on an itemId. + operationId: GetItemSegments + parameters: + - name: itemId + in: path + description: The ItemId. + required: true + schema: + type: string + format: uuid + - name: includeSegmentTypes + in: query + description: Optional filter of requested segment types. + schema: + type: array + items: + $ref: '#/components/schemas/MediaSegmentType' + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MediaSegmentDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/MediaSegmentDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/MediaSegmentDtoQueryResult' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Movies/Recommendations: + get: + tags: + - Movies + summary: Gets movie recommendations. + operationId: GetMovieRecommendations + parameters: + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. The fields to return. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: categoryLimit + in: query + description: The max number of categories to return. + schema: + type: integer + format: int32 + default: 5 + - name: itemLimit + in: query + description: The max number of items to return per category. + schema: + type: integer + format: int32 + default: 8 + responses: + "200": + description: Movie recommendations returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres: + get: + tags: + - MusicGenres + summary: Gets all music genres from a given item, folder, or the entire library. + operationId: GetMusicGenres + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Optional. Include total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Music genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/{genreName}: + get: + tags: + - MusicGenres + summary: Gets a music genre, by name. + operationId: GetMusicGenre + parameters: + - name: genreName + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Packages: + get: + tags: + - Package + summary: Gets available packages. + operationId: GetPackages + responses: + "200": + description: Available packages returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Packages/{name}: + get: + tags: + - Package + summary: Gets a package by name or assembly GUID. + operationId: GetPackageInfo + parameters: + - name: name + in: path + description: The name of the package. + required: true + schema: + type: string + - name: assemblyGuid + in: query + description: The GUID of the associated assembly. + schema: + type: string + format: uuid + responses: + "200": + description: Package retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PackageInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Packages/Installed/{name}: + post: + tags: + - Package + summary: Installs a package. + operationId: InstallPackage + parameters: + - name: name + in: path + description: Package name. + required: true + schema: + type: string + - name: assemblyGuid + in: query + description: GUID of the associated assembly. + schema: + type: string + format: uuid + - name: version + in: query + description: Optional version. Defaults to latest version. + schema: + type: string + - name: repositoryUrl + in: query + description: Optional. Specify the repository to install from. + schema: + type: string + responses: + "204": + description: Package found. + "404": + description: Package not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Packages/Installing/{packageId}: + delete: + tags: + - Package + summary: Cancels a package installation. + operationId: CancelPackageInstallation + parameters: + - name: packageId + in: path + description: Installation Id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Installation cancelled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Repositories: + get: + tags: + - Package + summary: Gets all package repositories. + operationId: GetRepositories + responses: + "200": + description: Package repositories returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Package + summary: Sets the enabled and existing package repositories. + operationId: SetRepositories + requestBody: + description: The list of package repositories. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + text/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/*+json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + required: true + responses: + "204": + description: Package repositories saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Persons: + get: + tags: + - Persons + summary: Gets all persons. + operationId: GetPersons + parameters: + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. userId is required. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: excludePersonTypes + in: query + description: Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: personTypes + in: query + description: Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: appearsInItemId + in: query + description: Optional. If specified, person results will be filtered on items related to said persons. + schema: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Persons returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Persons/{name}: + get: + tags: + - Persons + summary: Get person by name. + operationId: GetPerson + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Person returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Person not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists: + post: + tags: + - Playlists + summary: Creates a new playlist. + description: "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete." + operationId: CreatePlaylist + parameters: + - name: name + in: query + description: The playlist name. + deprecated: true + schema: + type: string + - name: ids + in: query + description: The item ids. + deprecated: true + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: The user id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaType + in: query + description: The media type. + deprecated: true + schema: + enum: + - Unknown + - Video + - Audio + - Photo + - Book + allOf: + - $ref: '#/components/schemas/MediaType' + requestBody: + description: The create playlist payload. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + responses: + "200": + description: Playlist created. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}: + post: + tags: + - Playlists + summary: Updates a playlist. + operationId: UpdatePlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistDto' + description: Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistDto' + description: Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistDto' + description: Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + required: true + responses: + "204": + description: Playlist updated. + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - Playlists + summary: Get a playlist. + operationId: GetPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: The playlist. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaylistDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaylistDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaylistDto' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Items: + post: + tags: + - Playlists + summary: Adds items to a playlist. + operationId: AddItemToPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item id, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: The userId. + schema: + type: string + format: uuid + responses: + "204": + description: Items added to playlist. + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playlists + summary: Removes items from a playlist. + operationId: RemoveItemFromPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: entryIds + in: query + description: The item ids, comma delimited. + schema: + type: array + items: + type: string + responses: + "204": + description: Items removed. + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - Playlists + summary: Gets the original items of a playlist. + operationId: GetPlaylistItems + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Original playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}: + post: + tags: + - Playlists + summary: Moves a playlist item. + operationId: MoveItem + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: newIndex + in: path + description: The new index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Item moved to new index. + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Users: + get: + tags: + - Playlists + summary: Get a playlist's users. + operationId: GetPlaylistUsers + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Found shares. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Users/{userId}: + get: + tags: + - Playlists + summary: Get a playlist user. + operationId: GetPlaylistUser + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: User permission found. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaylistUserPermissions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaylistUserPermissions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaylistUserPermissions' + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Playlists + summary: Modify a user of a playlist's users. + operationId: UpdatePlaylistUser + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistUserDto' + description: Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistUserDto' + description: Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdatePlaylistUserDto' + description: Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + required: true + responses: + "204": + description: User's permissions modified. + "403": + description: Access forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Playlist not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playlists + summary: Remove a user from a playlist's users. + operationId: RemoveUserFromPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User permissions removed from playlist. + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: No playlist or user permissions found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized access. + security: + - CustomAuthentication: + - DefaultAuthorization + /PlayingItems/{itemId}: + post: + tags: + - Playstate + summary: Reports that a session has begun playing an item. + operationId: OnPlaybackStart + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: playMethod + in: query + description: The play method. + schema: + enum: + - Transcode + - DirectStream + - DirectPlay + allOf: + - $ref: '#/components/schemas/PlayMethod' + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: canSeek + in: query + description: Indicates if the client can seek. + schema: + type: boolean + default: false + responses: + "204": + description: Play start recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playstate + summary: Reports that a session has stopped playing an item. + operationId: OnPlaybackStopped + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: nextMediaType + in: query + description: The next media type that will play. + schema: + type: string + - name: positionTicks + in: query + description: Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + responses: + "204": + description: Playback stop recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /PlayingItems/{itemId}/Progress: + post: + tags: + - Playstate + summary: Reports a session's playback progress. + operationId: OnPlaybackProgress + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: positionTicks + in: query + description: Optional. The current position, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: volumeLevel + in: query + description: Scale of 0-100. + schema: + type: integer + format: int32 + - name: playMethod + in: query + description: The play method. + schema: + enum: + - Transcode + - DirectStream + - DirectPlay + allOf: + - $ref: '#/components/schemas/PlayMethod' + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: repeatMode + in: query + description: The repeat mode. + schema: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + allOf: + - $ref: '#/components/schemas/RepeatMode' + - name: isPaused + in: query + description: Indicates if the player is paused. + schema: + type: boolean + default: false + - name: isMuted + in: query + description: Indicates if the player is muted. + schema: + type: boolean + default: false + responses: + "204": + description: Play progress recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing: + post: + tags: + - Playstate + summary: Reports playback has started within a session. + operationId: ReportPlaybackStart + requestBody: + description: The playback start info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + responses: + "204": + description: Playback start recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Ping: + post: + tags: + - Playstate + summary: Pings a playback session. + operationId: PingPlaybackSession + parameters: + - name: playSessionId + in: query + description: Playback session id. + required: true + schema: + type: string + responses: + "204": + description: Playback session pinged. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Progress: + post: + tags: + - Playstate + summary: Reports playback progress within a session. + operationId: ReportPlaybackProgress + requestBody: + description: The playback progress info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + responses: + "204": + description: Playback progress recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Stopped: + post: + tags: + - Playstate + summary: Reports playback has stopped within a session. + operationId: ReportPlaybackStopped + requestBody: + description: The playback stop info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + responses: + "204": + description: Playback stop recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserPlayedItems/{itemId}: + post: + tags: + - Playstate + summary: Marks an item as played for user. + operationId: MarkPlayedItem + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: datePlayed + in: query + description: Optional. The date the item was played. + schema: + type: string + format: date-time + responses: + "200": + description: Item marked as played. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playstate + summary: Marks an item as unplayed for user. + operationId: MarkUnplayedItem + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item marked as unplayed. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Plugins: + get: + tags: + - Plugins + summary: Gets a list of currently installed plugins. + operationId: GetPlugins + responses: + "200": + description: Installed plugins returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}: + delete: + tags: + - Plugins + summary: Uninstalls a plugin. + operationId: UninstallPlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin uninstalled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/{version}: + delete: + tags: + - Plugins + summary: Uninstalls a plugin by version. + operationId: UninstallPluginByVersion + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin uninstalled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/{version}/Disable: + post: + tags: + - Plugins + summary: Disable a plugin. + operationId: DisablePlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin disabled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/{version}/Enable: + post: + tags: + - Plugins + summary: Enables a disabled plugin. + operationId: EnablePlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin enabled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/{version}/Image: + get: + tags: + - Plugins + summary: Gets a plugin's image. + operationId: GetPluginImage + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "200": + description: Plugin image returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/Configuration: + get: + tags: + - Plugins + summary: Gets plugin configuration. + operationId: GetPluginConfiguration + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Plugin configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + "404": + description: Plugin not found or plugin configuration not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Plugins + summary: Updates plugin configuration. + description: Accepts plugin configuration as JSON body. + operationId: UpdatePluginConfiguration + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin configuration updated. + "404": + description: Plugin not found or plugin does not have configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Plugins/{pluginId}/Manifest: + post: + tags: + - Plugins + summary: Gets a plugin's manifest. + operationId: GetPluginManifest + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin manifest returned. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /QuickConnect/Authorize: + post: + tags: + - QuickConnect + summary: Authorizes a pending quick connect request. + operationId: AuthorizeQuickConnect + parameters: + - name: code + in: query + description: Quick connect code to authorize. + required: true + schema: + type: string + - name: userId + in: query + description: The user the authorize. Access to the requested user is required. + schema: + type: string + format: uuid + responses: + "200": + description: Quick connect result authorized successfully. + content: + application/json: + schema: + type: boolean + application/json; profile="CamelCase": + schema: + type: boolean + application/json; profile="PascalCase": + schema: + type: boolean + "403": + description: Unknown user id. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /QuickConnect/Connect: + get: + tags: + - QuickConnect + summary: Attempts to retrieve authentication information. + operationId: GetQuickConnectState + parameters: + - name: secret + in: query + description: Secret previously returned from the Initiate endpoint. + required: true + schema: + type: string + responses: + "200": + description: Quick connect result returned. + content: + application/json: + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + "404": + description: Unknown quick connect secret. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /QuickConnect/Enabled: + get: + tags: + - QuickConnect + summary: Gets the current quick connect state. + operationId: GetQuickConnectEnabled + responses: + "200": + description: Quick connect state returned. + content: + application/json: + schema: + type: boolean + application/json; profile="CamelCase": + schema: + type: boolean + application/json; profile="PascalCase": + schema: + type: boolean + /QuickConnect/Initiate: + post: + tags: + - QuickConnect + summary: Initiate a new quick connect request. + operationId: InitiateQuickConnect + responses: + "200": + description: Quick connect request successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + "401": + description: Quick connect is not active on this server. + /Items/{itemId}/RemoteImages: + get: + tags: + - RemoteImage + summary: Gets available remote images for an item. + operationId: GetRemoteImages + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + - name: type + in: query + description: The image type. + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: providerName + in: query + description: Optional. The image provider to use. + schema: + type: string + - name: includeAllLanguages + in: query + description: Optional. Include all languages. + schema: + type: boolean + default: false + responses: + "200": + description: Remote Images returned. + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteImageResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/RemoteImageResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/RemoteImageResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/RemoteImages/Download: + post: + tags: + - RemoteImage + summary: Downloads a remote image for an item. + operationId: DownloadRemoteImage + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + - name: type + in: query + description: The image type. + required: true + schema: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageUrl + in: query + description: The image url. + schema: + type: string + responses: + "204": + description: Remote image downloaded. + "404": + description: Remote image not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items/{itemId}/RemoteImages/Providers: + get: + tags: + - RemoteImage + summary: Gets available remote image providers for an item. + operationId: GetRemoteImageProviders + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Returned remote image providers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /ScheduledTasks: + get: + tags: + - ScheduledTasks + summary: Get tasks. + operationId: GetTasks + parameters: + - name: isHidden + in: query + description: Optional filter tasks that are hidden, or not. + schema: + type: boolean + - name: isEnabled + in: query + description: Optional filter tasks that are enabled, or not. + schema: + type: boolean + responses: + "200": + description: Scheduled tasks retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/{taskId}: + get: + tags: + - ScheduledTasks + summary: Get task by id. + operationId: GetTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "200": + description: Task retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TaskInfo' + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/{taskId}/Triggers: + post: + tags: + - ScheduledTasks + summary: Update specified task triggers. + operationId: UpdateTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + requestBody: + description: Triggers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + text/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + application/*+json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + required: true + responses: + "204": + description: Task triggers updated. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/Running/{taskId}: + post: + tags: + - ScheduledTasks + summary: Start specified task. + operationId: StartTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "204": + description: Task started. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - ScheduledTasks + summary: Stop specified task. + operationId: StopTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "204": + description: Task stopped. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Search/Hints: + get: + tags: + - Search + summary: Gets the search hint result. + operationId: GetSearchHints + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: userId + in: query + description: Optional. Supply a user id to search within a user's library or omit to search all. + schema: + type: string + format: uuid + - name: searchTerm + in: query + description: The search term to filter on. + required: true + schema: + type: string + - name: includeItemTypes + in: query + description: If specified, only results with the specified item types are returned. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: excludeItemTypes + in: query + description: If specified, results with these item types are filtered out. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: If specified, only results with the specified media types are returned. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: parentId + in: query + description: If specified, only children of the parent are returned. + schema: + type: string + format: uuid + - name: isMovie + in: query + description: Optional filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for sports. + schema: + type: boolean + - name: includePeople + in: query + description: Optional filter whether to include people. + schema: + type: boolean + default: true + - name: includeMedia + in: query + description: Optional filter whether to include media. + schema: + type: boolean + default: true + - name: includeGenres + in: query + description: Optional filter whether to include genres. + schema: + type: boolean + default: true + - name: includeStudios + in: query + description: Optional filter whether to include studios. + schema: + type: boolean + default: true + - name: includeArtists + in: query + description: Optional filter whether to include artists. + schema: + type: boolean + default: true + responses: + "200": + description: Search hint returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchHintResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SearchHintResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SearchHintResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Auth/PasswordResetProviders: + get: + tags: + - Session + summary: Get all password reset providers. + operationId: GetPasswordResetProviders + responses: + "200": + description: Password reset providers retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Providers: + get: + tags: + - Session + summary: Get all auth providers. + operationId: GetAuthProviders + responses: + "200": + description: Auth providers retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Sessions: + get: + tags: + - Session + summary: Gets a list of sessions. + operationId: GetSessions + parameters: + - name: controllableByUserId + in: query + description: Filter by sessions that a given user is allowed to remote control. + schema: + type: string + format: uuid + - name: deviceId + in: query + description: Filter by device Id. + schema: + type: string + - name: activeWithinSeconds + in: query + description: Optional. Filter by sessions that were active in the last n seconds. + schema: + type: integer + format: int32 + responses: + "200": + description: List of sessions returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfoDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfoDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Command: + post: + tags: + - Session + summary: Issues a full general command to a client. + operationId: SendFullGeneralCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.GeneralCommand. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + required: true + responses: + "204": + description: Full general command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Command/{command}: + post: + tags: + - Session + summary: Issues a general command to a client. + operationId: SendGeneralCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The command to send. + required: true + schema: + enum: + - MoveUp + - MoveDown + - MoveLeft + - MoveRight + - PageUp + - PageDown + - PreviousLetter + - NextLetter + - ToggleOsd + - ToggleContextMenu + - Select + - Back + - TakeScreenshot + - SendKey + - SendString + - GoHome + - GoToSettings + - VolumeUp + - VolumeDown + - Mute + - Unmute + - ToggleMute + - SetVolume + - SetAudioStreamIndex + - SetSubtitleStreamIndex + - ToggleFullscreen + - DisplayContent + - GoToSearch + - DisplayMessage + - SetRepeatMode + - ChannelUp + - ChannelDown + - Guide + - ToggleStats + - PlayMediaSource + - PlayTrailers + - SetShuffleQueue + - PlayState + - PlayNext + - ToggleOsdMenu + - Play + - SetMaxStreamingBitrate + - SetPlaybackOrder + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + responses: + "204": + description: General command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Message: + post: + tags: + - Session + summary: Issues a command to a client to display a message to the user. + operationId: SendMessageCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + required: true + responses: + "204": + description: Message sent. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Playing: + post: + tags: + - Session + summary: Instructs a session to play an item. + operationId: Play + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: playCommand + in: query + description: The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. + required: true + schema: + enum: + - PlayNow + - PlayNext + - PlayLast + - PlayInstantMix + - PlayShuffle + allOf: + - $ref: '#/components/schemas/PlayCommand' + description: Enum PlayCommand. + - name: itemIds + in: query + description: The ids of the items to play, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + - name: startPositionTicks + in: query + description: The starting position of the first item. + schema: + type: integer + format: int64 + - name: mediaSourceId + in: query + description: Optional. The media source id. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to play. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to play. + schema: + type: integer + format: int32 + - name: startIndex + in: query + description: Optional. The start index. + schema: + type: integer + format: int32 + responses: + "204": + description: Instruction sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Playing/{command}: + post: + tags: + - Session + summary: Issues a playstate command to a client. + operationId: SendPlaystateCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The MediaBrowser.Model.Session.PlaystateCommand. + required: true + schema: + enum: + - Stop + - Pause + - Unpause + - NextTrack + - PreviousTrack + - Seek + - Rewind + - FastForward + - PlayPause + allOf: + - $ref: '#/components/schemas/PlaystateCommand' + description: Enum PlaystateCommand. + - name: seekPositionTicks + in: query + description: The optional position ticks. + schema: + type: integer + format: int64 + - name: controllingUserId + in: query + description: The optional controlling user id. + schema: + type: string + responses: + "204": + description: Playstate command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/System/{command}: + post: + tags: + - Session + summary: Issues a system command to a client. + operationId: SendSystemCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The command to send. + required: true + schema: + enum: + - MoveUp + - MoveDown + - MoveLeft + - MoveRight + - PageUp + - PageDown + - PreviousLetter + - NextLetter + - ToggleOsd + - ToggleContextMenu + - Select + - Back + - TakeScreenshot + - SendKey + - SendString + - GoHome + - GoToSettings + - VolumeUp + - VolumeDown + - Mute + - Unmute + - ToggleMute + - SetVolume + - SetAudioStreamIndex + - SetSubtitleStreamIndex + - ToggleFullscreen + - DisplayContent + - GoToSearch + - DisplayMessage + - SetRepeatMode + - ChannelUp + - ChannelDown + - Guide + - ToggleStats + - PlayMediaSource + - PlayTrailers + - SetShuffleQueue + - PlayState + - PlayNext + - ToggleOsdMenu + - Play + - SetMaxStreamingBitrate + - SetPlaybackOrder + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + responses: + "204": + description: System command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/User/{userId}: + post: + tags: + - Session + summary: Adds an additional user to a session. + operationId: AddUserToSession + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User added to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Session + summary: Removes an additional user from a session. + operationId: RemoveUserFromSession + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User removed from session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Viewing: + post: + tags: + - Session + summary: Instructs a session to browse to an item or view. + operationId: DisplayContent + parameters: + - name: sessionId + in: path + description: The session Id. + required: true + schema: + type: string + - name: itemType + in: query + description: The type of item to browse to. + required: true + schema: + enum: + - AggregateFolder + - Audio + - AudioBook + - BasePluginFolder + - Book + - BoxSet + - Channel + - ChannelFolderItem + - CollectionFolder + - Episode + - Folder + - Genre + - ManualPlaylistsFolder + - Movie + - LiveTvChannel + - LiveTvProgram + - MusicAlbum + - MusicArtist + - MusicGenre + - MusicVideo + - Person + - Photo + - PhotoAlbum + - Playlist + - PlaylistsFolder + - Program + - Recording + - Season + - Series + - Studio + - Trailer + - TvChannel + - TvProgram + - UserRootFolder + - UserView + - Video + - Year + allOf: + - $ref: '#/components/schemas/BaseItemKind' + description: The base item kind. + - name: itemId + in: query + description: The Id of the item. + required: true + schema: + type: string + - name: itemName + in: query + description: The name of the item. + required: true + schema: + type: string + responses: + "204": + description: Instruction sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Capabilities: + post: + tags: + - Session + summary: Updates capabilities for a device. + operationId: PostCapabilities + parameters: + - name: id + in: query + description: The session id. + schema: + type: string + - name: playableMediaTypes + in: query + description: A list of playable media types, comma delimited. Audio, Video, Book, Photo. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: supportedCommands + in: query + description: A list of supported remote control commands, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + - name: supportsMediaControl + in: query + description: Determines whether media can be played remotely.. + schema: + type: boolean + default: false + - name: supportsPersistentIdentifier + in: query + description: Determines whether the device supports a unique identifier. + schema: + type: boolean + default: true + responses: + "204": + description: Capabilities posted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Capabilities/Full: + post: + tags: + - Session + summary: Updates capabilities for a device. + operationId: PostFullCapabilities + parameters: + - name: id + in: query + description: The session id. + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.ClientCapabilities. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + required: true + responses: + "204": + description: Capabilities updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Logout: + post: + tags: + - Session + summary: Reports that a session has ended. + operationId: ReportSessionEnded + responses: + "204": + description: Session end reported to server. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Viewing: + post: + tags: + - Session + summary: Reports that a session is viewing an item. + operationId: ReportViewing + parameters: + - name: sessionId + in: query + description: The session id. + schema: + type: string + - name: itemId + in: query + description: The item id. + required: true + schema: + type: string + responses: + "204": + description: Session reported to server. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Startup/Complete: + post: + tags: + - Startup + summary: Completes the startup wizard. + operationId: CompleteWizard + responses: + "204": + description: Startup wizard completed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Startup/Configuration: + get: + tags: + - Startup + summary: Gets the initial startup wizard configuration. + operationId: GetStartupConfiguration + responses: + "200": + description: Initial startup wizard configuration retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + post: + tags: + - Startup + summary: Sets the initial startup wizard configuration. + operationId: UpdateInitialConfiguration + requestBody: + description: The updated startup configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + required: true + responses: + "204": + description: Configuration saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Startup/FirstUser: + get: + tags: + - Startup + summary: Gets the first user. + operationId: GetFirstUser_2 + responses: + "200": + description: Initial user retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Startup/RemoteAccess: + post: + tags: + - Startup + summary: Sets remote access and UPnP. + operationId: SetRemoteAccess + requestBody: + description: The startup remote access dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + required: true + responses: + "204": + description: Configuration saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Startup/User: + get: + tags: + - Startup + summary: Gets the first user. + operationId: GetFirstUser + responses: + "200": + description: Initial user retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + post: + tags: + - Startup + summary: Sets the user name and password. + operationId: UpdateStartupUser + requestBody: + description: The DTO containing username and password. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + responses: + "204": + description: Updated user name and password. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /Studios: + get: + tags: + - Studios + summary: Gets all studios from a given item, folder, or the entire library. + operationId: GetStudios + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Studios returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Studios/{name}: + get: + tags: + - Studios + summary: Gets a studio by name. + operationId: GetStudio + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Studio returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /FallbackFont/Fonts: + get: + tags: + - Subtitle + summary: Gets a list of available fallback font files. + operationId: GetFallbackFontList + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /FallbackFont/Fonts/{name}: + get: + tags: + - Subtitle + summary: Gets a fallback font file. + operationId: GetFallbackFont + parameters: + - name: name + in: path + description: The name of the fallback font file to get. + required: true + schema: + type: string + responses: + "200": + description: Fallback font file retrieved. + content: + font/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/RemoteSearch/Subtitles/{language}: + get: + tags: + - Subtitle + summary: Search remote subtitles. + operationId: SearchRemoteSubtitles + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: language + in: path + description: The language of the subtitles. + required: true + schema: + type: string + - name: isPerfectMatch + in: query + description: Optional. Only show subtitles which are a perfect match. + schema: + type: boolean + responses: + "200": + description: Subtitles retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SubtitleManagement + - DefaultAuthorization + /Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}: + post: + tags: + - Subtitle + summary: Downloads a remote subtitle. + operationId: DownloadRemoteSubtitles + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: subtitleId + in: path + description: The subtitle id. + required: true + schema: + type: string + responses: + "204": + description: Subtitle downloaded. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SubtitleManagement + - DefaultAuthorization + /Providers/Subtitles/Subtitles/{subtitleId}: + get: + tags: + - Subtitle + summary: Gets the remote subtitles. + operationId: GetRemoteSubtitles + parameters: + - name: subtitleId + in: path + description: The item id. + required: true + schema: + type: string + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SubtitleManagement + - DefaultAuthorization + /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8: + get: + tags: + - Subtitle + summary: Gets an HLS subtitle playlist. + operationId: GetSubtitlePlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: index + in: path + description: The subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: path + description: The media source id. + required: true + schema: + type: string + - name: segmentLength + in: query + description: The subtitle segment length. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Subtitle playlist retrieved. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/Subtitles: + post: + tags: + - Subtitle + summary: Upload an external subtitle file. + operationId: UploadSubtitle + parameters: + - name: itemId + in: path + description: The item the subtitle belongs to. + required: true + schema: + type: string + format: uuid + requestBody: + description: The request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + required: true + responses: + "204": + description: Subtitle uploaded. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SubtitleManagement + - DefaultAuthorization + /Videos/{itemId}/Subtitles/{index}: + delete: + tags: + - Subtitle + summary: Deletes an external subtitle file. + operationId: DeleteSubtitle + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: index + in: path + description: The index of the subtitle file. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Subtitle deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}: + get: + tags: + - Subtitle + summary: Gets subtitles in a specified format. + operationId: GetSubtitleWithTicks + parameters: + - name: routeItemId + in: path + description: The (route) item id. + required: true + schema: + type: string + format: uuid + - name: routeMediaSourceId + in: path + description: The (route) media source id. + required: true + schema: + type: string + - name: routeIndex + in: path + description: The (route) subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: routeStartPositionTicks + in: path + description: The (route) start position of the subtitle in ticks. + required: true + schema: + type: integer + format: int64 + - name: routeFormat + in: path + description: The (route) format of the returned subtitle. + required: true + schema: + type: string + - name: itemId + in: query + description: The item id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: index + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: startPositionTicks + in: query + description: The start position of the subtitle in ticks. + deprecated: true + schema: + type: integer + format: int64 + - name: format + in: query + description: The format of the returned subtitle. + deprecated: true + schema: + type: string + - name: endPositionTicks + in: query + description: Optional. The end position of the subtitle in ticks. + schema: + type: integer + format: int64 + - name: copyTimestamps + in: query + description: Optional. Whether to copy the timestamps. + schema: + type: boolean + default: false + - name: addVttTimeMap + in: query + description: Optional. Whether to add a VTT time map. + schema: + type: boolean + default: false + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}: + get: + tags: + - Subtitle + summary: Gets subtitles in a specified format. + operationId: GetSubtitle + parameters: + - name: routeItemId + in: path + description: The (route) item id. + required: true + schema: + type: string + format: uuid + - name: routeMediaSourceId + in: path + description: The (route) media source id. + required: true + schema: + type: string + - name: routeIndex + in: path + description: The (route) subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: routeFormat + in: path + description: The (route) format of the returned subtitle. + required: true + schema: + type: string + - name: itemId + in: query + description: The item id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: index + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: format + in: query + description: The format of the returned subtitle. + deprecated: true + schema: + type: string + - name: endPositionTicks + in: query + description: Optional. The end position of the subtitle in ticks. + schema: + type: integer + format: int64 + - name: copyTimestamps + in: query + description: Optional. Whether to copy the timestamps. + schema: + type: boolean + default: false + - name: addVttTimeMap + in: query + description: Optional. Whether to add a VTT time map. + schema: + type: boolean + default: false + - name: startPositionTicks + in: query + description: The start position of the subtitle in ticks. + schema: + type: integer + format: int64 + default: 0 + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + /Items/Suggestions: + get: + tags: + - Suggestions + summary: Gets suggestions. + operationId: GetSuggestions + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: mediaType + in: query + description: The media types. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: type + in: query + description: The type. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: startIndex + in: query + description: Optional. The start index. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The limit. + schema: + type: integer + format: int32 + - name: enableTotalRecordCount + in: query + description: Whether to enable the total record count. + schema: + type: boolean + default: false + responses: + "200": + description: Suggestions returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /SyncPlay/Buffering: + post: + tags: + - SyncPlay + summary: Notify SyncPlay group that member is buffering. + operationId: SyncPlayBuffering + requestBody: + description: The player status. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + required: true + responses: + "204": + description: Group state update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Join: + post: + tags: + - SyncPlay + summary: Join an existing SyncPlay group. + operationId: SyncPlayJoinGroup + requestBody: + description: The group to join. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + required: true + responses: + "204": + description: Group join successful. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayJoinGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Leave: + post: + tags: + - SyncPlay + summary: Leave the joined SyncPlay group. + operationId: SyncPlayLeaveGroup + responses: + "204": + description: Group leave successful. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/List: + get: + tags: + - SyncPlay + summary: Gets all SyncPlay groups. + operationId: SyncPlayGetGroups + responses: + "200": + description: Groups returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayJoinGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/MovePlaylistItem: + post: + tags: + - SyncPlay + summary: Request to move an item in the playlist in SyncPlay group. + operationId: SyncPlayMovePlaylistItem + requestBody: + description: The new position for the item. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/New: + post: + tags: + - SyncPlay + summary: Create a new SyncPlay group. + operationId: SyncPlayCreateGroup + requestBody: + description: The settings of the new group. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + required: true + responses: + "204": + description: New group created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayCreateGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/NextItem: + post: + tags: + - SyncPlay + summary: Request next item in SyncPlay group. + operationId: SyncPlayNextItem + requestBody: + description: The current item information. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + required: true + responses: + "204": + description: Next item update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Pause: + post: + tags: + - SyncPlay + summary: Request pause in SyncPlay group. + operationId: SyncPlayPause + responses: + "204": + description: Pause update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Ping: + post: + tags: + - SyncPlay + summary: Update session ping. + operationId: SyncPlayPing + requestBody: + description: The new ping. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + required: true + responses: + "204": + description: Ping updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/PreviousItem: + post: + tags: + - SyncPlay + summary: Request previous item in SyncPlay group. + operationId: SyncPlayPreviousItem + requestBody: + description: The current item information. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + required: true + responses: + "204": + description: Previous item update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Queue: + post: + tags: + - SyncPlay + summary: Request to queue items to the playlist of a SyncPlay group. + operationId: SyncPlayQueue + requestBody: + description: The items to add. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Ready: + post: + tags: + - SyncPlay + summary: Notify SyncPlay group that member is ready for playback. + operationId: SyncPlayReady + requestBody: + description: The player status. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + required: true + responses: + "204": + description: Group state update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/RemoveFromPlaylist: + post: + tags: + - SyncPlay + summary: Request to remove items from the playlist in SyncPlay group. + operationId: SyncPlayRemoveFromPlaylist + requestBody: + description: The items to remove. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Seek: + post: + tags: + - SyncPlay + summary: Request seek in SyncPlay group. + operationId: SyncPlaySeek + requestBody: + description: The new playback position. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + required: true + responses: + "204": + description: Seek update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/SetIgnoreWait: + post: + tags: + - SyncPlay + summary: Request SyncPlay group to ignore member during group-wait. + operationId: SyncPlaySetIgnoreWait + requestBody: + description: The settings to set. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + required: true + responses: + "204": + description: Member state updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/SetNewQueue: + post: + tags: + - SyncPlay + summary: Request to set new playlist in SyncPlay group. + operationId: SyncPlaySetNewQueue + requestBody: + description: The new playlist to play in the group. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/SetPlaylistItem: + post: + tags: + - SyncPlay + summary: Request to change playlist item in SyncPlay group. + operationId: SyncPlaySetPlaylistItem + requestBody: + description: The new item to play. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/SetRepeatMode: + post: + tags: + - SyncPlay + summary: Request to set repeat mode in SyncPlay group. + operationId: SyncPlaySetRepeatMode + requestBody: + description: The new repeat mode. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + required: true + responses: + "204": + description: Play queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/SetShuffleMode: + post: + tags: + - SyncPlay + summary: Request to set shuffle mode in SyncPlay group. + operationId: SyncPlaySetShuffleMode + requestBody: + description: The new shuffle mode. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + required: true + responses: + "204": + description: Play queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Stop: + post: + tags: + - SyncPlay + summary: Request stop in SyncPlay group. + operationId: SyncPlayStop + responses: + "204": + description: Stop update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /SyncPlay/Unpause: + post: + tags: + - SyncPlay + summary: Request unpause in SyncPlay group. + operationId: SyncPlayUnpause + responses: + "204": + description: Unpause update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + - DefaultAuthorization + /System/Endpoint: + get: + tags: + - System + summary: Gets information about the request endpoint. + operationId: GetEndpointInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/EndPointInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/EndPointInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/EndPointInfo' + "403": + description: User does not have permission to get endpoint information. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /System/Info: + get: + tags: + - System + summary: Gets information about the server. + operationId: GetSystemInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SystemInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SystemInfo' + "403": + description: User does not have permission to retrieve information. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - FirstTimeSetupOrIgnoreParentalControl + - DefaultAuthorization + /System/Info/Public: + get: + tags: + - System + summary: Gets public information about the server. + operationId: GetPublicSystemInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/PublicSystemInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PublicSystemInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PublicSystemInfo' + /System/Logs: + get: + tags: + - System + summary: Gets a list of available server log files. + operationId: GetServerLogs + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + "403": + description: User does not have permission to get server logs. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /System/Logs/Log: + get: + tags: + - System + summary: Gets a log file. + operationId: GetLogFile + parameters: + - name: name + in: query + description: The name of the log file to get. + required: true + schema: + type: string + responses: + "200": + description: Log file retrieved. + content: + text/plain: + schema: + type: string + format: binary + "403": + description: User does not have permission to get log files. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Could not find a log file with the name. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /System/Ping: + get: + tags: + - System + summary: Pings the system. + operationId: GetPingSystem + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + post: + tags: + - System + summary: Pings the system. + operationId: PostPingSystem + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + /System/Restart: + post: + tags: + - System + summary: Restarts the application. + operationId: RestartApplication + responses: + "204": + description: Server restarted. + "403": + description: User does not have permission to restart server. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - LocalAccessOrRequiresElevation + /System/Shutdown: + post: + tags: + - System + summary: Shuts down the application. + operationId: ShutdownApplication + responses: + "204": + description: Server shut down. + "403": + description: User does not have permission to shutdown server. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /System/WakeOnLanInfo: + get: + tags: + - System + summary: Gets wake on lan information. + operationId: GetWakeOnLanInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /GetUtcTime: + get: + tags: + - TimeSync + summary: Gets the current UTC time. + operationId: GetUtcTime + responses: + "200": + description: Time returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UtcTimeResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UtcTimeResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UtcTimeResponse' + /Tmdb/ClientConfiguration: + get: + tags: + - Tmdb + summary: Gets the TMDb image configuration options. + operationId: TmdbClientConfiguration + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigImageTypes' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Trailers: + get: + tags: + - Trailers + summary: Finds movies and trailers similar to a given trailer. + operationId: GetTrailers + parameters: + - name: userId + in: query + description: The user id supplied as query parameter; this is required when not using an API key. + schema: + type: string + format: uuid + - name: maxOfficialRating + in: query + description: Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: hasThemeSong + in: query + description: Optional filter by items with theme songs. + schema: + type: boolean + - name: hasThemeVideo + in: query + description: Optional filter by items with theme videos. + schema: + type: boolean + - name: hasSubtitles + in: query + description: Optional filter by items with subtitles. + schema: + type: boolean + - name: hasSpecialFeature + in: query + description: Optional filter by items with special features. + schema: + type: boolean + - name: hasTrailer + in: query + description: Optional filter by items with trailers. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + format: uuid + - name: parentIndexNumber + in: query + description: Optional filter by parent index number. + schema: + type: integer + format: int32 + - name: hasParentalRating + in: query + description: Optional filter by items that have or do not have a parental rating. + schema: + type: boolean + - name: isHd + in: query + description: Optional filter by items that are HD or not. + schema: + type: boolean + - name: is4K + in: query + description: Optional filter by items that are 4K or not. + schema: + type: boolean + - name: locationTypes + in: query + description: Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: excludeLocationTypes + in: query + description: Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: isMissing + in: query + description: Optional filter by items that are missing episodes or not. + schema: + type: boolean + - name: isUnaired + in: query + description: Optional filter by items that are unaired episodes or not. + schema: + type: boolean + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: minCriticRating + in: query + description: Optional filter by minimum critic rating. + schema: + type: number + format: double + - name: minPremiereDate + in: query + description: Optional. The minimum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSaved + in: query + description: Optional. The minimum last saved date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSavedForUser + in: query + description: Optional. The minimum last saved date for the current user. Format = ISO. + schema: + type: string + format: date-time + - name: maxPremiereDate + in: query + description: Optional. The maximum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: hasOverview + in: query + description: Optional filter by items that have an overview or not. + schema: + type: boolean + - name: hasImdbId + in: query + description: Optional filter by items that have an IMDb id or not. + schema: + type: boolean + - name: hasTmdbId + in: query + description: Optional filter by items that have a TMDb id or not. + schema: + type: boolean + - name: hasTvdbId + in: query + description: Optional filter by items that have a TVDb id or not. + schema: + type: boolean + - name: isMovie + in: query + description: Optional filter for live tv movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for live tv series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for live tv news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for live tv kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for live tv sports. + schema: + type: boolean + - name: excludeItemIds + in: query + description: Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: recursive + in: query + description: When searching within folders, this determines whether or not the search will be recursive. true/false. + schema: + type: boolean + - name: searchTerm + in: query + description: Optional. Filter based on a search term. + schema: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending, Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: 'Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: imageTypes + in: query + description: Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: isPlayed + in: query + description: Optional filter by items that are played, or not. + schema: + type: boolean + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person id. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: artists + in: query + description: Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: excludeArtistIds + in: query + description: Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: artistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albumArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified album artist id. + schema: + type: array + items: + type: string + format: uuid + - name: contributingArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albums + in: query + description: Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: albumIds + in: query + description: Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: ids + in: query + description: Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: videoTypes + in: query + description: Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/VideoType' + - name: minOfficialRating + in: query + description: Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: isLocked + in: query + description: Optional filter by items that are locked. + schema: + type: boolean + - name: isPlaceHolder + in: query + description: Optional filter by items that are placeholders. + schema: + type: boolean + - name: hasOfficialRating + in: query + description: Optional filter by items that have official ratings. + schema: + type: boolean + - name: collapseBoxSetItems + in: query + description: Whether or not to hide items behind their boxsets. + schema: + type: boolean + - name: minWidth + in: query + description: Optional. Filter by the minimum width of the item. + schema: + type: integer + format: int32 + - name: minHeight + in: query + description: Optional. Filter by the minimum height of the item. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. Filter by the maximum width of the item. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. Filter by the maximum height of the item. + schema: + type: integer + format: int32 + - name: is3D + in: query + description: Optional filter by items that are 3D, or not. + schema: + type: boolean + - name: seriesStatus + in: query + description: Optional filter by Series Status. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/SeriesStatus' + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/Trickplay/{width}/{index}.jpg: + get: + tags: + - Trickplay + summary: Gets a trickplay tile image. + operationId: GetTrickplayTileImage + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: width + in: path + description: The width of a single tile. + required: true + schema: + type: integer + format: int32 + - name: index + in: path + description: The index of the desired tile. + required: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if using an alternate version. + schema: + type: string + format: uuid + responses: + "200": + description: Tile image not found at specified index. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/Trickplay/{width}/tiles.m3u8: + get: + tags: + - Trickplay + summary: Gets an image tiles playlist for trickplay. + operationId: GetTrickplayHlsPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: width + in: path + description: The width of a single tile. + required: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if using an alternate version. + schema: + type: string + format: uuid + responses: + "200": + description: Tiles playlist returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{seriesId}/Episodes: + get: + tags: + - TvShows + summary: Gets episodes for a tv season. + operationId: GetEpisodes + parameters: + - name: seriesId + in: path + description: The series id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: season + in: query + description: Optional filter by season number. + schema: + type: integer + format: int32 + - name: seasonId + in: query + description: Optional. Filter by season id. + schema: + type: string + format: uuid + - name: isMissing + in: query + description: Optional. Filter by items that are missing episodes or not. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + format: uuid + - name: startItemId + in: query + description: Optional. Skip through the list until a given item is found. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + enum: + - Default + - AiredEpisodeOrder + - Album + - AlbumArtist + - Artist + - DateCreated + - OfficialRating + - DatePlayed + - PremiereDate + - StartDate + - SortName + - Name + - Random + - Runtime + - CommunityRating + - ProductionYear + - PlayCount + - CriticRating + - IsFolder + - IsUnplayed + - IsPlayed + - SeriesSortName + - VideoBitRate + - AirTime + - Studio + - IsFavoriteOrLiked + - DateLastContentAdded + - SeriesDatePlayed + - ParentIndexNumber + - IndexNumber + - SimilarityScore + - SearchScore + allOf: + - $ref: '#/components/schemas/ItemSortBy' + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{seriesId}/Seasons: + get: + tags: + - TvShows + summary: Gets seasons for a tv series. + operationId: GetSeasons + parameters: + - name: seriesId + in: path + description: The series id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: isSpecialSeason + in: query + description: Optional. Filter by special season. + schema: + type: boolean + - name: isMissing + in: query + description: Optional. Filter by items that are missing episodes or not. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/NextUp: + get: + tags: + - TvShows + summary: Gets a list of next up episodes. + operationId: GetNextUp + parameters: + - name: userId + in: query + description: The user id of the user to get the next up episodes for. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: seriesId + in: query + description: Optional. Filter by series id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: nextUpDateCutoff + in: query + description: Optional. Starting date of shows to show in Next Up section. + schema: + type: string + format: date-time + - name: enableTotalRecordCount + in: query + description: Whether to enable the total records count. Defaults to true. + schema: + type: boolean + default: true + - name: disableFirstEpisode + in: query + description: Whether to disable sending the first episode in a series as next up. + schema: + type: boolean + default: false + - name: enableResumable + in: query + description: Whether to include resumable episodes in next up results. + schema: + type: boolean + default: true + - name: enableRewatching + in: query + description: Whether to include watched episodes in next up results. + schema: + type: boolean + default: false + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/Upcoming: + get: + tags: + - TvShows + summary: Gets a list of upcoming episodes. + operationId: GetUpcomingEpisodes + parameters: + - name: userId + in: query + description: The user id of the user to get the upcoming episodes for. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/universal: + get: + tags: + - UniversalAudio + summary: Gets an audio stream. + operationId: GetUniversalAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: Optional. The audio container. + schema: + type: array + items: + type: string + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: userId + in: query + description: Optional. The user id. + schema: + type: string + format: uuid + - name: audioCodec + in: query + description: Optional. The audio codec to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: maxAudioChannels + in: query + description: Optional. The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: transcodingAudioChannels + in: query + description: Optional. The number of how many audio channels to transcode to. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: transcodingContainer + in: query + description: Optional. The container to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodingProtocol + in: query + description: Optional. The transcoding protocol. + schema: + enum: + - http + - hls + allOf: + - $ref: '#/components/schemas/MediaStreamProtocol' + - name: maxAudioSampleRate + in: query + description: Optional. The maximum audio sample rate. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: enableRemoteMedia + in: query + description: Optional. Whether to enable remote media. + schema: + type: boolean + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + default: false + - name: enableRedirection + in: query + description: Whether to enable redirection. Defaults to true. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + "302": + description: Redirected to remote audio stream. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - UniversalAudio + summary: Gets an audio stream. + operationId: HeadUniversalAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: Optional. The audio container. + schema: + type: array + items: + type: string + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: userId + in: query + description: Optional. The user id. + schema: + type: string + format: uuid + - name: audioCodec + in: query + description: Optional. The audio codec to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: maxAudioChannels + in: query + description: Optional. The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: transcodingAudioChannels + in: query + description: Optional. The number of how many audio channels to transcode to. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: transcodingContainer + in: query + description: Optional. The container to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodingProtocol + in: query + description: Optional. The transcoding protocol. + schema: + enum: + - http + - hls + allOf: + - $ref: '#/components/schemas/MediaStreamProtocol' + - name: maxAudioSampleRate + in: query + description: Optional. The maximum audio sample rate. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: enableRemoteMedia + in: query + description: Optional. Whether to enable remote media. + schema: + type: boolean + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + default: false + - name: enableRedirection + in: query + description: Whether to enable redirection. Defaults to true. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + "302": + description: Redirected to remote audio stream. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users: + get: + tags: + - User + summary: Gets a list of users. + operationId: GetUsers + parameters: + - name: isHidden + in: query + description: Optional filter by IsHidden=true or false. + schema: + type: boolean + - name: isDisabled + in: query + description: Optional filter by IsDisabled=true or false. + schema: + type: boolean + responses: + "200": + description: Users returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - User + summary: Updates a user. + operationId: UpdateUser + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + requestBody: + description: The updated user model. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + required: true + responses: + "204": + description: User updated. + "400": + description: User information was not supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}: + get: + tags: + - User + summary: Gets a user by Id. + operationId: GetUserById + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: User returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - IgnoreParentalControl + - DefaultAuthorization + delete: + tags: + - User + summary: Deletes a user. + operationId: DeleteUser + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User deleted. + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Users/{userId}/Policy: + post: + tags: + - User + summary: Updates a user policy. + operationId: UpdateUserPolicy + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The new user policy. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + required: true + responses: + "204": + description: User policy updated. + "400": + description: User policy was not supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User policy update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /Users/AuthenticateByName: + post: + tags: + - User + summary: Authenticates a user by name. + operationId: AuthenticateUserByName + requestBody: + description: The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + required: true + responses: + "200": + description: User authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + /Users/AuthenticateWithQuickConnect: + post: + tags: + - User + summary: Authenticates a user with quick connect. + operationId: AuthenticateWithQuickConnect + requestBody: + description: The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + required: true + responses: + "200": + description: User authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + "400": + description: Missing token. + /Users/Configuration: + post: + tags: + - User + summary: Updates a user configuration. + operationId: UpdateUserConfiguration + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + requestBody: + description: The new user configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + required: true + responses: + "204": + description: User configuration updated. + "403": + description: User configuration update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/ForgotPassword: + post: + tags: + - User + summary: Initiates the forgot password process for a local user. + operationId: ForgotPassword + requestBody: + description: The forgot password request containing the entered username. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + required: true + responses: + "200": + description: Password reset process started. + content: + application/json: + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + /Users/ForgotPassword/Pin: + post: + tags: + - User + summary: Redeems a forgot password pin. + operationId: ForgotPasswordPin + requestBody: + description: The forgot password pin request containing the entered pin. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + required: true + responses: + "200": + description: Pin reset process started. + content: + application/json: + schema: + $ref: '#/components/schemas/PinRedeemResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PinRedeemResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PinRedeemResult' + /Users/Me: + get: + tags: + - User + summary: Gets the user based on auth token. + operationId: GetCurrentUser + responses: + "200": + description: User returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "400": + description: Token is not owned by a user. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/New: + post: + tags: + - User + summary: Creates a user. + operationId: CreateUserByName + requestBody: + description: The create user by name request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + required: true + responses: + "200": + description: User created. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Users/Password: + post: + tags: + - User + summary: Updates a user's password. + operationId: UpdateUserPassword + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + requestBody: + description: The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + required: true + responses: + "204": + description: Password successfully reset. + "403": + description: User is not allowed to update the password. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/Public: + get: + tags: + - User + summary: Gets a list of publicly visible users for display on a login screen. + operationId: GetPublicUsers + responses: + "200": + description: Public users returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + /Items/{itemId}/Intros: + get: + tags: + - UserLibrary + summary: Gets intros to play before the main media item plays. + operationId: GetIntros + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Intros returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/LocalTrailers: + get: + tags: + - UserLibrary + summary: Gets local trailers for an item. + operationId: GetLocalTrailers + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/SpecialFeatures: + get: + tags: + - UserLibrary + summary: Gets special features for an item. + operationId: GetSpecialFeatures + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Special features returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Latest: + get: + tags: + - UserLibrary + summary: Gets latest media. + operationId: GetLatestMedia + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isPlayed + in: query + description: Filter by items that are played, or not. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. include user data. + schema: + type: boolean + - name: limit + in: query + description: Return item limit. + schema: + type: integer + format: int32 + default: 20 + - name: groupItems + in: query + description: Whether or not to group items into a parent container. + schema: + type: boolean + default: true + responses: + "200": + description: Latest media returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Root: + get: + tags: + - UserLibrary + summary: Gets the root folder from a user's library. + operationId: GetRootFolder + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + responses: + "200": + description: Root folder returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserFavoriteItems/{itemId}: + post: + tags: + - UserLibrary + summary: Marks an item as a favorite. + operationId: MarkFavoriteItem + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item marked as favorite. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - UserLibrary + summary: Unmarks item as a favorite. + operationId: UnmarkFavoriteItem + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item unmarked as favorite. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserItems/{itemId}/Rating: + delete: + tags: + - UserLibrary + summary: Deletes a user's saved personal rating for an item. + operationId: DeleteUserItemRating + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Personal rating removed. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - UserLibrary + summary: Updates a user's rating for an item. + operationId: UpdateUserItemRating + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: likes + in: query + description: Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes. + schema: + type: boolean + responses: + "200": + description: Item rating updated. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserViews: + get: + tags: + - UserViews + summary: Get user views. + operationId: GetUserViews + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: includeExternalContent + in: query + description: Whether or not to include external views such as channels or live tv. + schema: + type: boolean + - name: presetViews + in: query + description: Preset views. + schema: + type: array + items: + $ref: '#/components/schemas/CollectionType' + - name: includeHidden + in: query + description: Whether or not to include hidden content. + schema: + type: boolean + default: false + responses: + "200": + description: User views returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /UserViews/GroupingOptions: + get: + tags: + - UserViews + summary: Get user view grouping options. + operationId: GetGroupingOptions + parameters: + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + responses: + "200": + description: User view grouping options returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{videoId}/{mediaSourceId}/Attachments/{index}: + get: + tags: + - VideoAttachments + summary: Get video attachment. + operationId: GetAttachment + parameters: + - name: videoId + in: path + description: Video ID. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: path + description: Media Source ID. + required: true + schema: + type: string + - name: index + in: path + description: Attachment Index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Attachment retrieved. + content: + application/octet-stream: + schema: + type: string + format: binary + "404": + description: Video or attachment not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Videos/{itemId}/AdditionalParts: + get: + tags: + - Videos + summary: Gets additional parts for a video. + operationId: GetAdditionalPart + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Additional parts returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/AlternateSources: + delete: + tags: + - Videos + summary: Removes alternate video sources. + operationId: DeleteAlternateSources + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Alternate sources deleted. + "404": + description: Video not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Videos/{itemId}/stream: + get: + tags: + - Videos + summary: Gets a video stream. + operationId: GetVideoStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + head: + tags: + - Videos + summary: Gets a video stream. + operationId: HeadVideoStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + deprecated: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + /Videos/{itemId}/stream.{container}: + get: + tags: + - Videos + summary: Gets a video stream. + operationId: GetVideoStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + head: + tags: + - Videos + summary: Gets a video stream. + operationId: HeadVideoStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAudioVbrEncoding + in: query + description: Optional. Whether to enable Audio Encoding. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + /Videos/MergeVersions: + post: + tags: + - Videos + summary: Merges videos into a single record. + operationId: MergeVersions + parameters: + - name: ids + in: query + description: Item id list. This allows multiple, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Videos merged. + "400": + description: Supply at least 2 video ids. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Years: + get: + tags: + - Years + summary: Get years. + operationId: GetYears + parameters: + - name: startIndex + in: query + description: Skips over a given number of items within the results. Use for paging. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/MediaType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User Id. + schema: + type: string + format: uuid + - name: recursive + in: query + description: Search recursively. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Year query returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Years/{year}: + get: + tags: + - Years + summary: Gets a year. + operationId: GetYear + parameters: + - name: year + in: path + description: The year. + required: true + schema: + type: integer + format: int32 + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Year returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Year not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization +components: + schemas: + AccessSchedule: + type: object + properties: + Id: + type: integer + description: Gets the id of this instance. + format: int32 + readOnly: true + UserId: + type: string + description: Gets the id of the associated user. + format: uuid + DayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Everyday + - Weekday + - Weekend + allOf: + - $ref: '#/components/schemas/DynamicDayOfWeek' + description: Gets or sets the day of week. + StartHour: + type: number + description: Gets or sets the start hour. + format: double + EndHour: + type: number + description: Gets or sets the end hour. + format: double + additionalProperties: false + description: An entity representing a user's access schedule. + ActivityLogEntry: + type: object + properties: + Id: + type: integer + description: Gets or sets the identifier. + format: int64 + Name: + type: string + description: Gets or sets the name. + Overview: + type: string + description: Gets or sets the overview. + nullable: true + ShortOverview: + type: string + description: Gets or sets the short overview. + nullable: true + Type: + type: string + description: Gets or sets the type. + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + Date: + type: string + description: Gets or sets the date. + format: date-time + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + UserPrimaryImageTag: + type: string + description: Gets or sets the user primary image tag. + nullable: true + deprecated: true + Severity: + enum: + - Trace + - Debug + - Information + - Warning + - Error + - Critical + - None + allOf: + - $ref: '#/components/schemas/LogLevel' + description: Gets or sets the log severity. + additionalProperties: false + description: An activity log entry. + ActivityLogEntryMessage: + type: object + properties: + Data: + type: array + items: + $ref: '#/components/schemas/ActivityLogEntry' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ActivityLogEntry + readOnly: true + additionalProperties: false + description: Activity log created message. + ActivityLogEntryQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/ActivityLogEntry' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + ActivityLogEntryStartMessage: + type: object + properties: + Data: + type: string + description: Gets or sets the data. + nullable: true + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ActivityLogEntryStart + readOnly: true + additionalProperties: false + description: "Activity log entry start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + ActivityLogEntryStopMessage: + type: object + properties: + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ActivityLogEntryStop + readOnly: true + additionalProperties: false + description: Activity log entry stop message. + AddVirtualFolderDto: + type: object + properties: + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + description: Gets or sets library options. + nullable: true + additionalProperties: false + description: Add virtual folder dto. + AlbumInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + AlbumArtists: + type: array + items: + type: string + description: Gets or sets the album artist. + ArtistProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the artist provider ids. + SongInfos: + type: array + items: + $ref: '#/components/schemas/SongInfo' + additionalProperties: false + AlbumInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/AlbumInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + AllThemeMediaResult: + type: object + properties: + ThemeVideosResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + ThemeSongsResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + SoundtrackSongsResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + additionalProperties: false + ArtistInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + SongInfos: + type: array + items: + $ref: '#/components/schemas/SongInfo' + additionalProperties: false + ArtistInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/ArtistInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + AudioSpatialFormat: + enum: + - None + - DolbyAtmos + - DTSX + type: string + description: An enum representing formats of spatial audio. + AuthenticateUserByName: + type: object + properties: + Username: + type: string + description: Gets or sets the username. + nullable: true + Pw: + type: string + description: Gets or sets the plain text password. + nullable: true + additionalProperties: false + description: The authenticate user by name request body. + AuthenticationInfo: + type: object + properties: + Id: + type: integer + description: Gets or sets the identifier. + format: int64 + AccessToken: + type: string + description: Gets or sets the access token. + nullable: true + DeviceId: + type: string + description: Gets or sets the device identifier. + nullable: true + AppName: + type: string + description: Gets or sets the name of the application. + nullable: true + AppVersion: + type: string + description: Gets or sets the application version. + nullable: true + DeviceName: + type: string + description: Gets or sets the name of the device. + nullable: true + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + IsActive: + type: boolean + description: Gets or sets a value indicating whether this instance is active. + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateRevoked: + type: string + description: Gets or sets the date revoked. + format: date-time + nullable: true + DateLastActivity: + type: string + format: date-time + UserName: + type: string + nullable: true + additionalProperties: false + AuthenticationInfoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/AuthenticationInfo' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + AuthenticationResult: + type: object + properties: + User: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + nullable: true + SessionInfo: + allOf: + - $ref: '#/components/schemas/SessionInfoDto' + description: Session info DTO. + nullable: true + AccessToken: + type: string + description: Gets or sets the access token. + nullable: true + ServerId: + type: string + description: Gets or sets the server id. + nullable: true + additionalProperties: false + description: A class representing an authentication result. + BaseItemDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + Id: + type: string + description: Gets or sets the id. + format: uuid + Etag: + type: string + description: Gets or sets the etag. + nullable: true + SourceType: + type: string + description: Gets or sets the type of the source. + nullable: true + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier. + nullable: true + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + nullable: true + DateLastMediaAdded: + type: string + format: date-time + nullable: true + ExtraType: + enum: + - Unknown + - Clip + - Trailer + - BehindTheScenes + - DeletedScene + - Interview + - Scene + - Sample + - ThemeSong + - ThemeVideo + - Featurette + - Short + allOf: + - $ref: '#/components/schemas/ExtraType' + nullable: true + AirsBeforeSeasonNumber: + type: integer + format: int32 + nullable: true + AirsAfterSeasonNumber: + type: integer + format: int32 + nullable: true + AirsBeforeEpisodeNumber: + type: integer + format: int32 + nullable: true + CanDelete: + type: boolean + nullable: true + CanDownload: + type: boolean + nullable: true + HasLyrics: + type: boolean + nullable: true + HasSubtitles: + type: boolean + nullable: true + PreferredMetadataLanguage: + type: string + nullable: true + PreferredMetadataCountryCode: + type: string + nullable: true + Container: + type: string + nullable: true + SortName: + type: string + description: Gets or sets the name of the sort. + nullable: true + ForcedSortName: + type: string + nullable: true + Video3DFormat: + enum: + - HalfSideBySide + - FullSideBySide + - FullTopAndBottom + - HalfTopAndBottom + - MVC + allOf: + - $ref: '#/components/schemas/Video3DFormat' + description: Gets or sets the video3 D format. + nullable: true + PremiereDate: + type: string + description: Gets or sets the premiere date. + format: date-time + nullable: true + ExternalUrls: + type: array + items: + $ref: '#/components/schemas/ExternalUrl' + description: Gets or sets the external urls. + nullable: true + MediaSources: + type: array + items: + $ref: '#/components/schemas/MediaSourceInfo' + description: Gets or sets the media versions. + nullable: true + CriticRating: + type: number + description: Gets or sets the critic rating. + format: float + nullable: true + ProductionLocations: + type: array + items: + type: string + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + EnableMediaSourceDisplay: + type: boolean + nullable: true + OfficialRating: + type: string + description: Gets or sets the official rating. + nullable: true + CustomRating: + type: string + description: Gets or sets the custom rating. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel identifier. + format: uuid + nullable: true + ChannelName: + type: string + nullable: true + Overview: + type: string + description: Gets or sets the overview. + nullable: true + Taglines: + type: array + items: + type: string + description: Gets or sets the taglines. + nullable: true + Genres: + type: array + items: + type: string + description: Gets or sets the genres. + nullable: true + CommunityRating: + type: number + description: Gets or sets the community rating. + format: float + nullable: true + CumulativeRunTimeTicks: + type: integer + description: Gets or sets the cumulative run time ticks. + format: int64 + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + PlayAccess: + enum: + - Full + - None + allOf: + - $ref: '#/components/schemas/PlayAccess' + description: Gets or sets the play access. + nullable: true + AspectRatio: + type: string + description: Gets or sets the aspect ratio. + nullable: true + ProductionYear: + type: integer + description: Gets or sets the production year. + format: int32 + nullable: true + IsPlaceHolder: + type: boolean + description: Gets or sets a value indicating whether this instance is place holder. + nullable: true + Number: + type: string + description: Gets or sets the number. + nullable: true + ChannelNumber: + type: string + nullable: true + IndexNumber: + type: integer + description: Gets or sets the index number. + format: int32 + nullable: true + IndexNumberEnd: + type: integer + description: Gets or sets the index number end. + format: int32 + nullable: true + ParentIndexNumber: + type: integer + description: Gets or sets the parent index number. + format: int32 + nullable: true + RemoteTrailers: + type: array + items: + $ref: '#/components/schemas/MediaUrl' + description: Gets or sets the trailer urls. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + IsHD: + type: boolean + description: Gets or sets a value indicating whether this instance is HD. + nullable: true + IsFolder: + type: boolean + description: Gets or sets a value indicating whether this instance is folder. + nullable: true + ParentId: + type: string + description: Gets or sets the parent id. + format: uuid + nullable: true + Type: + enum: + - AggregateFolder + - Audio + - AudioBook + - BasePluginFolder + - Book + - BoxSet + - Channel + - ChannelFolderItem + - CollectionFolder + - Episode + - Folder + - Genre + - ManualPlaylistsFolder + - Movie + - LiveTvChannel + - LiveTvProgram + - MusicAlbum + - MusicArtist + - MusicGenre + - MusicVideo + - Person + - Photo + - PhotoAlbum + - Playlist + - PlaylistsFolder + - Program + - Recording + - Season + - Series + - Studio + - Trailer + - TvChannel + - TvProgram + - UserRootFolder + - UserView + - Video + - Year + allOf: + - $ref: '#/components/schemas/BaseItemKind' + description: The base item kind. + People: + type: array + items: + $ref: '#/components/schemas/BaseItemPerson' + description: Gets or sets the people. + nullable: true + Studios: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the studios. + nullable: true + GenreItems: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + nullable: true + ParentLogoItemId: + type: string + description: Gets or sets whether the item has a logo, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentBackdropItemId: + type: string + description: Gets or sets whether the item has any backdrops, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + LocalTrailerCount: + type: integer + description: Gets or sets the local trailer count. + format: int32 + nullable: true + UserData: + allOf: + - $ref: '#/components/schemas/UserItemDataDto' + description: Gets or sets the user data for this item based on the user it's being requested for. + nullable: true + RecursiveItemCount: + type: integer + description: Gets or sets the recursive item count. + format: int32 + nullable: true + ChildCount: + type: integer + description: Gets or sets the child count. + format: int32 + nullable: true + SeriesName: + type: string + description: Gets or sets the name of the series. + nullable: true + SeriesId: + type: string + description: Gets or sets the series id. + format: uuid + nullable: true + SeasonId: + type: string + description: Gets or sets the season identifier. + format: uuid + nullable: true + SpecialFeatureCount: + type: integer + description: Gets or sets the special feature count. + format: int32 + nullable: true + DisplayPreferencesId: + type: string + description: Gets or sets the display preferences id. + nullable: true + Status: + type: string + description: Gets or sets the status. + nullable: true + AirTime: + type: string + description: Gets or sets the air time. + nullable: true + AirDays: + type: array + items: + $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the air days. + nullable: true + Tags: + type: array + items: + type: string + description: Gets or sets the tags. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio, after image enhancements. + format: double + nullable: true + Artists: + type: array + items: + type: string + description: Gets or sets the artists. + nullable: true + ArtistItems: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the artist items. + nullable: true + Album: + type: string + description: Gets or sets the album. + nullable: true + CollectionType: + enum: + - unknown + - movies + - tvshows + - music + - musicvideos + - trailers + - homevideos + - boxsets + - books + - photos + - livetv + - playlists + - folders + allOf: + - $ref: '#/components/schemas/CollectionType' + description: Gets or sets the type of the collection. + nullable: true + DisplayOrder: + type: string + description: Gets or sets the display order. + nullable: true + AlbumId: + type: string + description: Gets or sets the album id. + format: uuid + nullable: true + AlbumPrimaryImageTag: + type: string + description: Gets or sets the album image tag. + nullable: true + SeriesPrimaryImageTag: + type: string + description: Gets or sets the series primary image tag. + nullable: true + AlbumArtist: + type: string + description: Gets or sets the album artist. + nullable: true + AlbumArtists: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the album artists. + nullable: true + SeasonName: + type: string + description: Gets or sets the name of the season. + nullable: true + MediaStreams: + type: array + items: + $ref: '#/components/schemas/MediaStream' + description: Gets or sets the media streams. + nullable: true + VideoType: + enum: + - VideoFile + - Iso + - Dvd + - BluRay + allOf: + - $ref: '#/components/schemas/VideoType' + description: Gets or sets the type of the video. + nullable: true + PartCount: + type: integer + description: Gets or sets the part count. + format: int32 + nullable: true + MediaSourceCount: + type: integer + format: int32 + nullable: true + ImageTags: + type: object + additionalProperties: + type: string + description: Gets or sets the image tags. + nullable: true + BackdropImageTags: + type: array + items: + type: string + description: Gets or sets the backdrop image tags. + nullable: true + ScreenshotImageTags: + type: array + items: + type: string + description: Gets or sets the screenshot image tags. + nullable: true + ParentLogoImageTag: + type: string + description: Gets or sets the parent logo image tag. + nullable: true + ParentArtItemId: + type: string + description: Gets or sets whether the item has fan art, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentArtImageTag: + type: string + description: Gets or sets the parent art image tag. + nullable: true + SeriesThumbImageTag: + type: string + description: Gets or sets the series thumb image tag. + nullable: true + ImageBlurHashes: + type: object + properties: + Primary: + type: object + additionalProperties: + type: string + Art: + type: object + additionalProperties: + type: string + Backdrop: + type: object + additionalProperties: + type: string + Banner: + type: object + additionalProperties: + type: string + Logo: + type: object + additionalProperties: + type: string + Thumb: + type: object + additionalProperties: + type: string + Disc: + type: object + additionalProperties: + type: string + Box: + type: object + additionalProperties: + type: string + Screenshot: + type: object + additionalProperties: + type: string + Menu: + type: object + additionalProperties: + type: string + Chapter: + type: object + additionalProperties: + type: string + BoxRear: + type: object + additionalProperties: + type: string + Profile: + type: object + additionalProperties: + type: string + description: "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value." + nullable: true + SeriesStudio: + type: string + description: Gets or sets the series studio. + nullable: true + ParentThumbItemId: + type: string + description: Gets or sets the parent thumb item id. + format: uuid + nullable: true + ParentThumbImageTag: + type: string + description: Gets or sets the parent thumb image tag. + nullable: true + ParentPrimaryImageItemId: + type: string + description: Gets or sets the parent primary image item identifier. + nullable: true + ParentPrimaryImageTag: + type: string + description: Gets or sets the parent primary image tag. + nullable: true + Chapters: + type: array + items: + $ref: '#/components/schemas/ChapterInfo' + description: Gets or sets the chapters. + nullable: true + Trickplay: + type: object + additionalProperties: + type: object + additionalProperties: + $ref: '#/components/schemas/TrickplayInfo' + description: Gets or sets the trickplay manifest. + nullable: true + LocationType: + enum: + - FileSystem + - Remote + - Virtual + - Offline + allOf: + - $ref: '#/components/schemas/LocationType' + description: Gets or sets the type of the location. + nullable: true + IsoType: + enum: + - Dvd + - BluRay + allOf: + - $ref: '#/components/schemas/IsoType' + description: Gets or sets the type of the iso. + nullable: true + MediaType: + enum: + - Unknown + - Video + - Audio + - Photo + - Book + allOf: + - $ref: '#/components/schemas/MediaType' + description: Media types. + EndDate: + type: string + description: Gets or sets the end date. + format: date-time + nullable: true + LockedFields: + type: array + items: + $ref: '#/components/schemas/MetadataField' + description: Gets or sets the locked fields. + nullable: true + TrailerCount: + type: integer + description: Gets or sets the trailer count. + format: int32 + nullable: true + MovieCount: + type: integer + description: Gets or sets the movie count. + format: int32 + nullable: true + SeriesCount: + type: integer + description: Gets or sets the series count. + format: int32 + nullable: true + ProgramCount: + type: integer + format: int32 + nullable: true + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + nullable: true + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + nullable: true + AlbumCount: + type: integer + description: Gets or sets the album count. + format: int32 + nullable: true + ArtistCount: + type: integer + format: int32 + nullable: true + MusicVideoCount: + type: integer + description: Gets or sets the music video count. + format: int32 + nullable: true + LockData: + type: boolean + description: Gets or sets a value indicating whether [enable internet providers]. + nullable: true + Width: + type: integer + format: int32 + nullable: true + Height: + type: integer + format: int32 + nullable: true + CameraMake: + type: string + nullable: true + CameraModel: + type: string + nullable: true + Software: + type: string + nullable: true + ExposureTime: + type: number + format: double + nullable: true + FocalLength: + type: number + format: double + nullable: true + ImageOrientation: + enum: + - TopLeft + - TopRight + - BottomRight + - BottomLeft + - LeftTop + - RightTop + - RightBottom + - LeftBottom + allOf: + - $ref: '#/components/schemas/ImageOrientation' + nullable: true + Aperture: + type: number + format: double + nullable: true + ShutterSpeed: + type: number + format: double + nullable: true + Latitude: + type: number + format: double + nullable: true + Longitude: + type: number + format: double + nullable: true + Altitude: + type: number + format: double + nullable: true + IsoSpeedRating: + type: integer + format: int32 + nullable: true + SeriesTimerId: + type: string + description: Gets or sets the series timer identifier. + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ChannelPrimaryImageTag: + type: string + description: Gets or sets the channel primary image tag. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + nullable: true + CompletionPercentage: + type: number + description: Gets or sets the completion percentage. + format: double + nullable: true + IsRepeat: + type: boolean + description: Gets or sets a value indicating whether this instance is repeat. + nullable: true + EpisodeTitle: + type: string + description: Gets or sets the episode title. + nullable: true + ChannelType: + enum: + - TV + - Radio + allOf: + - $ref: '#/components/schemas/ChannelType' + description: Gets or sets the type of the channel. + nullable: true + Audio: + enum: + - Mono + - Stereo + - Dolby + - DolbyDigital + - Thx + - Atmos + allOf: + - $ref: '#/components/schemas/ProgramAudio' + description: Gets or sets the audio. + nullable: true + IsMovie: + type: boolean + description: Gets or sets a value indicating whether this instance is movie. + nullable: true + IsSports: + type: boolean + description: Gets or sets a value indicating whether this instance is sports. + nullable: true + IsSeries: + type: boolean + description: Gets or sets a value indicating whether this instance is series. + nullable: true + IsLive: + type: boolean + description: Gets or sets a value indicating whether this instance is live. + nullable: true + IsNews: + type: boolean + description: Gets or sets a value indicating whether this instance is news. + nullable: true + IsKids: + type: boolean + description: Gets or sets a value indicating whether this instance is kids. + nullable: true + IsPremiere: + type: boolean + description: Gets or sets a value indicating whether this instance is premiere. + nullable: true + TimerId: + type: string + description: Gets or sets the timer identifier. + nullable: true + NormalizationGain: + type: number + description: Gets or sets the gain required for audio normalization. + format: float + nullable: true + CurrentProgram: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the current program. + nullable: true + additionalProperties: false + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + BaseItemDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + BaseItemKind: + enum: + - AggregateFolder + - Audio + - AudioBook + - BasePluginFolder + - Book + - BoxSet + - Channel + - ChannelFolderItem + - CollectionFolder + - Episode + - Folder + - Genre + - ManualPlaylistsFolder + - Movie + - LiveTvChannel + - LiveTvProgram + - MusicAlbum + - MusicArtist + - MusicGenre + - MusicVideo + - Person + - Photo + - PhotoAlbum + - Playlist + - PlaylistsFolder + - Program + - Recording + - Season + - Series + - Studio + - Trailer + - TvChannel + - TvProgram + - UserRootFolder + - UserView + - Video + - Year + type: string + description: The base item kind. + BaseItemPerson: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + format: uuid + Role: + type: string + description: Gets or sets the role. + nullable: true + Type: + enum: + - Unknown + - Actor + - Director + - Composer + - Writer + - GuestStar + - Producer + - Conductor + - Lyricist + - Arranger + - Engineer + - Mixer + - Remixer + - Creator + - Artist + - AlbumArtist + - Author + - Illustrator + - Penciller + - Inker + - Colorist + - Letterer + - CoverArtist + - Editor + - Translator + allOf: + - $ref: '#/components/schemas/PersonKind' + description: The person kind. + PrimaryImageTag: + type: string + description: Gets or sets the primary image tag. + nullable: true + ImageBlurHashes: + type: object + properties: + Primary: + type: object + additionalProperties: + type: string + Art: + type: object + additionalProperties: + type: string + Backdrop: + type: object + additionalProperties: + type: string + Banner: + type: object + additionalProperties: + type: string + Logo: + type: object + additionalProperties: + type: string + Thumb: + type: object + additionalProperties: + type: string + Disc: + type: object + additionalProperties: + type: string + Box: + type: object + additionalProperties: + type: string + Screenshot: + type: object + additionalProperties: + type: string + Menu: + type: object + additionalProperties: + type: string + Chapter: + type: object + additionalProperties: + type: string + BoxRear: + type: object + additionalProperties: + type: string + Profile: + type: object + additionalProperties: + type: string + description: Gets or sets the primary image blurhash. + nullable: true + additionalProperties: false + description: This is used by the api to get information about a Person within a BaseItem. + BasePluginConfiguration: + type: object + additionalProperties: false + description: Class BasePluginConfiguration. + BookInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + SeriesName: + type: string + nullable: true + additionalProperties: false + BookInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/BookInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + BoxSetInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + BoxSetInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/BoxSetInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + BrandingOptions: + type: object + properties: + LoginDisclaimer: + type: string + description: Gets or sets the login disclaimer. + nullable: true + CustomCss: + type: string + description: Gets or sets the custom CSS. + nullable: true + SplashscreenEnabled: + type: boolean + description: Gets or sets a value indicating whether to enable the splashscreen. + additionalProperties: false + description: The branding options. + BufferRequestDto: + type: object + properties: + When: + type: string + description: Gets or sets when the request has been made by the client. + format: date-time + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + IsPlaying: + type: boolean + description: Gets or sets a value indicating whether the client playback is unpaused. + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier of the playing item. + format: uuid + additionalProperties: false + description: Class BufferRequestDto. + CastReceiverApplication: + type: object + properties: + Id: + type: string + description: Gets or sets the cast receiver application id. + Name: + type: string + description: Gets or sets the cast receiver application name. + additionalProperties: false + description: The cast receiver application model. + ChannelFeatures: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + Id: + type: string + description: Gets or sets the identifier. + format: uuid + CanSearch: + type: boolean + description: Gets or sets a value indicating whether this instance can search. + MediaTypes: + type: array + items: + $ref: '#/components/schemas/ChannelMediaType' + description: Gets or sets the media types. + ContentTypes: + type: array + items: + $ref: '#/components/schemas/ChannelMediaContentType' + description: Gets or sets the content types. + MaxPageSize: + type: integer + description: Gets or sets the maximum number of records the channel allows retrieving at a time. + format: int32 + nullable: true + AutoRefreshLevels: + type: integer + description: Gets or sets the automatic refresh levels. + format: int32 + nullable: true + DefaultSortFields: + type: array + items: + $ref: '#/components/schemas/ChannelItemSortField' + description: Gets or sets the default sort orders. + SupportsSortOrderToggle: + type: boolean + description: Gets or sets a value indicating whether a sort ascending/descending toggle is supported. + SupportsLatestMedia: + type: boolean + description: Gets or sets a value indicating whether [supports latest media]. + CanFilter: + type: boolean + description: Gets or sets a value indicating whether this instance can filter. + SupportsContentDownloading: + type: boolean + description: Gets or sets a value indicating whether [supports content downloading]. + additionalProperties: false + ChannelItemSortField: + enum: + - Name + - CommunityRating + - PremiereDate + - DateCreated + - Runtime + - PlayCount + - CommunityPlayCount + type: string + ChannelMappingOptionsDto: + type: object + properties: + TunerChannels: + type: array + items: + $ref: '#/components/schemas/TunerChannelMapping' + description: Gets or sets list of tuner channels. + ProviderChannels: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + description: Gets or sets list of provider channels. + Mappings: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + description: Gets or sets list of mappings. + ProviderName: + type: string + description: Gets or sets provider name. + nullable: true + additionalProperties: false + description: Channel mapping options dto. + ChannelMediaContentType: + enum: + - Clip + - Podcast + - Trailer + - Movie + - Episode + - Song + - MovieExtra + - TvExtra + type: string + ChannelMediaType: + enum: + - Audio + - Video + - Photo + type: string + ChannelType: + enum: + - TV + - Radio + type: string + description: Enum ChannelType. + ChapterInfo: + type: object + properties: + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks. + format: int64 + Name: + type: string + description: Gets or sets the name. + nullable: true + ImagePath: + type: string + description: Gets or sets the image path. + nullable: true + ImageDateModified: + type: string + format: date-time + ImageTag: + type: string + nullable: true + additionalProperties: false + description: Class ChapterInfo. + ClientCapabilitiesDto: + type: object + properties: + PlayableMediaTypes: + type: array + items: + $ref: '#/components/schemas/MediaType' + description: Gets or sets the list of playable media types. + SupportedCommands: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + description: Gets or sets the list of supported commands. + SupportsMediaControl: + type: boolean + description: Gets or sets a value indicating whether session supports media control. + SupportsPersistentIdentifier: + type: boolean + description: Gets or sets a value indicating whether session supports a persistent identifier. + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: Gets or sets the device profile. + nullable: true + AppStoreUrl: + type: string + description: Gets or sets the app store url. + nullable: true + IconUrl: + type: string + description: Gets or sets the icon url. + nullable: true + additionalProperties: false + description: Client capabilities dto. + ClientLogDocumentResponseDto: + type: object + properties: + FileName: + type: string + description: Gets the resulting filename. + additionalProperties: false + description: Client log document response dto. + CodecProfile: + type: object + properties: + Type: + enum: + - Video + - VideoAudio + - Audio + allOf: + - $ref: '#/components/schemas/CodecType' + description: Gets or sets the MediaBrowser.Model.Dlna.CodecType which this container must meet. + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + description: Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this profile must meet. + ApplyConditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + description: Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition to apply if this profile is met. + Codec: + type: string + description: Gets or sets the codec(s) that this profile applies to. + nullable: true + Container: + type: string + description: Gets or sets the container(s) which this profile will be applied to. + nullable: true + SubContainer: + type: string + description: Gets or sets the sub-container(s) which this profile will be applied to. + nullable: true + additionalProperties: false + description: Defines the MediaBrowser.Model.Dlna.CodecProfile. + CodecType: + enum: + - Video + - VideoAudio + - Audio + type: string + CollectionCreationResult: + type: object + properties: + Id: + type: string + format: uuid + additionalProperties: false + CollectionType: + enum: + - unknown + - movies + - tvshows + - music + - musicvideos + - trailers + - homevideos + - boxsets + - books + - photos + - livetv + - playlists + - folders + type: string + description: Collection type. + CollectionTypeOptions: + enum: + - movies + - tvshows + - music + - musicvideos + - homevideos + - boxsets + - books + - mixed + type: string + description: The collection type options. + ConfigImageTypes: + type: object + properties: + BackdropSizes: + type: array + items: + type: string + nullable: true + BaseUrl: + type: string + nullable: true + LogoSizes: + type: array + items: + type: string + nullable: true + PosterSizes: + type: array + items: + type: string + nullable: true + ProfileSizes: + type: array + items: + type: string + nullable: true + SecureBaseUrl: + type: string + nullable: true + StillSizes: + type: array + items: + type: string + nullable: true + additionalProperties: false + ConfigurationPageInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + EnableInMainMenu: + type: boolean + description: Gets or sets a value indicating whether the configurations page is enabled in the main menu. + MenuSection: + type: string + description: Gets or sets the menu section. + nullable: true + MenuIcon: + type: string + description: Gets or sets the menu icon. + nullable: true + DisplayName: + type: string + description: Gets or sets the display name. + nullable: true + PluginId: + type: string + description: Gets or sets the plugin id. + format: uuid + nullable: true + additionalProperties: false + description: The configuration page info. + ContainerProfile: + type: object + properties: + Type: + enum: + - Audio + - Video + - Photo + - Subtitle + - Lyric + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + description: Gets or sets the MediaBrowser.Model.Dlna.DlnaProfileType which this container must meet. + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + description: Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this container will be applied to. + Container: + type: string + description: Gets or sets the container(s) which this container must meet. + nullable: true + SubContainer: + type: string + description: Gets or sets the sub container(s) which this container must meet. + nullable: true + additionalProperties: false + description: Defines the MediaBrowser.Model.Dlna.ContainerProfile. + CountryInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + DisplayName: + type: string + description: Gets or sets the display name. + nullable: true + TwoLetterISORegionName: + type: string + description: Gets or sets the name of the two letter ISO region. + nullable: true + ThreeLetterISORegionName: + type: string + description: Gets or sets the name of the three letter ISO region. + nullable: true + additionalProperties: false + description: Class CountryInfo. + CreatePlaylistDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name of the new playlist. + Ids: + type: array + items: + type: string + format: uuid + description: Gets or sets item ids to add to the playlist. + UserId: + type: string + description: Gets or sets the user id. + format: uuid + nullable: true + MediaType: + enum: + - Unknown + - Video + - Audio + - Photo + - Book + allOf: + - $ref: '#/components/schemas/MediaType' + description: Gets or sets the media type. + nullable: true + Users: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + description: Gets or sets the playlist users. + IsPublic: + type: boolean + description: Gets or sets a value indicating whether the playlist is public. + additionalProperties: false + description: Create new playlist dto. + CreateUserByName: + required: + - Name + type: object + properties: + Name: + type: string + description: Gets or sets the username. + Password: + type: string + description: Gets or sets the password. + nullable: true + additionalProperties: false + description: The create user by name request body. + CultureDto: + type: object + properties: + Name: + type: string + description: Gets the name. + DisplayName: + type: string + description: Gets the display name. + TwoLetterISOLanguageName: + type: string + description: Gets the name of the two letter ISO language. + ThreeLetterISOLanguageName: + type: string + description: Gets the name of the three letter ISO language. + nullable: true + readOnly: true + ThreeLetterISOLanguageNames: + type: array + items: + type: string + additionalProperties: false + description: Class CultureDto. + DayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + type: string + DayPattern: + enum: + - Daily + - Weekdays + - Weekends + type: string + DefaultDirectoryBrowserInfoDto: + type: object + properties: + Path: + type: string + description: Gets or sets the path. + nullable: true + additionalProperties: false + description: Default directory browser info. + DeinterlaceMethod: + enum: + - yadif + - bwdif + type: string + description: Enum containing deinterlace methods. + DeviceInfoDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + CustomName: + type: string + description: Gets or sets the custom name. + nullable: true + AccessToken: + type: string + description: Gets or sets the access token. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + nullable: true + LastUserName: + type: string + description: Gets or sets the last name of the user. + nullable: true + AppName: + type: string + description: Gets or sets the name of the application. + nullable: true + AppVersion: + type: string + description: Gets or sets the application version. + nullable: true + LastUserId: + type: string + description: Gets or sets the last user identifier. + format: uuid + nullable: true + DateLastActivity: + type: string + description: Gets or sets the date last modified. + format: date-time + nullable: true + Capabilities: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Gets or sets the capabilities. + IconUrl: + type: string + description: Gets or sets the icon URL. + nullable: true + additionalProperties: false + description: A DTO representing device information. + DeviceInfoDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/DeviceInfoDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + DeviceOptionsDto: + type: object + properties: + Id: + type: integer + description: Gets or sets the id. + format: int32 + DeviceId: + type: string + description: Gets or sets the device id. + nullable: true + CustomName: + type: string + description: Gets or sets the custom name. + nullable: true + additionalProperties: false + description: A dto representing custom options for a device. + DeviceProfile: + type: object + properties: + Name: + type: string + description: Gets or sets the name of this device profile. User profiles must have a unique name. + nullable: true + Id: + type: string + description: Gets or sets the unique internal identifier. + format: uuid + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for all streamed content. + format: int32 + nullable: true + MaxStaticBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). + format: int32 + nullable: true + MusicStreamingTranscodingBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for transcoded music streams. + format: int32 + nullable: true + MaxStaticMusicBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. + format: int32 + nullable: true + DirectPlayProfiles: + type: array + items: + $ref: '#/components/schemas/DirectPlayProfile' + description: Gets or sets the direct play profiles. + TranscodingProfiles: + type: array + items: + $ref: '#/components/schemas/TranscodingProfile' + description: Gets or sets the transcoding profiles. + ContainerProfiles: + type: array + items: + $ref: '#/components/schemas/ContainerProfile' + description: Gets or sets the container profiles. Failing to meet these optional conditions causes transcoding to occur. + CodecProfiles: + type: array + items: + $ref: '#/components/schemas/CodecProfile' + description: Gets or sets the codec profiles. + SubtitleProfiles: + type: array + items: + $ref: '#/components/schemas/SubtitleProfile' + description: Gets or sets the subtitle profiles. + additionalProperties: false + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + DirectPlayProfile: + type: object + properties: + Container: + type: string + description: Gets or sets the container. + AudioCodec: + type: string + description: Gets or sets the audio codec. + nullable: true + VideoCodec: + type: string + description: Gets or sets the video codec. + nullable: true + Type: + enum: + - Audio + - Video + - Photo + - Subtitle + - Lyric + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + description: Gets or sets the Dlna profile type. + additionalProperties: false + description: Defines the MediaBrowser.Model.Dlna.DirectPlayProfile. + DisplayPreferencesDto: + type: object + properties: + Id: + type: string + description: Gets or sets the user id. + nullable: true + ViewType: + type: string + description: Gets or sets the type of the view. + nullable: true + SortBy: + type: string + description: Gets or sets the sort by. + nullable: true + IndexBy: + type: string + description: Gets or sets the index by. + nullable: true + RememberIndexing: + type: boolean + description: Gets or sets a value indicating whether [remember indexing]. + PrimaryImageHeight: + type: integer + description: Gets or sets the height of the primary image. + format: int32 + PrimaryImageWidth: + type: integer + description: Gets or sets the width of the primary image. + format: int32 + CustomPrefs: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the custom prefs. + ScrollDirection: + enum: + - Horizontal + - Vertical + allOf: + - $ref: '#/components/schemas/ScrollDirection' + description: An enum representing the axis that should be scrolled. + ShowBackdrop: + type: boolean + description: Gets or sets a value indicating whether to show backdrops on this item. + RememberSorting: + type: boolean + description: Gets or sets a value indicating whether [remember sorting]. + SortOrder: + enum: + - Ascending + - Descending + allOf: + - $ref: '#/components/schemas/SortOrder' + description: An enum representing the sorting order. + ShowSidebar: + type: boolean + description: Gets or sets a value indicating whether [show sidebar]. + Client: + type: string + description: Gets or sets the client. + nullable: true + additionalProperties: false + description: Defines the display preferences for any item that supports them (usually Folders). + DlnaProfileType: + enum: + - Audio + - Video + - Photo + - Subtitle + - Lyric + type: string + DownMixStereoAlgorithms: + enum: + - None + - Dave750 + - NightmodeDialogue + - Rfc7845 + - Ac4 + type: string + description: An enum representing an algorithm to downmix surround sound to stereo. + DynamicDayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Everyday + - Weekday + - Weekend + type: string + description: An enum that represents a day of the week, weekdays, weekends, or all days. + EmbeddedSubtitleOptions: + enum: + - AllowAll + - AllowText + - AllowImage + - AllowNone + type: string + description: An enum representing the options to disable embedded subs. + EncoderPreset: + enum: + - auto + - placebo + - veryslow + - slower + - slow + - medium + - fast + - faster + - veryfast + - superfast + - ultrafast + type: string + description: Enum containing encoder presets. + EncodingContext: + enum: + - Streaming + - Static + type: string + EncodingOptions: + type: object + properties: + EncodingThreadCount: + type: integer + description: Gets or sets the thread count used for encoding. + format: int32 + TranscodingTempPath: + type: string + description: Gets or sets the temporary transcoding path. + nullable: true + FallbackFontPath: + type: string + description: Gets or sets the path to the fallback font. + nullable: true + EnableFallbackFont: + type: boolean + description: Gets or sets a value indicating whether to use the fallback font. + EnableAudioVbr: + type: boolean + description: Gets or sets a value indicating whether audio VBR is enabled. + DownMixAudioBoost: + type: number + description: Gets or sets the audio boost applied when downmixing audio. + format: double + DownMixStereoAlgorithm: + enum: + - None + - Dave750 + - NightmodeDialogue + - Rfc7845 + - Ac4 + allOf: + - $ref: '#/components/schemas/DownMixStereoAlgorithms' + description: Gets or sets the algorithm used for downmixing audio to stereo. + MaxMuxingQueueSize: + type: integer + description: Gets or sets the maximum size of the muxing queue. + format: int32 + EnableThrottling: + type: boolean + description: Gets or sets a value indicating whether throttling is enabled. + ThrottleDelaySeconds: + type: integer + description: Gets or sets the delay after which throttling happens. + format: int32 + EnableSegmentDeletion: + type: boolean + description: Gets or sets a value indicating whether segment deletion is enabled. + SegmentKeepSeconds: + type: integer + description: Gets or sets seconds for which segments should be kept before being deleted. + format: int32 + HardwareAccelerationType: + enum: + - none + - amf + - qsv + - nvenc + - v4l2m2m + - vaapi + - videotoolbox + - rkmpp + allOf: + - $ref: '#/components/schemas/HardwareAccelerationType' + description: Gets or sets the hardware acceleration type. + EncoderAppPath: + type: string + description: Gets or sets the FFmpeg path as set by the user via the UI. + nullable: true + EncoderAppPathDisplay: + type: string + description: Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. + nullable: true + VaapiDevice: + type: string + description: Gets or sets the VA-API device. + nullable: true + QsvDevice: + type: string + description: Gets or sets the QSV device. + nullable: true + EnableTonemapping: + type: boolean + description: Gets or sets a value indicating whether tonemapping is enabled. + EnableVppTonemapping: + type: boolean + description: Gets or sets a value indicating whether VPP tonemapping is enabled. + EnableVideoToolboxTonemapping: + type: boolean + description: Gets or sets a value indicating whether videotoolbox tonemapping is enabled. + TonemappingAlgorithm: + enum: + - none + - clip + - linear + - gamma + - reinhard + - hable + - mobius + - bt2390 + allOf: + - $ref: '#/components/schemas/TonemappingAlgorithm' + description: Gets or sets the tone-mapping algorithm. + TonemappingMode: + enum: + - auto + - max + - rgb + - lum + - itp + allOf: + - $ref: '#/components/schemas/TonemappingMode' + description: Gets or sets the tone-mapping mode. + TonemappingRange: + enum: + - auto + - tv + - pc + allOf: + - $ref: '#/components/schemas/TonemappingRange' + description: Gets or sets the tone-mapping range. + TonemappingDesat: + type: number + description: Gets or sets the tone-mapping desaturation. + format: double + TonemappingPeak: + type: number + description: Gets or sets the tone-mapping peak. + format: double + TonemappingParam: + type: number + description: Gets or sets the tone-mapping parameters. + format: double + VppTonemappingBrightness: + type: number + description: Gets or sets the VPP tone-mapping brightness. + format: double + VppTonemappingContrast: + type: number + description: Gets or sets the VPP tone-mapping contrast. + format: double + H264Crf: + type: integer + description: Gets or sets the H264 CRF. + format: int32 + H265Crf: + type: integer + description: Gets or sets the H265 CRF. + format: int32 + EncoderPreset: + enum: + - auto + - placebo + - veryslow + - slower + - slow + - medium + - fast + - faster + - veryfast + - superfast + - ultrafast + allOf: + - $ref: '#/components/schemas/EncoderPreset' + description: Gets or sets the encoder preset. + nullable: true + DeinterlaceDoubleRate: + type: boolean + description: Gets or sets a value indicating whether the framerate is doubled when deinterlacing. + DeinterlaceMethod: + enum: + - yadif + - bwdif + allOf: + - $ref: '#/components/schemas/DeinterlaceMethod' + description: Gets or sets the deinterlace method. + EnableDecodingColorDepth10Hevc: + type: boolean + description: Gets or sets a value indicating whether 10bit HEVC decoding is enabled. + EnableDecodingColorDepth10Vp9: + type: boolean + description: Gets or sets a value indicating whether 10bit VP9 decoding is enabled. + EnableDecodingColorDepth10HevcRext: + type: boolean + description: Gets or sets a value indicating whether 8/10bit HEVC RExt decoding is enabled. + EnableDecodingColorDepth12HevcRext: + type: boolean + description: Gets or sets a value indicating whether 12bit HEVC RExt decoding is enabled. + EnableEnhancedNvdecDecoder: + type: boolean + description: Gets or sets a value indicating whether the enhanced NVDEC is enabled. + PreferSystemNativeHwDecoder: + type: boolean + description: Gets or sets a value indicating whether the system native hardware decoder should be used. + EnableIntelLowPowerH264HwEncoder: + type: boolean + description: Gets or sets a value indicating whether the Intel H264 low-power hardware encoder should be used. + EnableIntelLowPowerHevcHwEncoder: + type: boolean + description: Gets or sets a value indicating whether the Intel HEVC low-power hardware encoder should be used. + EnableHardwareEncoding: + type: boolean + description: Gets or sets a value indicating whether hardware encoding is enabled. + AllowHevcEncoding: + type: boolean + description: Gets or sets a value indicating whether HEVC encoding is enabled. + AllowAv1Encoding: + type: boolean + description: Gets or sets a value indicating whether AV1 encoding is enabled. + EnableSubtitleExtraction: + type: boolean + description: Gets or sets a value indicating whether subtitle extraction is enabled. + HardwareDecodingCodecs: + type: array + items: + type: string + description: Gets or sets the codecs hardware encoding is used for. + nullable: true + AllowOnDemandMetadataBasedKeyframeExtractionForExtensions: + type: array + items: + type: string + description: Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for. + nullable: true + additionalProperties: false + description: Class EncodingOptions. + EndPointInfo: + type: object + properties: + IsLocal: + type: boolean + IsInNetwork: + type: boolean + additionalProperties: false + ExternalIdInfo: + type: object + properties: + Name: + type: string + description: 'Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc).' + Key: + type: string + description: Gets or sets the unique key for this id. This key should be unique across all providers. + Type: + enum: + - Album + - AlbumArtist + - Artist + - BoxSet + - Episode + - Movie + - OtherArtist + - Person + - ReleaseGroup + - Season + - Series + - Track + - Book + allOf: + - $ref: '#/components/schemas/ExternalIdMediaType' + description: "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type." + nullable: true + UrlFormatString: + type: string + description: Gets or sets the URL format string. + nullable: true + deprecated: true + additionalProperties: false + description: Represents the external id information for serialization to the client. + ExternalIdMediaType: + enum: + - Album + - AlbumArtist + - Artist + - BoxSet + - Episode + - Movie + - OtherArtist + - Person + - ReleaseGroup + - Season + - Series + - Track + - Book + type: string + description: The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo. + ExternalUrl: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Url: + type: string + description: Gets or sets the type of the item. + nullable: true + additionalProperties: false + ExtraType: + enum: + - Unknown + - Clip + - Trailer + - BehindTheScenes + - DeletedScene + - Interview + - Scene + - Sample + - ThemeSong + - ThemeVideo + - Featurette + - Short + type: string + FileSystemEntryInfo: + type: object + properties: + Name: + type: string + description: Gets the name. + Path: + type: string + description: Gets the path. + Type: + enum: + - File + - Directory + - NetworkComputer + - NetworkShare + allOf: + - $ref: '#/components/schemas/FileSystemEntryType' + description: Gets the type. + additionalProperties: false + description: Class FileSystemEntryInfo. + FileSystemEntryType: + enum: + - File + - Directory + - NetworkComputer + - NetworkShare + type: string + description: Enum FileSystemEntryType. + FontFile: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Size: + type: integer + description: Gets or sets the size. + format: int64 + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateModified: + type: string + description: Gets or sets the date modified. + format: date-time + additionalProperties: false + description: Class FontFile. + ForceKeepAliveMessage: + type: object + properties: + Data: + type: integer + description: Gets or sets the data. + format: int32 + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ForceKeepAlive + readOnly: true + additionalProperties: false + description: Force keep alive websocket messages. + ForgotPasswordAction: + enum: + - ContactAdmin + - PinCode + - InNetworkRequired + type: string + ForgotPasswordDto: + required: + - EnteredUsername + type: object + properties: + EnteredUsername: + type: string + description: Gets or sets the entered username to have its password reset. + additionalProperties: false + description: Forgot Password request body DTO. + ForgotPasswordPinDto: + required: + - Pin + type: object + properties: + Pin: + type: string + description: Gets or sets the entered pin to have the password reset. + additionalProperties: false + description: Forgot Password Pin enter request body DTO. + ForgotPasswordResult: + type: object + properties: + Action: + enum: + - ContactAdmin + - PinCode + - InNetworkRequired + allOf: + - $ref: '#/components/schemas/ForgotPasswordAction' + description: Gets or sets the action. + PinFile: + type: string + description: Gets or sets the pin file. + nullable: true + PinExpirationDate: + type: string + description: Gets or sets the pin expiration date. + format: date-time + nullable: true + additionalProperties: false + GeneralCommand: + type: object + properties: + Name: + enum: + - MoveUp + - MoveDown + - MoveLeft + - MoveRight + - PageUp + - PageDown + - PreviousLetter + - NextLetter + - ToggleOsd + - ToggleContextMenu + - Select + - Back + - TakeScreenshot + - SendKey + - SendString + - GoHome + - GoToSettings + - VolumeUp + - VolumeDown + - Mute + - Unmute + - ToggleMute + - SetVolume + - SetAudioStreamIndex + - SetSubtitleStreamIndex + - ToggleFullscreen + - DisplayContent + - GoToSearch + - DisplayMessage + - SetRepeatMode + - ChannelUp + - ChannelDown + - Guide + - ToggleStats + - PlayMediaSource + - PlayTrailers + - SetShuffleQueue + - PlayState + - PlayNext + - ToggleOsdMenu + - Play + - SetMaxStreamingBitrate + - SetPlaybackOrder + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + ControllingUserId: + type: string + format: uuid + Arguments: + type: object + additionalProperties: + type: string + nullable: true + additionalProperties: false + GeneralCommandMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: GeneralCommand + readOnly: true + additionalProperties: false + description: General command websocket message. + GeneralCommandType: + enum: + - MoveUp + - MoveDown + - MoveLeft + - MoveRight + - PageUp + - PageDown + - PreviousLetter + - NextLetter + - ToggleOsd + - ToggleContextMenu + - Select + - Back + - TakeScreenshot + - SendKey + - SendString + - GoHome + - GoToSettings + - VolumeUp + - VolumeDown + - Mute + - Unmute + - ToggleMute + - SetVolume + - SetAudioStreamIndex + - SetSubtitleStreamIndex + - ToggleFullscreen + - DisplayContent + - GoToSearch + - DisplayMessage + - SetRepeatMode + - ChannelUp + - ChannelDown + - Guide + - ToggleStats + - PlayMediaSource + - PlayTrailers + - SetShuffleQueue + - PlayState + - PlayNext + - ToggleOsdMenu + - Play + - SetMaxStreamingBitrate + - SetPlaybackOrder + type: string + description: This exists simply to identify a set of known commands. + GetProgramsDto: + type: object + properties: + ChannelIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the channels to return guide information for. + nullable: true + UserId: + type: string + description: Gets or sets optional. Filter by user id. + format: uuid + nullable: true + MinStartDate: + type: string + description: Gets or sets the minimum premiere start date. + format: date-time + nullable: true + HasAired: + type: boolean + description: Gets or sets filter by programs that have completed airing, or not. + nullable: true + IsAiring: + type: boolean + description: Gets or sets filter by programs that are currently airing, or not. + nullable: true + MaxStartDate: + type: string + description: Gets or sets the maximum premiere start date. + format: date-time + nullable: true + MinEndDate: + type: string + description: Gets or sets the minimum premiere end date. + format: date-time + nullable: true + MaxEndDate: + type: string + description: Gets or sets the maximum premiere end date. + format: date-time + nullable: true + IsMovie: + type: boolean + description: Gets or sets filter for movies. + nullable: true + IsSeries: + type: boolean + description: Gets or sets filter for series. + nullable: true + IsNews: + type: boolean + description: Gets or sets filter for news. + nullable: true + IsKids: + type: boolean + description: Gets or sets filter for kids. + nullable: true + IsSports: + type: boolean + description: Gets or sets filter for sports. + nullable: true + StartIndex: + type: integer + description: Gets or sets the record index to start at. All items with a lower index will be dropped from the results. + format: int32 + nullable: true + Limit: + type: integer + description: Gets or sets the maximum number of records to return. + format: int32 + nullable: true + SortBy: + type: array + items: + $ref: '#/components/schemas/ItemSortBy' + description: 'Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.' + nullable: true + SortOrder: + type: array + items: + $ref: '#/components/schemas/SortOrder' + description: Gets or sets sort order. + nullable: true + Genres: + type: array + items: + type: string + description: Gets or sets the genres to return guide information for. + nullable: true + GenreIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the genre ids to return guide information for. + nullable: true + EnableImages: + type: boolean + description: Gets or sets include image information in output. + nullable: true + EnableTotalRecordCount: + type: boolean + description: Gets or sets a value indicating whether retrieve total record count. + default: true + ImageTypeLimit: + type: integer + description: Gets or sets the max number of images to return, per image type. + format: int32 + nullable: true + EnableImageTypes: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: Gets or sets the image types to include in the output. + nullable: true + EnableUserData: + type: boolean + description: Gets or sets include user data. + nullable: true + SeriesTimerId: + type: string + description: Gets or sets filter by series timer id. + nullable: true + LibrarySeriesId: + type: string + description: Gets or sets filter by library series id. + format: uuid + nullable: true + Fields: + type: array + items: + $ref: '#/components/schemas/ItemFields' + description: Gets or sets specify additional fields of information to return in the output. + nullable: true + additionalProperties: false + description: Get programs dto. + GroupInfoDto: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + GroupName: + type: string + description: Gets the group name. + State: + enum: + - Idle + - Waiting + - Paused + - Playing + allOf: + - $ref: '#/components/schemas/GroupStateType' + description: Gets the group state. + Participants: + type: array + items: + type: string + description: Gets the participants. + LastUpdatedAt: + type: string + description: Gets the date when this DTO has been created. + format: date-time + additionalProperties: false + description: Class GroupInfoDto. + GroupInfoDtoGroupUpdate: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + readOnly: true + Type: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + Data: + allOf: + - $ref: '#/components/schemas/GroupInfoDto' + description: Gets the update data. + additionalProperties: false + description: Class GroupUpdate. + GroupQueueMode: + enum: + - Queue + - QueueNext + type: string + description: Enum GroupQueueMode. + GroupRepeatMode: + enum: + - RepeatOne + - RepeatAll + - RepeatNone + type: string + description: Enum GroupRepeatMode. + GroupShuffleMode: + enum: + - Sorted + - Shuffle + type: string + description: Enum GroupShuffleMode. + GroupStateType: + enum: + - Idle + - Waiting + - Paused + - Playing + type: string + description: Enum GroupState. + GroupStateUpdate: + type: object + properties: + State: + enum: + - Idle + - Waiting + - Paused + - Playing + allOf: + - $ref: '#/components/schemas/GroupStateType' + description: Gets the state of the group. + Reason: + enum: + - Play + - SetPlaylistItem + - RemoveFromPlaylist + - MovePlaylistItem + - Queue + - Unpause + - Pause + - Stop + - Seek + - Buffer + - Ready + - NextItem + - PreviousItem + - SetRepeatMode + - SetShuffleMode + - Ping + - IgnoreWait + allOf: + - $ref: '#/components/schemas/PlaybackRequestType' + description: Gets the reason of the state change. + additionalProperties: false + description: Class GroupStateUpdate. + GroupStateUpdateGroupUpdate: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + readOnly: true + Type: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + Data: + allOf: + - $ref: '#/components/schemas/GroupStateUpdate' + description: Gets the update data. + additionalProperties: false + description: Class GroupUpdate. + GroupUpdate: + type: object + oneOf: + - $ref: '#/components/schemas/GroupInfoDtoGroupUpdate' + - $ref: '#/components/schemas/GroupStateUpdateGroupUpdate' + - $ref: '#/components/schemas/StringGroupUpdate' + - $ref: '#/components/schemas/PlayQueueUpdateGroupUpdate' + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + readOnly: true + Type: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + additionalProperties: false + description: Group update without data. + discriminator: + propertyName: Type + mapping: + UserJoined: '#/components/schemas/StringGroupUpdate' + UserLeft: '#/components/schemas/StringGroupUpdate' + GroupJoined: '#/components/schemas/GroupInfoDtoGroupUpdate' + GroupLeft: '#/components/schemas/StringGroupUpdate' + StateUpdate: '#/components/schemas/GroupStateUpdateGroupUpdate' + PlayQueue: '#/components/schemas/PlayQueueUpdateGroupUpdate' + NotInGroup: '#/components/schemas/StringGroupUpdate' + GroupDoesNotExist: '#/components/schemas/StringGroupUpdate' + LibraryAccessDenied: '#/components/schemas/StringGroupUpdate' + GroupUpdateType: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + type: string + description: Enum GroupUpdateType. + GuideInfo: + type: object + properties: + StartDate: + type: string + description: Gets or sets the start date. + format: date-time + EndDate: + type: string + description: Gets or sets the end date. + format: date-time + additionalProperties: false + HardwareAccelerationType: + enum: + - none + - amf + - qsv + - nvenc + - v4l2m2m + - vaapi + - videotoolbox + - rkmpp + type: string + description: Enum containing hardware acceleration types. + IgnoreWaitRequestDto: + type: object + properties: + IgnoreWait: + type: boolean + description: Gets or sets a value indicating whether the client should be ignored. + additionalProperties: false + description: Class IgnoreWaitRequestDto. + ImageFormat: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + - Svg + type: string + description: Enum ImageOutputFormat. + ImageInfo: + type: object + properties: + ImageType: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type of the image. + ImageIndex: + type: integer + description: Gets or sets the index of the image. + format: int32 + nullable: true + ImageTag: + type: string + description: Gets or sets the image tag. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + BlurHash: + type: string + description: Gets or sets the blurhash. + nullable: true + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + Size: + type: integer + description: Gets or sets the size. + format: int64 + additionalProperties: false + description: Class ImageInfo. + ImageOption: + type: object + properties: + Type: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type. + Limit: + type: integer + description: Gets or sets the limit. + format: int32 + MinWidth: + type: integer + description: Gets or sets the minimum width. + format: int32 + additionalProperties: false + ImageOrientation: + enum: + - TopLeft + - TopRight + - BottomRight + - BottomLeft + - LeftTop + - RightTop + - RightBottom + - LeftBottom + type: string + ImageProviderInfo: + type: object + properties: + Name: + type: string + description: Gets the name. + SupportedImages: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: Gets the supported image types. + additionalProperties: false + description: Class ImageProviderInfo. + ImageResolution: + enum: + - MatchSource + - P144 + - P240 + - P360 + - P480 + - P720 + - P1080 + - P1440 + - P2160 + type: string + description: Enum ImageResolution. + ImageSavingConvention: + enum: + - Legacy + - Compatible + type: string + ImageType: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + type: string + description: Enum ImageType. + InboundKeepAliveMessage: + type: object + properties: + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: KeepAlive + readOnly: true + additionalProperties: false + description: Keep alive websocket messages. + InboundWebSocketMessage: + type: object + oneOf: + - $ref: '#/components/schemas/ActivityLogEntryStartMessage' + - $ref: '#/components/schemas/ActivityLogEntryStopMessage' + - $ref: '#/components/schemas/InboundKeepAliveMessage' + - $ref: '#/components/schemas/ScheduledTasksInfoStartMessage' + - $ref: '#/components/schemas/ScheduledTasksInfoStopMessage' + - $ref: '#/components/schemas/SessionsStartMessage' + - $ref: '#/components/schemas/SessionsStopMessage' + description: Represents the list of possible inbound websocket types + discriminator: + propertyName: MessageType + mapping: + ActivityLogEntryStart: '#/components/schemas/ActivityLogEntryStartMessage' + ActivityLogEntryStop: '#/components/schemas/ActivityLogEntryStopMessage' + KeepAlive: '#/components/schemas/InboundKeepAliveMessage' + ScheduledTasksInfoStart: '#/components/schemas/ScheduledTasksInfoStartMessage' + ScheduledTasksInfoStop: '#/components/schemas/ScheduledTasksInfoStopMessage' + SessionsStart: '#/components/schemas/SessionsStartMessage' + SessionsStop: '#/components/schemas/SessionsStopMessage' + InstallationInfo: + type: object + properties: + Guid: + type: string + description: Gets or sets the Id. + format: uuid + Name: + type: string + description: Gets or sets the name. + nullable: true + Version: + type: string + description: Gets or sets the version. + nullable: true + Changelog: + type: string + description: Gets or sets the changelog for this version. + nullable: true + SourceUrl: + type: string + description: Gets or sets the source URL. + nullable: true + Checksum: + type: string + description: Gets or sets a checksum for the binary. + nullable: true + PackageInfo: + allOf: + - $ref: '#/components/schemas/PackageInfo' + description: Gets or sets package information for the installation. + nullable: true + additionalProperties: false + description: Class InstallationInfo. + IPlugin: + type: object + properties: + Name: + type: string + description: Gets the name of the plugin. + nullable: true + readOnly: true + Description: + type: string + description: Gets the Description. + nullable: true + readOnly: true + Id: + type: string + description: Gets the unique id. + format: uuid + readOnly: true + Version: + type: string + description: Gets the plugin version. + nullable: true + readOnly: true + AssemblyFilePath: + type: string + description: Gets the path to the assembly file. + nullable: true + readOnly: true + CanUninstall: + type: boolean + description: Gets a value indicating whether the plugin can be uninstalled. + readOnly: true + DataFolderPath: + type: string + description: Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. + nullable: true + readOnly: true + additionalProperties: false + description: Defines the MediaBrowser.Common.Plugins.IPlugin. + IsoType: + enum: + - Dvd + - BluRay + type: string + description: Enum IsoType. + ItemCounts: + type: object + properties: + MovieCount: + type: integer + description: Gets or sets the movie count. + format: int32 + SeriesCount: + type: integer + description: Gets or sets the series count. + format: int32 + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + ArtistCount: + type: integer + description: Gets or sets the artist count. + format: int32 + ProgramCount: + type: integer + description: Gets or sets the program count. + format: int32 + TrailerCount: + type: integer + description: Gets or sets the trailer count. + format: int32 + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + AlbumCount: + type: integer + description: Gets or sets the album count. + format: int32 + MusicVideoCount: + type: integer + description: Gets or sets the music video count. + format: int32 + BoxSetCount: + type: integer + description: Gets or sets the box set count. + format: int32 + BookCount: + type: integer + description: Gets or sets the book count. + format: int32 + ItemCount: + type: integer + description: Gets or sets the item count. + format: int32 + additionalProperties: false + description: Class LibrarySummary. + ItemFields: + enum: + - AirTime + - CanDelete + - CanDownload + - ChannelInfo + - Chapters + - Trickplay + - ChildCount + - CumulativeRunTimeTicks + - CustomRating + - DateCreated + - DateLastMediaAdded + - DisplayPreferencesId + - Etag + - ExternalUrls + - Genres + - HomePageUrl + - ItemCounts + - MediaSourceCount + - MediaSources + - OriginalTitle + - Overview + - ParentId + - Path + - People + - PlayAccess + - ProductionLocations + - ProviderIds + - PrimaryImageAspectRatio + - RecursiveItemCount + - Settings + - ScreenshotImageTags + - SeriesPrimaryImage + - SeriesStudio + - SortName + - SpecialEpisodeNumbers + - Studios + - Taglines + - Tags + - RemoteTrailers + - MediaStreams + - SeasonUserData + - ServiceName + - ThemeSongIds + - ThemeVideoIds + - ExternalEtag + - PresentationUniqueKey + - InheritedParentalRatingValue + - ExternalSeriesId + - SeriesPresentationUniqueKey + - DateLastRefreshed + - DateLastSaved + - RefreshState + - ChannelImage + - EnableMediaSourceDisplay + - Width + - Height + - ExtraIds + - LocalTrailerCount + - IsHD + - SpecialFeatureCount + type: string + description: Used to control the data that gets attached to DtoBaseItems. + ItemFilter: + enum: + - IsFolder + - IsNotFolder + - IsUnplayed + - IsPlayed + - IsFavorite + - IsResumable + - Likes + - Dislikes + - IsFavoriteOrLikes + type: string + description: Enum ItemFilter. + ItemSortBy: + enum: + - Default + - AiredEpisodeOrder + - Album + - AlbumArtist + - Artist + - DateCreated + - OfficialRating + - DatePlayed + - PremiereDate + - StartDate + - SortName + - Name + - Random + - Runtime + - CommunityRating + - ProductionYear + - PlayCount + - CriticRating + - IsFolder + - IsUnplayed + - IsPlayed + - SeriesSortName + - VideoBitRate + - AirTime + - Studio + - IsFavoriteOrLiked + - DateLastContentAdded + - SeriesDatePlayed + - ParentIndexNumber + - IndexNumber + - SimilarityScore + - SearchScore + type: string + description: These represent sort orders. + JoinGroupRequestDto: + type: object + properties: + GroupId: + type: string + description: Gets or sets the group identifier. + format: uuid + additionalProperties: false + description: Class JoinGroupRequestDto. + KeepUntil: + enum: + - UntilDeleted + - UntilSpaceNeeded + - UntilWatched + - UntilDate + type: string + LibraryChangedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/LibraryUpdateInfo' + description: Class LibraryUpdateInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: LibraryChanged + readOnly: true + additionalProperties: false + description: Library changed message. + LibraryOptionInfoDto: + type: object + properties: + Name: + type: string + description: Gets or sets name. + nullable: true + DefaultEnabled: + type: boolean + description: Gets or sets a value indicating whether default enabled. + additionalProperties: false + description: Library option info dto. + LibraryOptions: + type: object + properties: + Enabled: + type: boolean + EnablePhotos: + type: boolean + EnableRealtimeMonitor: + type: boolean + EnableLUFSScan: + type: boolean + EnableChapterImageExtraction: + type: boolean + ExtractChapterImagesDuringLibraryScan: + type: boolean + EnableTrickplayImageExtraction: + type: boolean + ExtractTrickplayImagesDuringLibraryScan: + type: boolean + PathInfos: + type: array + items: + $ref: '#/components/schemas/MediaPathInfo' + SaveLocalMetadata: + type: boolean + EnableInternetProviders: + type: boolean + deprecated: true + EnableAutomaticSeriesGrouping: + type: boolean + EnableEmbeddedTitles: + type: boolean + EnableEmbeddedExtrasTitles: + type: boolean + EnableEmbeddedEpisodeInfos: + type: boolean + AutomaticRefreshIntervalDays: + type: integer + format: int32 + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + SeasonZeroDisplayName: + type: string + MetadataSavers: + type: array + items: + type: string + nullable: true + DisabledLocalMetadataReaders: + type: array + items: + type: string + LocalMetadataReaderOrder: + type: array + items: + type: string + nullable: true + DisabledSubtitleFetchers: + type: array + items: + type: string + SubtitleFetcherOrder: + type: array + items: + type: string + DisabledMediaSegmentProviders: + type: array + items: + type: string + MediaSegmentProvideOrder: + type: array + items: + type: string + SkipSubtitlesIfEmbeddedSubtitlesPresent: + type: boolean + SkipSubtitlesIfAudioTrackMatches: + type: boolean + SubtitleDownloadLanguages: + type: array + items: + type: string + nullable: true + RequirePerfectSubtitleMatch: + type: boolean + SaveSubtitlesWithMedia: + type: boolean + SaveLyricsWithMedia: + type: boolean + default: false + SaveTrickplayWithMedia: + type: boolean + default: false + DisabledLyricFetchers: + type: array + items: + type: string + LyricFetcherOrder: + type: array + items: + type: string + PreferNonstandardArtistsTag: + type: boolean + default: false + UseCustomTagDelimiters: + type: boolean + default: false + CustomTagDelimiters: + type: array + items: + type: string + DelimiterWhitelist: + type: array + items: + type: string + AutomaticallyAddToCollection: + type: boolean + AllowEmbeddedSubtitles: + enum: + - AllowAll + - AllowText + - AllowImage + - AllowNone + allOf: + - $ref: '#/components/schemas/EmbeddedSubtitleOptions' + description: An enum representing the options to disable embedded subs. + TypeOptions: + type: array + items: + $ref: '#/components/schemas/TypeOptions' + additionalProperties: false + LibraryOptionsResultDto: + type: object + properties: + MetadataSavers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata savers. + MetadataReaders: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata readers. + SubtitleFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the subtitle fetchers. + LyricFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the list of lyric fetchers. + TypeOptions: + type: array + items: + $ref: '#/components/schemas/LibraryTypeOptionsDto' + description: Gets or sets the type options. + additionalProperties: false + description: Library options result dto. + LibraryTypeOptionsDto: + type: object + properties: + Type: + type: string + description: Gets or sets the type. + nullable: true + MetadataFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata fetchers. + ImageFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the image fetchers. + SupportedImageTypes: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: Gets or sets the supported image types. + DefaultImageOptions: + type: array + items: + $ref: '#/components/schemas/ImageOption' + description: Gets or sets the default image options. + additionalProperties: false + description: Library type options dto. + LibraryUpdateInfo: + type: object + properties: + FoldersAddedTo: + type: array + items: + type: string + description: Gets or sets the folders added to. + FoldersRemovedFrom: + type: array + items: + type: string + description: Gets or sets the folders removed from. + ItemsAdded: + type: array + items: + type: string + description: Gets or sets the items added. + ItemsRemoved: + type: array + items: + type: string + description: Gets or sets the items removed. + ItemsUpdated: + type: array + items: + type: string + description: Gets or sets the items updated. + CollectionFolders: + type: array + items: + type: string + IsEmpty: + type: boolean + readOnly: true + additionalProperties: false + description: Class LibraryUpdateInfo. + ListingsProviderInfo: + type: object + properties: + Id: + type: string + nullable: true + Type: + type: string + nullable: true + Username: + type: string + nullable: true + Password: + type: string + nullable: true + ListingsId: + type: string + nullable: true + ZipCode: + type: string + nullable: true + Country: + type: string + nullable: true + Path: + type: string + nullable: true + EnabledTuners: + type: array + items: + type: string + nullable: true + EnableAllTuners: + type: boolean + NewsCategories: + type: array + items: + type: string + nullable: true + SportsCategories: + type: array + items: + type: string + nullable: true + KidsCategories: + type: array + items: + type: string + nullable: true + MovieCategories: + type: array + items: + type: string + nullable: true + ChannelMappings: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + nullable: true + MoviePrefix: + type: string + nullable: true + PreferredLanguage: + type: string + nullable: true + UserAgent: + type: string + nullable: true + additionalProperties: false + LiveStreamResponse: + type: object + properties: + MediaSource: + allOf: + - $ref: '#/components/schemas/MediaSourceInfo' + additionalProperties: false + LiveTvInfo: + type: object + properties: + Services: + type: array + items: + $ref: '#/components/schemas/LiveTvServiceInfo' + description: Gets or sets the services. + IsEnabled: + type: boolean + description: Gets or sets a value indicating whether this instance is enabled. + EnabledUsers: + type: array + items: + type: string + description: Gets or sets the enabled users. + additionalProperties: false + LiveTvOptions: + type: object + properties: + GuideDays: + type: integer + format: int32 + nullable: true + RecordingPath: + type: string + nullable: true + MovieRecordingPath: + type: string + nullable: true + SeriesRecordingPath: + type: string + nullable: true + EnableRecordingSubfolders: + type: boolean + EnableOriginalAudioWithEncodedRecordings: + type: boolean + TunerHosts: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + nullable: true + ListingProviders: + type: array + items: + $ref: '#/components/schemas/ListingsProviderInfo' + nullable: true + PrePaddingSeconds: + type: integer + format: int32 + PostPaddingSeconds: + type: integer + format: int32 + MediaLocationsCreated: + type: array + items: + type: string + nullable: true + RecordingPostProcessor: + type: string + nullable: true + RecordingPostProcessorArguments: + type: string + nullable: true + SaveRecordingNFO: + type: boolean + SaveRecordingImages: + type: boolean + additionalProperties: false + LiveTvServiceInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + HomePageUrl: + type: string + description: Gets or sets the home page URL. + nullable: true + Status: + enum: + - Ok + - Unavailable + allOf: + - $ref: '#/components/schemas/LiveTvServiceStatus' + description: Gets or sets the status. + StatusMessage: + type: string + description: Gets or sets the status message. + nullable: true + Version: + type: string + description: Gets or sets the version. + nullable: true + HasUpdateAvailable: + type: boolean + description: Gets or sets a value indicating whether this instance has update available. + IsVisible: + type: boolean + description: Gets or sets a value indicating whether this instance is visible. + Tuners: + type: array + items: + type: string + nullable: true + additionalProperties: false + description: Class ServiceInfo. + LiveTvServiceStatus: + enum: + - Ok + - Unavailable + type: string + LocalizationOption: + type: object + properties: + Name: + type: string + nullable: true + Value: + type: string + nullable: true + additionalProperties: false + LocationType: + enum: + - FileSystem + - Remote + - Virtual + - Offline + type: string + description: Enum LocationType. + LogFile: + type: object + properties: + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateModified: + type: string + description: Gets or sets the date modified. + format: date-time + Size: + type: integer + description: Gets or sets the size. + format: int64 + Name: + type: string + description: Gets or sets the name. + additionalProperties: false + LogLevel: + enum: + - Trace + - Debug + - Information + - Warning + - Error + - Critical + - None + type: string + LyricDto: + type: object + properties: + Metadata: + allOf: + - $ref: '#/components/schemas/LyricMetadata' + description: Gets or sets Metadata for the lyrics. + Lyrics: + type: array + items: + $ref: '#/components/schemas/LyricLine' + description: Gets or sets a collection of individual lyric lines. + additionalProperties: false + description: LyricResponse model. + LyricLine: + type: object + properties: + Text: + type: string + description: Gets the text of this lyric line. + Start: + type: integer + description: Gets the start time in ticks. + format: int64 + nullable: true + additionalProperties: false + description: Lyric model. + LyricMetadata: + type: object + properties: + Artist: + type: string + description: Gets or sets the song artist. + nullable: true + Album: + type: string + description: Gets or sets the album this song is on. + nullable: true + Title: + type: string + description: Gets or sets the title of the song. + nullable: true + Author: + type: string + description: Gets or sets the author of the lyric data. + nullable: true + Length: + type: integer + description: Gets or sets the length of the song in ticks. + format: int64 + nullable: true + By: + type: string + description: Gets or sets who the LRC file was created by. + nullable: true + Offset: + type: integer + description: Gets or sets the lyric offset compared to audio in ticks. + format: int64 + nullable: true + Creator: + type: string + description: Gets or sets the software used to create the LRC file. + nullable: true + Version: + type: string + description: Gets or sets the version of the creator used. + nullable: true + IsSynced: + type: boolean + description: Gets or sets a value indicating whether this lyric is synced. + nullable: true + additionalProperties: false + description: LyricMetadata model. + MediaAttachment: + type: object + properties: + Codec: + type: string + description: Gets or sets the codec. + nullable: true + CodecTag: + type: string + description: Gets or sets the codec tag. + nullable: true + Comment: + type: string + description: Gets or sets the comment. + nullable: true + Index: + type: integer + description: Gets or sets the index. + format: int32 + FileName: + type: string + description: Gets or sets the filename. + nullable: true + MimeType: + type: string + description: Gets or sets the MIME type. + nullable: true + DeliveryUrl: + type: string + description: Gets or sets the delivery URL. + nullable: true + additionalProperties: false + description: Class MediaAttachment. + MediaPathDto: + required: + - Name + type: object + properties: + Name: + type: string + description: Gets or sets the name of the library. + Path: + type: string + description: Gets or sets the path to add. + nullable: true + PathInfo: + allOf: + - $ref: '#/components/schemas/MediaPathInfo' + description: Gets or sets the path info. + nullable: true + additionalProperties: false + description: Media Path dto. + MediaPathInfo: + type: object + properties: + Path: + type: string + additionalProperties: false + MediaProtocol: + enum: + - File + - Http + - Rtmp + - Rtsp + - Udp + - Rtp + - Ftp + type: string + MediaSegmentDto: + type: object + properties: + Id: + type: string + description: Gets or sets the id of the media segment. + format: uuid + ItemId: + type: string + description: Gets or sets the id of the associated item. + format: uuid + Type: + enum: + - Unknown + - Commercial + - Preview + - Recap + - Outro + - Intro + allOf: + - $ref: '#/components/schemas/MediaSegmentType' + description: Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents. + StartTicks: + type: integer + description: Gets or sets the start of the segment. + format: int64 + EndTicks: + type: integer + description: Gets or sets the end of the segment. + format: int64 + additionalProperties: false + description: Api model for MediaSegment's. + MediaSegmentDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/MediaSegmentDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + MediaSegmentType: + enum: + - Unknown + - Commercial + - Preview + - Recap + - Outro + - Intro + type: string + description: Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents. + MediaSourceInfo: + type: object + properties: + Protocol: + enum: + - File + - Http + - Rtmp + - Rtsp + - Udp + - Rtp + - Ftp + allOf: + - $ref: '#/components/schemas/MediaProtocol' + Id: + type: string + nullable: true + Path: + type: string + nullable: true + EncoderPath: + type: string + nullable: true + EncoderProtocol: + enum: + - File + - Http + - Rtmp + - Rtsp + - Udp + - Rtp + - Ftp + allOf: + - $ref: '#/components/schemas/MediaProtocol' + nullable: true + Type: + enum: + - Default + - Grouping + - Placeholder + allOf: + - $ref: '#/components/schemas/MediaSourceType' + Container: + type: string + nullable: true + Size: + type: integer + format: int64 + nullable: true + Name: + type: string + nullable: true + IsRemote: + type: boolean + description: "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + ETag: + type: string + nullable: true + RunTimeTicks: + type: integer + format: int64 + nullable: true + ReadAtNativeFramerate: + type: boolean + IgnoreDts: + type: boolean + IgnoreIndex: + type: boolean + GenPtsInput: + type: boolean + SupportsTranscoding: + type: boolean + SupportsDirectStream: + type: boolean + SupportsDirectPlay: + type: boolean + IsInfiniteStream: + type: boolean + UseMostCompatibleTranscodingProfile: + type: boolean + default: false + RequiresOpening: + type: boolean + OpenToken: + type: string + nullable: true + RequiresClosing: + type: boolean + LiveStreamId: + type: string + nullable: true + BufferMs: + type: integer + format: int32 + nullable: true + RequiresLooping: + type: boolean + SupportsProbing: + type: boolean + VideoType: + enum: + - VideoFile + - Iso + - Dvd + - BluRay + allOf: + - $ref: '#/components/schemas/VideoType' + nullable: true + IsoType: + enum: + - Dvd + - BluRay + allOf: + - $ref: '#/components/schemas/IsoType' + nullable: true + Video3DFormat: + enum: + - HalfSideBySide + - FullSideBySide + - FullTopAndBottom + - HalfTopAndBottom + - MVC + allOf: + - $ref: '#/components/schemas/Video3DFormat' + nullable: true + MediaStreams: + type: array + items: + $ref: '#/components/schemas/MediaStream' + nullable: true + MediaAttachments: + type: array + items: + $ref: '#/components/schemas/MediaAttachment' + nullable: true + Formats: + type: array + items: + type: string + nullable: true + Bitrate: + type: integer + format: int32 + nullable: true + FallbackMaxStreamingBitrate: + type: integer + format: int32 + nullable: true + Timestamp: + enum: + - None + - Zero + - Valid + allOf: + - $ref: '#/components/schemas/TransportStreamTimestamp' + nullable: true + RequiredHttpHeaders: + type: object + additionalProperties: + type: string + nullable: true + nullable: true + TranscodingUrl: + type: string + nullable: true + TranscodingSubProtocol: + enum: + - http + - hls + allOf: + - $ref: '#/components/schemas/MediaStreamProtocol' + description: "Media streaming protocol.\r\nLowercase for backwards compatibility." + TranscodingContainer: + type: string + nullable: true + AnalyzeDurationMs: + type: integer + format: int32 + nullable: true + DefaultAudioStreamIndex: + type: integer + format: int32 + nullable: true + DefaultSubtitleStreamIndex: + type: integer + format: int32 + nullable: true + HasSegments: + type: boolean + additionalProperties: false + MediaSourceType: + enum: + - Default + - Grouping + - Placeholder + type: string + MediaStream: + type: object + properties: + Codec: + type: string + description: Gets or sets the codec. + nullable: true + CodecTag: + type: string + description: Gets or sets the codec tag. + nullable: true + Language: + type: string + description: Gets or sets the language. + nullable: true + ColorRange: + type: string + description: Gets or sets the color range. + nullable: true + ColorSpace: + type: string + description: Gets or sets the color space. + nullable: true + ColorTransfer: + type: string + description: Gets or sets the color transfer. + nullable: true + ColorPrimaries: + type: string + description: Gets or sets the color primaries. + nullable: true + DvVersionMajor: + type: integer + description: Gets or sets the Dolby Vision version major. + format: int32 + nullable: true + DvVersionMinor: + type: integer + description: Gets or sets the Dolby Vision version minor. + format: int32 + nullable: true + DvProfile: + type: integer + description: Gets or sets the Dolby Vision profile. + format: int32 + nullable: true + DvLevel: + type: integer + description: Gets or sets the Dolby Vision level. + format: int32 + nullable: true + RpuPresentFlag: + type: integer + description: Gets or sets the Dolby Vision rpu present flag. + format: int32 + nullable: true + ElPresentFlag: + type: integer + description: Gets or sets the Dolby Vision el present flag. + format: int32 + nullable: true + BlPresentFlag: + type: integer + description: Gets or sets the Dolby Vision bl present flag. + format: int32 + nullable: true + DvBlSignalCompatibilityId: + type: integer + description: Gets or sets the Dolby Vision bl signal compatibility id. + format: int32 + nullable: true + Rotation: + type: integer + description: Gets or sets the Rotation in degrees. + format: int32 + nullable: true + Comment: + type: string + description: Gets or sets the comment. + nullable: true + TimeBase: + type: string + description: Gets or sets the time base. + nullable: true + CodecTimeBase: + type: string + description: Gets or sets the codec time base. + nullable: true + Title: + type: string + description: Gets or sets the title. + nullable: true + VideoRange: + enum: + - Unknown + - SDR + - HDR + allOf: + - $ref: '#/components/schemas/VideoRange' + description: An enum representing video ranges. + readOnly: true + VideoRangeType: + enum: + - Unknown + - SDR + - HDR10 + - HLG + - DOVI + - DOVIWithHDR10 + - DOVIWithHLG + - DOVIWithSDR + - HDR10Plus + allOf: + - $ref: '#/components/schemas/VideoRangeType' + description: An enum representing types of video ranges. + readOnly: true + VideoDoViTitle: + type: string + description: Gets the video dovi title. + nullable: true + readOnly: true + AudioSpatialFormat: + enum: + - None + - DolbyAtmos + - DTSX + allOf: + - $ref: '#/components/schemas/AudioSpatialFormat' + description: An enum representing formats of spatial audio. + default: None + readOnly: true + LocalizedUndefined: + type: string + nullable: true + LocalizedDefault: + type: string + nullable: true + LocalizedForced: + type: string + nullable: true + LocalizedExternal: + type: string + nullable: true + LocalizedHearingImpaired: + type: string + nullable: true + DisplayTitle: + type: string + nullable: true + readOnly: true + NalLengthSize: + type: string + nullable: true + IsInterlaced: + type: boolean + description: Gets or sets a value indicating whether this instance is interlaced. + IsAVC: + type: boolean + nullable: true + ChannelLayout: + type: string + description: Gets or sets the channel layout. + nullable: true + BitRate: + type: integer + description: Gets or sets the bit rate. + format: int32 + nullable: true + BitDepth: + type: integer + description: Gets or sets the bit depth. + format: int32 + nullable: true + RefFrames: + type: integer + description: Gets or sets the reference frames. + format: int32 + nullable: true + PacketLength: + type: integer + description: Gets or sets the length of the packet. + format: int32 + nullable: true + Channels: + type: integer + description: Gets or sets the channels. + format: int32 + nullable: true + SampleRate: + type: integer + description: Gets or sets the sample rate. + format: int32 + nullable: true + IsDefault: + type: boolean + description: Gets or sets a value indicating whether this instance is default. + IsForced: + type: boolean + description: Gets or sets a value indicating whether this instance is forced. + IsHearingImpaired: + type: boolean + description: Gets or sets a value indicating whether this instance is for the hearing impaired. + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + AverageFrameRate: + type: number + description: Gets or sets the average frame rate. + format: float + nullable: true + RealFrameRate: + type: number + description: Gets or sets the real frame rate. + format: float + nullable: true + ReferenceFrameRate: + type: number + description: "Gets the framerate used as reference.\r\nPrefer AverageFrameRate, if that is null or an unrealistic value\r\nthen fallback to RealFrameRate." + format: float + nullable: true + readOnly: true + Profile: + type: string + description: Gets or sets the profile. + nullable: true + Type: + enum: + - Audio + - Video + - Subtitle + - EmbeddedImage + - Data + - Lyric + allOf: + - $ref: '#/components/schemas/MediaStreamType' + description: Gets or sets the type. + AspectRatio: + type: string + description: Gets or sets the aspect ratio. + nullable: true + Index: + type: integer + description: Gets or sets the index. + format: int32 + Score: + type: integer + description: Gets or sets the score. + format: int32 + nullable: true + IsExternal: + type: boolean + description: Gets or sets a value indicating whether this instance is external. + DeliveryMethod: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + description: Gets or sets the method. + nullable: true + DeliveryUrl: + type: string + description: Gets or sets the delivery URL. + nullable: true + IsExternalUrl: + type: boolean + description: Gets or sets a value indicating whether this instance is external URL. + nullable: true + IsTextSubtitleStream: + type: boolean + readOnly: true + SupportsExternalStream: + type: boolean + description: Gets or sets a value indicating whether [supports external stream]. + Path: + type: string + description: Gets or sets the filename. + nullable: true + PixelFormat: + type: string + description: Gets or sets the pixel format. + nullable: true + Level: + type: number + description: Gets or sets the level. + format: double + nullable: true + IsAnamorphic: + type: boolean + description: Gets or sets whether this instance is anamorphic. + nullable: true + additionalProperties: false + description: Class MediaStream. + MediaStreamProtocol: + enum: + - http + - hls + type: string + description: "Media streaming protocol.\r\nLowercase for backwards compatibility." + MediaStreamType: + enum: + - Audio + - Video + - Subtitle + - EmbeddedImage + - Data + - Lyric + type: string + description: Enum MediaStreamType. + MediaType: + enum: + - Unknown + - Video + - Audio + - Photo + - Book + type: string + description: Media types. + MediaUpdateInfoDto: + type: object + properties: + Updates: + type: array + items: + $ref: '#/components/schemas/MediaUpdateInfoPathDto' + description: Gets or sets the list of updates. + additionalProperties: false + description: Media Update Info Dto. + MediaUpdateInfoPathDto: + type: object + properties: + Path: + type: string + description: Gets or sets media path. + nullable: true + UpdateType: + type: string + description: "Gets or sets media update type.\r\nCreated, Modified, Deleted." + nullable: true + additionalProperties: false + description: The media update info path. + MediaUrl: + type: object + properties: + Url: + type: string + nullable: true + Name: + type: string + nullable: true + additionalProperties: false + MessageCommand: + required: + - Text + type: object + properties: + Header: + type: string + nullable: true + Text: + type: string + TimeoutMs: + type: integer + format: int64 + nullable: true + additionalProperties: false + MetadataConfiguration: + type: object + properties: + UseFileCreationTimeForDateAdded: + type: boolean + additionalProperties: false + MetadataEditorInfo: + type: object + properties: + ParentalRatingOptions: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + Countries: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + Cultures: + type: array + items: + $ref: '#/components/schemas/CultureDto' + ExternalIdInfos: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + ContentType: + enum: + - unknown + - movies + - tvshows + - music + - musicvideos + - trailers + - homevideos + - boxsets + - books + - photos + - livetv + - playlists + - folders + allOf: + - $ref: '#/components/schemas/CollectionType' + nullable: true + ContentTypeOptions: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + additionalProperties: false + MetadataField: + enum: + - Cast + - Genres + - ProductionLocations + - Studios + - Tags + - Name + - Overview + - Runtime + - OfficialRating + type: string + description: Enum MetadataFields. + MetadataOptions: + type: object + properties: + ItemType: + type: string + nullable: true + DisabledMetadataSavers: + type: array + items: + type: string + nullable: true + LocalMetadataReaderOrder: + type: array + items: + type: string + nullable: true + DisabledMetadataFetchers: + type: array + items: + type: string + nullable: true + MetadataFetcherOrder: + type: array + items: + type: string + nullable: true + DisabledImageFetchers: + type: array + items: + type: string + nullable: true + ImageFetcherOrder: + type: array + items: + type: string + nullable: true + additionalProperties: false + description: Class MetadataOptions. + MetadataRefreshMode: + enum: + - None + - ValidationOnly + - Default + - FullRefresh + type: string + MovePlaylistItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playlist identifier of the item. + format: uuid + NewIndex: + type: integer + description: Gets or sets the new position. + format: int32 + additionalProperties: false + description: Class MovePlaylistItemRequestDto. + MovieInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + MovieInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/MovieInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + MusicVideoInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + Artists: + type: array + items: + type: string + nullable: true + additionalProperties: false + MusicVideoInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/MusicVideoInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + NameGuidPair: + type: object + properties: + Name: + type: string + nullable: true + Id: + type: string + format: uuid + additionalProperties: false + NameIdPair: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + nullable: true + additionalProperties: false + NameValuePair: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Value: + type: string + description: Gets or sets the value. + nullable: true + additionalProperties: false + NetworkConfiguration: + type: object + properties: + BaseUrl: + type: string + description: Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. + EnableHttps: + type: boolean + description: Gets or sets a value indicating whether to use HTTPS. + RequireHttps: + type: boolean + description: Gets or sets a value indicating whether the server should force connections over HTTPS. + CertificatePath: + type: string + description: Gets or sets the filesystem path of an X.509 certificate to use for SSL. + CertificatePassword: + type: string + description: Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Common.Net.NetworkConfiguration.CertificatePath. + InternalHttpPort: + type: integer + description: Gets or sets the internal HTTP server port. + format: int32 + InternalHttpsPort: + type: integer + description: Gets or sets the internal HTTPS server port. + format: int32 + PublicHttpPort: + type: integer + description: Gets or sets the public HTTP port. + format: int32 + PublicHttpsPort: + type: integer + description: Gets or sets the public HTTPS port. + format: int32 + AutoDiscovery: + type: boolean + description: Gets or sets a value indicating whether Autodiscovery is enabled. + EnableUPnP: + type: boolean + description: Gets or sets a value indicating whether to enable automatic port forwarding. + EnableIPv4: + type: boolean + description: Gets or sets a value indicating whether IPv6 is enabled. + EnableIPv6: + type: boolean + description: Gets or sets a value indicating whether IPv6 is enabled. + EnableRemoteAccess: + type: boolean + description: Gets or sets a value indicating whether access from outside of the LAN is permitted. + LocalNetworkSubnets: + type: array + items: + type: string + description: Gets or sets the subnets that are deemed to make up the LAN. + LocalNetworkAddresses: + type: array + items: + type: string + description: Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. + KnownProxies: + type: array + items: + type: string + description: Gets or sets the known proxies. + IgnoreVirtualInterfaces: + type: boolean + description: Gets or sets a value indicating whether address names that match MediaBrowser.Common.Net.NetworkConfiguration.VirtualInterfaceNames should be ignored for the purposes of binding. + VirtualInterfaceNames: + type: array + items: + type: string + description: Gets or sets a value indicating the interface name prefixes that should be ignored. The list can be comma separated and values are case-insensitive. . + EnablePublishedServerUriByRequest: + type: boolean + description: Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. + PublishedServerUriBySubnet: + type: array + items: + type: string + description: "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + RemoteIPFilter: + type: array + items: + type: string + description: Gets or sets the filter for remote IP connectivity. Used in conjunction with . + IsRemoteIPFilterBlacklist: + type: boolean + description: Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist. + additionalProperties: false + description: Defines the MediaBrowser.Common.Net.NetworkConfiguration. + NewGroupRequestDto: + type: object + properties: + GroupName: + type: string + description: Gets or sets the group name. + additionalProperties: false + description: Class NewGroupRequestDto. + NextItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playing item identifier. + format: uuid + additionalProperties: false + description: Class NextItemRequestDto. + OpenLiveStreamDto: + type: object + properties: + OpenToken: + type: string + description: Gets or sets the open token. + nullable: true + UserId: + type: string + description: Gets or sets the user id. + format: uuid + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session id. + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the max streaming bitrate. + format: int32 + nullable: true + StartTimeTicks: + type: integer + description: Gets or sets the start time in ticks. + format: int64 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the audio stream index. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the subtitle stream index. + format: int32 + nullable: true + MaxAudioChannels: + type: integer + description: Gets or sets the max audio channels. + format: int32 + nullable: true + ItemId: + type: string + description: Gets or sets the item id. + format: uuid + nullable: true + EnableDirectPlay: + type: boolean + description: Gets or sets a value indicating whether to enable direct play. + nullable: true + EnableDirectStream: + type: boolean + description: Gets or sets a value indicating whether to enale direct stream. + nullable: true + AlwaysBurnInSubtitleWhenTranscoding: + type: boolean + description: Gets or sets a value indicating whether always burn in subtitles when transcoding. + nullable: true + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: Gets or sets the device profile. + nullable: true + DirectPlayProtocols: + type: array + items: + $ref: '#/components/schemas/MediaProtocol' + description: Gets or sets the device play protocols. + additionalProperties: false + description: Open live stream dto. + OutboundKeepAliveMessage: + type: object + properties: + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: KeepAlive + readOnly: true + additionalProperties: false + description: Keep alive websocket messages. + OutboundWebSocketMessage: + type: object + oneOf: + - $ref: '#/components/schemas/ActivityLogEntryMessage' + - $ref: '#/components/schemas/ForceKeepAliveMessage' + - $ref: '#/components/schemas/GeneralCommandMessage' + - $ref: '#/components/schemas/LibraryChangedMessage' + - $ref: '#/components/schemas/OutboundKeepAliveMessage' + - $ref: '#/components/schemas/PlayMessage' + - $ref: '#/components/schemas/PlaystateMessage' + - $ref: '#/components/schemas/PluginInstallationCancelledMessage' + - $ref: '#/components/schemas/PluginInstallationCompletedMessage' + - $ref: '#/components/schemas/PluginInstallationFailedMessage' + - $ref: '#/components/schemas/PluginInstallingMessage' + - $ref: '#/components/schemas/PluginUninstalledMessage' + - $ref: '#/components/schemas/RefreshProgressMessage' + - $ref: '#/components/schemas/RestartRequiredMessage' + - $ref: '#/components/schemas/ScheduledTaskEndedMessage' + - $ref: '#/components/schemas/ScheduledTasksInfoMessage' + - $ref: '#/components/schemas/SeriesTimerCancelledMessage' + - $ref: '#/components/schemas/SeriesTimerCreatedMessage' + - $ref: '#/components/schemas/ServerRestartingMessage' + - $ref: '#/components/schemas/ServerShuttingDownMessage' + - $ref: '#/components/schemas/SessionsMessage' + - $ref: '#/components/schemas/SyncPlayCommandMessage' + - $ref: '#/components/schemas/SyncPlayGroupUpdateCommandMessage' + - $ref: '#/components/schemas/TimerCancelledMessage' + - $ref: '#/components/schemas/TimerCreatedMessage' + - $ref: '#/components/schemas/UserDataChangedMessage' + - $ref: '#/components/schemas/UserDeletedMessage' + - $ref: '#/components/schemas/UserUpdatedMessage' + description: Represents the list of possible outbound websocket types + discriminator: + propertyName: MessageType + mapping: + ActivityLogEntry: '#/components/schemas/ActivityLogEntryMessage' + ForceKeepAlive: '#/components/schemas/ForceKeepAliveMessage' + GeneralCommand: '#/components/schemas/GeneralCommandMessage' + LibraryChanged: '#/components/schemas/LibraryChangedMessage' + KeepAlive: '#/components/schemas/OutboundKeepAliveMessage' + Play: '#/components/schemas/PlayMessage' + Playstate: '#/components/schemas/PlaystateMessage' + PackageInstallationCancelled: '#/components/schemas/PluginInstallationCancelledMessage' + PackageInstallationCompleted: '#/components/schemas/PluginInstallationCompletedMessage' + PackageInstallationFailed: '#/components/schemas/PluginInstallationFailedMessage' + PackageInstalling: '#/components/schemas/PluginInstallingMessage' + PackageUninstalled: '#/components/schemas/PluginUninstalledMessage' + RefreshProgress: '#/components/schemas/RefreshProgressMessage' + RestartRequired: '#/components/schemas/RestartRequiredMessage' + ScheduledTaskEnded: '#/components/schemas/ScheduledTaskEndedMessage' + ScheduledTasksInfo: '#/components/schemas/ScheduledTasksInfoMessage' + SeriesTimerCancelled: '#/components/schemas/SeriesTimerCancelledMessage' + SeriesTimerCreated: '#/components/schemas/SeriesTimerCreatedMessage' + ServerRestarting: '#/components/schemas/ServerRestartingMessage' + ServerShuttingDown: '#/components/schemas/ServerShuttingDownMessage' + Sessions: '#/components/schemas/SessionsMessage' + SyncPlayCommand: '#/components/schemas/SyncPlayCommandMessage' + SyncPlayGroupUpdate: '#/components/schemas/SyncPlayGroupUpdateCommandMessage' + TimerCancelled: '#/components/schemas/TimerCancelledMessage' + TimerCreated: '#/components/schemas/TimerCreatedMessage' + UserDataChanged: '#/components/schemas/UserDataChangedMessage' + UserDeleted: '#/components/schemas/UserDeletedMessage' + UserUpdated: '#/components/schemas/UserUpdatedMessage' + PackageInfo: + type: object + properties: + name: + type: string + description: Gets or sets the name. + description: + type: string + description: Gets or sets a long description of the plugin containing features or helpful explanations. + overview: + type: string + description: Gets or sets a short overview of what the plugin does. + owner: + type: string + description: Gets or sets the owner. + category: + type: string + description: Gets or sets the category. + guid: + type: string + description: "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates." + format: uuid + versions: + type: array + items: + $ref: '#/components/schemas/VersionInfo' + description: Gets or sets the versions. + imageUrl: + type: string + description: Gets or sets the image url for the package. + nullable: true + additionalProperties: false + description: Class PackageInfo. + ParentalRating: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Value: + type: integer + description: Gets or sets the value. + format: int32 + nullable: true + additionalProperties: false + description: Class ParentalRating. + PathSubstitution: + type: object + properties: + From: + type: string + description: Gets or sets the value to substitute. + To: + type: string + description: Gets or sets the value to substitution with. + additionalProperties: false + description: Defines the MediaBrowser.Model.Configuration.PathSubstitution. + PersonKind: + enum: + - Unknown + - Actor + - Director + - Composer + - Writer + - GuestStar + - Producer + - Conductor + - Lyricist + - Arranger + - Engineer + - Mixer + - Remixer + - Creator + - Artist + - AlbumArtist + - Author + - Illustrator + - Penciller + - Inker + - Colorist + - Letterer + - CoverArtist + - Editor + - Translator + type: string + description: The person kind. + PersonLookupInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + PersonLookupInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/PersonLookupInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + PingRequestDto: + type: object + properties: + Ping: + type: integer + description: Gets or sets the ping time. + format: int64 + additionalProperties: false + description: Class PingRequestDto. + PinRedeemResult: + type: object + properties: + Success: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. + UsersReset: + type: array + items: + type: string + description: Gets or sets the users reset. + additionalProperties: false + PlayAccess: + enum: + - Full + - None + type: string + PlaybackErrorCode: + enum: + - NotAllowed + - NoCompatibleStream + - RateLimitExceeded + type: string + PlaybackInfoDto: + type: object + properties: + UserId: + type: string + description: Gets or sets the playback userId. + format: uuid + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the max streaming bitrate. + format: int32 + nullable: true + StartTimeTicks: + type: integer + description: Gets or sets the start time in ticks. + format: int64 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the audio stream index. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the subtitle stream index. + format: int32 + nullable: true + MaxAudioChannels: + type: integer + description: Gets or sets the max audio channels. + format: int32 + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media source id. + nullable: true + LiveStreamId: + type: string + description: Gets or sets the live stream id. + nullable: true + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: Gets or sets the device profile. + nullable: true + EnableDirectPlay: + type: boolean + description: Gets or sets a value indicating whether to enable direct play. + nullable: true + EnableDirectStream: + type: boolean + description: Gets or sets a value indicating whether to enable direct stream. + nullable: true + EnableTranscoding: + type: boolean + description: Gets or sets a value indicating whether to enable transcoding. + nullable: true + AllowVideoStreamCopy: + type: boolean + description: Gets or sets a value indicating whether to enable video stream copy. + nullable: true + AllowAudioStreamCopy: + type: boolean + description: Gets or sets a value indicating whether to allow audio stream copy. + nullable: true + AutoOpenLiveStream: + type: boolean + description: Gets or sets a value indicating whether to auto open the live stream. + nullable: true + AlwaysBurnInSubtitleWhenTranscoding: + type: boolean + description: Gets or sets a value indicating whether always burn in subtitles when transcoding. + nullable: true + additionalProperties: false + description: Plabyback info dto. + PlaybackInfoResponse: + type: object + properties: + MediaSources: + type: array + items: + $ref: '#/components/schemas/MediaSourceInfo' + description: Gets or sets the media sources. + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + ErrorCode: + enum: + - NotAllowed + - NoCompatibleStream + - RateLimitExceeded + allOf: + - $ref: '#/components/schemas/PlaybackErrorCode' + description: Gets or sets the error code. + nullable: true + additionalProperties: false + description: Class PlaybackInfoResponse. + PlaybackOrder: + enum: + - Default + - Shuffle + type: string + description: Enum PlaybackOrder. + PlaybackProgressInfo: + type: object + properties: + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the subtitle stream. + format: int32 + nullable: true + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + PlaybackStartTimeTicks: + type: integer + format: int64 + nullable: true + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + Brightness: + type: integer + format: int32 + nullable: true + AspectRatio: + type: string + nullable: true + PlayMethod: + enum: + - Transcode + - DirectStream + - DirectPlay + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + RepeatMode: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + PlaybackOrder: + enum: + - Default + - Shuffle + allOf: + - $ref: '#/components/schemas/PlaybackOrder' + description: Gets or sets the playback order. + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + description: Class PlaybackProgressInfo. + PlaybackRequestType: + enum: + - Play + - SetPlaylistItem + - RemoveFromPlaylist + - MovePlaylistItem + - Queue + - Unpause + - Pause + - Stop + - Seek + - Buffer + - Ready + - NextItem + - PreviousItem + - SetRepeatMode + - SetShuffleMode + - Ping + - IgnoreWait + type: string + description: Enum PlaybackRequestType. + PlaybackStartInfo: + type: object + properties: + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the subtitle stream. + format: int32 + nullable: true + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + PlaybackStartTimeTicks: + type: integer + format: int64 + nullable: true + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + Brightness: + type: integer + format: int32 + nullable: true + AspectRatio: + type: string + nullable: true + PlayMethod: + enum: + - Transcode + - DirectStream + - DirectPlay + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + RepeatMode: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + PlaybackOrder: + enum: + - Default + - Shuffle + allOf: + - $ref: '#/components/schemas/PlaybackOrder' + description: Gets or sets the playback order. + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + description: Class PlaybackStartInfo. + PlaybackStopInfo: + type: object + properties: + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + Failed: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. + NextMediaType: + type: string + nullable: true + PlaylistItemId: + type: string + nullable: true + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + additionalProperties: false + description: Class PlaybackStopInfo. + PlayCommand: + enum: + - PlayNow + - PlayNext + - PlayLast + - PlayInstantMix + - PlayShuffle + type: string + description: Enum PlayCommand. + PlayerStateInfo: + type: object + properties: + PositionTicks: + type: integer + description: Gets or sets the now playing position ticks. + format: int64 + nullable: true + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the now playing audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the now playing subtitle stream. + format: int32 + nullable: true + MediaSourceId: + type: string + description: Gets or sets the now playing media version identifier. + nullable: true + PlayMethod: + enum: + - Transcode + - DirectStream + - DirectPlay + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + nullable: true + RepeatMode: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + PlaybackOrder: + enum: + - Default + - Shuffle + allOf: + - $ref: '#/components/schemas/PlaybackOrder' + description: Gets or sets the playback order. + LiveStreamId: + type: string + description: Gets or sets the now playing live stream identifier. + nullable: true + additionalProperties: false + PlaylistCreationResult: + type: object + properties: + Id: + type: string + additionalProperties: false + PlaylistDto: + type: object + properties: + OpenAccess: + type: boolean + description: Gets or sets a value indicating whether the playlist is publicly readable. + Shares: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + description: Gets or sets the share permissions. + ItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the item ids. + additionalProperties: false + description: DTO for playlists. + PlaylistUserPermissions: + type: object + properties: + UserId: + type: string + description: Gets or sets the user id. + format: uuid + CanEdit: + type: boolean + description: Gets or sets a value indicating whether the user has edit permissions. + additionalProperties: false + description: Class to hold data on user permissions for playlists. + PlayMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/PlayRequest' + description: Class PlayRequest. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: Play + readOnly: true + additionalProperties: false + description: Play command websocket message. + PlayMethod: + enum: + - Transcode + - DirectStream + - DirectPlay + type: string + PlayQueueUpdate: + type: object + properties: + Reason: + enum: + - NewPlaylist + - SetCurrentItem + - RemoveItems + - MoveItem + - Queue + - QueueNext + - NextItem + - PreviousItem + - RepeatMode + - ShuffleMode + allOf: + - $ref: '#/components/schemas/PlayQueueUpdateReason' + description: Gets the request type that originated this update. + LastUpdate: + type: string + description: Gets the UTC time of the last change to the playing queue. + format: date-time + Playlist: + type: array + items: + $ref: '#/components/schemas/SyncPlayQueueItem' + description: Gets the playlist. + PlayingItemIndex: + type: integer + description: Gets the playing item index in the playlist. + format: int32 + StartPositionTicks: + type: integer + description: Gets the start position ticks. + format: int64 + IsPlaying: + type: boolean + description: Gets a value indicating whether the current item is playing. + ShuffleMode: + enum: + - Sorted + - Shuffle + allOf: + - $ref: '#/components/schemas/GroupShuffleMode' + description: Gets the shuffle mode. + RepeatMode: + enum: + - RepeatOne + - RepeatAll + - RepeatNone + allOf: + - $ref: '#/components/schemas/GroupRepeatMode' + description: Gets the repeat mode. + additionalProperties: false + description: Class PlayQueueUpdate. + PlayQueueUpdateGroupUpdate: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + readOnly: true + Type: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + Data: + allOf: + - $ref: '#/components/schemas/PlayQueueUpdate' + description: Gets the update data. + additionalProperties: false + description: Class GroupUpdate. + PlayQueueUpdateReason: + enum: + - NewPlaylist + - SetCurrentItem + - RemoveItems + - MoveItem + - Queue + - QueueNext + - NextItem + - PreviousItem + - RepeatMode + - ShuffleMode + type: string + description: Enum PlayQueueUpdateReason. + PlayRequest: + type: object + properties: + ItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the item ids. + nullable: true + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks that the first item should be played at. + format: int64 + nullable: true + PlayCommand: + enum: + - PlayNow + - PlayNext + - PlayLast + - PlayInstantMix + - PlayShuffle + allOf: + - $ref: '#/components/schemas/PlayCommand' + description: Gets or sets the play command. + ControllingUserId: + type: string + description: Gets or sets the controlling user identifier. + format: uuid + SubtitleStreamIndex: + type: integer + format: int32 + nullable: true + AudioStreamIndex: + type: integer + format: int32 + nullable: true + MediaSourceId: + type: string + nullable: true + StartIndex: + type: integer + format: int32 + nullable: true + additionalProperties: false + description: Class PlayRequest. + PlayRequestDto: + type: object + properties: + PlayingQueue: + type: array + items: + type: string + format: uuid + description: Gets or sets the playing queue. + PlayingItemPosition: + type: integer + description: Gets or sets the position of the playing item in the queue. + format: int32 + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks. + format: int64 + additionalProperties: false + description: Class PlayRequestDto. + PlaystateCommand: + enum: + - Stop + - Pause + - Unpause + - NextTrack + - PreviousTrack + - Seek + - Rewind + - FastForward + - PlayPause + type: string + description: Enum PlaystateCommand. + PlaystateMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/PlaystateRequest' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: Playstate + readOnly: true + additionalProperties: false + description: Playstate message. + PlaystateRequest: + type: object + properties: + Command: + enum: + - Stop + - Pause + - Unpause + - NextTrack + - PreviousTrack + - Seek + - Rewind + - FastForward + - PlayPause + allOf: + - $ref: '#/components/schemas/PlaystateCommand' + description: Enum PlaystateCommand. + SeekPositionTicks: + type: integer + format: int64 + nullable: true + ControllingUserId: + type: string + description: Gets or sets the controlling user identifier. + nullable: true + additionalProperties: false + PluginInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + Version: + type: string + description: Gets or sets the version. + ConfigurationFileName: + type: string + description: Gets or sets the name of the configuration file. + nullable: true + Description: + type: string + description: Gets or sets the description. + Id: + type: string + description: Gets or sets the unique id. + format: uuid + CanUninstall: + type: boolean + description: Gets or sets a value indicating whether the plugin can be uninstalled. + HasImage: + type: boolean + description: Gets or sets a value indicating whether this plugin has a valid image. + Status: + enum: + - Active + - Restart + - Deleted + - Superceded + - Malfunctioned + - NotSupported + - Disabled + allOf: + - $ref: '#/components/schemas/PluginStatus' + description: Gets or sets a value indicating the status of the plugin. + additionalProperties: false + description: This is a serializable stub class that is used by the api to provide information about installed plugins. + PluginInstallationCancelledMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/InstallationInfo' + description: Class InstallationInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: PackageInstallationCancelled + readOnly: true + additionalProperties: false + description: Plugin installation cancelled message. + PluginInstallationCompletedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/InstallationInfo' + description: Class InstallationInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: PackageInstallationCompleted + readOnly: true + additionalProperties: false + description: Plugin installation completed message. + PluginInstallationFailedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/InstallationInfo' + description: Class InstallationInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: PackageInstallationFailed + readOnly: true + additionalProperties: false + description: Plugin installation failed message. + PluginInstallingMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/InstallationInfo' + description: Class InstallationInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: PackageInstalling + readOnly: true + additionalProperties: false + description: Package installing message. + PluginStatus: + enum: + - Active + - Restart + - Deleted + - Superceded + - Malfunctioned + - NotSupported + - Disabled + type: string + description: Plugin load status. + PluginUninstalledMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/PluginInfo' + description: This is a serializable stub class that is used by the api to provide information about installed plugins. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: PackageUninstalled + readOnly: true + additionalProperties: false + description: Plugin uninstalled message. + PreviousItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playing item identifier. + format: uuid + additionalProperties: false + description: Class PreviousItemRequestDto. + ProblemDetails: + type: object + properties: + type: + type: string + nullable: true + title: + type: string + nullable: true + status: + type: integer + format: int32 + nullable: true + detail: + type: string + nullable: true + instance: + type: string + nullable: true + additionalProperties: {} + ProcessPriorityClass: + enum: + - Normal + - Idle + - High + - RealTime + - BelowNormal + - AboveNormal + type: string + ProfileCondition: + type: object + properties: + Condition: + enum: + - Equals + - NotEquals + - LessThanEqual + - GreaterThanEqual + - EqualsAny + allOf: + - $ref: '#/components/schemas/ProfileConditionType' + Property: + enum: + - AudioChannels + - AudioBitrate + - AudioProfile + - Width + - Height + - Has64BitOffsets + - PacketLength + - VideoBitDepth + - VideoBitrate + - VideoFramerate + - VideoLevel + - VideoProfile + - VideoTimestamp + - IsAnamorphic + - RefFrames + - NumAudioStreams + - NumVideoStreams + - IsSecondaryAudio + - VideoCodecTag + - IsAvc + - IsInterlaced + - AudioSampleRate + - AudioBitDepth + - VideoRangeType + allOf: + - $ref: '#/components/schemas/ProfileConditionValue' + Value: + type: string + nullable: true + IsRequired: + type: boolean + additionalProperties: false + ProfileConditionType: + enum: + - Equals + - NotEquals + - LessThanEqual + - GreaterThanEqual + - EqualsAny + type: string + ProfileConditionValue: + enum: + - AudioChannels + - AudioBitrate + - AudioProfile + - Width + - Height + - Has64BitOffsets + - PacketLength + - VideoBitDepth + - VideoBitrate + - VideoFramerate + - VideoLevel + - VideoProfile + - VideoTimestamp + - IsAnamorphic + - RefFrames + - NumAudioStreams + - NumVideoStreams + - IsSecondaryAudio + - VideoCodecTag + - IsAvc + - IsInterlaced + - AudioSampleRate + - AudioBitDepth + - VideoRangeType + type: string + ProgramAudio: + enum: + - Mono + - Stereo + - Dolby + - DolbyDigital + - Thx + - Atmos + type: string + PublicSystemInfo: + type: object + properties: + LocalAddress: + type: string + description: Gets or sets the local address. + nullable: true + ServerName: + type: string + description: Gets or sets the name of the server. + nullable: true + Version: + type: string + description: Gets or sets the server version. + nullable: true + ProductName: + type: string + description: Gets or sets the product name. This is the AssemblyProduct name. + nullable: true + OperatingSystem: + type: string + description: Gets or sets the operating system. + nullable: true + deprecated: true + Id: + type: string + description: Gets or sets the id. + nullable: true + StartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether the startup wizard is completed. + nullable: true + additionalProperties: false + QueryFilters: + type: object + properties: + Genres: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + nullable: true + Tags: + type: array + items: + type: string + nullable: true + additionalProperties: false + QueryFiltersLegacy: + type: object + properties: + Genres: + type: array + items: + type: string + nullable: true + Tags: + type: array + items: + type: string + nullable: true + OfficialRatings: + type: array + items: + type: string + nullable: true + Years: + type: array + items: + type: integer + format: int32 + nullable: true + additionalProperties: false + QueueItem: + type: object + properties: + Id: + type: string + format: uuid + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + QueueRequestDto: + type: object + properties: + ItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the items to enqueue. + Mode: + enum: + - Queue + - QueueNext + allOf: + - $ref: '#/components/schemas/GroupQueueMode' + description: Gets or sets the mode in which to add the new items. + additionalProperties: false + description: Class QueueRequestDto. + QuickConnectDto: + required: + - Secret + type: object + properties: + Secret: + type: string + description: Gets or sets the quick connect secret. + additionalProperties: false + description: The quick connect request body. + QuickConnectResult: + type: object + properties: + Authenticated: + type: boolean + description: Gets or sets a value indicating whether this request is authorized. + Secret: + type: string + description: Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. + Code: + type: string + description: Gets the user facing code used so the user can quickly differentiate this request from others. + DeviceId: + type: string + description: Gets the requesting device id. + DeviceName: + type: string + description: Gets the requesting device name. + AppName: + type: string + description: Gets the requesting app name. + AppVersion: + type: string + description: Gets the requesting app version. + DateAdded: + type: string + description: Gets or sets the DateTime that this request was created. + format: date-time + additionalProperties: false + description: Stores the state of an quick connect request. + RatingType: + enum: + - Score + - Likes + type: string + ReadyRequestDto: + type: object + properties: + When: + type: string + description: Gets or sets when the request has been made by the client. + format: date-time + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + IsPlaying: + type: boolean + description: Gets or sets a value indicating whether the client playback is unpaused. + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier of the playing item. + format: uuid + additionalProperties: false + description: Class ReadyRequest. + RecommendationDto: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + nullable: true + RecommendationType: + enum: + - SimilarToRecentlyPlayed + - SimilarToLikedItem + - HasDirectorFromRecentlyPlayed + - HasActorFromRecentlyPlayed + - HasLikedDirector + - HasLikedActor + allOf: + - $ref: '#/components/schemas/RecommendationType' + BaselineItemName: + type: string + nullable: true + CategoryId: + type: string + format: uuid + additionalProperties: false + RecommendationType: + enum: + - SimilarToRecentlyPlayed + - SimilarToLikedItem + - HasDirectorFromRecentlyPlayed + - HasActorFromRecentlyPlayed + - HasLikedDirector + - HasLikedActor + type: string + RecordingStatus: + enum: + - New + - InProgress + - Completed + - Cancelled + - ConflictedOk + - ConflictedNotOk + - Error + type: string + RefreshProgressMessage: + type: object + properties: + Data: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: RefreshProgress + readOnly: true + additionalProperties: false + description: Refresh progress message. + RemoteImageInfo: + type: object + properties: + ProviderName: + type: string + description: Gets or sets the name of the provider. + nullable: true + Url: + type: string + description: Gets or sets the URL. + nullable: true + ThumbnailUrl: + type: string + description: Gets or sets a url used for previewing a smaller version. + nullable: true + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + CommunityRating: + type: number + description: Gets or sets the community rating. + format: double + nullable: true + VoteCount: + type: integer + description: Gets or sets the vote count. + format: int32 + nullable: true + Language: + type: string + description: Gets or sets the language. + nullable: true + Type: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type. + RatingType: + enum: + - Score + - Likes + allOf: + - $ref: '#/components/schemas/RatingType' + description: Gets or sets the type of the rating. + additionalProperties: false + description: Class RemoteImageInfo. + RemoteImageResult: + type: object + properties: + Images: + type: array + items: + $ref: '#/components/schemas/RemoteImageInfo' + description: Gets or sets the images. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total record count. + format: int32 + Providers: + type: array + items: + type: string + description: Gets or sets the providers. + nullable: true + additionalProperties: false + description: Class RemoteImageResult. + RemoteLyricInfoDto: + type: object + properties: + Id: + type: string + description: Gets or sets the id for the lyric. + ProviderName: + type: string + description: Gets the provider name. + Lyrics: + allOf: + - $ref: '#/components/schemas/LyricDto' + description: Gets the lyrics. + additionalProperties: false + description: The remote lyric info dto. + RemoteSearchResult: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + ProductionYear: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + IndexNumberEnd: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + ImageUrl: + type: string + nullable: true + SearchProviderName: + type: string + nullable: true + Overview: + type: string + nullable: true + AlbumArtist: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + nullable: true + Artists: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + nullable: true + additionalProperties: false + RemoteSubtitleInfo: + type: object + properties: + ThreeLetterISOLanguageName: + type: string + nullable: true + Id: + type: string + nullable: true + ProviderName: + type: string + nullable: true + Name: + type: string + nullable: true + Format: + type: string + nullable: true + Author: + type: string + nullable: true + Comment: + type: string + nullable: true + DateCreated: + type: string + format: date-time + nullable: true + CommunityRating: + type: number + format: float + nullable: true + FrameRate: + type: number + format: float + nullable: true + DownloadCount: + type: integer + format: int32 + nullable: true + IsHashMatch: + type: boolean + nullable: true + AiTranslated: + type: boolean + nullable: true + MachineTranslated: + type: boolean + nullable: true + Forced: + type: boolean + nullable: true + HearingImpaired: + type: boolean + nullable: true + additionalProperties: false + RemoveFromPlaylistRequestDto: + type: object + properties: + PlaylistItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the playlist identifiers of the items. Ignored when clearing the playlist. + ClearPlaylist: + type: boolean + description: Gets or sets a value indicating whether the entire playlist should be cleared. + ClearPlayingItem: + type: boolean + description: Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. + additionalProperties: false + description: Class RemoveFromPlaylistRequestDto. + RepeatMode: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + type: string + RepositoryInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Url: + type: string + description: Gets or sets the URL. + nullable: true + Enabled: + type: boolean + description: Gets or sets a value indicating whether the repository is enabled. + additionalProperties: false + description: Class RepositoryInfo. + RestartRequiredMessage: + type: object + properties: + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: RestartRequired + readOnly: true + additionalProperties: false + description: Restart required. + ScheduledTaskEndedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/TaskResult' + description: Class TaskExecutionInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ScheduledTaskEnded + readOnly: true + additionalProperties: false + description: Scheduled task ended message. + ScheduledTasksInfoMessage: + type: object + properties: + Data: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ScheduledTasksInfo + readOnly: true + additionalProperties: false + description: Scheduled tasks info message. + ScheduledTasksInfoStartMessage: + type: object + properties: + Data: + type: string + description: Gets or sets the data. + nullable: true + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ScheduledTasksInfoStart + readOnly: true + additionalProperties: false + description: "Scheduled tasks info start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + ScheduledTasksInfoStopMessage: + type: object + properties: + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ScheduledTasksInfoStop + readOnly: true + additionalProperties: false + description: Scheduled tasks info stop message. + ScrollDirection: + enum: + - Horizontal + - Vertical + type: string + description: An enum representing the axis that should be scrolled. + SearchHint: + type: object + properties: + ItemId: + type: string + description: Gets or sets the item id. + format: uuid + deprecated: true + Id: + type: string + description: Gets or sets the item id. + format: uuid + Name: + type: string + description: Gets or sets the name. + MatchedTerm: + type: string + description: Gets or sets the matched term. + nullable: true + IndexNumber: + type: integer + description: Gets or sets the index number. + format: int32 + nullable: true + ProductionYear: + type: integer + description: Gets or sets the production year. + format: int32 + nullable: true + ParentIndexNumber: + type: integer + description: Gets or sets the parent index number. + format: int32 + nullable: true + PrimaryImageTag: + type: string + description: Gets or sets the image tag. + nullable: true + ThumbImageTag: + type: string + description: Gets or sets the thumb image tag. + nullable: true + ThumbImageItemId: + type: string + description: Gets or sets the thumb image item identifier. + nullable: true + BackdropImageTag: + type: string + description: Gets or sets the backdrop image tag. + nullable: true + BackdropImageItemId: + type: string + description: Gets or sets the backdrop image item identifier. + nullable: true + Type: + enum: + - AggregateFolder + - Audio + - AudioBook + - BasePluginFolder + - Book + - BoxSet + - Channel + - ChannelFolderItem + - CollectionFolder + - Episode + - Folder + - Genre + - ManualPlaylistsFolder + - Movie + - LiveTvChannel + - LiveTvProgram + - MusicAlbum + - MusicArtist + - MusicGenre + - MusicVideo + - Person + - Photo + - PhotoAlbum + - Playlist + - PlaylistsFolder + - Program + - Recording + - Season + - Series + - Studio + - Trailer + - TvChannel + - TvProgram + - UserRootFolder + - UserView + - Video + - Year + allOf: + - $ref: '#/components/schemas/BaseItemKind' + description: The base item kind. + IsFolder: + type: boolean + description: Gets or sets a value indicating whether this instance is folder. + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + MediaType: + enum: + - Unknown + - Video + - Audio + - Photo + - Book + allOf: + - $ref: '#/components/schemas/MediaType' + description: Media types. + StartDate: + type: string + description: Gets or sets the start date. + format: date-time + nullable: true + EndDate: + type: string + description: Gets or sets the end date. + format: date-time + nullable: true + Series: + type: string + description: Gets or sets the series. + nullable: true + Status: + type: string + description: Gets or sets the status. + nullable: true + Album: + type: string + description: Gets or sets the album. + nullable: true + AlbumId: + type: string + description: Gets or sets the album id. + format: uuid + nullable: true + AlbumArtist: + type: string + description: Gets or sets the album artist. + nullable: true + Artists: + type: array + items: + type: string + description: Gets or sets the artists. + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + nullable: true + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + nullable: true + ChannelId: + type: string + description: Gets or sets the channel identifier. + format: uuid + nullable: true + ChannelName: + type: string + description: Gets or sets the name of the channel. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio. + format: double + nullable: true + additionalProperties: false + description: Class SearchHintResult. + SearchHintResult: + type: object + properties: + SearchHints: + type: array + items: + $ref: '#/components/schemas/SearchHint' + description: Gets the search hints. + TotalRecordCount: + type: integer + description: Gets the total record count. + format: int32 + additionalProperties: false + description: Class SearchHintResult. + SeekRequestDto: + type: object + properties: + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + additionalProperties: false + description: Class SeekRequestDto. + SendCommand: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + PlaylistItemId: + type: string + description: Gets the playlist identifier of the playing item. + format: uuid + When: + type: string + description: Gets or sets the UTC time when to execute the command. + format: date-time + PositionTicks: + type: integer + description: Gets the position ticks. + format: int64 + nullable: true + Command: + enum: + - Unpause + - Pause + - Stop + - Seek + allOf: + - $ref: '#/components/schemas/SendCommandType' + description: Gets the command. + EmittedAt: + type: string + description: Gets the UTC time when this command has been emitted. + format: date-time + additionalProperties: false + description: Class SendCommand. + SendCommandType: + enum: + - Unpause + - Pause + - Stop + - Seek + type: string + description: Enum SendCommandType. + SeriesInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + SeriesInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/SeriesInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + SeriesStatus: + enum: + - Continuing + - Ended + - Unreleased + type: string + description: The status of a series. + SeriesTimerCancelledMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/TimerEventInfo' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SeriesTimerCancelled + readOnly: true + additionalProperties: false + description: Series timer cancelled message. + SeriesTimerCreatedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/TimerEventInfo' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SeriesTimerCreated + readOnly: true + additionalProperties: false + description: Series timer created message. + SeriesTimerInfoDto: + type: object + properties: + Id: + type: string + description: Gets or sets the Id of the recording. + nullable: true + Type: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ExternalId: + type: string + description: Gets or sets the external identifier. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel id of the recording. + format: uuid + ExternalChannelId: + type: string + description: Gets or sets the external channel identifier. + nullable: true + ChannelName: + type: string + description: Gets or sets the channel name of the recording. + nullable: true + ChannelPrimaryImageTag: + type: string + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ExternalProgramId: + type: string + description: Gets or sets the external program identifier. + nullable: true + Name: + type: string + description: Gets or sets the name of the recording. + nullable: true + Overview: + type: string + description: Gets or sets the description of the recording. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + EndDate: + type: string + description: Gets or sets the end date of the recording, in UTC. + format: date-time + ServiceName: + type: string + description: Gets or sets the name of the service. + nullable: true + Priority: + type: integer + description: Gets or sets the priority. + format: int32 + PrePaddingSeconds: + type: integer + description: Gets or sets the pre padding seconds. + format: int32 + PostPaddingSeconds: + type: integer + description: Gets or sets the post padding seconds. + format: int32 + IsPrePaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is pre padding required. + ParentBackdropItemId: + type: string + description: Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + IsPostPaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is post padding required. + KeepUntil: + enum: + - UntilDeleted + - UntilSpaceNeeded + - UntilWatched + - UntilDate + allOf: + - $ref: '#/components/schemas/KeepUntil' + RecordAnyTime: + type: boolean + description: Gets or sets a value indicating whether [record any time]. + SkipEpisodesInLibrary: + type: boolean + RecordAnyChannel: + type: boolean + description: Gets or sets a value indicating whether [record any channel]. + KeepUpTo: + type: integer + format: int32 + RecordNewOnly: + type: boolean + description: Gets or sets a value indicating whether [record new only]. + Days: + type: array + items: + $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the days. + nullable: true + DayPattern: + enum: + - Daily + - Weekdays + - Weekends + allOf: + - $ref: '#/components/schemas/DayPattern' + description: Gets or sets the day pattern. + nullable: true + ImageTags: + type: object + additionalProperties: + type: string + description: Gets or sets the image tags. + nullable: true + ParentThumbItemId: + type: string + description: Gets or sets the parent thumb item id. + nullable: true + ParentThumbImageTag: + type: string + description: Gets or sets the parent thumb image tag. + nullable: true + ParentPrimaryImageItemId: + type: string + description: Gets or sets the parent primary image item identifier. + nullable: true + ParentPrimaryImageTag: + type: string + description: Gets or sets the parent primary image tag. + nullable: true + additionalProperties: false + description: Class SeriesTimerInfoDto. + SeriesTimerInfoDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + ServerConfiguration: + type: object + properties: + LogFileRetentionDays: + type: integer + description: Gets or sets the number of days we should retain log files. + format: int32 + IsStartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether this instance is first run. + CachePath: + type: string + description: Gets or sets the cache path. + nullable: true + PreviousVersion: + type: string + description: Gets or sets the last known version that was ran using the configuration. + nullable: true + PreviousVersionStr: + type: string + description: "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable." + nullable: true + EnableMetrics: + type: boolean + description: Gets or sets a value indicating whether to enable prometheus metrics exporting. + EnableNormalizedItemByNameIds: + type: boolean + IsPortAuthorized: + type: boolean + description: Gets or sets a value indicating whether this instance is port authorized. + QuickConnectAvailable: + type: boolean + description: Gets or sets a value indicating whether quick connect is available for use on this server. + EnableCaseSensitiveItemIds: + type: boolean + description: Gets or sets a value indicating whether [enable case sensitive item ids]. + DisableLiveTvChannelUserDataName: + type: boolean + MetadataPath: + type: string + description: Gets or sets the metadata path. + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred metadata language. + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + SortReplaceCharacters: + type: array + items: + type: string + description: Gets or sets characters to be replaced with a ' ' in strings to create a sort name. + SortRemoveCharacters: + type: array + items: + type: string + description: Gets or sets characters to be removed from strings to create a sort name. + SortRemoveWords: + type: array + items: + type: string + description: Gets or sets words to be removed from strings to create a sort name. + MinResumePct: + type: integer + description: Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. + format: int32 + MaxResumePct: + type: integer + description: Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + format: int32 + MinResumeDurationSeconds: + type: integer + description: Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. + format: int32 + MinAudiobookResume: + type: integer + description: Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. + format: int32 + MaxAudiobookResume: + type: integer + description: Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + format: int32 + InactiveSessionThreshold: + type: integer + description: "Gets or sets the threshold in minutes after a inactive session gets closed automatically.\r\nIf set to 0 the check for inactive sessions gets disabled." + format: int32 + LibraryMonitorDelay: + type: integer + description: "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files." + format: int32 + LibraryUpdateDuration: + type: integer + description: Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification. + format: int32 + ImageSavingConvention: + enum: + - Legacy + - Compatible + allOf: + - $ref: '#/components/schemas/ImageSavingConvention' + description: Gets or sets the image saving convention. + MetadataOptions: + type: array + items: + $ref: '#/components/schemas/MetadataOptions' + SkipDeserializationForBasicTypes: + type: boolean + ServerName: + type: string + UICulture: + type: string + SaveMetadataHidden: + type: boolean + ContentTypes: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + RemoteClientBitrateLimit: + type: integer + format: int32 + EnableFolderView: + type: boolean + EnableGroupingIntoCollections: + type: boolean + DisplaySpecialsWithinSeasons: + type: boolean + CodecsUsed: + type: array + items: + type: string + PluginRepositories: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + EnableExternalContentInSuggestions: + type: boolean + ImageExtractionTimeoutMs: + type: integer + format: int32 + PathSubstitutions: + type: array + items: + $ref: '#/components/schemas/PathSubstitution' + EnableSlowResponseWarning: + type: boolean + description: Gets or sets a value indicating whether slow server responses should be logged as a warning. + SlowResponseThresholdMs: + type: integer + description: Gets or sets the threshold for the slow response time warning in ms. + format: int64 + CorsHosts: + type: array + items: + type: string + description: Gets or sets the cors hosts. + ActivityLogRetentionDays: + type: integer + description: Gets or sets the number of days we should retain activity logs. + format: int32 + nullable: true + LibraryScanFanoutConcurrency: + type: integer + description: Gets or sets the how the library scan fans out. + format: int32 + LibraryMetadataRefreshConcurrency: + type: integer + description: Gets or sets the how many metadata refreshes can run concurrently. + format: int32 + RemoveOldPlugins: + type: boolean + description: Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. + AllowClientLogUpload: + type: boolean + description: Gets or sets a value indicating whether clients should be allowed to upload logs. + DummyChapterDuration: + type: integer + description: Gets or sets the dummy chapter duration in seconds, use 0 (zero) or less to disable generation alltogether. + format: int32 + ChapterImageResolution: + enum: + - MatchSource + - P144 + - P240 + - P360 + - P480 + - P720 + - P1080 + - P1440 + - P2160 + allOf: + - $ref: '#/components/schemas/ImageResolution' + description: Gets or sets the chapter image resolution. + ParallelImageEncodingLimit: + type: integer + description: Gets or sets the limit for parallel image encoding. + format: int32 + CastReceiverApplications: + type: array + items: + $ref: '#/components/schemas/CastReceiverApplication' + description: Gets or sets the list of cast receiver applications. + TrickplayOptions: + allOf: + - $ref: '#/components/schemas/TrickplayOptions' + description: Gets or sets the trickplay options. + additionalProperties: false + description: Represents the server configuration. + ServerDiscoveryInfo: + type: object + properties: + Address: + type: string + description: Gets the address. + Id: + type: string + description: Gets the server identifier. + Name: + type: string + description: Gets the name. + EndpointAddress: + type: string + description: Gets the endpoint address. + nullable: true + additionalProperties: false + description: The server discovery info model. + ServerRestartingMessage: + type: object + properties: + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ServerRestarting + readOnly: true + additionalProperties: false + description: Server restarting down message. + ServerShuttingDownMessage: + type: object + properties: + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: ServerShuttingDown + readOnly: true + additionalProperties: false + description: Server shutting down message. + SessionInfoDto: + type: object + properties: + PlayState: + allOf: + - $ref: '#/components/schemas/PlayerStateInfo' + description: Gets or sets the play state. + nullable: true + AdditionalUsers: + type: array + items: + $ref: '#/components/schemas/SessionUserInfo' + description: Gets or sets the additional users. + nullable: true + Capabilities: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Gets or sets the client capabilities. + nullable: true + RemoteEndPoint: + type: string + description: Gets or sets the remote end point. + nullable: true + PlayableMediaTypes: + type: array + items: + $ref: '#/components/schemas/MediaType' + description: Gets or sets the playable media types. + Id: + type: string + description: Gets or sets the id. + nullable: true + UserId: + type: string + description: Gets or sets the user id. + format: uuid + UserName: + type: string + description: Gets or sets the username. + nullable: true + Client: + type: string + description: Gets or sets the type of the client. + nullable: true + LastActivityDate: + type: string + description: Gets or sets the last activity date. + format: date-time + LastPlaybackCheckIn: + type: string + description: Gets or sets the last playback check in. + format: date-time + LastPausedDate: + type: string + description: Gets or sets the last paused date. + format: date-time + nullable: true + DeviceName: + type: string + description: Gets or sets the name of the device. + nullable: true + DeviceType: + type: string + description: Gets or sets the type of the device. + nullable: true + NowPlayingItem: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the now playing item. + nullable: true + NowViewingItem: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the now viewing item. + nullable: true + DeviceId: + type: string + description: Gets or sets the device id. + nullable: true + ApplicationVersion: + type: string + description: Gets or sets the application version. + nullable: true + TranscodingInfo: + allOf: + - $ref: '#/components/schemas/TranscodingInfo' + description: Gets or sets the transcoding info. + nullable: true + IsActive: + type: boolean + description: Gets or sets a value indicating whether this session is active. + SupportsMediaControl: + type: boolean + description: Gets or sets a value indicating whether the session supports media control. + SupportsRemoteControl: + type: boolean + description: Gets or sets a value indicating whether the session supports remote control. + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + description: Gets or sets the now playing queue. + nullable: true + NowPlayingQueueFullItems: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the now playing queue full items. + nullable: true + HasCustomDeviceName: + type: boolean + description: Gets or sets a value indicating whether the session has a custom device name. + PlaylistItemId: + type: string + description: Gets or sets the playlist item id. + nullable: true + ServerId: + type: string + description: Gets or sets the server id. + nullable: true + UserPrimaryImageTag: + type: string + description: Gets or sets the user primary image tag. + nullable: true + SupportedCommands: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + description: Gets or sets the supported commands. + additionalProperties: false + description: Session info DTO. + SessionMessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + type: string + description: The different kinds of messages that are used in the WebSocket api. + SessionsMessage: + type: object + properties: + Data: + type: array + items: + $ref: '#/components/schemas/SessionInfoDto' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: Sessions + readOnly: true + additionalProperties: false + description: Sessions message. + SessionsStartMessage: + type: object + properties: + Data: + type: string + description: Gets or sets the data. + nullable: true + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SessionsStart + readOnly: true + additionalProperties: false + description: "Sessions start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + SessionsStopMessage: + type: object + properties: + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SessionsStop + readOnly: true + additionalProperties: false + description: Sessions stop message. + SessionUserInfo: + type: object + properties: + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + UserName: + type: string + description: Gets or sets the name of the user. + nullable: true + additionalProperties: false + description: Class SessionUserInfo. + SetChannelMappingDto: + required: + - ProviderChannelId + - ProviderId + - TunerChannelId + type: object + properties: + ProviderId: + type: string + description: Gets or sets the provider id. + TunerChannelId: + type: string + description: Gets or sets the tuner channel id. + ProviderChannelId: + type: string + description: Gets or sets the provider channel id. + additionalProperties: false + description: Set channel mapping dto. + SetPlaylistItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playlist identifier of the playing item. + format: uuid + additionalProperties: false + description: Class SetPlaylistItemRequestDto. + SetRepeatModeRequestDto: + type: object + properties: + Mode: + enum: + - RepeatOne + - RepeatAll + - RepeatNone + allOf: + - $ref: '#/components/schemas/GroupRepeatMode' + description: Gets or sets the repeat mode. + additionalProperties: false + description: Class SetRepeatModeRequestDto. + SetShuffleModeRequestDto: + type: object + properties: + Mode: + enum: + - Sorted + - Shuffle + allOf: + - $ref: '#/components/schemas/GroupShuffleMode' + description: Gets or sets the shuffle mode. + additionalProperties: false + description: Class SetShuffleModeRequestDto. + SongInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + AlbumArtists: + type: array + items: + type: string + nullable: true + Album: + type: string + nullable: true + Artists: + type: array + items: + type: string + nullable: true + additionalProperties: false + SortOrder: + enum: + - Ascending + - Descending + type: string + description: An enum representing the sorting order. + SpecialViewOptionDto: + type: object + properties: + Name: + type: string + description: Gets or sets view option name. + nullable: true + Id: + type: string + description: Gets or sets view option id. + nullable: true + additionalProperties: false + description: Special view option dto. + StartupConfigurationDto: + type: object + properties: + UICulture: + type: string + description: Gets or sets UI language culture. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred language for the metadata. + nullable: true + additionalProperties: false + description: The startup configuration DTO. + StartupRemoteAccessDto: + required: + - EnableAutomaticPortMapping + - EnableRemoteAccess + type: object + properties: + EnableRemoteAccess: + type: boolean + description: Gets or sets a value indicating whether enable remote access. + EnableAutomaticPortMapping: + type: boolean + description: Gets or sets a value indicating whether enable automatic port mapping. + additionalProperties: false + description: Startup remote access dto. + StartupUserDto: + type: object + properties: + Name: + type: string + description: Gets or sets the username. + nullable: true + Password: + type: string + description: Gets or sets the user's password. + nullable: true + additionalProperties: false + description: The startup user DTO. + StringGroupUpdate: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + readOnly: true + Type: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + Data: + type: string + description: Gets the update data. + additionalProperties: false + description: Class GroupUpdate. + SubtitleDeliveryMethod: + enum: + - Encode + - Embed + - External + - Hls + - Drop + type: string + description: Delivery method to use during playback of a specific subtitle format. + SubtitleOptions: + type: object + properties: + SkipIfEmbeddedSubtitlesPresent: + type: boolean + SkipIfAudioTrackMatches: + type: boolean + DownloadLanguages: + type: array + items: + type: string + nullable: true + DownloadMovieSubtitles: + type: boolean + DownloadEpisodeSubtitles: + type: boolean + OpenSubtitlesUsername: + type: string + nullable: true + OpenSubtitlesPasswordHash: + type: string + nullable: true + IsOpenSubtitleVipAccount: + type: boolean + RequirePerfectMatch: + type: boolean + additionalProperties: false + SubtitlePlaybackMode: + enum: + - Default + - Always + - OnlyForced + - None + - Smart + type: string + description: An enum representing a subtitle playback mode. + SubtitleProfile: + type: object + properties: + Format: + type: string + description: Gets or sets the format. + nullable: true + Method: + enum: + - Encode + - Embed + - External + - Hls + - Drop + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + description: Gets or sets the delivery method. + DidlMode: + type: string + description: Gets or sets the DIDL mode. + nullable: true + Language: + type: string + description: Gets or sets the language. + nullable: true + Container: + type: string + description: Gets or sets the container. + nullable: true + additionalProperties: false + description: A class for subtitle profile information. + SyncPlayCommandMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/SendCommand' + description: Class SendCommand. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SyncPlayCommand + readOnly: true + additionalProperties: false + description: Sync play command. + SyncPlayGroupUpdateCommandMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/GroupUpdate' + description: Group update without data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: SyncPlayGroupUpdate + readOnly: true + additionalProperties: false + description: Untyped sync play command. + SyncPlayQueueItem: + type: object + properties: + ItemId: + type: string + description: Gets the item identifier. + format: uuid + PlaylistItemId: + type: string + description: Gets the playlist identifier of the item. + format: uuid + readOnly: true + additionalProperties: false + description: Class QueueItem. + SyncPlayUserAccessType: + enum: + - CreateAndJoinGroups + - JoinGroups + - None + type: string + description: Enum SyncPlayUserAccessType. + SystemInfo: + type: object + properties: + LocalAddress: + type: string + description: Gets or sets the local address. + nullable: true + ServerName: + type: string + description: Gets or sets the name of the server. + nullable: true + Version: + type: string + description: Gets or sets the server version. + nullable: true + ProductName: + type: string + description: Gets or sets the product name. This is the AssemblyProduct name. + nullable: true + OperatingSystem: + type: string + description: Gets or sets the operating system. + nullable: true + deprecated: true + Id: + type: string + description: Gets or sets the id. + nullable: true + StartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether the startup wizard is completed. + nullable: true + OperatingSystemDisplayName: + type: string + description: Gets or sets the display name of the operating system. + nullable: true + deprecated: true + PackageName: + type: string + description: Gets or sets the package name. + nullable: true + HasPendingRestart: + type: boolean + description: Gets or sets a value indicating whether this instance has pending restart. + IsShuttingDown: + type: boolean + SupportsLibraryMonitor: + type: boolean + description: Gets or sets a value indicating whether [supports library monitor]. + WebSocketPortNumber: + type: integer + description: Gets or sets the web socket port number. + format: int32 + CompletedInstallations: + type: array + items: + $ref: '#/components/schemas/InstallationInfo' + description: Gets or sets the completed installations. + nullable: true + CanSelfRestart: + type: boolean + description: Gets or sets a value indicating whether this instance can self restart. + default: true + deprecated: true + CanLaunchWebBrowser: + type: boolean + default: false + deprecated: true + ProgramDataPath: + type: string + description: Gets or sets the program data path. + nullable: true + WebPath: + type: string + description: Gets or sets the web UI resources path. + nullable: true + ItemsByNamePath: + type: string + description: Gets or sets the items by name path. + nullable: true + CachePath: + type: string + description: Gets or sets the cache path. + nullable: true + LogPath: + type: string + description: Gets or sets the log path. + nullable: true + InternalMetadataPath: + type: string + description: Gets or sets the internal metadata path. + nullable: true + TranscodingTempPath: + type: string + description: Gets or sets the transcode path. + nullable: true + CastReceiverApplications: + type: array + items: + $ref: '#/components/schemas/CastReceiverApplication' + description: Gets or sets the list of cast receiver applications. + nullable: true + HasUpdateAvailable: + type: boolean + description: Gets or sets a value indicating whether this instance has update available. + default: false + deprecated: true + EncoderLocation: + type: string + default: System + nullable: true + deprecated: true + SystemArchitecture: + type: string + default: X64 + nullable: true + deprecated: true + additionalProperties: false + description: Class SystemInfo. + TaskCompletionStatus: + enum: + - Completed + - Failed + - Cancelled + - Aborted + type: string + description: Enum TaskCompletionStatus. + TaskInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + State: + enum: + - Idle + - Cancelling + - Running + allOf: + - $ref: '#/components/schemas/TaskState' + description: Gets or sets the state of the task. + CurrentProgressPercentage: + type: number + description: Gets or sets the progress. + format: double + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + LastExecutionResult: + allOf: + - $ref: '#/components/schemas/TaskResult' + description: Gets or sets the last execution result. + nullable: true + Triggers: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + description: Gets or sets the triggers. + nullable: true + Description: + type: string + description: Gets or sets the description. + nullable: true + Category: + type: string + description: Gets or sets the category. + nullable: true + IsHidden: + type: boolean + description: Gets or sets a value indicating whether this instance is hidden. + Key: + type: string + description: Gets or sets the key. + nullable: true + additionalProperties: false + description: Class TaskInfo. + TaskResult: + type: object + properties: + StartTimeUtc: + type: string + description: Gets or sets the start time UTC. + format: date-time + EndTimeUtc: + type: string + description: Gets or sets the end time UTC. + format: date-time + Status: + enum: + - Completed + - Failed + - Cancelled + - Aborted + allOf: + - $ref: '#/components/schemas/TaskCompletionStatus' + description: Gets or sets the status. + Name: + type: string + description: Gets or sets the name. + nullable: true + Key: + type: string + description: Gets or sets the key. + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + ErrorMessage: + type: string + description: Gets or sets the error message. + nullable: true + LongErrorMessage: + type: string + description: Gets or sets the long error message. + nullable: true + additionalProperties: false + description: Class TaskExecutionInfo. + TaskState: + enum: + - Idle + - Cancelling + - Running + type: string + description: Enum TaskState. + TaskTriggerInfo: + type: object + properties: + Type: + type: string + description: Gets or sets the type. + nullable: true + TimeOfDayTicks: + type: integer + description: Gets or sets the time of day. + format: int64 + nullable: true + IntervalTicks: + type: integer + description: Gets or sets the interval. + format: int64 + nullable: true + DayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + allOf: + - $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the day of week. + nullable: true + MaxRuntimeTicks: + type: integer + description: Gets or sets the maximum runtime ticks. + format: int64 + nullable: true + additionalProperties: false + description: Class TaskTriggerInfo. + ThemeMediaResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + OwnerId: + type: string + description: Gets or sets the owner id. + format: uuid + additionalProperties: false + description: Class ThemeMediaResult. + TimerCancelledMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/TimerEventInfo' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: TimerCancelled + readOnly: true + additionalProperties: false + description: Timer cancelled message. + TimerCreatedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/TimerEventInfo' + description: Gets or sets the data. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: TimerCreated + readOnly: true + additionalProperties: false + description: Timer created message. + TimerEventInfo: + type: object + properties: + Id: + type: string + ProgramId: + type: string + format: uuid + nullable: true + additionalProperties: false + TimerInfoDto: + type: object + properties: + Id: + type: string + description: Gets or sets the Id of the recording. + nullable: true + Type: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ExternalId: + type: string + description: Gets or sets the external identifier. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel id of the recording. + format: uuid + ExternalChannelId: + type: string + description: Gets or sets the external channel identifier. + nullable: true + ChannelName: + type: string + description: Gets or sets the channel name of the recording. + nullable: true + ChannelPrimaryImageTag: + type: string + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ExternalProgramId: + type: string + description: Gets or sets the external program identifier. + nullable: true + Name: + type: string + description: Gets or sets the name of the recording. + nullable: true + Overview: + type: string + description: Gets or sets the description of the recording. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + EndDate: + type: string + description: Gets or sets the end date of the recording, in UTC. + format: date-time + ServiceName: + type: string + description: Gets or sets the name of the service. + nullable: true + Priority: + type: integer + description: Gets or sets the priority. + format: int32 + PrePaddingSeconds: + type: integer + description: Gets or sets the pre padding seconds. + format: int32 + PostPaddingSeconds: + type: integer + description: Gets or sets the post padding seconds. + format: int32 + IsPrePaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is pre padding required. + ParentBackdropItemId: + type: string + description: Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + IsPostPaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is post padding required. + KeepUntil: + enum: + - UntilDeleted + - UntilSpaceNeeded + - UntilWatched + - UntilDate + allOf: + - $ref: '#/components/schemas/KeepUntil' + Status: + enum: + - New + - InProgress + - Completed + - Cancelled + - ConflictedOk + - ConflictedNotOk + - Error + allOf: + - $ref: '#/components/schemas/RecordingStatus' + description: Gets or sets the status. + SeriesTimerId: + type: string + description: Gets or sets the series timer identifier. + nullable: true + ExternalSeriesTimerId: + type: string + description: Gets or sets the external series timer identifier. + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + ProgramInfo: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the program information. + nullable: true + additionalProperties: false + TimerInfoDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/TimerInfoDto' + description: Gets or sets the items. + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + description: Query result container. + TonemappingAlgorithm: + enum: + - none + - clip + - linear + - gamma + - reinhard + - hable + - mobius + - bt2390 + type: string + description: Enum containing tonemapping algorithms. + TonemappingMode: + enum: + - auto + - max + - rgb + - lum + - itp + type: string + description: Enum containing tonemapping modes. + TonemappingRange: + enum: + - auto + - tv + - pc + type: string + description: Enum containing tonemapping ranges. + TrailerInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + TrailerInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/TrailerInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + TranscodeReason: + enum: + - ContainerNotSupported + - VideoCodecNotSupported + - AudioCodecNotSupported + - SubtitleCodecNotSupported + - AudioIsExternal + - SecondaryAudioNotSupported + - VideoProfileNotSupported + - VideoLevelNotSupported + - VideoResolutionNotSupported + - VideoBitDepthNotSupported + - VideoFramerateNotSupported + - RefFramesNotSupported + - AnamorphicVideoNotSupported + - InterlacedVideoNotSupported + - AudioChannelsNotSupported + - AudioProfileNotSupported + - AudioSampleRateNotSupported + - AudioBitDepthNotSupported + - ContainerBitrateExceedsLimit + - VideoBitrateNotSupported + - AudioBitrateNotSupported + - UnknownVideoStreamInfo + - UnknownAudioStreamInfo + - DirectPlayError + - VideoRangeTypeNotSupported + - VideoCodecTagNotSupported + type: string + TranscodeSeekInfo: + enum: + - Auto + - Bytes + type: string + TranscodingInfo: + type: object + properties: + AudioCodec: + type: string + description: Gets or sets the thread count used for encoding. + nullable: true + VideoCodec: + type: string + description: Gets or sets the thread count used for encoding. + nullable: true + Container: + type: string + description: Gets or sets the thread count used for encoding. + nullable: true + IsVideoDirect: + type: boolean + description: Gets or sets a value indicating whether the video is passed through. + IsAudioDirect: + type: boolean + description: Gets or sets a value indicating whether the audio is passed through. + Bitrate: + type: integer + description: Gets or sets the bitrate. + format: int32 + nullable: true + Framerate: + type: number + description: Gets or sets the framerate. + format: float + nullable: true + CompletionPercentage: + type: number + description: Gets or sets the completion percentage. + format: double + nullable: true + Width: + type: integer + description: Gets or sets the video width. + format: int32 + nullable: true + Height: + type: integer + description: Gets or sets the video height. + format: int32 + nullable: true + AudioChannels: + type: integer + description: Gets or sets the audio channels. + format: int32 + nullable: true + HardwareAccelerationType: + enum: + - none + - amf + - qsv + - nvenc + - v4l2m2m + - vaapi + - videotoolbox + - rkmpp + allOf: + - $ref: '#/components/schemas/HardwareAccelerationType' + description: Gets or sets the hardware acceleration type. + nullable: true + TranscodeReasons: + enum: + - ContainerNotSupported + - VideoCodecNotSupported + - AudioCodecNotSupported + - SubtitleCodecNotSupported + - AudioIsExternal + - SecondaryAudioNotSupported + - VideoProfileNotSupported + - VideoLevelNotSupported + - VideoResolutionNotSupported + - VideoBitDepthNotSupported + - VideoFramerateNotSupported + - RefFramesNotSupported + - AnamorphicVideoNotSupported + - InterlacedVideoNotSupported + - AudioChannelsNotSupported + - AudioProfileNotSupported + - AudioSampleRateNotSupported + - AudioBitDepthNotSupported + - ContainerBitrateExceedsLimit + - VideoBitrateNotSupported + - AudioBitrateNotSupported + - UnknownVideoStreamInfo + - UnknownAudioStreamInfo + - DirectPlayError + - VideoRangeTypeNotSupported + - VideoCodecTagNotSupported + type: array + items: + $ref: '#/components/schemas/TranscodeReason' + description: Gets or sets the transcode reasons. + additionalProperties: false + description: Class holding information on a runnning transcode. + TranscodingProfile: + type: object + properties: + Container: + type: string + description: Gets or sets the container. + Type: + enum: + - Audio + - Video + - Photo + - Subtitle + - Lyric + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + description: Gets or sets the DLNA profile type. + VideoCodec: + type: string + description: Gets or sets the video codec. + AudioCodec: + type: string + description: Gets or sets the audio codec. + Protocol: + enum: + - http + - hls + allOf: + - $ref: '#/components/schemas/MediaStreamProtocol' + description: "Media streaming protocol.\r\nLowercase for backwards compatibility." + EstimateContentLength: + type: boolean + description: Gets or sets a value indicating whether the content length should be estimated. + default: false + EnableMpegtsM2TsMode: + type: boolean + description: Gets or sets a value indicating whether M2TS mode is enabled. + default: false + TranscodeSeekInfo: + enum: + - Auto + - Bytes + allOf: + - $ref: '#/components/schemas/TranscodeSeekInfo' + description: Gets or sets the transcoding seek info mode. + default: Auto + CopyTimestamps: + type: boolean + description: Gets or sets a value indicating whether timestamps should be copied. + default: false + Context: + enum: + - Streaming + - Static + allOf: + - $ref: '#/components/schemas/EncodingContext' + description: Gets or sets the encoding context. + default: Streaming + EnableSubtitlesInManifest: + type: boolean + description: Gets or sets a value indicating whether subtitles are allowed in the manifest. + default: false + MaxAudioChannels: + type: string + description: Gets or sets the maximum audio channels. + nullable: true + MinSegments: + type: integer + description: Gets or sets the minimum amount of segments. + format: int32 + default: 0 + SegmentLength: + type: integer + description: Gets or sets the segment length. + format: int32 + default: 0 + BreakOnNonKeyFrames: + type: boolean + description: Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported. + default: false + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + description: Gets or sets the profile conditions. + EnableAudioVbrEncoding: + type: boolean + description: Gets or sets a value indicating whether variable bitrate encoding is supported. + default: true + additionalProperties: false + description: A class for transcoding profile information. + TransportStreamTimestamp: + enum: + - None + - Zero + - Valid + type: string + TrickplayInfo: + type: object + properties: + Width: + type: integer + description: Gets or sets width of an individual thumbnail. + format: int32 + Height: + type: integer + description: Gets or sets height of an individual thumbnail. + format: int32 + TileWidth: + type: integer + description: Gets or sets amount of thumbnails per row. + format: int32 + TileHeight: + type: integer + description: Gets or sets amount of thumbnails per column. + format: int32 + ThumbnailCount: + type: integer + description: Gets or sets total amount of non-black thumbnails. + format: int32 + Interval: + type: integer + description: Gets or sets interval in milliseconds between each trickplay thumbnail. + format: int32 + Bandwidth: + type: integer + description: Gets or sets peak bandwith usage in bits per second. + format: int32 + additionalProperties: false + description: An entity representing the metadata for a group of trickplay tiles. + TrickplayOptions: + type: object + properties: + EnableHwAcceleration: + type: boolean + description: Gets or sets a value indicating whether or not to use HW acceleration. + EnableHwEncoding: + type: boolean + description: Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding. + EnableKeyFrameOnlyExtraction: + type: boolean + description: "Gets or sets a value indicating whether to only extract key frames.\r\nSignificantly faster, but is not compatible with all decoders and/or video files." + ScanBehavior: + enum: + - Blocking + - NonBlocking + allOf: + - $ref: '#/components/schemas/TrickplayScanBehavior' + description: Gets or sets the behavior used by trickplay provider on library scan/update. + ProcessPriority: + enum: + - Normal + - Idle + - High + - RealTime + - BelowNormal + - AboveNormal + allOf: + - $ref: '#/components/schemas/ProcessPriorityClass' + description: Gets or sets the process priority for the ffmpeg process. + Interval: + type: integer + description: Gets or sets the interval, in ms, between each new trickplay image. + format: int32 + WidthResolutions: + type: array + items: + type: integer + format: int32 + description: Gets or sets the target width resolutions, in px, to generates preview images for. + TileWidth: + type: integer + description: Gets or sets number of tile images to allow in X dimension. + format: int32 + TileHeight: + type: integer + description: Gets or sets number of tile images to allow in Y dimension. + format: int32 + Qscale: + type: integer + description: Gets or sets the ffmpeg output quality level. + format: int32 + JpegQuality: + type: integer + description: Gets or sets the jpeg quality to use for image tiles. + format: int32 + ProcessThreads: + type: integer + description: Gets or sets the number of threads to be used by ffmpeg. + format: int32 + additionalProperties: false + description: Class TrickplayOptions. + TrickplayScanBehavior: + enum: + - Blocking + - NonBlocking + type: string + description: Enum TrickplayScanBehavior. + TunerChannelMapping: + type: object + properties: + Name: + type: string + nullable: true + ProviderChannelName: + type: string + nullable: true + ProviderChannelId: + type: string + nullable: true + Id: + type: string + nullable: true + additionalProperties: false + TunerHostInfo: + type: object + properties: + Id: + type: string + nullable: true + Url: + type: string + nullable: true + Type: + type: string + nullable: true + DeviceId: + type: string + nullable: true + FriendlyName: + type: string + nullable: true + ImportFavoritesOnly: + type: boolean + AllowHWTranscoding: + type: boolean + AllowFmp4TranscodingContainer: + type: boolean + AllowStreamSharing: + type: boolean + FallbackMaxStreamingBitrate: + type: integer + format: int32 + EnableStreamLooping: + type: boolean + Source: + type: string + nullable: true + TunerCount: + type: integer + format: int32 + UserAgent: + type: string + nullable: true + IgnoreDts: + type: boolean + additionalProperties: false + TypeOptions: + type: object + properties: + Type: + type: string + nullable: true + MetadataFetchers: + type: array + items: + type: string + nullable: true + MetadataFetcherOrder: + type: array + items: + type: string + nullable: true + ImageFetchers: + type: array + items: + type: string + nullable: true + ImageFetcherOrder: + type: array + items: + type: string + nullable: true + ImageOptions: + type: array + items: + $ref: '#/components/schemas/ImageOption' + nullable: true + additionalProperties: false + UnratedItem: + enum: + - Movie + - Trailer + - Series + - Music + - Book + - LiveTvChannel + - LiveTvProgram + - ChannelContent + - Other + type: string + description: An enum representing an unrated item. + UpdateLibraryOptionsDto: + type: object + properties: + Id: + type: string + description: Gets or sets the library item id. + format: uuid + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + description: Gets or sets library options. + nullable: true + additionalProperties: false + description: Update library options dto. + UpdateMediaPathRequestDto: + required: + - Name + - PathInfo + type: object + properties: + Name: + type: string + description: Gets or sets the library name. + PathInfo: + allOf: + - $ref: '#/components/schemas/MediaPathInfo' + description: Gets or sets library folder path information. + additionalProperties: false + description: Update library options dto. + UpdatePlaylistDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name of the new playlist. + nullable: true + Ids: + type: array + items: + type: string + format: uuid + description: Gets or sets item ids of the playlist. + nullable: true + Users: + type: array + items: + $ref: '#/components/schemas/PlaylistUserPermissions' + description: Gets or sets the playlist users. + nullable: true + IsPublic: + type: boolean + description: Gets or sets a value indicating whether the playlist is public. + nullable: true + additionalProperties: false + description: Update existing playlist dto. Fields set to `null` will not be updated and keep their current values. + UpdatePlaylistUserDto: + type: object + properties: + CanEdit: + type: boolean + description: Gets or sets a value indicating whether the user can edit the playlist. + nullable: true + additionalProperties: false + description: Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values. + UpdateUserItemDataDto: + type: object + properties: + Rating: + type: number + description: Gets or sets the rating. + format: double + nullable: true + PlayedPercentage: + type: number + description: Gets or sets the played percentage. + format: double + nullable: true + UnplayedItemCount: + type: integer + description: Gets or sets the unplayed item count. + format: int32 + nullable: true + PlaybackPositionTicks: + type: integer + description: Gets or sets the playback position ticks. + format: int64 + nullable: true + PlayCount: + type: integer + description: Gets or sets the play count. + format: int32 + nullable: true + IsFavorite: + type: boolean + description: Gets or sets a value indicating whether this instance is favorite. + nullable: true + Likes: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UpdateUserItemDataDto is likes. + nullable: true + LastPlayedDate: + type: string + description: Gets or sets the last played date. + format: date-time + nullable: true + Played: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + nullable: true + Key: + type: string + description: Gets or sets the key. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + additionalProperties: false + description: This is used by the api to get information about a item user data. + UpdateUserPassword: + type: object + properties: + CurrentPassword: + type: string + description: Gets or sets the current sha1-hashed password. + nullable: true + CurrentPw: + type: string + description: Gets or sets the current plain text password. + nullable: true + NewPw: + type: string + description: Gets or sets the new plain text password. + nullable: true + ResetPassword: + type: boolean + description: Gets or sets a value indicating whether to reset the password. + additionalProperties: false + description: The update user password request body. + UploadSubtitleDto: + required: + - Data + - Format + - IsForced + - IsHearingImpaired + - Language + type: object + properties: + Language: + type: string + description: Gets or sets the subtitle language. + Format: + type: string + description: Gets or sets the subtitle format. + IsForced: + type: boolean + description: Gets or sets a value indicating whether the subtitle is forced. + IsHearingImpaired: + type: boolean + description: Gets or sets a value indicating whether the subtitle is for hearing impaired. + Data: + type: string + description: Gets or sets the subtitle data. + additionalProperties: false + description: Upload subtitles dto. + UserConfiguration: + type: object + properties: + AudioLanguagePreference: + type: string + description: Gets or sets the audio language preference. + nullable: true + PlayDefaultAudioTrack: + type: boolean + description: Gets or sets a value indicating whether [play default audio track]. + SubtitleLanguagePreference: + type: string + description: Gets or sets the subtitle language preference. + nullable: true + DisplayMissingEpisodes: + type: boolean + GroupedFolders: + type: array + items: + type: string + format: uuid + SubtitleMode: + enum: + - Default + - Always + - OnlyForced + - None + - Smart + allOf: + - $ref: '#/components/schemas/SubtitlePlaybackMode' + description: An enum representing a subtitle playback mode. + DisplayCollectionsView: + type: boolean + EnableLocalPassword: + type: boolean + OrderedViews: + type: array + items: + type: string + format: uuid + LatestItemsExcludes: + type: array + items: + type: string + format: uuid + MyMediaExcludes: + type: array + items: + type: string + format: uuid + HidePlayedInLatest: + type: boolean + RememberAudioSelections: + type: boolean + RememberSubtitleSelections: + type: boolean + EnableNextEpisodeAutoPlay: + type: boolean + CastReceiverId: + type: string + description: Gets or sets the id of the selected cast receiver. + nullable: true + additionalProperties: false + description: Class UserConfiguration. + UserDataChangedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/UserDataChangeInfo' + description: Class UserDataChangeInfo. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: UserDataChanged + readOnly: true + additionalProperties: false + description: User data changed message. + UserDataChangeInfo: + type: object + properties: + UserId: + type: string + description: Gets or sets the user id. + format: uuid + UserDataList: + type: array + items: + $ref: '#/components/schemas/UserItemDataDto' + description: Gets or sets the user data list. + additionalProperties: false + description: Class UserDataChangeInfo. + UserDeletedMessage: + type: object + properties: + Data: + type: string + description: Gets or sets the data. + format: uuid + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: UserDeleted + readOnly: true + additionalProperties: false + description: User deleted message. + UserDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ServerName: + type: string + description: "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only." + nullable: true + Id: + type: string + description: Gets or sets the id. + format: uuid + PrimaryImageTag: + type: string + description: Gets or sets the primary image tag. + nullable: true + HasPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has password. + HasConfiguredPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has configured password. + HasConfiguredEasyPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has configured easy password. + deprecated: true + EnableAutoLogin: + type: boolean + description: Gets or sets whether async login is enabled or not. + nullable: true + LastLoginDate: + type: string + description: Gets or sets the last login date. + format: date-time + nullable: true + LastActivityDate: + type: string + description: Gets or sets the last activity date. + format: date-time + nullable: true + Configuration: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Gets or sets the configuration. + nullable: true + Policy: + allOf: + - $ref: '#/components/schemas/UserPolicy' + description: Gets or sets the policy. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio. + format: double + nullable: true + additionalProperties: false + description: Class UserDto. + UserItemDataDto: + type: object + properties: + Rating: + type: number + description: Gets or sets the rating. + format: double + nullable: true + PlayedPercentage: + type: number + description: Gets or sets the played percentage. + format: double + nullable: true + UnplayedItemCount: + type: integer + description: Gets or sets the unplayed item count. + format: int32 + nullable: true + PlaybackPositionTicks: + type: integer + description: Gets or sets the playback position ticks. + format: int64 + PlayCount: + type: integer + description: Gets or sets the play count. + format: int32 + IsFavorite: + type: boolean + description: Gets or sets a value indicating whether this instance is favorite. + Likes: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. + nullable: true + LastPlayedDate: + type: string + description: Gets or sets the last played date. + format: date-time + nullable: true + Played: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + Key: + type: string + description: Gets or sets the key. + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + additionalProperties: false + description: Class UserItemDataDto. + UserPolicy: + required: + - AuthenticationProviderId + - PasswordResetProviderId + type: object + properties: + IsAdministrator: + type: boolean + description: Gets or sets a value indicating whether this instance is administrator. + IsHidden: + type: boolean + description: Gets or sets a value indicating whether this instance is hidden. + EnableCollectionManagement: + type: boolean + description: Gets or sets a value indicating whether this instance can manage collections. + default: false + EnableSubtitleManagement: + type: boolean + description: Gets or sets a value indicating whether this instance can manage subtitles. + default: false + EnableLyricManagement: + type: boolean + description: Gets or sets a value indicating whether this user can manage lyrics. + default: false + IsDisabled: + type: boolean + description: Gets or sets a value indicating whether this instance is disabled. + MaxParentalRating: + type: integer + description: Gets or sets the max parental rating. + format: int32 + nullable: true + BlockedTags: + type: array + items: + type: string + nullable: true + AllowedTags: + type: array + items: + type: string + nullable: true + EnableUserPreferenceAccess: + type: boolean + AccessSchedules: + type: array + items: + $ref: '#/components/schemas/AccessSchedule' + nullable: true + BlockUnratedItems: + type: array + items: + $ref: '#/components/schemas/UnratedItem' + nullable: true + EnableRemoteControlOfOtherUsers: + type: boolean + EnableSharedDeviceControl: + type: boolean + EnableRemoteAccess: + type: boolean + EnableLiveTvManagement: + type: boolean + EnableLiveTvAccess: + type: boolean + EnableMediaPlayback: + type: boolean + EnableAudioPlaybackTranscoding: + type: boolean + EnableVideoPlaybackTranscoding: + type: boolean + EnablePlaybackRemuxing: + type: boolean + ForceRemoteSourceTranscoding: + type: boolean + EnableContentDeletion: + type: boolean + EnableContentDeletionFromFolders: + type: array + items: + type: string + nullable: true + EnableContentDownloading: + type: boolean + EnableSyncTranscoding: + type: boolean + description: Gets or sets a value indicating whether [enable synchronize]. + EnableMediaConversion: + type: boolean + EnabledDevices: + type: array + items: + type: string + nullable: true + EnableAllDevices: + type: boolean + EnabledChannels: + type: array + items: + type: string + format: uuid + nullable: true + EnableAllChannels: + type: boolean + EnabledFolders: + type: array + items: + type: string + format: uuid + nullable: true + EnableAllFolders: + type: boolean + InvalidLoginAttemptCount: + type: integer + format: int32 + LoginAttemptsBeforeLockout: + type: integer + format: int32 + MaxActiveSessions: + type: integer + format: int32 + EnablePublicSharing: + type: boolean + BlockedMediaFolders: + type: array + items: + type: string + format: uuid + nullable: true + BlockedChannels: + type: array + items: + type: string + format: uuid + nullable: true + RemoteClientBitrateLimit: + type: integer + format: int32 + AuthenticationProviderId: + type: string + PasswordResetProviderId: + type: string + SyncPlayAccess: + enum: + - CreateAndJoinGroups + - JoinGroups + - None + allOf: + - $ref: '#/components/schemas/SyncPlayUserAccessType' + description: Enum SyncPlayUserAccessType. + additionalProperties: false + UserUpdatedMessage: + type: object + properties: + Data: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + nullable: true + MessageId: + type: string + description: Gets or sets the message id. + format: uuid + MessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + allOf: + - $ref: '#/components/schemas/SessionMessageType' + description: The different kinds of messages that are used in the WebSocket api. + default: UserUpdated + readOnly: true + additionalProperties: false + description: User updated message. + UtcTimeResponse: + type: object + properties: + RequestReceptionTime: + type: string + description: Gets the UTC time when request has been received. + format: date-time + ResponseTransmissionTime: + type: string + description: Gets the UTC time when response has been sent. + format: date-time + additionalProperties: false + description: Class UtcTimeResponse. + ValidatePathDto: + type: object + properties: + ValidateWritable: + type: boolean + description: Gets or sets a value indicating whether validate if path is writable. + Path: + type: string + description: Gets or sets the path. + nullable: true + IsFile: + type: boolean + description: Gets or sets is path file. + nullable: true + additionalProperties: false + description: Validate path object. + VersionInfo: + type: object + properties: + version: + type: string + description: Gets or sets the version. + VersionNumber: + type: string + description: Gets the version as a System.Version. + readOnly: true + changelog: + type: string + description: Gets or sets the changelog for this version. + nullable: true + targetAbi: + type: string + description: Gets or sets the ABI that this version was built against. + nullable: true + sourceUrl: + type: string + description: Gets or sets the source URL. + nullable: true + checksum: + type: string + description: Gets or sets a checksum for the binary. + nullable: true + timestamp: + type: string + description: Gets or sets a timestamp of when the binary was built. + nullable: true + repositoryName: + type: string + description: Gets or sets the repository name. + repositoryUrl: + type: string + description: Gets or sets the repository url. + additionalProperties: false + description: Defines the MediaBrowser.Model.Updates.VersionInfo class. + Video3DFormat: + enum: + - HalfSideBySide + - FullSideBySide + - FullTopAndBottom + - HalfTopAndBottom + - MVC + type: string + VideoRange: + enum: + - Unknown + - SDR + - HDR + type: string + description: An enum representing video ranges. + VideoRangeType: + enum: + - Unknown + - SDR + - HDR10 + - HLG + - DOVI + - DOVIWithHDR10 + - DOVIWithHLG + - DOVIWithSDR + - HDR10Plus + type: string + description: An enum representing types of video ranges. + VideoType: + enum: + - VideoFile + - Iso + - Dvd + - BluRay + type: string + description: Enum VideoType. + VirtualFolderInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Locations: + type: array + items: + type: string + description: Gets or sets the locations. + nullable: true + CollectionType: + enum: + - movies + - tvshows + - music + - musicvideos + - homevideos + - boxsets + - books + - mixed + allOf: + - $ref: '#/components/schemas/CollectionTypeOptions' + description: Gets or sets the type of the collection. + nullable: true + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + PrimaryImageItemId: + type: string + description: Gets or sets the primary image item identifier. + nullable: true + RefreshProgress: + type: number + format: double + nullable: true + RefreshStatus: + type: string + nullable: true + additionalProperties: false + description: Used to hold information about a user's list of configured virtual folders. + WakeOnLanInfo: + type: object + properties: + MacAddress: + type: string + description: Gets the MAC address of the device. + nullable: true + Port: + type: integer + description: Gets or sets the wake-on-LAN port. + format: int32 + additionalProperties: false + description: Provides the MAC address and port for wake-on-LAN functionality. + WebSocketMessage: + type: object + oneOf: + - $ref: '#/components/schemas/InboundWebSocketMessage' + - $ref: '#/components/schemas/OutboundWebSocketMessage' + description: Represents the possible websocket types + XbmcMetadataOptions: + type: object + properties: + UserId: + type: string + nullable: true + ReleaseDateFormat: + type: string + SaveImagePathsInNfo: + type: boolean + EnablePathSubstitution: + type: boolean + EnableExtraThumbsDuplication: + type: boolean + additionalProperties: false + securitySchemes: + CustomAuthentication: + type: apiKey + description: API key header parameter + name: Authorization + in: header diff --git a/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.8.13.yaml b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.8.13.yaml new file mode 100644 index 0000000000000..cb21672520637 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/src/main/java/org/openhab/binding/jellyfin/internal/api/specifications/yaml/jellyfin-openapi-10.8.13.yaml @@ -0,0 +1,35824 @@ +openapi: 3.0.1 +info: + title: Jellyfin API + version: 10.8.13 + x-jellyfin-version: 10.8.13 +servers: + - url: http://localhost +paths: + /System/ActivityLog/Entries: + get: + tags: + - ActivityLog + summary: Gets activity log entries. + operationId: GetLogEntries + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: minDate + in: query + description: Optional. The minimum date. Format = ISO. + schema: + type: string + format: date-time + - name: hasUserId + in: query + description: Optional. Filter log entries if it has user id, or not. + schema: + type: boolean + responses: + "200": + description: Activity log returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ActivityLogEntryQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Keys: + get: + tags: + - ApiKey + summary: Get all keys. + operationId: GetKeys + responses: + "200": + description: Api keys retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationInfoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - ApiKey + summary: Create a new api key. + operationId: CreateKey + parameters: + - name: app + in: query + description: Name of the app using the authentication key. + required: true + schema: + type: string + responses: + "204": + description: Api key created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Keys/{key}: + delete: + tags: + - ApiKey + summary: Remove an api key. + operationId: RevokeKey + parameters: + - name: key + in: path + description: The access token to delete. + required: true + schema: + type: string + responses: + "204": + description: Api key deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Artists: + get: + tags: + - Artists + summary: Gets all artists from a given item, folder, or the entire library. + operationId: GetArtists + parameters: + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person ids. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Artists returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{name}: + get: + tags: + - Artists + summary: Gets an artist by name. + operationId: GetArtistByName + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Artist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/AlbumArtists: + get: + tags: + - Artists + summary: Gets all album artists from a given item, folder, or the entire library. + operationId: GetAlbumArtists + parameters: + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person ids. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Album artists returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/stream: + get: + tags: + - Audio + summary: Gets an audio stream. + operationId: GetAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + head: + tags: + - Audio + summary: Gets an audio stream. + operationId: HeadAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + /Audio/{itemId}/stream.{container}: + get: + tags: + - Audio + summary: Gets an audio stream. + operationId: GetAudioStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: The audio container. + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment lenght. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamporphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + head: + tags: + - Audio + summary: Gets an audio stream. + operationId: HeadAudioStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: The audio container. + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment lenght. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamporphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + /Branding/Configuration: + get: + tags: + - Branding + summary: Gets branding configuration. + operationId: GetBrandingOptions + responses: + "200": + description: Branding configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BrandingOptions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BrandingOptions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BrandingOptions' + /Branding/Css: + get: + tags: + - Branding + summary: Gets branding css. + operationId: GetBrandingCss + responses: + "200": + description: Branding css returned. + content: + text/css: + schema: + type: string + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "204": + description: No branding css configured. + /Branding/Css.css: + get: + tags: + - Branding + summary: Gets branding css. + operationId: GetBrandingCss_2 + responses: + "200": + description: Branding css returned. + content: + text/css: + schema: + type: string + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "204": + description: No branding css configured. + /Channels: + get: + tags: + - Channels + summary: Gets available channels. + operationId: GetChannels + parameters: + - name: userId + in: query + description: User Id to filter by. Use System.Guid.Empty to not filter by user. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: supportsLatestItems + in: query + description: Optional. Filter by channels that support getting latest items. + schema: + type: boolean + - name: supportsMediaDeletion + in: query + description: Optional. Filter by channels that support media deletion. + schema: + type: boolean + - name: isFavorite + in: query + description: Optional. Filter by channels that are favorite. + schema: + type: boolean + responses: + "200": + description: Channels returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/{channelId}/Features: + get: + tags: + - Channels + summary: Get channel features. + operationId: GetChannelFeatures + parameters: + - name: channelId + in: path + description: Channel id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Channel features returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ChannelFeatures' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/{channelId}/Items: + get: + tags: + - Channels + summary: Get channel items. + operationId: GetChannelItems + parameters: + - name: channelId + in: path + description: Channel Id. + required: true + schema: + type: string + format: uuid + - name: folderId + in: query + description: Optional. Folder Id. + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. User Id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortOrder + in: query + description: Optional. Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + type: string + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Channel items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/Features: + get: + tags: + - Channels + summary: Get all channel features. + operationId: GetAllChannelFeatures + responses: + "200": + description: All channel features returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ChannelFeatures' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Channels/Items/Latest: + get: + tags: + - Channels + summary: Gets latest channel items. + operationId: GetLatestChannelItems + parameters: + - name: userId + in: query + description: Optional. User Id. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: channelIds + in: query + description: Optional. Specify one or more channel id's, comma delimited. + schema: + type: array + items: + type: string + format: uuid + responses: + "200": + description: Latest channel items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /ClientLog/Document: + post: + tags: + - ClientLog + summary: Upload a document. + operationId: LogFile + requestBody: + content: + text/plain: + schema: + type: string + format: binary + responses: + "200": + description: Document saved. + content: + application/json: + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ClientLogDocumentResponseDto' + "403": + description: Event logging disabled. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "413": + description: Upload size too large. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Collections: + post: + tags: + - Collection + summary: Creates a new collection. + operationId: CreateCollection + parameters: + - name: name + in: query + description: The name of the collection. + schema: + type: string + - name: ids + in: query + description: Item Ids to add to the collection. + schema: + type: array + items: + type: string + - name: parentId + in: query + description: Optional. Create the collection within a specific folder. + schema: + type: string + format: uuid + - name: isLocked + in: query + description: Whether or not to lock the new collection. + schema: + type: boolean + default: false + responses: + "200": + description: Collection created. + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/CollectionCreationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/CollectionCreationResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Collections/{collectionId}/Items: + post: + tags: + - Collection + summary: Adds items to a collection. + operationId: AddToCollection + parameters: + - name: collectionId + in: path + description: The collection id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item ids, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items added to collection. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Collection + summary: Removes items from a collection. + operationId: RemoveFromCollection + parameters: + - name: collectionId + in: path + description: The collection id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item ids, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items removed from collection. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /System/Configuration: + get: + tags: + - Configuration + summary: Gets application configuration. + operationId: GetConfiguration + responses: + "200": + description: Application configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ServerConfiguration' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ServerConfiguration' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ServerConfiguration' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Configuration + summary: Updates application configuration. + operationId: UpdateConfiguration + requestBody: + description: Configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ServerConfiguration' + description: Represents the server configuration. + required: true + responses: + "204": + description: Configuration updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /System/Configuration/{key}: + get: + tags: + - Configuration + summary: Gets a named configuration. + operationId: GetNamedConfiguration + parameters: + - name: key + in: path + description: Configuration key. + required: true + schema: + type: string + responses: + "200": + description: Configuration returned. + content: + application/json: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Configuration + summary: Updates named configuration. + operationId: UpdateNamedConfiguration + parameters: + - name: key + in: path + description: Configuration key. + required: true + schema: + type: string + requestBody: + description: Configuration. + content: + application/json: + schema: {} + text/json: + schema: {} + application/*+json: + schema: {} + required: true + responses: + "204": + description: Named configuration updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /System/Configuration/MetadataOptions/Default: + get: + tags: + - Configuration + summary: Gets a default MetadataOptions object. + operationId: GetDefaultMetadataOptions + responses: + "200": + description: Metadata options returned. + content: + application/json: + schema: + $ref: '#/components/schemas/MetadataOptions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/MetadataOptions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/MetadataOptions' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /System/MediaEncoder/Path: + post: + tags: + - Configuration + summary: Updates the path to the media encoder. + operationId: UpdateMediaEncoderPath + requestBody: + description: Media encoder path form body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaEncoderPathDto' + description: Media Encoder Path Dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaEncoderPathDto' + description: Media Encoder Path Dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MediaEncoderPathDto' + description: Media Encoder Path Dto. + required: true + responses: + "204": + description: Media encoder path updated. + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + - DefaultAuthorization + /web/ConfigurationPage: + get: + tags: + - Dashboard + summary: Gets a dashboard configuration page. + operationId: GetDashboardConfigurationPage + parameters: + - name: name + in: query + description: The name of the page. + schema: + type: string + responses: + "200": + description: ConfigurationPage returned. + content: + text/html: + schema: + type: string + format: binary + application/x-javascript: + schema: + type: string + format: binary + "404": + description: Plugin configuration page not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /web/ConfigurationPages: + get: + tags: + - Dashboard + summary: Gets the configuration pages. + operationId: GetConfigurationPages + parameters: + - name: enableInMainMenu + in: query + description: Whether to enable in the main menu. + schema: + type: boolean + responses: + "200": + description: ConfigurationPages returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ConfigurationPageInfo' + "404": + description: Server still loading. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Devices: + get: + tags: + - Devices + summary: Get Devices. + operationId: GetDevices + parameters: + - name: supportsSync + in: query + description: Gets or sets a value indicating whether [supports synchronize]. + schema: + type: boolean + - name: userId + in: query + description: Gets or sets the user identifier. + schema: + type: string + format: uuid + responses: + "200": + description: Devices retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceInfoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceInfoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceInfoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Devices + summary: Deletes a device. + operationId: DeleteDevice + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "204": + description: Device deleted. + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Devices/Info: + get: + tags: + - Devices + summary: Get info for a device. + operationId: GetDeviceInfo + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "200": + description: Device info retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceInfo' + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Devices/Options: + get: + tags: + - Devices + summary: Get options for a device. + operationId: GetDeviceOptions + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + responses: + "200": + description: Device options retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceOptions' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceOptions' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceOptions' + "404": + description: Device not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Devices + summary: Update device options. + operationId: UpdateDeviceOptions + parameters: + - name: id + in: query + description: Device Id. + required: true + schema: + type: string + requestBody: + description: Device Options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceOptionsDto' + description: A dto representing custom options for a device. + required: true + responses: + "204": + description: Device options updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /DisplayPreferences/{displayPreferencesId}: + get: + tags: + - DisplayPreferences + summary: Get Display Preferences. + operationId: GetDisplayPreferences + parameters: + - name: displayPreferencesId + in: path + description: Display preferences id. + required: true + schema: + type: string + - name: userId + in: query + description: User id. + required: true + schema: + type: string + format: uuid + - name: client + in: query + description: Client. + required: true + schema: + type: string + responses: + "200": + description: Display preferences retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DisplayPreferencesDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - DisplayPreferences + summary: Update Display Preferences. + operationId: UpdateDisplayPreferences + parameters: + - name: displayPreferencesId + in: path + description: Display preferences id. + required: true + schema: + type: string + - name: userId + in: query + description: User Id. + required: true + schema: + type: string + format: uuid + - name: client + in: query + description: Client. + required: true + schema: + type: string + requestBody: + description: New Display Preferences object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DisplayPreferencesDto' + description: Defines the display preferences for any item that supports them (usually Folders). + required: true + responses: + "204": + description: Display preferences updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Dlna/ProfileInfos: + get: + tags: + - Dlna + summary: Get profile infos. + operationId: GetProfileInfos + responses: + "200": + description: Device profile infos returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeviceProfileInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/DeviceProfileInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/DeviceProfileInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Dlna/Profiles: + post: + tags: + - Dlna + summary: Creates a profile. + operationId: CreateProfile + requestBody: + description: Device profile. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + responses: + "204": + description: Device profile created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Dlna/Profiles/{profileId}: + get: + tags: + - Dlna + summary: Gets a single profile. + operationId: GetProfile + parameters: + - name: profileId + in: path + description: Profile Id. + required: true + schema: + type: string + responses: + "200": + description: Device profile returned. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceProfile' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceProfile' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceProfile' + "404": + description: Device profile not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Dlna + summary: Deletes a profile. + operationId: DeleteProfile + parameters: + - name: profileId + in: path + description: Profile id. + required: true + schema: + type: string + responses: + "204": + description: Device profile deleted. + "404": + description: Device profile not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Dlna + summary: Updates a profile. + operationId: UpdateProfile + parameters: + - name: profileId + in: path + description: Profile id. + required: true + schema: + type: string + requestBody: + description: Device profile. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + text/json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + responses: + "204": + description: Device profile updated. + "404": + description: Device profile not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Dlna/Profiles/Default: + get: + tags: + - Dlna + summary: Gets the default profile. + operationId: GetDefaultProfile + responses: + "200": + description: Default device profile returned. + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceProfile' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DeviceProfile' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DeviceProfile' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Dlna/{serverId}/ConnectionManager: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetConnectionManager + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ConnectionManager/ConnectionManager: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetConnectionManager_2 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ConnectionManager/ConnectionManager.xml: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetConnectionManager_3 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ConnectionManager/Control: + post: + tags: + - DlnaServer + summary: Process a connection manager control request. + operationId: ProcessConnectionManagerControlRequest + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Request processed. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ContentDirectory: + get: + tags: + - DlnaServer + summary: Gets Dlna content directory xml. + operationId: GetContentDirectory + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna content directory returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ContentDirectory/ContentDirectory: + get: + tags: + - DlnaServer + summary: Gets Dlna content directory xml. + operationId: GetContentDirectory_2 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna content directory returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ContentDirectory/ContentDirectory.xml: + get: + tags: + - DlnaServer + summary: Gets Dlna content directory xml. + operationId: GetContentDirectory_3 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna content directory returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/ContentDirectory/Control: + post: + tags: + - DlnaServer + summary: Process a content directory control request. + operationId: ProcessContentDirectoryControlRequest + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Request processed. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/description: + get: + tags: + - DlnaServer + summary: Get Description Xml. + operationId: GetDescriptionXml + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Description xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/description.xml: + get: + tags: + - DlnaServer + summary: Get Description Xml. + operationId: GetDescriptionXml_2 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Description xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/icons/{fileName}: + get: + tags: + - DlnaServer + summary: Gets a server icon. + operationId: GetIconId + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + - name: fileName + in: path + description: The icon filename. + required: true + schema: + type: string + responses: + "200": + description: Request processed. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Not Found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/MediaReceiverRegistrar: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetMediaReceiverRegistrar + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/MediaReceiverRegistrar/Control: + post: + tags: + - DlnaServer + summary: Process a media receiver registrar control request. + operationId: ProcessMediaReceiverRegistrarControlRequest + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Request processed. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetMediaReceiverRegistrar_2 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml: + get: + tags: + - DlnaServer + summary: Gets Dlna media receiver registrar xml. + operationId: GetMediaReceiverRegistrar_3 + parameters: + - name: serverId + in: path + description: Server UUID. + required: true + schema: + type: string + responses: + "200": + description: Dlna media receiver registrar xml returned. + content: + text/xml: + schema: + type: string + format: binary + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Dlna/icons/{fileName}: + get: + tags: + - DlnaServer + summary: Gets a server icon. + operationId: GetIcon + parameters: + - name: fileName + in: path + description: The icon filename. + required: true + schema: + type: string + responses: + "200": + description: Request processed. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Not Found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "503": + description: DLNA is disabled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - AnonymousLanAccessPolicy + /Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetHlsAudioSegment + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: integer + format: int32 + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: runtimeTicks + in: query + description: The position of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: actualSegmentLengthTicks + in: query + description: The length of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vpx, wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + audio/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/main.m3u8: + get: + tags: + - DynamicHls + summary: Gets an audio stream using HTTP live streaming. + operationId: GetVariantHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vpx, wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/master.m3u8: + get: + tags: + - DynamicHls + summary: Gets an audio hls playlist stream. + operationId: GetMasterHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - DynamicHls + summary: Gets an audio hls playlist stream. + operationId: HeadMasterHlsAudioPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetHlsVideoSegment + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: integer + format: int32 + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: runtimeTicks + in: query + description: The position of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: actualSegmentLengthTicks + in: query + description: The length of the requested segment in ticks. + required: true + schema: + type: integer + format: int64 + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The desired segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/live.m3u8: + get: + tags: + - DynamicHls + summary: Gets a hls live stream. + operationId: GetLiveHlsStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: The audio container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment lenght. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: maxWidth + in: query + description: Optional. The max width. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The max height. + schema: + type: integer + format: int32 + - name: enableSubtitlesInManifest + in: query + description: Optional. Whether to enable subtitles in the manifest. + schema: + type: boolean + responses: + "200": + description: Hls live stream retrieved. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/main.m3u8: + get: + tags: + - DynamicHls + summary: Gets a video stream using HTTP live streaming. + operationId: GetVariantHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/master.m3u8: + get: + tags: + - DynamicHls + summary: Gets a video hls playlist stream. + operationId: GetMasterHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - DynamicHls + summary: Gets a video hls playlist stream. + operationId: HeadMasterHlsVideoPlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + required: true + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + - name: enableAdaptiveBitrateStreaming + in: query + description: Enable adaptive bitrate streaming. + schema: + type: boolean + default: true + responses: + "200": + description: Video stream returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Environment/DefaultDirectoryBrowser: + get: + tags: + - Environment + summary: Get Default directory browser. + operationId: GetDefaultDirectoryBrowser + responses: + "200": + description: Default directory browser returned. + content: + application/json: + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/DefaultDirectoryBrowserInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Environment/DirectoryContents: + get: + tags: + - Environment + summary: Gets the contents of a given directory in the file system. + operationId: GetDirectoryContents + parameters: + - name: path + in: query + description: The path. + required: true + schema: + type: string + - name: includeFiles + in: query + description: An optional filter to include or exclude files from the results. true/false. + schema: + type: boolean + default: false + - name: includeDirectories + in: query + description: An optional filter to include or exclude folders from the results. true/false. + schema: + type: boolean + default: false + responses: + "200": + description: Directory contents returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Environment/Drives: + get: + tags: + - Environment + summary: Gets available drives from the server's file system. + operationId: GetDrives + responses: + "200": + description: List of entries returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Environment/NetworkShares: + get: + tags: + - Environment + summary: Gets network paths. + operationId: GetNetworkShares + responses: + "200": + description: Empty array returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FileSystemEntryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Environment/ParentPath: + get: + tags: + - Environment + summary: Gets the parent path of a given path. + operationId: GetParentPath + parameters: + - name: path + in: query + description: The path. + required: true + schema: + type: string + responses: + "200": + description: Success + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Environment/ValidatePath: + post: + tags: + - Environment + summary: Validates path. + operationId: ValidatePath + requestBody: + description: Validate request object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ValidatePathDto' + description: Validate path object. + required: true + responses: + "204": + description: Path validated. + "404": + description: Path not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Items/Filters: + get: + tags: + - Filter + summary: Gets legacy query filters. + operationId: GetQueryFiltersLegacy + parameters: + - name: userId + in: query + description: Optional. User id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Optional. Parent id. + schema: + type: string + format: uuid + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + responses: + "200": + description: Legacy filters retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QueryFiltersLegacy' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Filters2: + get: + tags: + - Filter + summary: Gets query filters. + operationId: GetQueryFilters + parameters: + - name: userId + in: query + description: Optional. User id. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isAiring + in: query + description: Optional. Is item airing. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Is item movie. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Is item sports. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Is item kids. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Is item news. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Is item series. + schema: + type: boolean + - name: recursive + in: query + description: Optional. Search recursive. + schema: + type: boolean + responses: + "200": + description: Filters retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryFilters' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QueryFilters' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QueryFilters' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Genres: + get: + tags: + - Genres + summary: Gets all genres from a given item, folder, or the entire library. + operationId: GetGenres + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Optional. Include total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Genres/{genreName}: + get: + tags: + - Genres + summary: Gets a genre, by name. + operationId: GetGenre + parameters: + - name: genreName + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + responses: + "200": + description: Genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/hls/{segmentId}/stream.aac: + get: + tags: + - HlsSegment + summary: Gets the specified audio segment for an audio item. + operationId: GetHlsAudioSegmentLegacyAac + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + responses: + "200": + description: Hls audio segment returned. + content: + audio/*: + schema: + type: string + format: binary + /Audio/{itemId}/hls/{segmentId}/stream.mp3: + get: + tags: + - HlsSegment + summary: Gets the specified audio segment for an audio item. + operationId: GetHlsAudioSegmentLegacyMp3 + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + responses: + "200": + description: Hls audio segment returned. + content: + audio/*: + schema: + type: string + format: binary + /Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}: + get: + tags: + - HlsSegment + summary: Gets a hls video segment. + operationId: GetHlsVideoSegmentLegacy + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: segmentId + in: path + description: The segment id. + required: true + schema: + type: string + - name: segmentContainer + in: path + description: The segment container. + required: true + schema: + type: string + responses: + "200": + description: Hls video segment returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Hls segment not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Videos/{itemId}/hls/{playlistId}/stream.m3u8: + get: + tags: + - HlsSegment + summary: Gets a hls video playlist. + operationId: GetHlsPlaylistLegacy + parameters: + - name: itemId + in: path + description: The video id. + required: true + schema: + type: string + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + responses: + "200": + description: Hls video playlist returned. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/ActiveEncodings: + delete: + tags: + - HlsSegment + summary: Stops an active encoding. + operationId: StopEncodingProcess + parameters: + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + required: true + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + required: true + schema: + type: string + responses: + "204": + description: Encoding stopped successfully. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get artist image by name. + operationId: GetArtistImage + parameters: + - name: name + in: path + description: Artist name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get artist image by name. + operationId: HeadArtistImage + parameters: + - name: name + in: path + description: Artist name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Branding/Splashscreen: + get: + tags: + - Image + summary: Generates or gets the splashscreen. + operationId: GetSplashscreen + parameters: + - name: tag + in: query + description: Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Apply a foreground layer on top of the image. + schema: + type: string + - name: quality + in: query + description: Quality setting, from 0-100. + schema: + maximum: 100 + minimum: 0 + type: integer + format: int32 + default: 90 + responses: + "200": + description: Splashscreen returned successfully. + content: + image/*: + schema: + type: string + format: binary + post: + tags: + - Image + summary: "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded." + operationId: UploadCustomSplashscreen + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Successfully uploaded new splashscreen. + "400": + description: Error reading MimeType from uploaded image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User does not have permission to upload splashscreen.. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Image + summary: Delete a custom splashscreen. + operationId: DeleteCustomSplashscreen + responses: + "204": + description: Successfully deleted the custom splashscreen. + "403": + description: User does not have permission to delete splashscreen.. + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /Genres/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get genre image by name. + operationId: GetGenreImage + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get genre image by name. + operationId: HeadGenreImage + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Genres/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get genre image by name. + operationId: GetGenreImageByIndex + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get genre image by name. + operationId: HeadGenreImageByIndex + parameters: + - name: name + in: path + description: Genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images: + get: + tags: + - Image + summary: Get item image infos. + operationId: GetItemImageInfos + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item images returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Images/{imageType}: + delete: + tags: + - Image + summary: Delete an item's image. + operationId: DeleteItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: query + description: The image index. + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Image + summary: Set item image. + operationId: SetItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image saved. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImage + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}: + delete: + tags: + - Image + summary: Delete an item's image. + operationId: DeleteItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: The image index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - Image + summary: Set item image. + operationId: SetItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: (Unused) Image index. + required: true + schema: + type: integer + format: int32 + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image saved. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImageByIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: query + description: Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}: + get: + tags: + - Image + summary: Gets the item's image. + operationId: GetItemImage2 + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: path + description: The maximum image width to return. + required: true + schema: + type: integer + format: int32 + - name: maxHeight + in: path + description: The maximum image height to return. + required: true + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: path + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + required: true + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: path + description: Determines the output format of the image - original,gif,jpg,png. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + description: Enum ImageOutputFormat. + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: path + description: Optional. Percent to render for the percent played overlay. + required: true + schema: + type: number + format: double + - name: unplayedCount + in: path + description: Optional. Unplayed count overlay to render. + required: true + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Gets the item's image. + operationId: HeadItemImage2 + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: maxWidth + in: path + description: The maximum image width to return. + required: true + schema: + type: integer + format: int32 + - name: maxHeight + in: path + description: The maximum image height to return. + required: true + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: tag + in: path + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + required: true + schema: + type: string + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: format + in: path + description: Determines the output format of the image - original,gif,jpg,png. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + description: Enum ImageOutputFormat. + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: percentPlayed + in: path + description: Optional. Percent to render for the percent played overlay. + required: true + schema: + type: number + format: double + - name: unplayedCount + in: path + description: Optional. Unplayed count overlay to render. + required: true + schema: + type: integer + format: int32 + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Items/{itemId}/Images/{imageType}/{imageIndex}/Index: + post: + tags: + - Image + summary: Updates the index for an item image. + operationId: UpdateItemImageIndex + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Old image index. + required: true + schema: + type: integer + format: int32 + - name: newIndex + in: query + description: New image index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Image index updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /MusicGenres/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get music genre image by name. + operationId: GetMusicGenreImage + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get music genre image by name. + operationId: HeadMusicGenreImage + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /MusicGenres/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get music genre image by name. + operationId: GetMusicGenreImageByIndex + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get music genre image by name. + operationId: HeadMusicGenreImageByIndex + parameters: + - name: name + in: path + description: Music genre name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Persons/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get person image by name. + operationId: GetPersonImage + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get person image by name. + operationId: HeadPersonImage + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Persons/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get person image by name. + operationId: GetPersonImageByIndex + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get person image by name. + operationId: HeadPersonImageByIndex + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Studios/{name}/Images/{imageType}: + get: + tags: + - Image + summary: Get studio image by name. + operationId: GetStudioImage + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get studio image by name. + operationId: HeadStudioImage + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Studios/{name}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get studio image by name. + operationId: GetStudioImageByIndex + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get studio image by name. + operationId: HeadStudioImageByIndex + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Users/{userId}/Images/{imageType}: + post: + tags: + - Image + summary: Sets the user image. + operationId: PostUserImage + parameters: + - name: userId + in: path + description: User Id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: (Unused) Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: index + in: query + description: (Unused) Image index. + schema: + type: integer + format: int32 + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image updated. + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Image + summary: Delete the user's image. + operationId: DeleteUserImage + parameters: + - name: userId + in: path + description: User Id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: (Unused) Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: index + in: query + description: (Unused) Image index. + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - Image + summary: Get user profile image. + operationId: GetUserImage + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get user profile image. + operationId: HeadUserImage + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + - name: imageIndex + in: query + description: Image index. + schema: + type: integer + format: int32 + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Users/{userId}/Images/{imageType}/{imageIndex}: + get: + tags: + - Image + summary: Get user profile image. + operationId: GetUserImageByIndex + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + head: + tags: + - Image + summary: Get user profile image. + operationId: HeadUserImageByIndex + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageIndex + in: path + description: Image index. + required: true + schema: + type: integer + format: int32 + - name: tag + in: query + description: Optional. Supply the cache tag from the item object to receive strong caching headers. + schema: + type: string + - name: format + in: query + description: Determines the output format of the image - original,gif,jpg,png. + schema: + allOf: + - $ref: '#/components/schemas/ImageFormat' + - name: maxWidth + in: query + description: The maximum image width to return. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: The maximum image height to return. + schema: + type: integer + format: int32 + - name: percentPlayed + in: query + description: Optional. Percent to render for the percent played overlay. + schema: + type: number + format: double + - name: unplayedCount + in: query + description: Optional. Unplayed count overlay to render. + schema: + type: integer + format: int32 + - name: width + in: query + description: The fixed image width to return. + schema: + type: integer + format: int32 + - name: height + in: query + description: The fixed image height to return. + schema: + type: integer + format: int32 + - name: quality + in: query + description: Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases. + schema: + type: integer + format: int32 + - name: fillWidth + in: query + description: Width of box to fill. + schema: + type: integer + format: int32 + - name: fillHeight + in: query + description: Height of box to fill. + schema: + type: integer + format: int32 + - name: cropWhitespace + in: query + description: Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art. + deprecated: true + schema: + type: boolean + - name: addPlayedIndicator + in: query + description: Optional. Add a played indicator. + schema: + type: boolean + - name: blur + in: query + description: Optional. Blur image. + schema: + type: integer + format: int32 + - name: backgroundColor + in: query + description: Optional. Apply a background color for transparent images. + schema: + type: string + - name: foregroundLayer + in: query + description: Optional. Apply a foreground layer on top of the image. + schema: + type: string + responses: + "200": + description: Image stream returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Users/{userId}/Images/{imageType}/{index}: + post: + tags: + - Image + summary: Sets the user image. + operationId: PostUserImageByIndex + parameters: + - name: userId + in: path + description: User Id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: (Unused) Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: index + in: path + description: (Unused) Image index. + required: true + schema: + type: integer + format: int32 + requestBody: + content: + image/*: + schema: + type: string + format: binary + responses: + "204": + description: Image updated. + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Image + summary: Delete the user's image. + operationId: DeleteUserImageByIndex + parameters: + - name: userId + in: path + description: User Id. + required: true + schema: + type: string + format: uuid + - name: imageType + in: path + description: (Unused) Image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: index + in: path + description: (Unused) Image index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Image deleted. + "403": + description: User does not have permission to delete the image. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Images/General: + get: + tags: + - ImageByName + summary: Get all general images. + operationId: GetGeneralImages + responses: + "200": + description: Retrieved list of images. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Images/General/{name}/{type}: + get: + tags: + - ImageByName + summary: Get General Image. + operationId: GetGeneralImage + parameters: + - name: name + in: path + description: The name of the image. + required: true + schema: + type: string + - name: type + in: path + description: Image Type (primary, backdrop, logo, etc). + required: true + schema: + type: string + responses: + "200": + description: Image stream retrieved. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Image not found. + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Images/MediaInfo: + get: + tags: + - ImageByName + summary: Get all media info images. + operationId: GetMediaInfoImages + responses: + "200": + description: Image list retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Images/MediaInfo/{theme}/{name}: + get: + tags: + - ImageByName + summary: Get media info image. + operationId: GetMediaInfoImage + parameters: + - name: theme + in: path + description: The theme to get the image from. + required: true + schema: + type: string + - name: name + in: path + description: The name of the image. + required: true + schema: + type: string + responses: + "200": + description: Image stream retrieved. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Image not found. + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Images/Ratings: + get: + tags: + - ImageByName + summary: Get all general images. + operationId: GetRatingImages + responses: + "200": + description: Retrieved list of images. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageByNameInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Images/Ratings/{theme}/{name}: + get: + tags: + - ImageByName + summary: Get rating image. + operationId: GetRatingImage + parameters: + - name: theme + in: path + description: The theme to get the image from. + required: true + schema: + type: string + - name: name + in: path + description: The name of the image. + required: true + schema: + type: string + responses: + "200": + description: Image stream retrieved. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Image not found. + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Albums/{id}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given album. + operationId: GetInstantMixFromAlbum + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{id}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given artist. + operationId: GetInstantMixFromArtists + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given artist. + operationId: GetInstantMixFromArtists2 + parameters: + - name: id + in: query + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{id}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given item. + operationId: GetInstantMixFromItem + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/{name}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given genre. + operationId: GetInstantMixFromMusicGenreByName + parameters: + - name: name + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given genre. + operationId: GetInstantMixFromMusicGenreById + parameters: + - name: id + in: query + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{id}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given playlist. + operationId: GetInstantMixFromPlaylist + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Songs/{id}/InstantMix: + get: + tags: + - InstantMix + summary: Creates an instant playlist based on a given song. + operationId: GetInstantMixFromSong + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Instant playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ExternalIdInfos: + get: + tags: + - ItemLookup + summary: Get the item's external id info. + operationId: GetExternalIdInfos + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: External id info retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Apply/{itemId}: + post: + tags: + - ItemLookup + summary: Applies search criteria to an item and refreshes metadata. + operationId: ApplySearchCriteria + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: replaceAllImages + in: query + description: 'Optional. Whether or not to replace all images. Default: True.' + schema: + type: boolean + default: true + requestBody: + description: The remote search result. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + required: true + responses: + "204": + description: Item metadata refreshed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Book: + post: + tags: + - ItemLookup + summary: Get book remote search. + operationId: GetBookRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BookInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Book remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/BoxSet: + post: + tags: + - ItemLookup + summary: Get box set remote search. + operationId: GetBoxSetRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BoxSetInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Box set remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Movie: + post: + tags: + - ItemLookup + summary: Get movie remote search. + operationId: GetMovieRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MovieInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Movie remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicAlbum: + post: + tags: + - ItemLookup + summary: Get music album remote search. + operationId: GetMusicAlbumRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AlbumInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music album remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicArtist: + post: + tags: + - ItemLookup + summary: Get music artist remote search. + operationId: GetMusicArtistRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ArtistInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music artist remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/MusicVideo: + post: + tags: + - ItemLookup + summary: Get music video remote search. + operationId: GetMusicVideoRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MusicVideoInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Music video remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Person: + post: + tags: + - ItemLookup + summary: Get person remote search. + operationId: GetPersonRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PersonLookupInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Person remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Items/RemoteSearch/Series: + post: + tags: + - ItemLookup + summary: Get series remote search. + operationId: GetSeriesRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Series remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/RemoteSearch/Trailer: + post: + tags: + - ItemLookup + summary: Get trailer remote search. + operationId: GetTrailerRemoteSearchResults + requestBody: + description: Remote search query. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TrailerInfoRemoteSearchQuery' + required: true + responses: + "200": + description: Trailer remote search executed. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Refresh: + post: + tags: + - ItemRefresh + summary: Refreshes metadata for an item. + operationId: RefreshItem + parameters: + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: metadataRefreshMode + in: query + description: (Optional) Specifies the metadata refresh mode. + schema: + allOf: + - $ref: '#/components/schemas/MetadataRefreshMode' + default: None + - name: imageRefreshMode + in: query + description: (Optional) Specifies the image refresh mode. + schema: + allOf: + - $ref: '#/components/schemas/MetadataRefreshMode' + default: None + - name: replaceAllMetadata + in: query + description: (Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh. + schema: + type: boolean + default: false + - name: replaceAllImages + in: query + description: (Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh. + schema: + type: boolean + default: false + responses: + "204": + description: Item metadata refresh queued. + "404": + description: Item to refresh not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items: + get: + tags: + - Items + summary: Gets items based on a query. + operationId: GetItems + parameters: + - name: userId + in: query + description: The user id supplied as query parameter. + schema: + type: string + format: uuid + - name: maxOfficialRating + in: query + description: Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: hasThemeSong + in: query + description: Optional filter by items with theme songs. + schema: + type: boolean + - name: hasThemeVideo + in: query + description: Optional filter by items with theme videos. + schema: + type: boolean + - name: hasSubtitles + in: query + description: Optional filter by items with subtitles. + schema: + type: boolean + - name: hasSpecialFeature + in: query + description: Optional filter by items with special features. + schema: + type: boolean + - name: hasTrailer + in: query + description: Optional filter by items with trailers. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + - name: parentIndexNumber + in: query + description: Optional filter by parent index number. + schema: + type: integer + format: int32 + - name: hasParentalRating + in: query + description: Optional filter by items that have or do not have a parental rating. + schema: + type: boolean + - name: isHd + in: query + description: Optional filter by items that are HD or not. + schema: + type: boolean + - name: is4K + in: query + description: Optional filter by items that are 4K or not. + schema: + type: boolean + - name: locationTypes + in: query + description: Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: excludeLocationTypes + in: query + description: Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: isMissing + in: query + description: Optional filter by items that are missing episodes or not. + schema: + type: boolean + - name: isUnaired + in: query + description: Optional filter by items that are unaired episodes or not. + schema: + type: boolean + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: minCriticRating + in: query + description: Optional filter by minimum critic rating. + schema: + type: number + format: double + - name: minPremiereDate + in: query + description: Optional. The minimum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSaved + in: query + description: Optional. The minimum last saved date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSavedForUser + in: query + description: Optional. The minimum last saved date for the current user. Format = ISO. + schema: + type: string + format: date-time + - name: maxPremiereDate + in: query + description: Optional. The maximum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: hasOverview + in: query + description: Optional filter by items that have an overview or not. + schema: + type: boolean + - name: hasImdbId + in: query + description: Optional filter by items that have an imdb id or not. + schema: + type: boolean + - name: hasTmdbId + in: query + description: Optional filter by items that have a tmdb id or not. + schema: + type: boolean + - name: hasTvdbId + in: query + description: Optional filter by items that have a tvdb id or not. + schema: + type: boolean + - name: isMovie + in: query + description: Optional filter for live tv movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for live tv series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for live tv news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for live tv kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for live tv sports. + schema: + type: boolean + - name: excludeItemIds + in: query + description: Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: recursive + in: query + description: When searching within folders, this determines whether or not the search will be recursive. true/false. + schema: + type: boolean + - name: searchTerm + in: query + description: Optional. Filter based on a search term. + schema: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: 'Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: imageTypes + in: query + description: Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + type: string + - name: isPlayed + in: query + description: Optional filter by items that are played, or not. + schema: + type: boolean + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person id. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: artists + in: query + description: Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: excludeArtistIds + in: query + description: Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: artistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albumArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified album artist id. + schema: + type: array + items: + type: string + format: uuid + - name: contributingArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albums + in: query + description: Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: albumIds + in: query + description: Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: ids + in: query + description: Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: videoTypes + in: query + description: Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/VideoType' + - name: minOfficialRating + in: query + description: Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: isLocked + in: query + description: Optional filter by items that are locked. + schema: + type: boolean + - name: isPlaceHolder + in: query + description: Optional filter by items that are placeholders. + schema: + type: boolean + - name: hasOfficialRating + in: query + description: Optional filter by items that have official ratings. + schema: + type: boolean + - name: collapseBoxSetItems + in: query + description: Whether or not to hide items behind their boxsets. + schema: + type: boolean + - name: minWidth + in: query + description: Optional. Filter by the minimum width of the item. + schema: + type: integer + format: int32 + - name: minHeight + in: query + description: Optional. Filter by the minimum height of the item. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. Filter by the maximum width of the item. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. Filter by the maximum height of the item. + schema: + type: integer + format: int32 + - name: is3D + in: query + description: Optional filter by items that are 3D, or not. + schema: + type: boolean + - name: seriesStatus + in: query + description: Optional filter by Series Status. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/SeriesStatus' + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Library + summary: Deletes items from the library and filesystem. + operationId: DeleteItems + parameters: + - name: ids + in: query + description: The item ids. + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Items deleted. + "401": + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items: + get: + tags: + - Items + summary: Gets items based on a query. + operationId: GetItemsByUserId + parameters: + - name: userId + in: path + description: The user id supplied as query parameter. + required: true + schema: + type: string + format: uuid + - name: maxOfficialRating + in: query + description: Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: hasThemeSong + in: query + description: Optional filter by items with theme songs. + schema: + type: boolean + - name: hasThemeVideo + in: query + description: Optional filter by items with theme videos. + schema: + type: boolean + - name: hasSubtitles + in: query + description: Optional filter by items with subtitles. + schema: + type: boolean + - name: hasSpecialFeature + in: query + description: Optional filter by items with special features. + schema: + type: boolean + - name: hasTrailer + in: query + description: Optional filter by items with trailers. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + - name: parentIndexNumber + in: query + description: Optional filter by parent index number. + schema: + type: integer + format: int32 + - name: hasParentalRating + in: query + description: Optional filter by items that have or do not have a parental rating. + schema: + type: boolean + - name: isHd + in: query + description: Optional filter by items that are HD or not. + schema: + type: boolean + - name: is4K + in: query + description: Optional filter by items that are 4K or not. + schema: + type: boolean + - name: locationTypes + in: query + description: Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: excludeLocationTypes + in: query + description: Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: isMissing + in: query + description: Optional filter by items that are missing episodes or not. + schema: + type: boolean + - name: isUnaired + in: query + description: Optional filter by items that are unaired episodes or not. + schema: + type: boolean + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: minCriticRating + in: query + description: Optional filter by minimum critic rating. + schema: + type: number + format: double + - name: minPremiereDate + in: query + description: Optional. The minimum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSaved + in: query + description: Optional. The minimum last saved date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSavedForUser + in: query + description: Optional. The minimum last saved date for the current user. Format = ISO. + schema: + type: string + format: date-time + - name: maxPremiereDate + in: query + description: Optional. The maximum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: hasOverview + in: query + description: Optional filter by items that have an overview or not. + schema: + type: boolean + - name: hasImdbId + in: query + description: Optional filter by items that have an imdb id or not. + schema: + type: boolean + - name: hasTmdbId + in: query + description: Optional filter by items that have a tmdb id or not. + schema: + type: boolean + - name: hasTvdbId + in: query + description: Optional filter by items that have a tvdb id or not. + schema: + type: boolean + - name: isMovie + in: query + description: Optional filter for live tv movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for live tv series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for live tv news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for live tv kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for live tv sports. + schema: + type: boolean + - name: excludeItemIds + in: query + description: Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: recursive + in: query + description: When searching within folders, this determines whether or not the search will be recursive. true/false. + schema: + type: boolean + - name: searchTerm + in: query + description: Optional. Filter based on a search term. + schema: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: 'Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: imageTypes + in: query + description: Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + type: string + - name: isPlayed + in: query + description: Optional filter by items that are played, or not. + schema: + type: boolean + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person id. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: artists + in: query + description: Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: excludeArtistIds + in: query + description: Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: artistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albumArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified album artist id. + schema: + type: array + items: + type: string + format: uuid + - name: contributingArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albums + in: query + description: Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: albumIds + in: query + description: Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: ids + in: query + description: Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: videoTypes + in: query + description: Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/VideoType' + - name: minOfficialRating + in: query + description: Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: isLocked + in: query + description: Optional filter by items that are locked. + schema: + type: boolean + - name: isPlaceHolder + in: query + description: Optional filter by items that are placeholders. + schema: + type: boolean + - name: hasOfficialRating + in: query + description: Optional filter by items that have official ratings. + schema: + type: boolean + - name: collapseBoxSetItems + in: query + description: Whether or not to hide items behind their boxsets. + schema: + type: boolean + - name: minWidth + in: query + description: Optional. Filter by the minimum width of the item. + schema: + type: integer + format: int32 + - name: minHeight + in: query + description: Optional. Filter by the minimum height of the item. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. Filter by the maximum width of the item. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. Filter by the maximum height of the item. + schema: + type: integer + format: int32 + - name: is3D + in: query + description: Optional filter by items that are 3D, or not. + schema: + type: boolean + - name: seriesStatus + in: query + description: Optional filter by Series Status. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/SeriesStatus' + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/Resume: + get: + tags: + - Items + summary: Gets items based on a query. + operationId: GetResumeItems + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + - name: startIndex + in: query + description: The start index. + schema: + type: integer + format: int32 + - name: limit + in: query + description: The item limit. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + default: true + - name: excludeActiveSessions + in: query + description: Optional. Whether to exclude the currently active sessions. + schema: + type: boolean + default: false + responses: + "200": + description: Items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}: + post: + tags: + - ItemUpdate + summary: Updates an item. + operationId: UpdateItem + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The new item properties. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + required: true + responses: + "204": + description: Item updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - Library + summary: Deletes an item from the library and filesystem. + operationId: DeleteItem + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Item deleted. + "401": + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ContentType: + post: + tags: + - ItemUpdate + summary: Updates an item's content type. + operationId: UpdateItemContentType + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: contentType + in: query + description: The content type of the item. + schema: + type: string + responses: + "204": + description: Item content type updated. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items/{itemId}/MetadataEditor: + get: + tags: + - ItemUpdate + summary: Gets metadata editor info for an item. + operationId: GetMetadataEditorInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item metadata editor returned. + content: + application/json: + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/MetadataEditorInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Albums/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarAlbums + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Artists/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarArtists + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Ancestors: + get: + tags: + - Library + summary: Gets all parents of an item. + operationId: GetAncestors + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Item parents returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/CriticReviews: + get: + tags: + - Library + summary: Gets critic review for an item. + operationId: GetCriticReviews + parameters: + - name: itemId + in: path + required: true + schema: + type: string + responses: + "200": + description: Critic reviews returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Download: + get: + tags: + - Library + summary: Downloads item media. + operationId: GetDownload + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Media downloaded. + content: + video/*: + schema: + type: string + format: binary + audio/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - Download + /Items/{itemId}/File: + get: + tags: + - Library + summary: Get the original file of an item. + operationId: GetFile + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: File stream returned. + content: + video/*: + schema: + type: string + format: binary + audio/*: + schema: + type: string + format: binary + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarItems + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeMedia: + get: + tags: + - Library + summary: Get theme songs and videos for an item. + operationId: GetThemeMedia + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + responses: + "200": + description: Theme songs and videos returned. + content: + application/json: + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AllThemeMediaResult' + "404": + description: Item not found. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeSongs: + get: + tags: + - Library + summary: Get theme songs for an item. + operationId: GetThemeSongs + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + responses: + "200": + description: Theme songs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/ThemeVideos: + get: + tags: + - Library + summary: Get theme videos for an item. + operationId: GetThemeVideos + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: inheritFromParent + in: query + description: Optional. Determines whether or not parent items should be searched for theme media. + schema: + type: boolean + default: false + responses: + "200": + description: Theme videos returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ThemeMediaResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/Counts: + get: + tags: + - Library + summary: Get item counts. + operationId: GetItemCounts + parameters: + - name: userId + in: query + description: Optional. Get counts from a specific user's library. + schema: + type: string + format: uuid + - name: isFavorite + in: query + description: Optional. Get counts of favorite items. + schema: + type: boolean + responses: + "200": + description: Item counts returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ItemCounts' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ItemCounts' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ItemCounts' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Libraries/AvailableOptions: + get: + tags: + - Library + summary: Gets the library options info. + operationId: GetLibraryOptionsInfo + parameters: + - name: libraryContentType + in: query + description: Library content type. + schema: + type: string + - name: isNewLibrary + in: query + description: Whether this is a new library. + schema: + type: boolean + default: false + responses: + "200": + description: Library options info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LibraryOptionsResultDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + /Library/Media/Updated: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostUpdatedMedia + requestBody: + description: The update paths. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MediaUpdateInfoDto' + description: Media Update Info Dto. + required: true + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/MediaFolders: + get: + tags: + - Library + summary: Gets all user media folders. + operationId: GetMediaFolders + parameters: + - name: isHidden + in: query + description: Optional. Filter by folders that are marked hidden, or not. + schema: + type: boolean + responses: + "200": + description: Media folders returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Movies/Added: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostAddedMovies + parameters: + - name: tmdbId + in: query + description: The tmdbId. + schema: + type: string + - name: imdbId + in: query + description: The imdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/Movies/Updated: + post: + tags: + - Library + summary: Reports that new movies have been added by an external source. + operationId: PostUpdatedMovies + parameters: + - name: tmdbId + in: query + description: The tmdbId. + schema: + type: string + - name: imdbId + in: query + description: The imdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/PhysicalPaths: + get: + tags: + - Library + summary: Gets a list of physical paths from virtual folders. + operationId: GetPhysicalPaths + responses: + "200": + description: Physical paths returned. + content: + application/json: + schema: + type: array + items: + type: string + application/json; profile="CamelCase": + schema: + type: array + items: + type: string + application/json; profile="PascalCase": + schema: + type: array + items: + type: string + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Refresh: + post: + tags: + - Library + summary: Starts a library scan. + operationId: RefreshLibrary + responses: + "204": + description: Library scan started. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Library/Series/Added: + post: + tags: + - Library + summary: Reports that new episodes of a series have been added by an external source. + operationId: PostAddedSeries + parameters: + - name: tvdbId + in: query + description: The tvdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/Series/Updated: + post: + tags: + - Library + summary: Reports that new episodes of a series have been added by an external source. + operationId: PostUpdatedSeries + parameters: + - name: tvdbId + in: query + description: The tvdbId. + schema: + type: string + responses: + "204": + description: Report success. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Movies/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarMovies + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarShows + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Trailers/{itemId}/Similar: + get: + tags: + - Library + summary: Gets similar items. + operationId: GetSimilarTrailers + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: excludeArtistIds + in: query + description: Exclude artist ids. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + responses: + "200": + description: Similar items returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Library/VirtualFolders: + get: + tags: + - LibraryStructure + summary: Gets all virtual folders. + operationId: GetVirtualFolders + responses: + "200": + description: Virtual folders retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/VirtualFolderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + post: + tags: + - LibraryStructure + summary: Adds a virtual folder. + operationId: AddVirtualFolder + parameters: + - name: name + in: query + description: The name of the virtual folder. + schema: + type: string + - name: collectionType + in: query + description: The type of the collection. + schema: + allOf: + - $ref: '#/components/schemas/CollectionTypeOptions' + - name: paths + in: query + description: The paths of the virtual folder. + schema: + type: array + items: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + requestBody: + description: The library options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AddVirtualFolderDto' + description: Add virtual folder dto. + responses: + "204": + description: Folder added. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + delete: + tags: + - LibraryStructure + summary: Removes a virtual folder. + operationId: RemoveVirtualFolder + parameters: + - name: name + in: query + description: The name of the folder. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Folder removed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Library/VirtualFolders/LibraryOptions: + post: + tags: + - LibraryStructure + summary: Update library options. + operationId: UpdateLibraryOptions + requestBody: + description: The library name and options. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateLibraryOptionsDto' + description: Update library options dto. + responses: + "204": + description: Library updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Library/VirtualFolders/Name: + post: + tags: + - LibraryStructure + summary: Renames a virtual folder. + operationId: RenameVirtualFolder + parameters: + - name: name + in: query + description: The name of the virtual folder. + schema: + type: string + - name: newName + in: query + description: The new name. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Folder renamed. + "404": + description: Library doesn't exist. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: Library already exists. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Library/VirtualFolders/Paths: + post: + tags: + - LibraryStructure + summary: Add a media path to a library. + operationId: AddMediaPath + parameters: + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + requestBody: + description: The media path dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MediaPathDto' + description: Media Path dto. + required: true + responses: + "204": + description: Media path added. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + delete: + tags: + - LibraryStructure + summary: Remove a media path. + operationId: RemoveMediaPath + parameters: + - name: name + in: query + description: The name of the library. + schema: + type: string + - name: path + in: query + description: The path to remove. + schema: + type: string + - name: refreshLibrary + in: query + description: Whether to refresh the library. + schema: + type: boolean + default: false + responses: + "204": + description: Media path removed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Library/VirtualFolders/Paths/Update: + post: + tags: + - LibraryStructure + summary: Updates a media path. + operationId: UpdateMediaPath + requestBody: + description: The name of the library and path infos. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateMediaPathRequestDto' + description: Update library options dto. + required: true + responses: + "204": + description: Media path updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /LiveTv/ChannelMappingOptions: + get: + tags: + - LiveTv + summary: Get channel mapping options. + operationId: GetChannelMappingOptions + parameters: + - name: providerId + in: query + description: Provider id. + schema: + type: string + responses: + "200": + description: Channel mapping options returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ChannelMappingOptionsDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/ChannelMappings: + post: + tags: + - LiveTv + summary: Set channel mappings. + operationId: SetChannelMapping + requestBody: + description: The set channel mapping dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetChannelMappingDto' + description: Set channel mapping dto. + required: true + responses: + "200": + description: Created channel mapping returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TunerChannelMapping' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TunerChannelMapping' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TunerChannelMapping' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Channels: + get: + tags: + - LiveTv + summary: Gets available live tv channels. + operationId: GetLiveTvChannels + parameters: + - name: type + in: query + description: Optional. Filter by channel type. + schema: + allOf: + - $ref: '#/components/schemas/ChannelType' + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: isFavorite + in: query + description: Optional. Filter by channels that are favorites, or not. + schema: + type: boolean + - name: isLiked + in: query + description: Optional. Filter by channels that are liked, or not. + schema: + type: boolean + - name: isDisliked + in: query + description: Optional. Filter by channels that are disliked, or not. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: '"Optional. The image types to include in the output.' + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: sortBy + in: query + description: Optional. Key to sort by. + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Optional. Sort order. + schema: + allOf: + - $ref: '#/components/schemas/SortOrder' + - name: enableFavoriteSorting + in: query + description: Optional. Incorporate favorite and like status into channel sorting. + schema: + type: boolean + default: false + - name: addCurrentProgram + in: query + description: Optional. Adds current program info to each channel. + schema: + type: boolean + default: true + responses: + "200": + description: Available live tv channels returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Channels/{channelId}: + get: + tags: + - LiveTv + summary: Gets a live tv channel. + operationId: GetChannel + parameters: + - name: channelId + in: path + description: Channel id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Live tv channel returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/GuideInfo: + get: + tags: + - LiveTv + summary: Get guid info. + operationId: GetGuideInfo + responses: + "200": + description: Guid info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/GuideInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/GuideInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/GuideInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Info: + get: + tags: + - LiveTv + summary: Gets available live tv services. + operationId: GetLiveTvInfo + responses: + "200": + description: Available live tv services returned. + content: + application/json: + schema: + $ref: '#/components/schemas/LiveTvInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LiveTvInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LiveTvInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/ListingProviders: + post: + tags: + - LiveTv + summary: Adds a listings provider. + operationId: AddListingProvider + parameters: + - name: pw + in: query + description: Password. + schema: + type: string + - name: validateListings + in: query + description: Validate listings. + schema: + type: boolean + default: false + - name: validateLogin + in: query + description: Validate login. + schema: + type: boolean + default: false + requestBody: + description: New listings info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ListingsProviderInfo' + responses: + "200": + description: Created listings provider returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + delete: + tags: + - LiveTv + summary: Delete listing provider. + operationId: DeleteListingProvider + parameters: + - name: id + in: query + description: Listing provider id. + schema: + type: string + responses: + "204": + description: Listing provider deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/ListingProviders/Default: + get: + tags: + - LiveTv + summary: Gets default listings provider info. + operationId: GetDefaultListingProvider + responses: + "200": + description: Default listings provider info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ListingsProviderInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/ListingProviders/Lineups: + get: + tags: + - LiveTv + summary: Gets available lineups. + operationId: GetLineups + parameters: + - name: id + in: query + description: Provider id. + schema: + type: string + - name: type + in: query + description: Provider type. + schema: + type: string + - name: location + in: query + description: Location. + schema: + type: string + - name: country + in: query + description: Country. + schema: + type: string + responses: + "200": + description: Available lineups returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/ListingProviders/SchedulesDirect/Countries: + get: + tags: + - LiveTv + summary: Gets available countries. + operationId: GetSchedulesDirectCountries + responses: + "200": + description: Available countries returned. + content: + application/json: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/LiveRecordings/{recordingId}/stream: + get: + tags: + - LiveTv + summary: Gets a live tv recording stream. + operationId: GetLiveRecordingFile + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + responses: + "200": + description: Recording stream returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Recording not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /LiveTv/LiveStreamFiles/{streamId}/stream.{container}: + get: + tags: + - LiveTv + summary: Gets a live tv channel stream. + operationId: GetLiveStreamFile + parameters: + - name: streamId + in: path + description: Stream id. + required: true + schema: + type: string + - name: container + in: path + description: Container type. + required: true + schema: + type: string + responses: + "200": + description: Stream returned. + content: + video/*: + schema: + type: string + format: binary + "404": + description: Stream not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /LiveTv/Programs: + get: + tags: + - LiveTv + summary: Gets available live tv epgs. + operationId: GetLiveTvPrograms + parameters: + - name: channelIds + in: query + description: The channels to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id. + schema: + type: string + format: uuid + - name: minStartDate + in: query + description: Optional. The minimum premiere start date. + schema: + type: string + format: date-time + - name: hasAired + in: query + description: Optional. Filter by programs that have completed airing, or not. + schema: + type: boolean + - name: isAiring + in: query + description: Optional. Filter by programs that are currently airing, or not. + schema: + type: boolean + - name: maxStartDate + in: query + description: Optional. The maximum premiere start date. + schema: + type: string + format: date-time + - name: minEndDate + in: query + description: Optional. The minimum premiere end date. + schema: + type: string + format: date-time + - name: maxEndDate + in: query + description: Optional. The maximum premiere end date. + schema: + type: string + format: date-time + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.' + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: genres + in: query + description: The genres to return guide information for. + schema: + type: array + items: + type: string + - name: genreIds + in: query + description: The genre ids to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by series timer id. + schema: + type: string + - name: librarySeriesId + in: query + description: Optional. Filter by library series id. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableTotalRecordCount + in: query + description: Retrieve total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + post: + tags: + - LiveTv + summary: Gets available live tv epgs. + operationId: GetPrograms + requestBody: + description: Request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/GetProgramsDto' + description: Get programs dto. + responses: + "200": + description: Live tv epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Programs/{programId}: + get: + tags: + - LiveTv + summary: Gets a live tv program. + operationId: GetProgram + parameters: + - name: programId + in: path + description: Program id. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Program returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Programs/Recommended: + get: + tags: + - LiveTv + summary: Gets recommended live tv epgs. + operationId: GetRecommendedPrograms + parameters: + - name: userId + in: query + description: Optional. filter by user id. + schema: + type: string + format: uuid + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: isAiring + in: query + description: Optional. Filter by programs that are currently airing, or not. + schema: + type: boolean + - name: hasAired + in: query + description: Optional. Filter by programs that have completed airing, or not. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: genreIds + in: query + description: The genres to return guide information for. + schema: + type: array + items: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. include user data. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Retrieve total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Recommended epgs returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Recordings: + get: + tags: + - LiveTv + summary: Gets live tv recordings. + operationId: GetRecordings + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: status + in: query + description: Optional. Filter by recording status. + schema: + allOf: + - $ref: '#/components/schemas/RecordingStatus' + - name: isInProgress + in: query + description: Optional. Filter by recordings that are in progress, or not. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by recordings belonging to a series timer. + schema: + type: string + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: isMovie + in: query + description: Optional. Filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional. Filter for series. + schema: + type: boolean + - name: isKids + in: query + description: Optional. Filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional. Filter for sports. + schema: + type: boolean + - name: isNews + in: query + description: Optional. Filter for news. + schema: + type: boolean + - name: isLibraryItem + in: query + description: Optional. Filter for is library item. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Optional. Return total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv recordings returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Recordings/{recordingId}: + get: + tags: + - LiveTv + summary: Gets a live tv recording. + operationId: GetRecording + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + delete: + tags: + - LiveTv + summary: Deletes a live tv recording. + operationId: DeleteRecording + parameters: + - name: recordingId + in: path + description: Recording id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Recording deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Recordings/Folders: + get: + tags: + - LiveTv + summary: Gets recording folders. + operationId: GetRecordingFolders + parameters: + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording folders returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Recordings/Groups: + get: + tags: + - LiveTv + summary: Gets live tv recording groups. + operationId: GetRecordingGroups + parameters: + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Recording groups returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Recordings/Groups/{groupId}: + get: + tags: + - LiveTv + summary: Get recording group. + operationId: GetRecordingGroup + parameters: + - name: groupId + in: path + description: Group id. + required: true + schema: + type: string + format: uuid + responses: + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Recordings/Series: + get: + tags: + - LiveTv + summary: Gets live tv recording series. + operationId: GetRecordingsSeries + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user and attach user data. + schema: + type: string + format: uuid + - name: groupId + in: query + description: Optional. Filter by recording group. + schema: + type: string + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: status + in: query + description: Optional. Filter by recording status. + schema: + allOf: + - $ref: '#/components/schemas/RecordingStatus' + - name: isInProgress + in: query + description: Optional. Filter by recordings that are in progress, or not. + schema: + type: boolean + - name: seriesTimerId + in: query + description: Optional. Filter by recordings belonging to a series timer. + schema: + type: string + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: enableTotalRecordCount + in: query + description: Optional. Return total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Live tv recordings returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/SeriesTimers: + get: + tags: + - LiveTv + summary: Gets live tv series timers. + operationId: GetSeriesTimers + parameters: + - name: sortBy + in: query + description: Optional. Sort by SortName or Priority. + schema: + type: string + - name: sortOrder + in: query + description: Optional. Sort in Ascending or Descending order. + schema: + allOf: + - $ref: '#/components/schemas/SortOrder' + responses: + "200": + description: Timers returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + post: + tags: + - LiveTv + summary: Creates a live tv series timer. + operationId: CreateSeriesTimer + requestBody: + description: New series timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + responses: + "204": + description: Series timer info created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/SeriesTimers/{timerId}: + get: + tags: + - LiveTv + summary: Gets a live tv series timer. + operationId: GetSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "200": + description: Series timer returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + "404": + description: Series timer not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + delete: + tags: + - LiveTv + summary: Cancels a live tv series timer. + operationId: CancelSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "204": + description: Timer cancelled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + post: + tags: + - LiveTv + summary: Updates a live tv series timer. + operationId: UpdateSeriesTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + requestBody: + description: New series timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Class SeriesTimerInfoDto. + responses: + "204": + description: Series timer updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Timers: + get: + tags: + - LiveTv + summary: Gets the live tv timers. + operationId: GetTimers + parameters: + - name: channelId + in: query + description: Optional. Filter by channel id. + schema: + type: string + - name: seriesTimerId + in: query + description: Optional. Filter by timers belonging to a series timer. + schema: + type: string + - name: isActive + in: query + description: Optional. Filter by timers that are active. + schema: + type: boolean + - name: isScheduled + in: query + description: Optional. Filter by timers that are scheduled. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TimerInfoDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + post: + tags: + - LiveTv + summary: Creates a live tv timer. + operationId: CreateTimer + requestBody: + description: New timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + responses: + "204": + description: Timer created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Timers/{timerId}: + get: + tags: + - LiveTv + summary: Gets a timer. + operationId: GetTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "200": + description: Timer returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TimerInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + delete: + tags: + - LiveTv + summary: Cancels a live tv timer. + operationId: CancelTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + responses: + "204": + description: Timer deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + post: + tags: + - LiveTv + summary: Updates a live tv timer. + operationId: UpdateTimer + parameters: + - name: timerId + in: path + description: Timer id. + required: true + schema: + type: string + requestBody: + description: New timer info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TimerInfoDto' + responses: + "204": + description: Timer updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Timers/Defaults: + get: + tags: + - LiveTv + summary: Gets the default values for a new timer. + operationId: GetDefaultTimer + parameters: + - name: programId + in: query + description: Optional. To attach default values based on a program. + schema: + type: string + responses: + "200": + description: Default values returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SeriesTimerInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/TunerHosts: + post: + tags: + - LiveTv + summary: Adds a tuner host. + operationId: AddTunerHost + requestBody: + description: New tuner host. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/TunerHostInfo' + responses: + "200": + description: Created tuner host returned. + content: + application/json: + schema: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + delete: + tags: + - LiveTv + summary: Deletes a tuner host. + operationId: DeleteTunerHost + parameters: + - name: id + in: query + description: Tuner host id. + schema: + type: string + responses: + "204": + description: Tuner host deleted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/TunerHosts/Types: + get: + tags: + - LiveTv + summary: Get tuner host types. + operationId: GetTunerHostTypes + responses: + "200": + description: Tuner host types returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvAccess + /LiveTv/Tuners/{tunerId}/Reset: + post: + tags: + - LiveTv + summary: Resets a tv tuner. + operationId: ResetTuner + parameters: + - name: tunerId + in: path + description: Tuner id. + required: true + schema: + type: string + responses: + "204": + description: Tuner reset. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Tuners/Discover: + get: + tags: + - LiveTv + summary: Discover tuners. + operationId: DiscoverTuners + parameters: + - name: newDevicesOnly + in: query + description: Only discover new tuners. + schema: + type: boolean + default: false + responses: + "200": + description: Tuners returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /LiveTv/Tuners/Discvover: + get: + tags: + - LiveTv + summary: Discover tuners. + operationId: DiscvoverTuners + parameters: + - name: newDevicesOnly + in: query + description: Only discover new tuners. + schema: + type: boolean + default: false + responses: + "200": + description: Tuners returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LiveTvManagement + /Localization/Countries: + get: + tags: + - Localization + summary: Gets known countries. + operationId: GetCountries + responses: + "200": + description: Known countries returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + /Localization/Cultures: + get: + tags: + - Localization + summary: Gets known cultures. + operationId: GetCultures + responses: + "200": + description: Known cultures returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/CultureDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + /Localization/Options: + get: + tags: + - Localization + summary: Gets localization options. + operationId: GetLocalizationOptions + responses: + "200": + description: Localization options returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/LocalizationOption' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + /Localization/ParentalRatings: + get: + tags: + - Localization + summary: Gets known parental ratings. + operationId: GetParentalRatings + responses: + "200": + description: Known parental ratings returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrDefault + /Items/{itemId}/PlaybackInfo: + get: + tags: + - MediaInfo + summary: Gets live playback media info for an item. + operationId: GetPlaybackInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Playback info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - MediaInfo + summary: Gets live playback media info for an item. + description: "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete." + operationId: GetPostedPlaybackInfo + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + deprecated: true + schema: + type: string + format: uuid + - name: maxStreamingBitrate + in: query + description: The maximum streaming bitrate. + deprecated: true + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: The start time in ticks. + deprecated: true + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: The maximum number of audio channels. + deprecated: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: liveStreamId + in: query + description: The livestream id. + deprecated: true + schema: + type: string + - name: autoOpenLiveStream + in: query + description: Whether to auto open the livestream. + deprecated: true + schema: + type: boolean + - name: enableDirectPlay + in: query + description: 'Whether to enable direct play. Default: true.' + deprecated: true + schema: + type: boolean + - name: enableDirectStream + in: query + description: 'Whether to enable direct stream. Default: true.' + deprecated: true + schema: + type: boolean + - name: enableTranscoding + in: query + description: 'Whether to enable transcoding. Default: true.' + deprecated: true + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: 'Whether to allow to copy the video stream. Default: true.' + deprecated: true + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: 'Whether to allow to copy the audio stream. Default: true.' + deprecated: true + schema: + type: boolean + requestBody: + description: The playback info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackInfoDto' + description: Plabyback info dto. + responses: + "200": + description: Playback info returned. + content: + application/json: + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaybackInfoResponse' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /LiveStreams/Close: + post: + tags: + - MediaInfo + summary: Closes a media source. + operationId: CloseLiveStream + parameters: + - name: liveStreamId + in: query + description: The livestream id. + required: true + schema: + type: string + responses: + "204": + description: Livestream closed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /LiveStreams/Open: + post: + tags: + - MediaInfo + summary: Opens a media source. + operationId: OpenLiveStream + parameters: + - name: openToken + in: query + description: The open token. + schema: + type: string + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: maxStreamingBitrate + in: query + description: The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: The start time in ticks. + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: itemId + in: query + description: The item id. + schema: + type: string + format: uuid + - name: enableDirectPlay + in: query + description: 'Whether to enable direct play. Default: true.' + schema: + type: boolean + - name: enableDirectStream + in: query + description: 'Whether to enable direct stream. Default: true.' + schema: + type: boolean + requestBody: + description: The open live stream dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/OpenLiveStreamDto' + description: Open live stream dto. + responses: + "200": + description: Media source opened. + content: + application/json: + schema: + $ref: '#/components/schemas/LiveStreamResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/LiveStreamResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/LiveStreamResponse' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playback/BitrateTest: + get: + tags: + - MediaInfo + summary: Tests the network with a request with the size of the bitrate. + operationId: GetBitrateTestBytes + parameters: + - name: size + in: query + description: The bitrate. Defaults to 102400. + schema: + maximum: 100000000 + minimum: 1 + type: integer + format: int32 + default: 102400 + responses: + "200": + description: Test buffer returned. + content: + application/octet-stream: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Movies/Recommendations: + get: + tags: + - Movies + summary: Gets movie recommendations. + operationId: GetMovieRecommendations + parameters: + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. The fields to return. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: categoryLimit + in: query + description: The max number of categories to return. + schema: + type: integer + format: int32 + default: 5 + - name: itemLimit + in: query + description: The max number of items to return per category. + schema: + type: integer + format: int32 + default: 8 + responses: + "200": + description: Movie recommendations returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RecommendationDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres: + get: + tags: + - MusicGenres + summary: Gets all music genres from a given item, folder, or the entire library. + operationId: GetMusicGenres + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: sortBy + in: query + description: Optional. Specify one or more sort orders, comma delimited. + schema: + type: array + items: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Optional. Include total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Music genres returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /MusicGenres/{genreName}: + get: + tags: + - MusicGenres + summary: Gets a music genre, by name. + operationId: GetMusicGenre + parameters: + - name: genreName + in: path + description: The genre name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/{userId}: + get: + tags: + - Notifications + summary: Gets a user's notifications. + operationId: GetNotifications + parameters: + - name: userId + in: path + required: true + schema: + type: string + responses: + "200": + description: Notifications returned. + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationResultDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/NotificationResultDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/NotificationResultDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/{userId}/Read: + post: + tags: + - Notifications + summary: Sets notifications as read. + operationId: SetRead + parameters: + - name: userId + in: path + required: true + schema: + type: string + responses: + "204": + description: Notifications set as read. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/{userId}/Summary: + get: + tags: + - Notifications + summary: Gets a user's notification summary. + operationId: GetNotificationsSummary + parameters: + - name: userId + in: path + required: true + schema: + type: string + responses: + "200": + description: Summary of user's notifications returned. + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationsSummaryDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/NotificationsSummaryDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/NotificationsSummaryDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/{userId}/Unread: + post: + tags: + - Notifications + summary: Sets notifications as unread. + operationId: SetUnread + parameters: + - name: userId + in: path + required: true + schema: + type: string + responses: + "204": + description: Notifications set as unread. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/Admin: + post: + tags: + - Notifications + summary: Sends a notification to all admins. + operationId: CreateAdminNotification + requestBody: + description: The notification request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AdminNotificationDto' + description: The admin notification dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AdminNotificationDto' + description: The admin notification dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AdminNotificationDto' + description: The admin notification dto. + required: true + responses: + "204": + description: Notification sent. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/Services: + get: + tags: + - Notifications + summary: Gets notification services. + operationId: GetNotificationServices + responses: + "200": + description: All notification services returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Notifications/Types: + get: + tags: + - Notifications + summary: Gets notification types. + operationId: GetNotificationTypes + responses: + "200": + description: All notification types returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationTypeInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NotificationTypeInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NotificationTypeInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Packages: + get: + tags: + - Package + summary: Gets available packages. + operationId: GetPackages + responses: + "200": + description: Available packages returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/PackageInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Packages/{name}: + get: + tags: + - Package + summary: Gets a package by name or assembly GUID. + operationId: GetPackageInfo + parameters: + - name: name + in: path + description: The name of the package. + required: true + schema: + type: string + - name: assemblyGuid + in: query + description: The GUID of the associated assembly. + schema: + type: string + format: uuid + responses: + "200": + description: Package retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PackageInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PackageInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Packages/Installed/{name}: + post: + tags: + - Package + summary: Installs a package. + operationId: InstallPackage + parameters: + - name: name + in: path + description: Package name. + required: true + schema: + type: string + - name: assemblyGuid + in: query + description: GUID of the associated assembly. + schema: + type: string + format: uuid + - name: version + in: query + description: Optional version. Defaults to latest version. + schema: + type: string + - name: repositoryUrl + in: query + description: Optional. Specify the repository to install from. + schema: + type: string + responses: + "204": + description: Package found. + "404": + description: Package not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Packages/Installing/{packageId}: + delete: + tags: + - Package + summary: Cancels a package installation. + operationId: CancelPackageInstallation + parameters: + - name: packageId + in: path + description: Installation Id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Installation cancelled. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Repositories: + get: + tags: + - Package + summary: Gets all package repositories. + operationId: GetRepositories + responses: + "200": + description: Package repositories returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Package + summary: Sets the enabled and existing package repositories. + operationId: SetRepositories + requestBody: + description: The list of package repositories. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + text/json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + application/*+json: + schema: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + required: true + responses: + "204": + description: Package repositories saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Persons: + get: + tags: + - Persons + summary: Gets all persons. + operationId: GetPersons + parameters: + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: The search term. + schema: + type: string + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: filters + in: query + description: Optional. Specify additional filters to apply. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. userId is required. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: excludePersonTypes + in: query + description: Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: personTypes + in: query + description: Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: appearsInItemId + in: query + description: Optional. If specified, person results will be filtered on items related to said persons. + schema: + type: string + format: uuid + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Persons returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Persons/{name}: + get: + tags: + - Persons + summary: Get person by name. + operationId: GetPerson + parameters: + - name: name + in: path + description: Person name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Person returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Person not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists: + post: + tags: + - Playlists + summary: Creates a new playlist. + description: "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete." + operationId: CreatePlaylist + parameters: + - name: name + in: query + description: The playlist name. + deprecated: true + schema: + type: string + - name: ids + in: query + description: The item ids. + deprecated: true + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: The user id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaType + in: query + description: The media type. + deprecated: true + schema: + type: string + requestBody: + description: The create playlist payload. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/CreatePlaylistDto' + description: Create new playlist dto. + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PlaylistCreationResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Items: + post: + tags: + - Playlists + summary: Adds items to a playlist. + operationId: AddToPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: ids + in: query + description: Item id, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: userId + in: query + description: The userId. + schema: + type: string + format: uuid + responses: + "204": + description: Items added to playlist. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playlists + summary: Removes items from a playlist. + operationId: RemoveFromPlaylist + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: entryIds + in: query + description: The item ids, comma delimited. + schema: + type: array + items: + type: string + responses: + "204": + description: Items removed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + get: + tags: + - Playlists + summary: Gets the original items of a playlist. + operationId: GetPlaylistItems + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: User id. + required: true + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + responses: + "200": + description: Original playlist returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Playlist not found. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}: + post: + tags: + - Playlists + summary: Moves a playlist item. + operationId: MoveItem + parameters: + - name: playlistId + in: path + description: The playlist id. + required: true + schema: + type: string + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + - name: newIndex + in: path + description: The new index. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Item moved to new index. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing: + post: + tags: + - Playstate + summary: Reports playback has started within a session. + operationId: ReportPlaybackStart + requestBody: + description: The playback start info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStartInfo' + description: Class PlaybackStartInfo. + responses: + "204": + description: Playback start recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Ping: + post: + tags: + - Playstate + summary: Pings a playback session. + operationId: PingPlaybackSession + parameters: + - name: playSessionId + in: query + description: Playback session id. + required: true + schema: + type: string + responses: + "204": + description: Playback session pinged. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Progress: + post: + tags: + - Playstate + summary: Reports playback progress within a session. + operationId: ReportPlaybackProgress + requestBody: + description: The playback progress info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackProgressInfo' + description: Class PlaybackProgressInfo. + responses: + "204": + description: Playback progress recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Playing/Stopped: + post: + tags: + - Playstate + summary: Reports playback has stopped within a session. + operationId: ReportPlaybackStopped + requestBody: + description: The playback stop info. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlaybackStopInfo' + description: Class PlaybackStopInfo. + responses: + "204": + description: Playback stop recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/PlayedItems/{itemId}: + post: + tags: + - Playstate + summary: Marks an item as played for user. + operationId: MarkPlayedItem + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: datePlayed + in: query + description: Optional. The date the item was played. + schema: + type: string + format: date-time + responses: + "200": + description: Item marked as played. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playstate + summary: Marks an item as unplayed for user. + operationId: MarkUnplayedItem + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item marked as unplayed. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/PlayingItems/{itemId}: + post: + tags: + - Playstate + summary: Reports that a user has begun playing an item. + operationId: OnPlaybackStart + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: playMethod + in: query + description: The play method. + schema: + allOf: + - $ref: '#/components/schemas/PlayMethod' + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: canSeek + in: query + description: Indicates if the client can seek. + schema: + type: boolean + default: false + responses: + "204": + description: Play start recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Playstate + summary: Reports that a user has stopped playing an item. + operationId: OnPlaybackStopped + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: nextMediaType + in: query + description: The next media type that will play. + schema: + type: string + - name: positionTicks + in: query + description: Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + responses: + "204": + description: Playback stop recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/PlayingItems/{itemId}/Progress: + post: + tags: + - Playstate + summary: Reports a user's playback progress. + operationId: OnPlaybackProgress + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The id of the MediaSource. + schema: + type: string + - name: positionTicks + in: query + description: Optional. The current position, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: audioStreamIndex + in: query + description: The audio stream index. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: The subtitle stream index. + schema: + type: integer + format: int32 + - name: volumeLevel + in: query + description: Scale of 0-100. + schema: + type: integer + format: int32 + - name: playMethod + in: query + description: The play method. + schema: + allOf: + - $ref: '#/components/schemas/PlayMethod' + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: repeatMode + in: query + description: The repeat mode. + schema: + allOf: + - $ref: '#/components/schemas/RepeatMode' + - name: isPaused + in: query + description: Indicates if the player is paused. + schema: + type: boolean + default: false + - name: isMuted + in: query + description: Indicates if the player is muted. + schema: + type: boolean + default: false + responses: + "204": + description: Play progress recorded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Plugins: + get: + tags: + - Plugins + summary: Gets a list of currently installed plugins. + operationId: GetPlugins + responses: + "200": + description: Installed plugins returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/PluginInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Plugins/{pluginId}: + delete: + tags: + - Plugins + summary: Uninstalls a plugin. + operationId: UninstallPlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin uninstalled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Plugins/{pluginId}/{version}: + delete: + tags: + - Plugins + summary: Uninstalls a plugin by version. + operationId: UninstallPluginByVersion + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin uninstalled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Plugins/{pluginId}/{version}/Disable: + post: + tags: + - Plugins + summary: Disable a plugin. + operationId: DisablePlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin disabled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Plugins/{pluginId}/{version}/Enable: + post: + tags: + - Plugins + summary: Enables a disabled plugin. + operationId: EnablePlugin + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "204": + description: Plugin enabled. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + - DefaultAuthorization + /Plugins/{pluginId}/{version}/Image: + get: + tags: + - Plugins + summary: Gets a plugin's image. + operationId: GetPluginImage + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + - name: version + in: path + description: Plugin version. + required: true + schema: + type: string + responses: + "200": + description: Plugin image returned. + content: + image/*: + schema: + type: string + format: binary + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Plugins/{pluginId}/Configuration: + get: + tags: + - Plugins + summary: Gets plugin configuration. + operationId: GetPluginConfiguration + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Plugin configuration returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BasePluginConfiguration' + "404": + description: Plugin not found or plugin configuration not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - Plugins + summary: Updates plugin configuration. + description: Accepts plugin configuration as JSON body. + operationId: UpdatePluginConfiguration + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin configuration updated. + "404": + description: Plugin not found or plugin does not have configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Plugins/{pluginId}/Manifest: + post: + tags: + - Plugins + summary: Gets a plugin's manifest. + operationId: GetPluginManifest + parameters: + - name: pluginId + in: path + description: Plugin id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Plugin manifest returned. + "404": + description: Plugin not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /QuickConnect/Authorize: + post: + tags: + - QuickConnect + summary: Authorizes a pending quick connect request. + operationId: Authorize + parameters: + - name: code + in: query + description: Quick connect code to authorize. + required: true + schema: + type: string + responses: + "200": + description: Quick connect result authorized successfully. + content: + application/json: + schema: + type: boolean + application/json; profile="CamelCase": + schema: + type: boolean + application/json; profile="PascalCase": + schema: + type: boolean + "403": + description: Unknown user id. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /QuickConnect/Connect: + get: + tags: + - QuickConnect + summary: Attempts to retrieve authentication information. + operationId: Connect + parameters: + - name: secret + in: query + description: Secret previously returned from the Initiate endpoint. + required: true + schema: + type: string + responses: + "200": + description: Quick connect result returned. + content: + application/json: + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + "404": + description: Unknown quick connect secret. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /QuickConnect/Enabled: + get: + tags: + - QuickConnect + summary: Gets the current quick connect state. + operationId: GetEnabled + responses: + "200": + description: Quick connect state returned. + content: + application/json: + schema: + type: boolean + application/json; profile="CamelCase": + schema: + type: boolean + application/json; profile="PascalCase": + schema: + type: boolean + /QuickConnect/Initiate: + get: + tags: + - QuickConnect + summary: Initiate a new quick connect request. + operationId: Initiate + responses: + "200": + description: Quick connect request successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/QuickConnectResult' + "401": + description: Quick connect is not active on this server. + /Items/{itemId}/RemoteImages: + get: + tags: + - RemoteImage + summary: Gets available remote images for an item. + operationId: GetRemoteImages + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + - name: type + in: query + description: The image type. + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: providerName + in: query + description: Optional. The image provider to use. + schema: + type: string + - name: includeAllLanguages + in: query + description: Optional. Include all languages. + schema: + type: boolean + default: false + responses: + "200": + description: Remote Images returned. + content: + application/json: + schema: + $ref: '#/components/schemas/RemoteImageResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/RemoteImageResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/RemoteImageResult' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/RemoteImages/Download: + post: + tags: + - RemoteImage + summary: Downloads a remote image for an item. + operationId: DownloadRemoteImage + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + - name: type + in: query + description: The image type. + required: true + schema: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Enum ImageType. + - name: imageUrl + in: query + description: The image url. + schema: + type: string + responses: + "204": + description: Remote image downloaded. + "404": + description: Remote image not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Items/{itemId}/RemoteImages/Providers: + get: + tags: + - RemoteImage + summary: Gets available remote image providers for an item. + operationId: GetRemoteImageProviders + parameters: + - name: itemId + in: path + description: Item Id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Returned remote image providers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/ImageProviderInfo' + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /ScheduledTasks: + get: + tags: + - ScheduledTasks + summary: Get tasks. + operationId: GetTasks + parameters: + - name: isHidden + in: query + description: Optional filter tasks that are hidden, or not. + schema: + type: boolean + - name: isEnabled + in: query + description: Optional filter tasks that are enabled, or not. + schema: + type: boolean + responses: + "200": + description: Scheduled tasks retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/TaskInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/{taskId}: + get: + tags: + - ScheduledTasks + summary: Get task by id. + operationId: GetTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "200": + description: Task retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/TaskInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/TaskInfo' + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/{taskId}/Triggers: + post: + tags: + - ScheduledTasks + summary: Update specified task triggers. + operationId: UpdateTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + requestBody: + description: Triggers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + text/json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + application/*+json: + schema: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + required: true + responses: + "204": + description: Task triggers updated. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /ScheduledTasks/Running/{taskId}: + post: + tags: + - ScheduledTasks + summary: Start specified task. + operationId: StartTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "204": + description: Task started. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + delete: + tags: + - ScheduledTasks + summary: Stop specified task. + operationId: StopTask + parameters: + - name: taskId + in: path + description: Task Id. + required: true + schema: + type: string + responses: + "204": + description: Task stopped. + "404": + description: Task not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Search/Hints: + get: + tags: + - Search + summary: Gets the search hint result. + operationId: Get + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: userId + in: query + description: Optional. Supply a user id to search within a user's library or omit to search all. + schema: + type: string + format: uuid + - name: searchTerm + in: query + description: The search term to filter on. + required: true + schema: + type: string + - name: includeItemTypes + in: query + description: If specified, only results with the specified item types are returned. This allows multiple, comma delimeted. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: excludeItemTypes + in: query + description: If specified, results with these item types are filtered out. This allows multiple, comma delimeted. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: If specified, only results with the specified media types are returned. This allows multiple, comma delimeted. + schema: + type: array + items: + type: string + - name: parentId + in: query + description: If specified, only children of the parent are returned. + schema: + type: string + format: uuid + - name: isMovie + in: query + description: Optional filter for movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for sports. + schema: + type: boolean + - name: includePeople + in: query + description: Optional filter whether to include people. + schema: + type: boolean + default: true + - name: includeMedia + in: query + description: Optional filter whether to include media. + schema: + type: boolean + default: true + - name: includeGenres + in: query + description: Optional filter whether to include genres. + schema: + type: boolean + default: true + - name: includeStudios + in: query + description: Optional filter whether to include studios. + schema: + type: boolean + default: true + - name: includeArtists + in: query + description: Optional filter whether to include artists. + schema: + type: boolean + default: true + responses: + "200": + description: Search hint returned. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchHintResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SearchHintResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SearchHintResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Auth/PasswordResetProviders: + get: + tags: + - Session + summary: Get all password reset providers. + operationId: GetPasswordResetProviders + responses: + "200": + description: Password reset providers retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Auth/Providers: + get: + tags: + - Session + summary: Get all auth providers. + operationId: GetAuthProviders + responses: + "200": + description: Auth providers retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Sessions: + get: + tags: + - Session + summary: Gets a list of sessions. + operationId: GetSessions + parameters: + - name: controllableByUserId + in: query + description: Filter by sessions that a given user is allowed to remote control. + schema: + type: string + format: uuid + - name: deviceId + in: query + description: Filter by device Id. + schema: + type: string + - name: activeWithinSeconds + in: query + description: Optional. Filter by sessions that were active in the last n seconds. + schema: + type: integer + format: int32 + responses: + "200": + description: List of sessions returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/SessionInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Command: + post: + tags: + - Session + summary: Issues a full general command to a client. + operationId: SendFullGeneralCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.GeneralCommand. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommand' + required: true + responses: + "204": + description: Full general command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Command/{command}: + post: + tags: + - Session + summary: Issues a general command to a client. + operationId: SendGeneralCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The command to send. + required: true + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + responses: + "204": + description: General command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Message: + post: + tags: + - Session + summary: Issues a command to a client to display a message to the user. + operationId: SendMessageCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MessageCommand' + required: true + responses: + "204": + description: Message sent. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Playing: + post: + tags: + - Session + summary: Instructs a session to play an item. + operationId: Play + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: playCommand + in: query + description: The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now. + required: true + schema: + allOf: + - $ref: '#/components/schemas/PlayCommand' + description: Enum PlayCommand. + - name: itemIds + in: query + description: The ids of the items to play, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + - name: startPositionTicks + in: query + description: The starting position of the first item. + schema: + type: integer + format: int64 + - name: mediaSourceId + in: query + description: Optional. The media source id. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to play. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to play. + schema: + type: integer + format: int32 + - name: startIndex + in: query + description: Optional. The start index. + schema: + type: integer + format: int32 + responses: + "204": + description: Instruction sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Playing/{command}: + post: + tags: + - Session + summary: Issues a playstate command to a client. + operationId: SendPlaystateCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The MediaBrowser.Model.Session.PlaystateCommand. + required: true + schema: + allOf: + - $ref: '#/components/schemas/PlaystateCommand' + description: Enum PlaystateCommand. + - name: seekPositionTicks + in: query + description: The optional position ticks. + schema: + type: integer + format: int64 + - name: controllingUserId + in: query + description: The optional controlling user id. + schema: + type: string + responses: + "204": + description: Playstate command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/System/{command}: + post: + tags: + - Session + summary: Issues a system command to a client. + operationId: SendSystemCommand + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: command + in: path + description: The command to send. + required: true + schema: + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + responses: + "204": + description: System command sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/User/{userId}: + post: + tags: + - Session + summary: Adds an additional user to a session. + operationId: AddUserToSession + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User added to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - Session + summary: Removes an additional user from a session. + operationId: RemoveUserFromSession + parameters: + - name: sessionId + in: path + description: The session id. + required: true + schema: + type: string + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User removed from session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/{sessionId}/Viewing: + post: + tags: + - Session + summary: Instructs a session to browse to an item or view. + operationId: DisplayContent + parameters: + - name: sessionId + in: path + description: The session Id. + required: true + schema: + type: string + - name: itemType + in: query + description: The type of item to browse to. + required: true + schema: + allOf: + - $ref: '#/components/schemas/BaseItemKind' + description: The base item kind. + - name: itemId + in: query + description: The Id of the item. + required: true + schema: + type: string + - name: itemName + in: query + description: The name of the item. + required: true + schema: + type: string + responses: + "204": + description: Instruction sent to session. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Capabilities: + post: + tags: + - Session + summary: Updates capabilities for a device. + operationId: PostCapabilities + parameters: + - name: id + in: query + description: The session id. + schema: + type: string + - name: playableMediaTypes + in: query + description: A list of playable media types, comma delimited. Audio, Video, Book, Photo. + schema: + type: array + items: + type: string + - name: supportedCommands + in: query + description: A list of supported remote control commands, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + - name: supportsMediaControl + in: query + description: Determines whether media can be played remotely.. + schema: + type: boolean + default: false + - name: supportsSync + in: query + description: Determines whether sync is supported. + schema: + type: boolean + default: false + - name: supportsPersistentIdentifier + in: query + description: Determines whether the device supports a unique identifier. + schema: + type: boolean + default: true + responses: + "204": + description: Capabilities posted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Capabilities/Full: + post: + tags: + - Session + summary: Updates capabilities for a device. + operationId: PostFullCapabilities + parameters: + - name: id + in: query + description: The session id. + schema: + type: string + requestBody: + description: The MediaBrowser.Model.Session.ClientCapabilities. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ClientCapabilitiesDto' + description: Client capabilities dto. + required: true + responses: + "204": + description: Capabilities updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Logout: + post: + tags: + - Session + summary: Reports that a session has ended. + operationId: ReportSessionEnded + responses: + "204": + description: Session end reported to server. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Sessions/Viewing: + post: + tags: + - Session + summary: Reports that a session is viewing an item. + operationId: ReportViewing + parameters: + - name: sessionId + in: query + description: The session id. + schema: + type: string + - name: itemId + in: query + description: The item id. + required: true + schema: + type: string + responses: + "204": + description: Session reported to server. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Startup/Complete: + post: + tags: + - Startup + summary: Completes the startup wizard. + operationId: CompleteWizard + responses: + "204": + description: Startup wizard completed. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Startup/Configuration: + get: + tags: + - Startup + summary: Gets the initial startup wizard configuration. + operationId: GetStartupConfiguration + responses: + "200": + description: Initial startup wizard configuration retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupConfigurationDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + post: + tags: + - Startup + summary: Sets the initial startup wizard configuration. + operationId: UpdateInitialConfiguration + requestBody: + description: The updated startup configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupConfigurationDto' + description: The startup configuration DTO. + required: true + responses: + "204": + description: Configuration saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Startup/FirstUser: + get: + tags: + - Startup + summary: Gets the first user. + operationId: GetFirstUser_2 + responses: + "200": + description: Initial user retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Startup/RemoteAccess: + post: + tags: + - Startup + summary: Sets remote access and UPnP. + operationId: SetRemoteAccess + requestBody: + description: The startup remote access dto. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupRemoteAccessDto' + description: Startup remote access dto. + required: true + responses: + "204": + description: Configuration saved. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Startup/User: + get: + tags: + - Startup + summary: Gets the first user. + operationId: GetFirstUser + responses: + "200": + description: Initial user retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/StartupUserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + post: + tags: + - Startup + summary: Sets the user name and password. + operationId: UpdateStartupUser + requestBody: + description: The DTO containing username and password. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/StartupUserDto' + description: The startup user DTO. + responses: + "204": + description: Updated user name and password. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrElevated + /Studios: + get: + tags: + - Studios + summary: Gets all studios from a given item, folder, or the entire library. + operationId: GetStudios + parameters: + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: searchTerm + in: query + description: Optional. Search term. + schema: + type: string + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User id. + schema: + type: string + format: uuid + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + - name: enableTotalRecordCount + in: query + description: Total record count. + schema: + type: boolean + default: true + responses: + "200": + description: Studios returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Studios/{name}: + get: + tags: + - Studios + summary: Gets a studio by name. + operationId: GetStudio + parameters: + - name: name + in: path + description: Studio name. + required: true + schema: + type: string + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Studio returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /FallbackFont/Fonts: + get: + tags: + - Subtitle + summary: Gets a list of available fallback font files. + operationId: GetFallbackFontList + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/FontFile' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /FallbackFont/Fonts/{name}: + get: + tags: + - Subtitle + summary: Gets a fallback font file. + operationId: GetFallbackFont + parameters: + - name: name + in: path + description: The name of the fallback font file to get. + required: true + schema: + type: string + responses: + "200": + description: Fallback font file retrieved. + content: + font/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/RemoteSearch/Subtitles/{language}: + get: + tags: + - Subtitle + summary: Search remote subtitles. + operationId: SearchRemoteSubtitles + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: language + in: path + description: The language of the subtitles. + required: true + schema: + type: string + - name: isPerfectMatch + in: query + description: Optional. Only show subtitles which are a perfect match. + schema: + type: boolean + responses: + "200": + description: Subtitles retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/RemoteSubtitleInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}: + post: + tags: + - Subtitle + summary: Downloads a remote subtitle. + operationId: DownloadRemoteSubtitles + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: subtitleId + in: path + description: The subtitle id. + required: true + schema: + type: string + responses: + "204": + description: Subtitle downloaded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Providers/Subtitles/Subtitles/{id}: + get: + tags: + - Subtitle + summary: Gets the remote subtitles. + operationId: GetRemoteSubtitles + parameters: + - name: id + in: path + description: The item id. + required: true + schema: + type: string + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8: + get: + tags: + - Subtitle + summary: Gets an HLS subtitle playlist. + operationId: GetSubtitlePlaylist + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: index + in: path + description: The subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: mediaSourceId + in: path + description: The media source id. + required: true + schema: + type: string + - name: segmentLength + in: query + description: The subtitle segment length. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Subtitle playlist retrieved. + content: + application/x-mpegURL: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/Subtitles: + post: + tags: + - Subtitle + summary: Upload an external subtitle file. + operationId: UploadSubtitle + parameters: + - name: itemId + in: path + description: The item the subtitle belongs to. + required: true + schema: + type: string + format: uuid + requestBody: + description: The request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UploadSubtitleDto' + description: Upload subtitles dto. + required: true + responses: + "204": + description: Subtitle uploaded. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Videos/{itemId}/Subtitles/{index}: + delete: + tags: + - Subtitle + summary: Deletes an external subtitle file. + operationId: DeleteSubtitle + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: index + in: path + description: The index of the subtitle file. + required: true + schema: + type: integer + format: int32 + responses: + "204": + description: Subtitle deleted. + "404": + description: Item not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}: + get: + tags: + - Subtitle + summary: Gets subtitles in a specified format. + operationId: GetSubtitleWithTicks + parameters: + - name: routeItemId + in: path + description: The (route) item id. + required: true + schema: + type: string + format: uuid + - name: routeMediaSourceId + in: path + description: The (route) media source id. + required: true + schema: + type: string + - name: routeIndex + in: path + description: The (route) subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: routeStartPositionTicks + in: path + description: The (route) start position of the subtitle in ticks. + required: true + schema: + type: integer + format: int64 + - name: routeFormat + in: path + description: The (route) format of the returned subtitle. + required: true + schema: + type: string + - name: itemId + in: query + description: The item id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: index + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: startPositionTicks + in: query + description: The start position of the subtitle in ticks. + deprecated: true + schema: + type: integer + format: int64 + - name: format + in: query + description: The format of the returned subtitle. + deprecated: true + schema: + type: string + - name: endPositionTicks + in: query + description: Optional. The end position of the subtitle in ticks. + schema: + type: integer + format: int64 + - name: copyTimestamps + in: query + description: Optional. Whether to copy the timestamps. + schema: + type: boolean + default: false + - name: addVttTimeMap + in: query + description: Optional. Whether to add a VTT time map. + schema: + type: boolean + default: false + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + /Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}: + get: + tags: + - Subtitle + summary: Gets subtitles in a specified format. + operationId: GetSubtitle + parameters: + - name: routeItemId + in: path + description: The (route) item id. + required: true + schema: + type: string + format: uuid + - name: routeMediaSourceId + in: path + description: The (route) media source id. + required: true + schema: + type: string + - name: routeIndex + in: path + description: The (route) subtitle stream index. + required: true + schema: + type: integer + format: int32 + - name: routeFormat + in: path + description: The (route) format of the returned subtitle. + required: true + schema: + type: string + - name: itemId + in: query + description: The item id. + deprecated: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: query + description: The media source id. + deprecated: true + schema: + type: string + - name: index + in: query + description: The subtitle stream index. + deprecated: true + schema: + type: integer + format: int32 + - name: format + in: query + description: The format of the returned subtitle. + deprecated: true + schema: + type: string + - name: endPositionTicks + in: query + description: Optional. The end position of the subtitle in ticks. + schema: + type: integer + format: int64 + - name: copyTimestamps + in: query + description: Optional. Whether to copy the timestamps. + schema: + type: boolean + default: false + - name: addVttTimeMap + in: query + description: Optional. Whether to add a VTT time map. + schema: + type: boolean + default: false + - name: startPositionTicks + in: query + description: The start position of the subtitle in ticks. + schema: + type: integer + format: int64 + default: 0 + responses: + "200": + description: File returned. + content: + text/*: + schema: + type: string + format: binary + /Users/{userId}/Suggestions: + get: + tags: + - Suggestions + summary: Gets suggestions. + operationId: GetSuggestions + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + - name: mediaType + in: query + description: The media types. + schema: + type: array + items: + type: string + - name: type + in: query + description: The type. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: startIndex + in: query + description: Optional. The start index. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The limit. + schema: + type: integer + format: int32 + - name: enableTotalRecordCount + in: query + description: Whether to enable the total record count. + schema: + type: boolean + default: false + responses: + "200": + description: Suggestions returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /SyncPlay/Buffering: + post: + tags: + - SyncPlay + summary: Notify SyncPlay group that member is buffering. + operationId: SyncPlayBuffering + requestBody: + description: The player status. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/BufferRequestDto' + description: Class BufferRequestDto. + required: true + responses: + "204": + description: Group state update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Join: + post: + tags: + - SyncPlay + summary: Join an existing SyncPlay group. + operationId: SyncPlayJoinGroup + requestBody: + description: The group to join. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/JoinGroupRequestDto' + description: Class JoinGroupRequestDto. + required: true + responses: + "204": + description: Group join successful. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayJoinGroup + - SyncPlayHasAccess + /SyncPlay/Leave: + post: + tags: + - SyncPlay + summary: Leave the joined SyncPlay group. + operationId: SyncPlayLeaveGroup + responses: + "204": + description: Group leave successful. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/List: + get: + tags: + - SyncPlay + summary: Gets all SyncPlay groups. + operationId: SyncPlayGetGroups + responses: + "200": + description: Groups returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/GroupInfoDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayJoinGroup + - SyncPlayHasAccess + /SyncPlay/MovePlaylistItem: + post: + tags: + - SyncPlay + summary: Request to move an item in the playlist in SyncPlay group. + operationId: SyncPlayMovePlaylistItem + requestBody: + description: The new position for the item. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/MovePlaylistItemRequestDto' + description: Class MovePlaylistItemRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/New: + post: + tags: + - SyncPlay + summary: Create a new SyncPlay group. + operationId: SyncPlayCreateGroup + requestBody: + description: The settings of the new group. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/NewGroupRequestDto' + description: Class NewGroupRequestDto. + required: true + responses: + "204": + description: New group created. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayCreateGroup + - SyncPlayHasAccess + /SyncPlay/NextItem: + post: + tags: + - SyncPlay + summary: Request next item in SyncPlay group. + operationId: SyncPlayNextItem + requestBody: + description: The current item information. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/NextItemRequestDto' + description: Class NextItemRequestDto. + required: true + responses: + "204": + description: Next item update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Pause: + post: + tags: + - SyncPlay + summary: Request pause in SyncPlay group. + operationId: SyncPlayPause + responses: + "204": + description: Pause update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Ping: + post: + tags: + - SyncPlay + summary: Update session ping. + operationId: SyncPlayPing + requestBody: + description: The new ping. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PingRequestDto' + description: Class PingRequestDto. + required: true + responses: + "204": + description: Ping updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayHasAccess + /SyncPlay/PreviousItem: + post: + tags: + - SyncPlay + summary: Request previous item in SyncPlay group. + operationId: SyncPlayPreviousItem + requestBody: + description: The current item information. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PreviousItemRequestDto' + description: Class PreviousItemRequestDto. + required: true + responses: + "204": + description: Previous item update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Queue: + post: + tags: + - SyncPlay + summary: Request to queue items to the playlist of a SyncPlay group. + operationId: SyncPlayQueue + requestBody: + description: The items to add. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/QueueRequestDto' + description: Class QueueRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Ready: + post: + tags: + - SyncPlay + summary: Notify SyncPlay group that member is ready for playback. + operationId: SyncPlayReady + requestBody: + description: The player status. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ReadyRequestDto' + description: Class ReadyRequest. + required: true + responses: + "204": + description: Group state update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/RemoveFromPlaylist: + post: + tags: + - SyncPlay + summary: Request to remove items from the playlist in SyncPlay group. + operationId: SyncPlayRemoveFromPlaylist + requestBody: + description: The items to remove. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/RemoveFromPlaylistRequestDto' + description: Class RemoveFromPlaylistRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Seek: + post: + tags: + - SyncPlay + summary: Request seek in SyncPlay group. + operationId: SyncPlaySeek + requestBody: + description: The new playback position. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SeekRequestDto' + description: Class SeekRequestDto. + required: true + responses: + "204": + description: Seek update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/SetIgnoreWait: + post: + tags: + - SyncPlay + summary: Request SyncPlay group to ignore member during group-wait. + operationId: SyncPlaySetIgnoreWait + requestBody: + description: The settings to set. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/IgnoreWaitRequestDto' + description: Class IgnoreWaitRequestDto. + required: true + responses: + "204": + description: Member state updated. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/SetNewQueue: + post: + tags: + - SyncPlay + summary: Request to set new playlist in SyncPlay group. + operationId: SyncPlaySetNewQueue + requestBody: + description: The new playlist to play in the group. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/PlayRequestDto' + description: Class PlayRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/SetPlaylistItem: + post: + tags: + - SyncPlay + summary: Request to change playlist item in SyncPlay group. + operationId: SyncPlaySetPlaylistItem + requestBody: + description: The new item to play. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetPlaylistItemRequestDto' + description: Class SetPlaylistItemRequestDto. + required: true + responses: + "204": + description: Queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/SetRepeatMode: + post: + tags: + - SyncPlay + summary: Request to set repeat mode in SyncPlay group. + operationId: SyncPlaySetRepeatMode + requestBody: + description: The new repeat mode. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetRepeatModeRequestDto' + description: Class SetRepeatModeRequestDto. + required: true + responses: + "204": + description: Play queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/SetShuffleMode: + post: + tags: + - SyncPlay + summary: Request to set shuffle mode in SyncPlay group. + operationId: SyncPlaySetShuffleMode + requestBody: + description: The new shuffle mode. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/SetShuffleModeRequestDto' + description: Class SetShuffleModeRequestDto. + required: true + responses: + "204": + description: Play queue update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Stop: + post: + tags: + - SyncPlay + summary: Request stop in SyncPlay group. + operationId: SyncPlayStop + responses: + "204": + description: Stop update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /SyncPlay/Unpause: + post: + tags: + - SyncPlay + summary: Request unpause in SyncPlay group. + operationId: SyncPlayUnpause + responses: + "204": + description: Unpause update sent to all group members. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - SyncPlayIsInGroup + - SyncPlayHasAccess + /System/Endpoint: + get: + tags: + - System + summary: Gets information about the request endpoint. + operationId: GetEndpointInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/EndPointInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/EndPointInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/EndPointInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /System/Info: + get: + tags: + - System + summary: Gets information about the server. + operationId: GetSystemInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/SystemInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/SystemInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - FirstTimeSetupOrIgnoreParentalControl + /System/Info/Public: + get: + tags: + - System + summary: Gets public information about the server. + operationId: GetPublicSystemInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/PublicSystemInfo' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PublicSystemInfo' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PublicSystemInfo' + /System/Logs: + get: + tags: + - System + summary: Gets a list of available server log files. + operationId: GetServerLogs + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/LogFile' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /System/Logs/Log: + get: + tags: + - System + summary: Gets a log file. + operationId: GetLogFile + parameters: + - name: name + in: query + description: The name of the log file to get. + required: true + schema: + type: string + responses: + "200": + description: Log file retrieved. + content: + text/plain: + schema: + type: string + format: binary + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /System/Ping: + get: + tags: + - System + summary: Pings the system. + operationId: GetPingSystem + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + post: + tags: + - System + summary: Pings the system. + operationId: PostPingSystem + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: string + application/json; profile="CamelCase": + schema: + type: string + application/json; profile="PascalCase": + schema: + type: string + /System/Restart: + post: + tags: + - System + summary: Restarts the application. + operationId: RestartApplication + responses: + "204": + description: Server restarted. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - LocalAccessOrRequiresElevation + /System/Shutdown: + post: + tags: + - System + summary: Shuts down the application. + operationId: ShutdownApplication + responses: + "204": + description: Server shut down. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /System/WakeOnLanInfo: + get: + tags: + - System + summary: Gets wake on lan information. + operationId: GetWakeOnLanInfo + responses: + "200": + description: Information retrieved. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/WakeOnLanInfo' + "401": + description: Unauthorized + "403": + description: Forbidden + deprecated: true + security: + - CustomAuthentication: + - DefaultAuthorization + /GetUtcTime: + get: + tags: + - TimeSync + summary: Gets the current UTC time. + operationId: GetUtcTime + responses: + "200": + description: Time returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UtcTimeResponse' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UtcTimeResponse' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UtcTimeResponse' + /Tmdb/ClientConfiguration: + get: + tags: + - Tmdb + summary: Gets the TMDb image configuration options. + operationId: TmdbClientConfiguration + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigImageTypes' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Trailers: + get: + tags: + - Trailers + summary: Finds movies and trailers similar to a given trailer. + operationId: GetTrailers + parameters: + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: maxOfficialRating + in: query + description: Optional filter by maximum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: hasThemeSong + in: query + description: Optional filter by items with theme songs. + schema: + type: boolean + - name: hasThemeVideo + in: query + description: Optional filter by items with theme videos. + schema: + type: boolean + - name: hasSubtitles + in: query + description: Optional filter by items with subtitles. + schema: + type: boolean + - name: hasSpecialFeature + in: query + description: Optional filter by items with special features. + schema: + type: boolean + - name: hasTrailer + in: query + description: Optional filter by items with trailers. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + - name: parentIndexNumber + in: query + description: Optional filter by parent index number. + schema: + type: integer + format: int32 + - name: hasParentalRating + in: query + description: Optional filter by items that have or do not have a parental rating. + schema: + type: boolean + - name: isHd + in: query + description: Optional filter by items that are HD or not. + schema: + type: boolean + - name: is4K + in: query + description: Optional filter by items that are 4K or not. + schema: + type: boolean + - name: locationTypes + in: query + description: Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: excludeLocationTypes + in: query + description: Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/LocationType' + - name: isMissing + in: query + description: Optional filter by items that are missing episodes or not. + schema: + type: boolean + - name: isUnaired + in: query + description: Optional filter by items that are unaired episodes or not. + schema: + type: boolean + - name: minCommunityRating + in: query + description: Optional filter by minimum community rating. + schema: + type: number + format: double + - name: minCriticRating + in: query + description: Optional filter by minimum critic rating. + schema: + type: number + format: double + - name: minPremiereDate + in: query + description: Optional. The minimum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSaved + in: query + description: Optional. The minimum last saved date. Format = ISO. + schema: + type: string + format: date-time + - name: minDateLastSavedForUser + in: query + description: Optional. The minimum last saved date for the current user. Format = ISO. + schema: + type: string + format: date-time + - name: maxPremiereDate + in: query + description: Optional. The maximum premiere date. Format = ISO. + schema: + type: string + format: date-time + - name: hasOverview + in: query + description: Optional filter by items that have an overview or not. + schema: + type: boolean + - name: hasImdbId + in: query + description: Optional filter by items that have an imdb id or not. + schema: + type: boolean + - name: hasTmdbId + in: query + description: Optional filter by items that have a tmdb id or not. + schema: + type: boolean + - name: hasTvdbId + in: query + description: Optional filter by items that have a tvdb id or not. + schema: + type: boolean + - name: isMovie + in: query + description: Optional filter for live tv movies. + schema: + type: boolean + - name: isSeries + in: query + description: Optional filter for live tv series. + schema: + type: boolean + - name: isNews + in: query + description: Optional filter for live tv news. + schema: + type: boolean + - name: isKids + in: query + description: Optional filter for live tv kids. + schema: + type: boolean + - name: isSports + in: query + description: Optional filter for live tv sports. + schema: + type: boolean + - name: excludeItemIds + in: query + description: Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: recursive + in: query + description: When searching within folders, this determines whether or not the search will be recursive. true/false. + schema: + type: boolean + - name: searchTerm + in: query + description: Optional. Filter based on a search term. + schema: + type: string + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: filters + in: query + description: 'Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFilter' + - name: isFavorite + in: query + description: Optional filter by items that are marked as favorite, or not. + schema: + type: boolean + - name: mediaTypes + in: query + description: Optional filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: imageTypes + in: query + description: Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + type: string + - name: isPlayed + in: query + description: Optional filter by items that are played, or not. + schema: + type: boolean + - name: genres + in: query + description: Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: officialRatings + in: query + description: Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: tags + in: query + description: Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: years + in: query + description: Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited. + schema: + type: array + items: + type: integer + format: int32 + - name: enableUserData + in: query + description: Optional, include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: person + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person. + schema: + type: string + - name: personIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified person id. + schema: + type: array + items: + type: string + format: uuid + - name: personTypes + in: query + description: Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited. + schema: + type: array + items: + type: string + - name: studios + in: query + description: Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: artists + in: query + description: Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: excludeArtistIds + in: query + description: Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: artistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albumArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified album artist id. + schema: + type: array + items: + type: string + format: uuid + - name: contributingArtistIds + in: query + description: Optional. If specified, results will be filtered to include only those containing the specified contributing artist id. + schema: + type: array + items: + type: string + format: uuid + - name: albums + in: query + description: Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + - name: albumIds + in: query + description: Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: ids + in: query + description: Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited. + schema: + type: array + items: + type: string + format: uuid + - name: videoTypes + in: query + description: Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/VideoType' + - name: minOfficialRating + in: query + description: Optional filter by minimum official rating (PG, PG-13, TV-MA, etc). + schema: + type: string + - name: isLocked + in: query + description: Optional filter by items that are locked. + schema: + type: boolean + - name: isPlaceHolder + in: query + description: Optional filter by items that are placeholders. + schema: + type: boolean + - name: hasOfficialRating + in: query + description: Optional filter by items that have official ratings. + schema: + type: boolean + - name: collapseBoxSetItems + in: query + description: Whether or not to hide items behind their boxsets. + schema: + type: boolean + - name: minWidth + in: query + description: Optional. Filter by the minimum width of the item. + schema: + type: integer + format: int32 + - name: minHeight + in: query + description: Optional. Filter by the minimum height of the item. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. Filter by the maximum width of the item. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. Filter by the maximum height of the item. + schema: + type: integer + format: int32 + - name: is3D + in: query + description: Optional filter by items that are 3D, or not. + schema: + type: boolean + - name: seriesStatus + in: query + description: Optional filter by Series Status. Allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/SeriesStatus' + - name: nameStartsWithOrGreater + in: query + description: Optional filter by items whose name is sorted equally or greater than a given input string. + schema: + type: string + - name: nameStartsWith + in: query + description: Optional filter by items whose name is sorted equally than a given input string. + schema: + type: string + - name: nameLessThan + in: query + description: Optional filter by items whose name is equally or lesser than a given input string. + schema: + type: string + - name: studioIds + in: query + description: Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: genreIds + in: query + description: Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited. + schema: + type: array + items: + type: string + format: uuid + - name: enableTotalRecordCount + in: query + description: Optional. Enable the total record count. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{seriesId}/Episodes: + get: + tags: + - TvShows + summary: Gets episodes for a tv season. + operationId: GetEpisodes + parameters: + - name: seriesId + in: path + description: The series id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: season + in: query + description: Optional filter by season number. + schema: + type: integer + format: int32 + - name: seasonId + in: query + description: Optional. Filter by season id. + schema: + type: string + format: uuid + - name: isMissing + in: query + description: Optional. Filter by items that are missing episodes or not. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + - name: startItemId + in: query + description: Optional. Skip through the list until a given item is found. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: enableImages + in: query + description: Optional, include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional, the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: string + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/{seriesId}/Seasons: + get: + tags: + - TvShows + summary: Gets seasons for a tv series. + operationId: GetSeasons + parameters: + - name: seriesId + in: path + description: The series id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: The user id. + schema: + type: string + format: uuid + - name: fields + in: query + description: 'Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.' + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: isSpecialSeason + in: query + description: Optional. Filter by special season. + schema: + type: boolean + - name: isMissing + in: query + description: Optional. Filter by items that are missing episodes or not. + schema: + type: boolean + - name: adjacentTo + in: query + description: Optional. Return items that are siblings of a supplied item. + schema: + type: string + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "404": + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/NextUp: + get: + tags: + - TvShows + summary: Gets a list of next up episodes. + operationId: GetNextUp + parameters: + - name: userId + in: query + description: The user id of the user to get the next up episodes for. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: seriesId + in: query + description: Optional. Filter by series id. + schema: + type: string + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: nextUpDateCutoff + in: query + description: Optional. Starting date of shows to show in Next Up section. + schema: + type: string + format: date-time + - name: enableTotalRecordCount + in: query + description: Whether to enable the total records count. Defaults to true. + schema: + type: boolean + default: true + - name: disableFirstEpisode + in: query + description: Whether to disable sending the first episode in a series as next up. + schema: + type: boolean + default: false + - name: enableRewatching + in: query + description: Whether to include watched episode in next up results. + schema: + type: boolean + default: false + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Shows/Upcoming: + get: + tags: + - TvShows + summary: Gets a list of upcoming episodes. + operationId: GetUpcomingEpisodes + parameters: + - name: userId + in: query + description: The user id of the user to get the upcoming episodes for. + schema: + type: string + format: uuid + - name: startIndex + in: query + description: Optional. The record index to start at. All items with a lower index will be dropped from the results. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: parentId + in: query + description: Optional. Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Audio/{itemId}/universal: + get: + tags: + - UniversalAudio + summary: Gets an audio stream. + operationId: GetUniversalAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: Optional. The audio container. + schema: + type: array + items: + type: string + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: userId + in: query + description: Optional. The user id. + schema: + type: string + format: uuid + - name: audioCodec + in: query + description: Optional. The audio codec to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: maxAudioChannels + in: query + description: Optional. The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: transcodingAudioChannels + in: query + description: Optional. The number of how many audio channels to transcode to. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: transcodingContainer + in: query + description: Optional. The container to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodingProtocol + in: query + description: Optional. The transcoding protocol. + schema: + type: string + - name: maxAudioSampleRate + in: query + description: Optional. The maximum audio sample rate. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: enableRemoteMedia + in: query + description: Optional. Whether to enable remote media. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + default: false + - name: enableRedirection + in: query + description: Whether to enable redirection. Defaults to true. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + "302": + description: Redirected to remote audio stream. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + head: + tags: + - UniversalAudio + summary: Gets an audio stream. + operationId: HeadUniversalAudioStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: Optional. The audio container. + schema: + type: array + items: + type: string + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: userId + in: query + description: Optional. The user id. + schema: + type: string + format: uuid + - name: audioCodec + in: query + description: Optional. The audio codec to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: maxAudioChannels + in: query + description: Optional. The maximum number of audio channels. + schema: + type: integer + format: int32 + - name: transcodingAudioChannels + in: query + description: Optional. The number of how many audio channels to transcode to. + schema: + type: integer + format: int32 + - name: maxStreamingBitrate + in: query + description: Optional. The maximum streaming bitrate. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: transcodingContainer + in: query + description: Optional. The container to transcode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodingProtocol + in: query + description: Optional. The transcoding protocol. + schema: + type: string + - name: maxAudioSampleRate + in: query + description: Optional. The maximum audio sample rate. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: enableRemoteMedia + in: query + description: Optional. Whether to enable remote media. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + default: false + - name: enableRedirection + in: query + description: Whether to enable redirection. Defaults to true. + schema: + type: boolean + default: true + responses: + "200": + description: Audio stream returned. + content: + audio/*: + schema: + type: string + format: binary + "302": + description: Redirected to remote audio stream. + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users: + get: + tags: + - User + summary: Gets a list of users. + operationId: GetUsers + parameters: + - name: isHidden + in: query + description: Optional filter by IsHidden=true or false. + schema: + type: boolean + - name: isDisabled + in: query + description: Optional filter by IsDisabled=true or false. + schema: + type: boolean + responses: + "200": + description: Users returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}: + get: + tags: + - User + summary: Gets a user by Id. + operationId: GetUserById + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: User returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - IgnoreParentalControl + delete: + tags: + - User + summary: Deletes a user. + operationId: DeleteUser + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: User deleted. + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + post: + tags: + - User + summary: Updates a user. + operationId: UpdateUser + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The updated user model. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + required: true + responses: + "204": + description: User updated. + "400": + description: User information was not supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Authenticate: + post: + tags: + - User + summary: Authenticates a user. + operationId: AuthenticateUser + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + - name: pw + in: query + description: The password as plain text. + required: true + schema: + type: string + - name: password + in: query + description: The password sha1-hash. + schema: + type: string + responses: + "200": + description: User authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + "403": + description: Sha1-hashed password only is not allowed. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Users/{userId}/Configuration: + post: + tags: + - User + summary: Updates a user configuration. + operationId: UpdateUserConfiguration + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The new user configuration. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Class UserConfiguration. + required: true + responses: + "204": + description: User configuration updated. + "403": + description: User configuration update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/EasyPassword: + post: + tags: + - User + summary: Updates a user's easy password. + operationId: UpdateUserEasyPassword + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserEasyPassword' + description: The update user easy password request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserEasyPassword' + description: The update user easy password request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserEasyPassword' + description: The update user easy password request body. + required: true + responses: + "204": + description: Password successfully reset. + "403": + description: User is not allowed to update the password. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Password: + post: + tags: + - User + summary: Updates a user's password. + operationId: UpdateUserPassword + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UpdateUserPassword' + description: The update user password request body. + required: true + responses: + "204": + description: Password successfully reset. + "403": + description: User is not allowed to update the password. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Policy: + post: + tags: + - User + summary: Updates a user policy. + operationId: UpdateUserPolicy + parameters: + - name: userId + in: path + description: The user id. + required: true + schema: + type: string + format: uuid + requestBody: + description: The new user policy. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + text/json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/UserPolicy' + required: true + responses: + "204": + description: User policy updated. + "400": + description: User policy was not supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: User policy update forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + security: + - CustomAuthentication: + - RequiresElevation + /Users/AuthenticateByName: + post: + tags: + - User + summary: Authenticates a user by name. + operationId: AuthenticateUserByName + requestBody: + description: The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/AuthenticateUserByName' + description: The authenticate user by name request body. + required: true + responses: + "200": + description: User authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + /Users/AuthenticateWithQuickConnect: + post: + tags: + - User + summary: Authenticates a user with quick connect. + operationId: AuthenticateWithQuickConnect + requestBody: + description: The Jellyfin.Api.Models.UserDtos.QuickConnectDto request. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/QuickConnectDto' + description: The quick connect request body. + required: true + responses: + "200": + description: User authenticated. + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/AuthenticationResult' + "400": + description: Missing token. + /Users/ForgotPassword: + post: + tags: + - User + summary: Initiates the forgot password process for a local user. + operationId: ForgotPassword + requestBody: + description: The forgot password request containing the entered username. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordDto' + description: Forgot Password request body DTO. + required: true + responses: + "200": + description: Password reset process started. + content: + application/json: + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ForgotPasswordResult' + /Users/ForgotPassword/Pin: + post: + tags: + - User + summary: Redeems a forgot password pin. + operationId: ForgotPasswordPin + requestBody: + description: The forgot password pin request containing the entered pin. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/ForgotPasswordPinDto' + description: Forgot Password Pin enter request body DTO. + required: true + responses: + "200": + description: Pin reset process started. + content: + application/json: + schema: + $ref: '#/components/schemas/PinRedeemResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/PinRedeemResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/PinRedeemResult' + /Users/Me: + get: + tags: + - User + summary: Gets the user based on auth token. + operationId: GetCurrentUser + responses: + "200": + description: User returned. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "400": + description: Token is not owned by a user. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/New: + post: + tags: + - User + summary: Creates a user. + operationId: CreateUserByName + requestBody: + description: The create user by name request body. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + text/json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + application/*+json: + schema: + allOf: + - $ref: '#/components/schemas/CreateUserByName' + description: The create user by name request body. + required: true + responses: + "200": + description: User created. + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Users/Public: + get: + tags: + - User + summary: Gets a list of publicly visible users for display on a login screen. + operationId: GetPublicUsers + responses: + "200": + description: Public users returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/UserDto' + /Users/{userId}/FavoriteItems/{itemId}: + post: + tags: + - UserLibrary + summary: Marks an item as a favorite. + operationId: MarkFavoriteItem + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item marked as favorite. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + delete: + tags: + - UserLibrary + summary: Unmarks item as a favorite. + operationId: UnmarkFavoriteItem + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item unmarked as favorite. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/{itemId}: + get: + tags: + - UserLibrary + summary: Gets an item from a user's library. + operationId: GetItem + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Item returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/{itemId}/Intros: + get: + tags: + - UserLibrary + summary: Gets intros to play before the main media item plays. + operationId: GetIntros + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Intros returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/{itemId}/LocalTrailers: + get: + tags: + - UserLibrary + summary: Gets local trailers for an item. + operationId: GetLocalTrailers + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/{itemId}/Rating: + delete: + tags: + - UserLibrary + summary: Deletes a user's saved personal rating for an item. + operationId: DeleteUserItemRating + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Personal rating removed. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + post: + tags: + - UserLibrary + summary: Updates a user's rating for an item. + operationId: UpdateUserItemRating + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + - name: likes + in: query + description: Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes. + schema: + type: boolean + responses: + "200": + description: Item rating updated. + content: + application/json: + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/UserItemDataDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/{itemId}/SpecialFeatures: + get: + tags: + - UserLibrary + summary: Gets special features for an item. + operationId: GetSpecialFeatures + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: itemId + in: path + description: Item id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Special features returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/Latest: + get: + tags: + - UserLibrary + summary: Gets latest media. + operationId: GetLatestMedia + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: isPlayed + in: query + description: Filter by items that are played, or not. + schema: + type: boolean + - name: enableImages + in: query + description: Optional. include image information in output. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. the max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: enableUserData + in: query + description: Optional. include user data. + schema: + type: boolean + - name: limit + in: query + description: Return item limit. + schema: + type: integer + format: int32 + default: 20 + - name: groupItems + in: query + description: Whether or not to group items into a parent container. + schema: + type: boolean + default: true + responses: + "200": + description: Latest media returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Items/Root: + get: + tags: + - UserLibrary + summary: Gets the root folder from a user's library. + operationId: GetRootFolder + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Root folder returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/GroupingOptions: + get: + tags: + - UserViews + summary: Get user view grouping options. + operationId: GetGroupingOptions + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: User view grouping options returned. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + application/json; profile="CamelCase": + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + application/json; profile="PascalCase": + schema: + type: array + items: + $ref: '#/components/schemas/SpecialViewOptionDto' + "404": + description: User not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Users/{userId}/Views: + get: + tags: + - UserViews + summary: Get user views. + operationId: GetUserViews + parameters: + - name: userId + in: path + description: User id. + required: true + schema: + type: string + format: uuid + - name: includeExternalContent + in: query + description: Whether or not to include external views such as channels or live tv. + schema: + type: boolean + - name: presetViews + in: query + description: Preset views. + schema: + type: array + items: + type: string + - name: includeHidden + in: query + description: Whether or not to include hidden content. + schema: + type: boolean + default: false + responses: + "200": + description: User views returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{videoId}/{mediaSourceId}/Attachments/{index}: + get: + tags: + - VideoAttachments + summary: Get video attachment. + operationId: GetAttachment + parameters: + - name: videoId + in: path + description: Video ID. + required: true + schema: + type: string + format: uuid + - name: mediaSourceId + in: path + description: Media Source ID. + required: true + schema: + type: string + - name: index + in: path + description: Attachment Index. + required: true + schema: + type: integer + format: int32 + responses: + "200": + description: Attachment retrieved. + content: + application/octet-stream: + schema: + type: string + format: binary + "404": + description: Video or attachment not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + /Videos/{itemId}/AdditionalParts: + get: + tags: + - Videos + summary: Gets additional parts for a video. + operationId: GetAdditionalPart + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Additional parts returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Videos/{itemId}/AlternateSources: + delete: + tags: + - Videos + summary: Removes alternate video sources. + operationId: DeleteAlternateSources + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + responses: + "204": + description: Alternate sources deleted. + "404": + description: Video not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Videos/{itemId}/stream: + get: + tags: + - Videos + summary: Gets a video stream. + operationId: GetVideoStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + head: + tags: + - Videos + summary: Gets a video stream. + operationId: HeadVideoStream + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: query + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + /Videos/{itemId}/stream.{container}: + get: + tags: + - Videos + summary: Gets a video stream. + operationId: GetVideoStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + head: + tags: + - Videos + summary: Gets a video stream. + operationId: HeadVideoStreamByContainer + parameters: + - name: itemId + in: path + description: The item id. + required: true + schema: + type: string + format: uuid + - name: container + in: path + description: 'The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.' + required: true + schema: + type: string + - name: static + in: query + description: Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false. + schema: + type: boolean + - name: params + in: query + description: The streaming parameters. + schema: + type: string + - name: tag + in: query + description: The tag. + schema: + type: string + - name: deviceProfileId + in: query + description: Optional. The dlna device profile id to utilize. + schema: + type: string + - name: playSessionId + in: query + description: The play session id. + schema: + type: string + - name: segmentContainer + in: query + description: The segment container. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: segmentLength + in: query + description: The segment length. + schema: + type: integer + format: int32 + - name: minSegments + in: query + description: The minimum number of segments. + schema: + type: integer + format: int32 + - name: mediaSourceId + in: query + description: The media version id, if playing an alternate version. + schema: + type: string + - name: deviceId + in: query + description: The device id of the client requesting. Used to stop encoding processes when needed. + schema: + type: string + - name: audioCodec + in: query + description: 'Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url''s extension. Options: aac, mp3, vorbis, wma.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: enableAutoStreamCopy + in: query + description: Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true. + schema: + type: boolean + - name: allowVideoStreamCopy + in: query + description: Whether or not to allow copying of the video stream url. + schema: + type: boolean + - name: allowAudioStreamCopy + in: query + description: Whether or not to allow copying of the audio stream url. + schema: + type: boolean + - name: breakOnNonKeyFrames + in: query + description: Optional. Whether to break on non key frames. + schema: + type: boolean + - name: audioSampleRate + in: query + description: Optional. Specify a specific audio sample rate, e.g. 44100. + schema: + type: integer + format: int32 + - name: maxAudioBitDepth + in: query + description: Optional. The maximum audio bit depth. + schema: + type: integer + format: int32 + - name: audioBitRate + in: query + description: Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: audioChannels + in: query + description: Optional. Specify a specific number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: maxAudioChannels + in: query + description: Optional. Specify a maximum number of audio channels to encode to, e.g. 2. + schema: + type: integer + format: int32 + - name: profile + in: query + description: Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high. + schema: + type: string + - name: level + in: query + description: Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1. + schema: + type: string + - name: framerate + in: query + description: Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: maxFramerate + in: query + description: Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements. + schema: + type: number + format: float + - name: copyTimestamps + in: query + description: Whether or not to copy timestamps when transcoding with an offset. Defaults to false. + schema: + type: boolean + - name: startTimeTicks + in: query + description: Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms. + schema: + type: integer + format: int64 + - name: width + in: query + description: Optional. The fixed horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: height + in: query + description: Optional. The fixed vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxWidth + in: query + description: Optional. The maximum horizontal resolution of the encoded video. + schema: + type: integer + format: int32 + - name: maxHeight + in: query + description: Optional. The maximum vertical resolution of the encoded video. + schema: + type: integer + format: int32 + - name: videoBitRate + in: query + description: Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults. + schema: + type: integer + format: int32 + - name: subtitleStreamIndex + in: query + description: Optional. The index of the subtitle stream to use. If omitted no subtitles will be used. + schema: + type: integer + format: int32 + - name: subtitleMethod + in: query + description: Optional. Specify the subtitle delivery method. + schema: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + - name: maxRefFrames + in: query + description: Optional. + schema: + type: integer + format: int32 + - name: maxVideoBitDepth + in: query + description: Optional. The maximum video bit depth. + schema: + type: integer + format: int32 + - name: requireAvc + in: query + description: Optional. Whether to require avc. + schema: + type: boolean + - name: deInterlace + in: query + description: Optional. Whether to deinterlace the video. + schema: + type: boolean + - name: requireNonAnamorphic + in: query + description: Optional. Whether to require a non anamorphic stream. + schema: + type: boolean + - name: transcodingMaxAudioChannels + in: query + description: Optional. The maximum number of audio channels to transcode. + schema: + type: integer + format: int32 + - name: cpuCoreLimit + in: query + description: Optional. The limit of how many cpu cores to use. + schema: + type: integer + format: int32 + - name: liveStreamId + in: query + description: The live stream id. + schema: + type: string + - name: enableMpegtsM2TsMode + in: query + description: Optional. Whether to enable the MpegtsM2Ts mode. + schema: + type: boolean + - name: videoCodec + in: query + description: 'Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url''s extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.' + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: subtitleCodec + in: query + description: Optional. Specify a subtitle codec to encode to. + schema: + pattern: ^[a-zA-Z0-9\-\._,|]{0,40}$ + type: string + - name: transcodeReasons + in: query + description: Optional. The transcoding reason. + schema: + type: string + - name: audioStreamIndex + in: query + description: Optional. The index of the audio stream to use. If omitted the first audio stream will be used. + schema: + type: integer + format: int32 + - name: videoStreamIndex + in: query + description: Optional. The index of the video stream to use. If omitted the first video stream will be used. + schema: + type: integer + format: int32 + - name: context + in: query + description: Optional. The MediaBrowser.Model.Dlna.EncodingContext. + schema: + allOf: + - $ref: '#/components/schemas/EncodingContext' + - name: streamOptions + in: query + description: Optional. The streaming options. + schema: + type: object + additionalProperties: + type: string + nullable: true + responses: + "200": + description: Video stream returned. + content: + video/*: + schema: + type: string + format: binary + /Videos/MergeVersions: + post: + tags: + - Videos + summary: Merges videos into a single record. + operationId: MergeVersions + parameters: + - name: ids + in: query + description: Item id list. This allows multiple, comma delimited. + required: true + schema: + type: array + items: + type: string + format: uuid + responses: + "204": + description: Videos merged. + "400": + description: Supply at least 2 video ids. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - RequiresElevation + /Years: + get: + tags: + - Years + summary: Get years. + operationId: GetYears + parameters: + - name: startIndex + in: query + description: Skips over a given number of items within the results. Use for paging. + schema: + type: integer + format: int32 + - name: limit + in: query + description: Optional. The maximum number of records to return. + schema: + type: integer + format: int32 + - name: sortOrder + in: query + description: Sort Order - Ascending,Descending. + schema: + type: array + items: + $ref: '#/components/schemas/SortOrder' + - name: parentId + in: query + description: Specify this to localize the search to a specific item or folder. Omit to use the root. + schema: + type: string + format: uuid + - name: fields + in: query + description: Optional. Specify additional fields of information to return in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ItemFields' + - name: excludeItemTypes + in: query + description: Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: includeItemTypes + in: query + description: Optional. If specified, results will be included based on item type. This allows multiple, comma delimited. + schema: + type: array + items: + $ref: '#/components/schemas/BaseItemKind' + - name: mediaTypes + in: query + description: Optional. Filter by MediaType. Allows multiple, comma delimited. + schema: + type: array + items: + type: string + - name: sortBy + in: query + description: 'Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.' + schema: + type: array + items: + type: string + - name: enableUserData + in: query + description: Optional. Include user data. + schema: + type: boolean + - name: imageTypeLimit + in: query + description: Optional. The max number of images to return, per image type. + schema: + type: integer + format: int32 + - name: enableImageTypes + in: query + description: Optional. The image types to include in the output. + schema: + type: array + items: + $ref: '#/components/schemas/ImageType' + - name: userId + in: query + description: User Id. + schema: + type: string + format: uuid + - name: recursive + in: query + description: Search recursively. + schema: + type: boolean + default: true + - name: enableImages + in: query + description: Optional. Include image information in output. + schema: + type: boolean + default: true + responses: + "200": + description: Year query returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDtoQueryResult' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization + /Years/{year}: + get: + tags: + - Years + summary: Gets a year. + operationId: GetYear + parameters: + - name: year + in: path + description: The year. + required: true + schema: + type: integer + format: int32 + - name: userId + in: query + description: Optional. Filter by user id, and attach user data. + schema: + type: string + format: uuid + responses: + "200": + description: Year returned. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/BaseItemDto' + "404": + description: Year not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="CamelCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + application/json; profile="PascalCase": + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: Unauthorized + "403": + description: Forbidden + security: + - CustomAuthentication: + - DefaultAuthorization +components: + schemas: + AccessSchedule: + type: object + properties: + Id: + type: integer + description: Gets the id of this instance. + format: int32 + readOnly: true + UserId: + type: string + description: Gets the id of the associated user. + format: uuid + DayOfWeek: + allOf: + - $ref: '#/components/schemas/DynamicDayOfWeek' + description: Gets or sets the day of week. + StartHour: + type: number + description: Gets or sets the start hour. + format: double + EndHour: + type: number + description: Gets or sets the end hour. + format: double + additionalProperties: false + description: An entity representing a user's access schedule. + ActivityLogEntry: + type: object + properties: + Id: + type: integer + description: Gets or sets the identifier. + format: int64 + Name: + type: string + description: Gets or sets the name. + Overview: + type: string + description: Gets or sets the overview. + nullable: true + ShortOverview: + type: string + description: Gets or sets the short overview. + nullable: true + Type: + type: string + description: Gets or sets the type. + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + Date: + type: string + description: Gets or sets the date. + format: date-time + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + UserPrimaryImageTag: + type: string + description: Gets or sets the user primary image tag. + nullable: true + deprecated: true + Severity: + allOf: + - $ref: '#/components/schemas/LogLevel' + description: Gets or sets the log severity. + additionalProperties: false + description: An activity log entry. + ActivityLogEntryQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/ActivityLogEntry' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + AddVirtualFolderDto: + type: object + properties: + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + description: Gets or sets library options. + nullable: true + additionalProperties: false + description: Add virtual folder dto. + AdminNotificationDto: + type: object + properties: + Name: + type: string + description: Gets or sets the notification name. + nullable: true + Description: + type: string + description: Gets or sets the notification description. + nullable: true + NotificationLevel: + allOf: + - $ref: '#/components/schemas/NotificationLevel' + description: Gets or sets the notification level. + nullable: true + Url: + type: string + description: Gets or sets the notification url. + nullable: true + additionalProperties: false + description: The admin notification dto. + AlbumInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + AlbumArtists: + type: array + items: + type: string + description: Gets or sets the album artist. + ArtistProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the artist provider ids. + SongInfos: + type: array + items: + $ref: '#/components/schemas/SongInfo' + additionalProperties: false + AlbumInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/AlbumInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + AllThemeMediaResult: + type: object + properties: + ThemeVideosResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + ThemeSongsResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + SoundtrackSongsResult: + allOf: + - $ref: '#/components/schemas/ThemeMediaResult' + description: Class ThemeMediaResult. + nullable: true + additionalProperties: false + Architecture: + enum: + - X86 + - X64 + - Arm + - Arm64 + - Wasm + - S390x + type: string + ArtistInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + SongInfos: + type: array + items: + $ref: '#/components/schemas/SongInfo' + additionalProperties: false + ArtistInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/ArtistInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + AuthenticateUserByName: + type: object + properties: + Username: + type: string + description: Gets or sets the username. + nullable: true + Pw: + type: string + description: Gets or sets the plain text password. + nullable: true + Password: + type: string + description: Gets or sets the sha1-hashed password. + nullable: true + deprecated: true + additionalProperties: false + description: The authenticate user by name request body. + AuthenticationInfo: + type: object + properties: + Id: + type: integer + description: Gets or sets the identifier. + format: int64 + AccessToken: + type: string + description: Gets or sets the access token. + nullable: true + DeviceId: + type: string + description: Gets or sets the device identifier. + nullable: true + AppName: + type: string + description: Gets or sets the name of the application. + nullable: true + AppVersion: + type: string + description: Gets or sets the application version. + nullable: true + DeviceName: + type: string + description: Gets or sets the name of the device. + nullable: true + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + IsActive: + type: boolean + description: Gets or sets a value indicating whether this instance is active. + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateRevoked: + type: string + description: Gets or sets the date revoked. + format: date-time + nullable: true + DateLastActivity: + type: string + format: date-time + UserName: + type: string + nullable: true + additionalProperties: false + AuthenticationInfoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/AuthenticationInfo' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + AuthenticationResult: + type: object + properties: + User: + allOf: + - $ref: '#/components/schemas/UserDto' + description: Class UserDto. + nullable: true + SessionInfo: + allOf: + - $ref: '#/components/schemas/SessionInfo' + description: Class SessionInfo. + nullable: true + AccessToken: + type: string + nullable: true + ServerId: + type: string + nullable: true + additionalProperties: false + BaseItem: + type: object + properties: + Size: + type: integer + format: int64 + nullable: true + Container: + type: string + nullable: true + IsHD: + type: boolean + readOnly: true + IsShortcut: + type: boolean + ShortcutPath: + type: string + nullable: true + Width: + type: integer + format: int32 + Height: + type: integer + format: int32 + ExtraIds: + type: array + items: + type: string + format: uuid + nullable: true + DateLastSaved: + type: string + format: date-time + RemoteTrailers: + type: array + items: + $ref: '#/components/schemas/MediaUrl' + description: Gets or sets the remote trailers. + nullable: true + SupportsExternalTransfer: + type: boolean + readOnly: true + additionalProperties: false + description: Class BaseItem. + BaseItemDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + Id: + type: string + description: Gets or sets the id. + format: uuid + Etag: + type: string + description: Gets or sets the etag. + nullable: true + SourceType: + type: string + description: Gets or sets the type of the source. + nullable: true + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier. + nullable: true + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + nullable: true + DateLastMediaAdded: + type: string + format: date-time + nullable: true + ExtraType: + type: string + nullable: true + AirsBeforeSeasonNumber: + type: integer + format: int32 + nullable: true + AirsAfterSeasonNumber: + type: integer + format: int32 + nullable: true + AirsBeforeEpisodeNumber: + type: integer + format: int32 + nullable: true + CanDelete: + type: boolean + nullable: true + CanDownload: + type: boolean + nullable: true + HasSubtitles: + type: boolean + nullable: true + PreferredMetadataLanguage: + type: string + nullable: true + PreferredMetadataCountryCode: + type: string + nullable: true + SupportsSync: + type: boolean + description: Gets or sets a value indicating whether [supports synchronize]. + nullable: true + Container: + type: string + nullable: true + SortName: + type: string + description: Gets or sets the name of the sort. + nullable: true + ForcedSortName: + type: string + nullable: true + Video3DFormat: + allOf: + - $ref: '#/components/schemas/Video3DFormat' + description: Gets or sets the video3 D format. + nullable: true + PremiereDate: + type: string + description: Gets or sets the premiere date. + format: date-time + nullable: true + ExternalUrls: + type: array + items: + $ref: '#/components/schemas/ExternalUrl' + description: Gets or sets the external urls. + nullable: true + MediaSources: + type: array + items: + $ref: '#/components/schemas/MediaSourceInfo' + description: Gets or sets the media versions. + nullable: true + CriticRating: + type: number + description: Gets or sets the critic rating. + format: float + nullable: true + ProductionLocations: + type: array + items: + type: string + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + EnableMediaSourceDisplay: + type: boolean + nullable: true + OfficialRating: + type: string + description: Gets or sets the official rating. + nullable: true + CustomRating: + type: string + description: Gets or sets the custom rating. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel identifier. + format: uuid + nullable: true + ChannelName: + type: string + nullable: true + Overview: + type: string + description: Gets or sets the overview. + nullable: true + Taglines: + type: array + items: + type: string + description: Gets or sets the taglines. + nullable: true + Genres: + type: array + items: + type: string + description: Gets or sets the genres. + nullable: true + CommunityRating: + type: number + description: Gets or sets the community rating. + format: float + nullable: true + CumulativeRunTimeTicks: + type: integer + description: Gets or sets the cumulative run time ticks. + format: int64 + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + PlayAccess: + allOf: + - $ref: '#/components/schemas/PlayAccess' + description: Gets or sets the play access. + nullable: true + AspectRatio: + type: string + description: Gets or sets the aspect ratio. + nullable: true + ProductionYear: + type: integer + description: Gets or sets the production year. + format: int32 + nullable: true + IsPlaceHolder: + type: boolean + description: Gets or sets a value indicating whether this instance is place holder. + nullable: true + Number: + type: string + description: Gets or sets the number. + nullable: true + ChannelNumber: + type: string + nullable: true + IndexNumber: + type: integer + description: Gets or sets the index number. + format: int32 + nullable: true + IndexNumberEnd: + type: integer + description: Gets or sets the index number end. + format: int32 + nullable: true + ParentIndexNumber: + type: integer + description: Gets or sets the parent index number. + format: int32 + nullable: true + RemoteTrailers: + type: array + items: + $ref: '#/components/schemas/MediaUrl' + description: Gets or sets the trailer urls. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + IsHD: + type: boolean + description: Gets or sets a value indicating whether this instance is HD. + nullable: true + IsFolder: + type: boolean + description: Gets or sets a value indicating whether this instance is folder. + nullable: true + ParentId: + type: string + description: Gets or sets the parent id. + format: uuid + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/BaseItemKind' + description: Gets or sets the type. + People: + type: array + items: + $ref: '#/components/schemas/BaseItemPerson' + description: Gets or sets the people. + nullable: true + Studios: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the studios. + nullable: true + GenreItems: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + nullable: true + ParentLogoItemId: + type: string + description: Gets or sets wether the item has a logo, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentBackdropItemId: + type: string + description: Gets or sets wether the item has any backdrops, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + LocalTrailerCount: + type: integer + description: Gets or sets the local trailer count. + format: int32 + nullable: true + UserData: + allOf: + - $ref: '#/components/schemas/UserItemDataDto' + description: Gets or sets the user data for this item based on the user it's being requested for. + nullable: true + RecursiveItemCount: + type: integer + description: Gets or sets the recursive item count. + format: int32 + nullable: true + ChildCount: + type: integer + description: Gets or sets the child count. + format: int32 + nullable: true + SeriesName: + type: string + description: Gets or sets the name of the series. + nullable: true + SeriesId: + type: string + description: Gets or sets the series id. + format: uuid + nullable: true + SeasonId: + type: string + description: Gets or sets the season identifier. + format: uuid + nullable: true + SpecialFeatureCount: + type: integer + description: Gets or sets the special feature count. + format: int32 + nullable: true + DisplayPreferencesId: + type: string + description: Gets or sets the display preferences id. + nullable: true + Status: + type: string + description: Gets or sets the status. + nullable: true + AirTime: + type: string + description: Gets or sets the air time. + nullable: true + AirDays: + type: array + items: + $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the air days. + nullable: true + Tags: + type: array + items: + type: string + description: Gets or sets the tags. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio, after image enhancements. + format: double + nullable: true + Artists: + type: array + items: + type: string + description: Gets or sets the artists. + nullable: true + ArtistItems: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the artist items. + nullable: true + Album: + type: string + description: Gets or sets the album. + nullable: true + CollectionType: + type: string + description: Gets or sets the type of the collection. + nullable: true + DisplayOrder: + type: string + description: Gets or sets the display order. + nullable: true + AlbumId: + type: string + description: Gets or sets the album id. + format: uuid + nullable: true + AlbumPrimaryImageTag: + type: string + description: Gets or sets the album image tag. + nullable: true + SeriesPrimaryImageTag: + type: string + description: Gets or sets the series primary image tag. + nullable: true + AlbumArtist: + type: string + description: Gets or sets the album artist. + nullable: true + AlbumArtists: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + description: Gets or sets the album artists. + nullable: true + SeasonName: + type: string + description: Gets or sets the name of the season. + nullable: true + MediaStreams: + type: array + items: + $ref: '#/components/schemas/MediaStream' + description: Gets or sets the media streams. + nullable: true + VideoType: + allOf: + - $ref: '#/components/schemas/VideoType' + description: Gets or sets the type of the video. + nullable: true + PartCount: + type: integer + description: Gets or sets the part count. + format: int32 + nullable: true + MediaSourceCount: + type: integer + format: int32 + nullable: true + ImageTags: + type: object + additionalProperties: + type: string + description: Gets or sets the image tags. + nullable: true + BackdropImageTags: + type: array + items: + type: string + description: Gets or sets the backdrop image tags. + nullable: true + ScreenshotImageTags: + type: array + items: + type: string + description: Gets or sets the screenshot image tags. + nullable: true + ParentLogoImageTag: + type: string + description: Gets or sets the parent logo image tag. + nullable: true + ParentArtItemId: + type: string + description: Gets or sets wether the item has fan art, this will hold the Id of the Parent that has one. + format: uuid + nullable: true + ParentArtImageTag: + type: string + description: Gets or sets the parent art image tag. + nullable: true + SeriesThumbImageTag: + type: string + description: Gets or sets the series thumb image tag. + nullable: true + ImageBlurHashes: + type: object + properties: + Primary: + type: object + additionalProperties: + type: string + Art: + type: object + additionalProperties: + type: string + Backdrop: + type: object + additionalProperties: + type: string + Banner: + type: object + additionalProperties: + type: string + Logo: + type: object + additionalProperties: + type: string + Thumb: + type: object + additionalProperties: + type: string + Disc: + type: object + additionalProperties: + type: string + Box: + type: object + additionalProperties: + type: string + Screenshot: + type: object + additionalProperties: + type: string + Menu: + type: object + additionalProperties: + type: string + Chapter: + type: object + additionalProperties: + type: string + BoxRear: + type: object + additionalProperties: + type: string + Profile: + type: object + additionalProperties: + type: string + description: "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value." + nullable: true + SeriesStudio: + type: string + description: Gets or sets the series studio. + nullable: true + ParentThumbItemId: + type: string + description: Gets or sets the parent thumb item id. + format: uuid + nullable: true + ParentThumbImageTag: + type: string + description: Gets or sets the parent thumb image tag. + nullable: true + ParentPrimaryImageItemId: + type: string + description: Gets or sets the parent primary image item identifier. + nullable: true + ParentPrimaryImageTag: + type: string + description: Gets or sets the parent primary image tag. + nullable: true + Chapters: + type: array + items: + $ref: '#/components/schemas/ChapterInfo' + description: Gets or sets the chapters. + nullable: true + LocationType: + allOf: + - $ref: '#/components/schemas/LocationType' + description: Gets or sets the type of the location. + nullable: true + IsoType: + allOf: + - $ref: '#/components/schemas/IsoType' + description: Gets or sets the type of the iso. + nullable: true + MediaType: + type: string + description: Gets or sets the type of the media. + nullable: true + EndDate: + type: string + description: Gets or sets the end date. + format: date-time + nullable: true + LockedFields: + type: array + items: + $ref: '#/components/schemas/MetadataField' + description: Gets or sets the locked fields. + nullable: true + TrailerCount: + type: integer + description: Gets or sets the trailer count. + format: int32 + nullable: true + MovieCount: + type: integer + description: Gets or sets the movie count. + format: int32 + nullable: true + SeriesCount: + type: integer + description: Gets or sets the series count. + format: int32 + nullable: true + ProgramCount: + type: integer + format: int32 + nullable: true + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + nullable: true + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + nullable: true + AlbumCount: + type: integer + description: Gets or sets the album count. + format: int32 + nullable: true + ArtistCount: + type: integer + format: int32 + nullable: true + MusicVideoCount: + type: integer + description: Gets or sets the music video count. + format: int32 + nullable: true + LockData: + type: boolean + description: Gets or sets a value indicating whether [enable internet providers]. + nullable: true + Width: + type: integer + format: int32 + nullable: true + Height: + type: integer + format: int32 + nullable: true + CameraMake: + type: string + nullable: true + CameraModel: + type: string + nullable: true + Software: + type: string + nullable: true + ExposureTime: + type: number + format: double + nullable: true + FocalLength: + type: number + format: double + nullable: true + ImageOrientation: + allOf: + - $ref: '#/components/schemas/ImageOrientation' + nullable: true + Aperture: + type: number + format: double + nullable: true + ShutterSpeed: + type: number + format: double + nullable: true + Latitude: + type: number + format: double + nullable: true + Longitude: + type: number + format: double + nullable: true + Altitude: + type: number + format: double + nullable: true + IsoSpeedRating: + type: integer + format: int32 + nullable: true + SeriesTimerId: + type: string + description: Gets or sets the series timer identifier. + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ChannelPrimaryImageTag: + type: string + description: Gets or sets the channel primary image tag. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + nullable: true + CompletionPercentage: + type: number + description: Gets or sets the completion percentage. + format: double + nullable: true + IsRepeat: + type: boolean + description: Gets or sets a value indicating whether this instance is repeat. + nullable: true + EpisodeTitle: + type: string + description: Gets or sets the episode title. + nullable: true + ChannelType: + allOf: + - $ref: '#/components/schemas/ChannelType' + description: Gets or sets the type of the channel. + nullable: true + Audio: + allOf: + - $ref: '#/components/schemas/ProgramAudio' + description: Gets or sets the audio. + nullable: true + IsMovie: + type: boolean + description: Gets or sets a value indicating whether this instance is movie. + nullable: true + IsSports: + type: boolean + description: Gets or sets a value indicating whether this instance is sports. + nullable: true + IsSeries: + type: boolean + description: Gets or sets a value indicating whether this instance is series. + nullable: true + IsLive: + type: boolean + description: Gets or sets a value indicating whether this instance is live. + nullable: true + IsNews: + type: boolean + description: Gets or sets a value indicating whether this instance is news. + nullable: true + IsKids: + type: boolean + description: Gets or sets a value indicating whether this instance is kids. + nullable: true + IsPremiere: + type: boolean + description: Gets or sets a value indicating whether this instance is premiere. + nullable: true + TimerId: + type: string + description: Gets or sets the timer identifier. + nullable: true + CurrentProgram: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the current program. + nullable: true + additionalProperties: false + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + BaseItemDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + BaseItemKind: + enum: + - AggregateFolder + - Audio + - AudioBook + - BasePluginFolder + - Book + - BoxSet + - Channel + - ChannelFolderItem + - CollectionFolder + - Episode + - Folder + - Genre + - ManualPlaylistsFolder + - Movie + - LiveTvChannel + - LiveTvProgram + - MusicAlbum + - MusicArtist + - MusicGenre + - MusicVideo + - Person + - Photo + - PhotoAlbum + - Playlist + - PlaylistsFolder + - Program + - Recording + - Season + - Series + - Studio + - Trailer + - TvChannel + - TvProgram + - UserRootFolder + - UserView + - Video + - Year + type: string + description: The base item kind. + BaseItemPerson: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + format: uuid + Role: + type: string + description: Gets or sets the role. + nullable: true + Type: + type: string + description: Gets or sets the type. + nullable: true + PrimaryImageTag: + type: string + description: Gets or sets the primary image tag. + nullable: true + ImageBlurHashes: + type: object + properties: + Primary: + type: object + additionalProperties: + type: string + Art: + type: object + additionalProperties: + type: string + Backdrop: + type: object + additionalProperties: + type: string + Banner: + type: object + additionalProperties: + type: string + Logo: + type: object + additionalProperties: + type: string + Thumb: + type: object + additionalProperties: + type: string + Disc: + type: object + additionalProperties: + type: string + Box: + type: object + additionalProperties: + type: string + Screenshot: + type: object + additionalProperties: + type: string + Menu: + type: object + additionalProperties: + type: string + Chapter: + type: object + additionalProperties: + type: string + BoxRear: + type: object + additionalProperties: + type: string + Profile: + type: object + additionalProperties: + type: string + description: Gets or sets the primary image blurhash. + nullable: true + additionalProperties: false + description: This is used by the api to get information about a Person within a BaseItem. + BasePluginConfiguration: + type: object + additionalProperties: false + description: Class BasePluginConfiguration. + BookInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + SeriesName: + type: string + nullable: true + additionalProperties: false + BookInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/BookInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + BoxSetInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + BoxSetInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/BoxSetInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + BrandingOptions: + type: object + properties: + LoginDisclaimer: + type: string + description: Gets or sets the login disclaimer. + nullable: true + CustomCss: + type: string + description: Gets or sets the custom CSS. + nullable: true + SplashscreenEnabled: + type: boolean + description: Gets or sets a value indicating whether to enable the splashscreen. + additionalProperties: false + description: The branding options. + BufferRequestDto: + type: object + properties: + When: + type: string + description: Gets or sets when the request has been made by the client. + format: date-time + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + IsPlaying: + type: boolean + description: Gets or sets a value indicating whether the client playback is unpaused. + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier of the playing item. + format: uuid + additionalProperties: false + description: Class BufferRequestDto. + ChannelFeatures: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + Id: + type: string + description: Gets or sets the identifier. + format: uuid + CanSearch: + type: boolean + description: Gets or sets a value indicating whether this instance can search. + MediaTypes: + type: array + items: + $ref: '#/components/schemas/ChannelMediaType' + description: Gets or sets the media types. + ContentTypes: + type: array + items: + $ref: '#/components/schemas/ChannelMediaContentType' + description: Gets or sets the content types. + MaxPageSize: + type: integer + description: Gets or sets the maximum number of records the channel allows retrieving at a time. + format: int32 + nullable: true + AutoRefreshLevels: + type: integer + description: Gets or sets the automatic refresh levels. + format: int32 + nullable: true + DefaultSortFields: + type: array + items: + $ref: '#/components/schemas/ChannelItemSortField' + description: Gets or sets the default sort orders. + SupportsSortOrderToggle: + type: boolean + description: Gets or sets a value indicating whether a sort ascending/descending toggle is supported. + SupportsLatestMedia: + type: boolean + description: Gets or sets a value indicating whether [supports latest media]. + CanFilter: + type: boolean + description: Gets or sets a value indicating whether this instance can filter. + SupportsContentDownloading: + type: boolean + description: Gets or sets a value indicating whether [supports content downloading]. + additionalProperties: false + ChannelItemSortField: + enum: + - Name + - CommunityRating + - PremiereDate + - DateCreated + - Runtime + - PlayCount + - CommunityPlayCount + type: string + ChannelMappingOptionsDto: + type: object + properties: + TunerChannels: + type: array + items: + $ref: '#/components/schemas/TunerChannelMapping' + description: Gets or sets list of tuner channels. + ProviderChannels: + type: array + items: + $ref: '#/components/schemas/NameIdPair' + description: Gets or sets list of provider channels. + Mappings: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + description: Gets or sets list of mappings. + ProviderName: + type: string + description: Gets or sets provider name. + nullable: true + additionalProperties: false + description: Channel mapping options dto. + ChannelMediaContentType: + enum: + - Clip + - Podcast + - Trailer + - Movie + - Episode + - Song + - MovieExtra + - TvExtra + type: string + ChannelMediaType: + enum: + - Audio + - Video + - Photo + type: string + ChannelType: + enum: + - TV + - Radio + type: string + description: Enum ChannelType. + ChapterInfo: + type: object + properties: + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks. + format: int64 + Name: + type: string + description: Gets or sets the name. + nullable: true + ImagePath: + type: string + description: Gets or sets the image path. + nullable: true + ImageDateModified: + type: string + format: date-time + ImageTag: + type: string + nullable: true + additionalProperties: false + description: Class ChapterInfo. + ClientCapabilities: + type: object + properties: + PlayableMediaTypes: + type: array + items: + type: string + nullable: true + SupportedCommands: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + nullable: true + SupportsMediaControl: + type: boolean + SupportsContentUploading: + type: boolean + MessageCallbackUrl: + type: string + nullable: true + SupportsPersistentIdentifier: + type: boolean + SupportsSync: + type: boolean + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + nullable: true + AppStoreUrl: + type: string + nullable: true + IconUrl: + type: string + nullable: true + additionalProperties: false + ClientCapabilitiesDto: + type: object + properties: + PlayableMediaTypes: + type: array + items: + type: string + description: Gets or sets the list of playable media types. + SupportedCommands: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + description: Gets or sets the list of supported commands. + SupportsMediaControl: + type: boolean + description: Gets or sets a value indicating whether session supports media control. + SupportsContentUploading: + type: boolean + description: Gets or sets a value indicating whether session supports content uploading. + MessageCallbackUrl: + type: string + description: Gets or sets the message callback url. + nullable: true + SupportsPersistentIdentifier: + type: boolean + description: Gets or sets a value indicating whether session supports a persistent identifier. + SupportsSync: + type: boolean + description: Gets or sets a value indicating whether session supports sync. + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + nullable: true + AppStoreUrl: + type: string + description: Gets or sets the app store url. + nullable: true + IconUrl: + type: string + description: Gets or sets the icon url. + nullable: true + additionalProperties: false + description: Client capabilities dto. + ClientLogDocumentResponseDto: + type: object + properties: + FileName: + type: string + description: Gets the resulting filename. + additionalProperties: false + description: Client log document response dto. + CodecProfile: + type: object + properties: + Type: + allOf: + - $ref: '#/components/schemas/CodecType' + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + nullable: true + ApplyConditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + nullable: true + Codec: + type: string + nullable: true + Container: + type: string + nullable: true + additionalProperties: false + CodecType: + enum: + - Video + - VideoAudio + - Audio + type: string + CollectionCreationResult: + type: object + properties: + Id: + type: string + format: uuid + additionalProperties: false + CollectionTypeOptions: + enum: + - Movies + - TvShows + - Music + - MusicVideos + - HomeVideos + - BoxSets + - Books + - Mixed + type: string + ConfigImageTypes: + type: object + properties: + BackdropSizes: + type: array + items: + type: string + nullable: true + BaseUrl: + type: string + nullable: true + LogoSizes: + type: array + items: + type: string + nullable: true + PosterSizes: + type: array + items: + type: string + nullable: true + ProfileSizes: + type: array + items: + type: string + nullable: true + SecureBaseUrl: + type: string + nullable: true + StillSizes: + type: array + items: + type: string + nullable: true + additionalProperties: false + ConfigurationPageInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + EnableInMainMenu: + type: boolean + description: Gets or sets a value indicating whether the configurations page is enabled in the main menu. + MenuSection: + type: string + description: Gets or sets the menu section. + nullable: true + MenuIcon: + type: string + description: Gets or sets the menu icon. + nullable: true + DisplayName: + type: string + description: Gets or sets the display name. + nullable: true + PluginId: + type: string + description: Gets or sets the plugin id. + format: uuid + nullable: true + additionalProperties: false + description: The configuration page info. + ContainerProfile: + type: object + properties: + Type: + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + nullable: true + Container: + type: string + additionalProperties: false + ControlResponse: + type: object + properties: + Headers: + type: object + additionalProperties: + type: string + readOnly: true + Xml: + type: string + IsSuccessful: + type: boolean + additionalProperties: false + CountryInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + DisplayName: + type: string + description: Gets or sets the display name. + nullable: true + TwoLetterISORegionName: + type: string + description: Gets or sets the name of the two letter ISO region. + nullable: true + ThreeLetterISORegionName: + type: string + description: Gets or sets the name of the three letter ISO region. + nullable: true + additionalProperties: false + description: Class CountryInfo. + CreatePlaylistDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name of the new playlist. + nullable: true + Ids: + type: array + items: + type: string + format: uuid + description: Gets or sets item ids to add to the playlist. + UserId: + type: string + description: Gets or sets the user id. + format: uuid + nullable: true + MediaType: + type: string + description: Gets or sets the media type. + nullable: true + additionalProperties: false + description: Create new playlist dto. + CreateUserByName: + type: object + properties: + Name: + type: string + description: Gets or sets the username. + nullable: true + Password: + type: string + description: Gets or sets the password. + nullable: true + additionalProperties: false + description: The create user by name request body. + CultureDto: + type: object + properties: + Name: + type: string + description: Gets the name. + DisplayName: + type: string + description: Gets the display name. + TwoLetterISOLanguageName: + type: string + description: Gets the name of the two letter ISO language. + ThreeLetterISOLanguageName: + type: string + description: Gets the name of the three letter ISO language. + nullable: true + readOnly: true + ThreeLetterISOLanguageNames: + type: array + items: + type: string + additionalProperties: false + description: Class CultureDto. + DayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + type: string + DayPattern: + enum: + - Daily + - Weekdays + - Weekends + type: string + DefaultDirectoryBrowserInfoDto: + type: object + properties: + Path: + type: string + description: Gets or sets the path. + nullable: true + additionalProperties: false + description: Default directory browser info. + DeviceIdentification: + type: object + properties: + FriendlyName: + type: string + description: Gets or sets the name of the friendly. + ModelNumber: + type: string + description: Gets or sets the model number. + SerialNumber: + type: string + description: Gets or sets the serial number. + ModelName: + type: string + description: Gets or sets the name of the model. + ModelDescription: + type: string + description: Gets or sets the model description. + ModelUrl: + type: string + description: Gets or sets the model URL. + Manufacturer: + type: string + description: Gets or sets the manufacturer. + ManufacturerUrl: + type: string + description: Gets or sets the manufacturer URL. + Headers: + type: array + items: + $ref: '#/components/schemas/HttpHeaderInfo' + description: Gets or sets the headers. + additionalProperties: false + DeviceInfo: + type: object + properties: + Name: + type: string + nullable: true + AccessToken: + type: string + description: Gets or sets the access token. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + nullable: true + LastUserName: + type: string + description: Gets or sets the last name of the user. + nullable: true + AppName: + type: string + description: Gets or sets the name of the application. + nullable: true + AppVersion: + type: string + description: Gets or sets the application version. + nullable: true + LastUserId: + type: string + description: Gets or sets the last user identifier. + format: uuid + DateLastActivity: + type: string + description: Gets or sets the date last modified. + format: date-time + Capabilities: + allOf: + - $ref: '#/components/schemas/ClientCapabilities' + description: Gets or sets the capabilities. + nullable: true + IconUrl: + type: string + nullable: true + additionalProperties: false + DeviceInfoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/DeviceInfo' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + DeviceOptions: + type: object + properties: + Id: + type: integer + description: Gets the id. + format: int32 + readOnly: true + DeviceId: + type: string + description: Gets the device id. + CustomName: + type: string + description: Gets or sets the custom name. + nullable: true + additionalProperties: false + description: An entity representing custom options for a device. + DeviceOptionsDto: + type: object + properties: + Id: + type: integer + description: Gets or sets the id. + format: int32 + DeviceId: + type: string + description: Gets or sets the device id. + nullable: true + CustomName: + type: string + description: Gets or sets the custom name. + nullable: true + additionalProperties: false + description: A dto representing custom options for a device. + DeviceProfile: + type: object + properties: + Name: + type: string + description: Gets or sets the name of this device profile. + nullable: true + Id: + type: string + description: Gets or sets the Id. + nullable: true + Identification: + allOf: + - $ref: '#/components/schemas/DeviceIdentification' + description: Gets or sets the Identification. + nullable: true + FriendlyName: + type: string + description: Gets or sets the friendly name of the device profile, which can be shown to users. + nullable: true + Manufacturer: + type: string + description: Gets or sets the manufacturer of the device which this profile represents. + nullable: true + ManufacturerUrl: + type: string + description: Gets or sets an url for the manufacturer of the device which this profile represents. + nullable: true + ModelName: + type: string + description: Gets or sets the model name of the device which this profile represents. + nullable: true + ModelDescription: + type: string + description: Gets or sets the model description of the device which this profile represents. + nullable: true + ModelNumber: + type: string + description: Gets or sets the model number of the device which this profile represents. + nullable: true + ModelUrl: + type: string + description: Gets or sets the ModelUrl. + nullable: true + SerialNumber: + type: string + description: Gets or sets the serial number of the device which this profile represents. + nullable: true + EnableAlbumArtInDidl: + type: boolean + description: Gets or sets a value indicating whether EnableAlbumArtInDidl. + default: false + EnableSingleAlbumArtLimit: + type: boolean + description: Gets or sets a value indicating whether EnableSingleAlbumArtLimit. + default: false + EnableSingleSubtitleLimit: + type: boolean + description: Gets or sets a value indicating whether EnableSingleSubtitleLimit. + default: false + SupportedMediaTypes: + type: string + description: Gets or sets the SupportedMediaTypes. + UserId: + type: string + description: Gets or sets the UserId. + nullable: true + AlbumArtPn: + type: string + description: Gets or sets the AlbumArtPn. + nullable: true + MaxAlbumArtWidth: + type: integer + description: Gets or sets the MaxAlbumArtWidth. + format: int32 + nullable: true + MaxAlbumArtHeight: + type: integer + description: Gets or sets the MaxAlbumArtHeight. + format: int32 + nullable: true + MaxIconWidth: + type: integer + description: Gets or sets the maximum allowed width of embedded icons. + format: int32 + nullable: true + MaxIconHeight: + type: integer + description: Gets or sets the maximum allowed height of embedded icons. + format: int32 + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for all streamed content. + format: int32 + nullable: true + MaxStaticBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files). + format: int32 + nullable: true + MusicStreamingTranscodingBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for transcoded music streams. + format: int32 + nullable: true + MaxStaticMusicBitrate: + type: integer + description: Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files. + format: int32 + nullable: true + SonyAggregationFlags: + type: string + description: Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace. + nullable: true + ProtocolInfo: + type: string + description: Gets or sets the ProtocolInfo. + nullable: true + TimelineOffsetSeconds: + type: integer + description: Gets or sets the TimelineOffsetSeconds. + format: int32 + default: 0 + RequiresPlainVideoItems: + type: boolean + description: Gets or sets a value indicating whether RequiresPlainVideoItems. + default: false + RequiresPlainFolders: + type: boolean + description: Gets or sets a value indicating whether RequiresPlainFolders. + default: false + EnableMSMediaReceiverRegistrar: + type: boolean + description: Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar. + default: false + IgnoreTranscodeByteRangeRequests: + type: boolean + description: Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests. + default: false + XmlRootAttributes: + type: array + items: + $ref: '#/components/schemas/XmlAttribute' + description: Gets or sets the XmlRootAttributes. + DirectPlayProfiles: + type: array + items: + $ref: '#/components/schemas/DirectPlayProfile' + description: Gets or sets the direct play profiles. + TranscodingProfiles: + type: array + items: + $ref: '#/components/schemas/TranscodingProfile' + description: Gets or sets the transcoding profiles. + ContainerProfiles: + type: array + items: + $ref: '#/components/schemas/ContainerProfile' + description: Gets or sets the container profiles. + CodecProfiles: + type: array + items: + $ref: '#/components/schemas/CodecProfile' + description: Gets or sets the codec profiles. + ResponseProfiles: + type: array + items: + $ref: '#/components/schemas/ResponseProfile' + description: Gets or sets the ResponseProfiles. + SubtitleProfiles: + type: array + items: + $ref: '#/components/schemas/SubtitleProfile' + description: Gets or sets the subtitle profiles. + additionalProperties: false + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + DeviceProfileInfo: + type: object + properties: + Id: + type: string + description: Gets or sets the identifier. + nullable: true + Name: + type: string + description: Gets or sets the name. + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/DeviceProfileType' + description: Gets or sets the type. + additionalProperties: false + DeviceProfileType: + enum: + - System + - User + type: string + DirectPlayProfile: + type: object + properties: + Container: + type: string + nullable: true + AudioCodec: + type: string + nullable: true + VideoCodec: + type: string + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + additionalProperties: false + DisplayPreferencesDto: + type: object + properties: + Id: + type: string + description: Gets or sets the user id. + nullable: true + ViewType: + type: string + description: Gets or sets the type of the view. + nullable: true + SortBy: + type: string + description: Gets or sets the sort by. + nullable: true + IndexBy: + type: string + description: Gets or sets the index by. + nullable: true + RememberIndexing: + type: boolean + description: Gets or sets a value indicating whether [remember indexing]. + PrimaryImageHeight: + type: integer + description: Gets or sets the height of the primary image. + format: int32 + PrimaryImageWidth: + type: integer + description: Gets or sets the width of the primary image. + format: int32 + CustomPrefs: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the custom prefs. + ScrollDirection: + allOf: + - $ref: '#/components/schemas/ScrollDirection' + description: Gets or sets the scroll direction. + ShowBackdrop: + type: boolean + description: Gets or sets a value indicating whether to show backdrops on this item. + RememberSorting: + type: boolean + description: Gets or sets a value indicating whether [remember sorting]. + SortOrder: + allOf: + - $ref: '#/components/schemas/SortOrder' + description: Gets or sets the sort order. + ShowSidebar: + type: boolean + description: Gets or sets a value indicating whether [show sidebar]. + Client: + type: string + description: Gets or sets the client. + nullable: true + additionalProperties: false + description: Defines the display preferences for any item that supports them (usually Folders). + DlnaOptions: + type: object + properties: + EnablePlayTo: + type: boolean + description: Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem. + EnableServer: + type: boolean + description: Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem. + EnableDebugLog: + type: boolean + description: "Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + EnablePlayToTracing: + type: boolean + description: "Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna.PlayTo\": \"Debug\" msut be set in logging.default.json for this property to work." + ClientDiscoveryIntervalSeconds: + type: integer + description: "Gets or sets the ssdp client discovery interval time (in seconds).\r\nThis is the time after which the server will send a ssdp search request." + format: int32 + AliveMessageIntervalSeconds: + type: integer + description: Gets or sets the frequency at which ssdp alive notifications are transmitted. + format: int32 + BlastAliveMessageIntervalSeconds: + type: integer + description: Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED. + format: int32 + DefaultUserId: + type: string + description: Gets or sets the default user account that the dlna server uses. + nullable: true + AutoCreatePlayToProfiles: + type: boolean + description: Gets or sets a value indicating whether playTo device profiles should be created. + BlastAliveMessages: + type: boolean + description: Gets or sets a value indicating whether to blast alive messages. + SendOnlyMatchedHost: + type: boolean + description: gets or sets a value indicating whether to send only matched host. + additionalProperties: false + description: The DlnaOptions class contains the user definable parameters for the dlna subsystems. + DlnaProfileType: + enum: + - Audio + - Video + - Photo + - Subtitle + type: string + DynamicDayOfWeek: + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Everyday + - Weekday + - Weekend + type: string + description: An enum that represents a day of the week, weekdays, weekends, or all days. + EmbeddedSubtitleOptions: + enum: + - AllowAll + - AllowText + - AllowImage + - AllowNone + type: string + description: An enum representing the options to disable embedded subs. + EncodingContext: + enum: + - Streaming + - Static + type: string + EncodingOptions: + type: object + properties: + EncodingThreadCount: + type: integer + format: int32 + TranscodingTempPath: + type: string + nullable: true + FallbackFontPath: + type: string + nullable: true + EnableFallbackFont: + type: boolean + DownMixAudioBoost: + type: number + format: double + MaxMuxingQueueSize: + type: integer + format: int32 + EnableThrottling: + type: boolean + ThrottleDelaySeconds: + type: integer + format: int32 + HardwareAccelerationType: + type: string + nullable: true + EncoderAppPath: + type: string + description: Gets or sets the FFmpeg path as set by the user via the UI. + nullable: true + EncoderAppPathDisplay: + type: string + description: Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page. + nullable: true + VaapiDevice: + type: string + nullable: true + EnableTonemapping: + type: boolean + EnableVppTonemapping: + type: boolean + TonemappingAlgorithm: + type: string + nullable: true + TonemappingMode: + type: string + nullable: true + TonemappingRange: + type: string + nullable: true + TonemappingDesat: + type: number + format: double + TonemappingPeak: + type: number + format: double + TonemappingParam: + type: number + format: double + VppTonemappingBrightness: + type: number + format: double + VppTonemappingContrast: + type: number + format: double + H264Crf: + type: integer + format: int32 + H265Crf: + type: integer + format: int32 + EncoderPreset: + type: string + nullable: true + DeinterlaceDoubleRate: + type: boolean + DeinterlaceMethod: + type: string + nullable: true + EnableDecodingColorDepth10Hevc: + type: boolean + EnableDecodingColorDepth10Vp9: + type: boolean + EnableEnhancedNvdecDecoder: + type: boolean + PreferSystemNativeHwDecoder: + type: boolean + EnableIntelLowPowerH264HwEncoder: + type: boolean + EnableIntelLowPowerHevcHwEncoder: + type: boolean + EnableHardwareEncoding: + type: boolean + AllowHevcEncoding: + type: boolean + EnableSubtitleExtraction: + type: boolean + HardwareDecodingCodecs: + type: array + items: + type: string + nullable: true + AllowOnDemandMetadataBasedKeyframeExtractionForExtensions: + type: array + items: + type: string + nullable: true + additionalProperties: false + EndPointInfo: + type: object + properties: + IsLocal: + type: boolean + IsInNetwork: + type: boolean + additionalProperties: false + ExternalIdInfo: + type: object + properties: + Name: + type: string + description: 'Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc).' + Key: + type: string + description: Gets or sets the unique key for this id. This key should be unique across all providers. + Type: + allOf: + - $ref: '#/components/schemas/ExternalIdMediaType' + description: "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type." + nullable: true + UrlFormatString: + type: string + description: Gets or sets the URL format string. + nullable: true + additionalProperties: false + description: Represents the external id information for serialization to the client. + ExternalIdMediaType: + enum: + - Album + - AlbumArtist + - Artist + - BoxSet + - Episode + - Movie + - OtherArtist + - Person + - ReleaseGroup + - Season + - Series + - Track + type: string + description: The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo. + ExternalUrl: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Url: + type: string + description: Gets or sets the type of the item. + nullable: true + additionalProperties: false + FFmpegLocation: + enum: + - NotFound + - SetByArgument + - Custom + - System + type: string + description: Enum describing the location of the FFmpeg tool. + FileSystemEntryInfo: + type: object + properties: + Name: + type: string + description: Gets the name. + Path: + type: string + description: Gets the path. + Type: + allOf: + - $ref: '#/components/schemas/FileSystemEntryType' + description: Gets the type. + additionalProperties: false + description: Class FileSystemEntryInfo. + FileSystemEntryType: + enum: + - File + - Directory + - NetworkComputer + - NetworkShare + type: string + description: Enum FileSystemEntryType. + FontFile: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Size: + type: integer + description: Gets or sets the size. + format: int64 + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateModified: + type: string + description: Gets or sets the date modified. + format: date-time + additionalProperties: false + description: Class FontFile. + ForgotPasswordAction: + enum: + - ContactAdmin + - PinCode + - InNetworkRequired + type: string + ForgotPasswordDto: + required: + - EnteredUsername + type: object + properties: + EnteredUsername: + type: string + description: Gets or sets the entered username to have its password reset. + additionalProperties: false + description: Forgot Password request body DTO. + ForgotPasswordPinDto: + required: + - Pin + type: object + properties: + Pin: + type: string + description: Gets or sets the entered pin to have the password reset. + additionalProperties: false + description: Forgot Password Pin enter request body DTO. + ForgotPasswordResult: + type: object + properties: + Action: + allOf: + - $ref: '#/components/schemas/ForgotPasswordAction' + description: Gets or sets the action. + PinFile: + type: string + description: Gets or sets the pin file. + nullable: true + PinExpirationDate: + type: string + description: Gets or sets the pin expiration date. + format: date-time + nullable: true + additionalProperties: false + GeneralCommand: + type: object + properties: + Name: + allOf: + - $ref: '#/components/schemas/GeneralCommandType' + description: This exists simply to identify a set of known commands. + ControllingUserId: + type: string + format: uuid + Arguments: + type: object + additionalProperties: + type: string + nullable: true + additionalProperties: false + GeneralCommandType: + enum: + - MoveUp + - MoveDown + - MoveLeft + - MoveRight + - PageUp + - PageDown + - PreviousLetter + - NextLetter + - ToggleOsd + - ToggleContextMenu + - Select + - Back + - TakeScreenshot + - SendKey + - SendString + - GoHome + - GoToSettings + - VolumeUp + - VolumeDown + - Mute + - Unmute + - ToggleMute + - SetVolume + - SetAudioStreamIndex + - SetSubtitleStreamIndex + - ToggleFullscreen + - DisplayContent + - GoToSearch + - DisplayMessage + - SetRepeatMode + - ChannelUp + - ChannelDown + - Guide + - ToggleStats + - PlayMediaSource + - PlayTrailers + - SetShuffleQueue + - PlayState + - PlayNext + - ToggleOsdMenu + - Play + - SetMaxStreamingBitrate + type: string + description: This exists simply to identify a set of known commands. + GetProgramsDto: + type: object + properties: + ChannelIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the channels to return guide information for. + UserId: + type: string + description: Gets or sets optional. Filter by user id. + format: uuid + MinStartDate: + type: string + description: "Gets or sets the minimum premiere start date.\r\nOptional." + format: date-time + nullable: true + HasAired: + type: boolean + description: "Gets or sets filter by programs that have completed airing, or not.\r\nOptional." + nullable: true + IsAiring: + type: boolean + description: "Gets or sets filter by programs that are currently airing, or not.\r\nOptional." + nullable: true + MaxStartDate: + type: string + description: "Gets or sets the maximum premiere start date.\r\nOptional." + format: date-time + nullable: true + MinEndDate: + type: string + description: "Gets or sets the minimum premiere end date.\r\nOptional." + format: date-time + nullable: true + MaxEndDate: + type: string + description: "Gets or sets the maximum premiere end date.\r\nOptional." + format: date-time + nullable: true + IsMovie: + type: boolean + description: "Gets or sets filter for movies.\r\nOptional." + nullable: true + IsSeries: + type: boolean + description: "Gets or sets filter for series.\r\nOptional." + nullable: true + IsNews: + type: boolean + description: "Gets or sets filter for news.\r\nOptional." + nullable: true + IsKids: + type: boolean + description: "Gets or sets filter for kids.\r\nOptional." + nullable: true + IsSports: + type: boolean + description: "Gets or sets filter for sports.\r\nOptional." + nullable: true + StartIndex: + type: integer + description: "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.\r\nOptional." + format: int32 + nullable: true + Limit: + type: integer + description: "Gets or sets the maximum number of records to return.\r\nOptional." + format: int32 + nullable: true + SortBy: + type: array + items: + type: string + description: "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.\r\nOptional." + SortOrder: + type: array + items: + $ref: '#/components/schemas/SortOrder' + description: Gets or sets sort Order - Ascending,Descending. + Genres: + type: array + items: + type: string + description: Gets or sets the genres to return guide information for. + GenreIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the genre ids to return guide information for. + EnableImages: + type: boolean + description: "Gets or sets include image information in output.\r\nOptional." + nullable: true + EnableTotalRecordCount: + type: boolean + description: Gets or sets a value indicating whether retrieve total record count. + ImageTypeLimit: + type: integer + description: "Gets or sets the max number of images to return, per image type.\r\nOptional." + format: int32 + nullable: true + EnableImageTypes: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: "Gets or sets the image types to include in the output.\r\nOptional." + EnableUserData: + type: boolean + description: "Gets or sets include user data.\r\nOptional." + nullable: true + SeriesTimerId: + type: string + description: "Gets or sets filter by series timer id.\r\nOptional." + nullable: true + LibrarySeriesId: + type: string + description: "Gets or sets filter by library series id.\r\nOptional." + format: uuid + Fields: + type: array + items: + $ref: '#/components/schemas/ItemFields' + description: "Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.\r\nOptional." + additionalProperties: false + description: Get programs dto. + GroupInfoDto: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + GroupName: + type: string + description: Gets the group name. + State: + allOf: + - $ref: '#/components/schemas/GroupStateType' + description: Gets the group state. + Participants: + type: array + items: + type: string + description: Gets the participants. + LastUpdatedAt: + type: string + description: Gets the date when this DTO has been created. + format: date-time + additionalProperties: false + description: Class GroupInfoDto. + GroupQueueMode: + enum: + - Queue + - QueueNext + type: string + description: Enum GroupQueueMode. + GroupRepeatMode: + enum: + - RepeatOne + - RepeatAll + - RepeatNone + type: string + description: Enum GroupRepeatMode. + GroupShuffleMode: + enum: + - Sorted + - Shuffle + type: string + description: Enum GroupShuffleMode. + GroupStateType: + enum: + - Idle + - Waiting + - Paused + - Playing + type: string + description: Enum GroupState. + GroupUpdateType: + enum: + - UserJoined + - UserLeft + - GroupJoined + - GroupLeft + - StateUpdate + - PlayQueue + - NotInGroup + - GroupDoesNotExist + - CreateGroupDenied + - JoinGroupDenied + - LibraryAccessDenied + type: string + description: Enum GroupUpdateType. + GuideInfo: + type: object + properties: + StartDate: + type: string + description: Gets or sets the start date. + format: date-time + EndDate: + type: string + description: Gets or sets the end date. + format: date-time + additionalProperties: false + HardwareEncodingType: + enum: + - AMF + - QSV + - NVENC + - V4L2M2M + - VAAPI + - VideoToolBox + type: string + description: Enum HardwareEncodingType. + HeaderMatchType: + enum: + - Equals + - Regex + - Substring + type: string + HttpHeaderInfo: + type: object + properties: + Name: + type: string + nullable: true + Value: + type: string + nullable: true + Match: + allOf: + - $ref: '#/components/schemas/HeaderMatchType' + additionalProperties: false + IgnoreWaitRequestDto: + type: object + properties: + IgnoreWait: + type: boolean + description: Gets or sets a value indicating whether the client should be ignored. + additionalProperties: false + description: Class IgnoreWaitRequestDto. + ImageByNameInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Theme: + type: string + description: Gets or sets the theme. + nullable: true + Context: + type: string + description: Gets or sets the context. + nullable: true + FileLength: + type: integer + description: Gets or sets the length of the file. + format: int64 + Format: + type: string + description: Gets or sets the format. + nullable: true + additionalProperties: false + ImageFormat: + enum: + - Bmp + - Gif + - Jpg + - Png + - Webp + type: string + description: Enum ImageOutputFormat. + ImageInfo: + type: object + properties: + ImageType: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type of the image. + ImageIndex: + type: integer + description: Gets or sets the index of the image. + format: int32 + nullable: true + ImageTag: + type: string + description: Gets or sets the image tag. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + BlurHash: + type: string + description: Gets or sets the blurhash. + nullable: true + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + Size: + type: integer + description: Gets or sets the size. + format: int64 + additionalProperties: false + description: Class ImageInfo. + ImageOption: + type: object + properties: + Type: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type. + Limit: + type: integer + description: Gets or sets the limit. + format: int32 + MinWidth: + type: integer + description: Gets or sets the minimum width. + format: int32 + additionalProperties: false + ImageOrientation: + enum: + - TopLeft + - TopRight + - BottomRight + - BottomLeft + - LeftTop + - RightTop + - RightBottom + - LeftBottom + type: string + ImageProviderInfo: + type: object + properties: + Name: + type: string + description: Gets the name. + SupportedImages: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: Gets the supported image types. + additionalProperties: false + description: Class ImageProviderInfo. + ImageSavingConvention: + enum: + - Legacy + - Compatible + type: string + ImageType: + enum: + - Primary + - Art + - Backdrop + - Banner + - Logo + - Thumb + - Disc + - Box + - Screenshot + - Menu + - Chapter + - BoxRear + - Profile + type: string + description: Enum ImageType. + InstallationInfo: + type: object + properties: + Guid: + type: string + description: Gets or sets the Id. + format: uuid + Name: + type: string + description: Gets or sets the name. + nullable: true + Version: + type: string + description: Gets or sets the version. + nullable: true + Changelog: + type: string + description: Gets or sets the changelog for this version. + nullable: true + SourceUrl: + type: string + description: Gets or sets the source URL. + nullable: true + Checksum: + type: string + description: Gets or sets a checksum for the binary. + nullable: true + PackageInfo: + allOf: + - $ref: '#/components/schemas/PackageInfo' + description: Gets or sets package information for the installation. + nullable: true + additionalProperties: false + description: Class InstallationInfo. + IPlugin: + type: object + properties: + Name: + type: string + description: Gets the name of the plugin. + nullable: true + readOnly: true + Description: + type: string + description: Gets the Description. + nullable: true + readOnly: true + Id: + type: string + description: Gets the unique id. + format: uuid + readOnly: true + Version: + type: string + description: Gets the plugin version. + nullable: true + readOnly: true + AssemblyFilePath: + type: string + description: Gets the path to the assembly file. + nullable: true + readOnly: true + CanUninstall: + type: boolean + description: Gets a value indicating whether the plugin can be uninstalled. + readOnly: true + DataFolderPath: + type: string + description: Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. + nullable: true + readOnly: true + additionalProperties: false + description: Defines the MediaBrowser.Common.Plugins.IPlugin. + IsoType: + enum: + - Dvd + - BluRay + type: string + description: Enum IsoType. + ItemCounts: + type: object + properties: + MovieCount: + type: integer + description: Gets or sets the movie count. + format: int32 + SeriesCount: + type: integer + description: Gets or sets the series count. + format: int32 + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + ArtistCount: + type: integer + description: Gets or sets the artist count. + format: int32 + ProgramCount: + type: integer + description: Gets or sets the program count. + format: int32 + TrailerCount: + type: integer + description: Gets or sets the trailer count. + format: int32 + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + AlbumCount: + type: integer + description: Gets or sets the album count. + format: int32 + MusicVideoCount: + type: integer + description: Gets or sets the music video count. + format: int32 + BoxSetCount: + type: integer + description: Gets or sets the box set count. + format: int32 + BookCount: + type: integer + description: Gets or sets the book count. + format: int32 + ItemCount: + type: integer + description: Gets or sets the item count. + format: int32 + additionalProperties: false + description: Class LibrarySummary. + ItemFields: + enum: + - AirTime + - CanDelete + - CanDownload + - ChannelInfo + - Chapters + - ChildCount + - CumulativeRunTimeTicks + - CustomRating + - DateCreated + - DateLastMediaAdded + - DisplayPreferencesId + - Etag + - ExternalUrls + - Genres + - HomePageUrl + - ItemCounts + - MediaSourceCount + - MediaSources + - OriginalTitle + - Overview + - ParentId + - Path + - People + - PlayAccess + - ProductionLocations + - ProviderIds + - PrimaryImageAspectRatio + - RecursiveItemCount + - Settings + - ScreenshotImageTags + - SeriesPrimaryImage + - SeriesStudio + - SortName + - SpecialEpisodeNumbers + - Studios + - BasicSyncInfo + - SyncInfo + - Taglines + - Tags + - RemoteTrailers + - MediaStreams + - SeasonUserData + - ServiceName + - ThemeSongIds + - ThemeVideoIds + - ExternalEtag + - PresentationUniqueKey + - InheritedParentalRatingValue + - ExternalSeriesId + - SeriesPresentationUniqueKey + - DateLastRefreshed + - DateLastSaved + - RefreshState + - ChannelImage + - EnableMediaSourceDisplay + - Width + - Height + - ExtraIds + - LocalTrailerCount + - IsHD + - SpecialFeatureCount + type: string + description: Used to control the data that gets attached to DtoBaseItems. + ItemFilter: + enum: + - IsFolder + - IsNotFolder + - IsUnplayed + - IsPlayed + - IsFavorite + - IsResumable + - Likes + - Dislikes + - IsFavoriteOrLikes + type: string + description: Enum ItemFilter. + JoinGroupRequestDto: + type: object + properties: + GroupId: + type: string + description: Gets or sets the group identifier. + format: uuid + additionalProperties: false + description: Class JoinGroupRequestDto. + KeepUntil: + enum: + - UntilDeleted + - UntilSpaceNeeded + - UntilWatched + - UntilDate + type: string + LibraryOptionInfoDto: + type: object + properties: + Name: + type: string + description: Gets or sets name. + nullable: true + DefaultEnabled: + type: boolean + description: Gets or sets a value indicating whether default enabled. + additionalProperties: false + description: Library option info dto. + LibraryOptions: + type: object + properties: + EnablePhotos: + type: boolean + EnableRealtimeMonitor: + type: boolean + EnableChapterImageExtraction: + type: boolean + ExtractChapterImagesDuringLibraryScan: + type: boolean + PathInfos: + type: array + items: + $ref: '#/components/schemas/MediaPathInfo' + SaveLocalMetadata: + type: boolean + EnableInternetProviders: + type: boolean + deprecated: true + EnableAutomaticSeriesGrouping: + type: boolean + EnableEmbeddedTitles: + type: boolean + EnableEmbeddedEpisodeInfos: + type: boolean + AutomaticRefreshIntervalDays: + type: integer + format: int32 + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + SeasonZeroDisplayName: + type: string + MetadataSavers: + type: array + items: + type: string + nullable: true + DisabledLocalMetadataReaders: + type: array + items: + type: string + LocalMetadataReaderOrder: + type: array + items: + type: string + nullable: true + DisabledSubtitleFetchers: + type: array + items: + type: string + SubtitleFetcherOrder: + type: array + items: + type: string + SkipSubtitlesIfEmbeddedSubtitlesPresent: + type: boolean + SkipSubtitlesIfAudioTrackMatches: + type: boolean + SubtitleDownloadLanguages: + type: array + items: + type: string + nullable: true + RequirePerfectSubtitleMatch: + type: boolean + SaveSubtitlesWithMedia: + type: boolean + AutomaticallyAddToCollection: + type: boolean + AllowEmbeddedSubtitles: + allOf: + - $ref: '#/components/schemas/EmbeddedSubtitleOptions' + description: An enum representing the options to disable embedded subs. + TypeOptions: + type: array + items: + $ref: '#/components/schemas/TypeOptions' + additionalProperties: false + LibraryOptionsResultDto: + type: object + properties: + MetadataSavers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata savers. + MetadataReaders: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata readers. + SubtitleFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the subtitle fetchers. + TypeOptions: + type: array + items: + $ref: '#/components/schemas/LibraryTypeOptionsDto' + description: Gets or sets the type options. + additionalProperties: false + description: Library options result dto. + LibraryTypeOptionsDto: + type: object + properties: + Type: + type: string + description: Gets or sets the type. + nullable: true + MetadataFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the metadata fetchers. + ImageFetchers: + type: array + items: + $ref: '#/components/schemas/LibraryOptionInfoDto' + description: Gets or sets the image fetchers. + SupportedImageTypes: + type: array + items: + $ref: '#/components/schemas/ImageType' + description: Gets or sets the supported image types. + DefaultImageOptions: + type: array + items: + $ref: '#/components/schemas/ImageOption' + description: Gets or sets the default image options. + additionalProperties: false + description: Library type options dto. + LibraryUpdateInfo: + type: object + properties: + FoldersAddedTo: + type: array + items: + type: string + description: Gets or sets the folders added to. + FoldersRemovedFrom: + type: array + items: + type: string + description: Gets or sets the folders removed from. + ItemsAdded: + type: array + items: + type: string + description: Gets or sets the items added. + ItemsRemoved: + type: array + items: + type: string + description: Gets or sets the items removed. + ItemsUpdated: + type: array + items: + type: string + description: Gets or sets the items updated. + CollectionFolders: + type: array + items: + type: string + IsEmpty: + type: boolean + readOnly: true + additionalProperties: false + description: Class LibraryUpdateInfo. + ListingsProviderInfo: + type: object + properties: + Id: + type: string + nullable: true + Type: + type: string + nullable: true + Username: + type: string + nullable: true + Password: + type: string + nullable: true + ListingsId: + type: string + nullable: true + ZipCode: + type: string + nullable: true + Country: + type: string + nullable: true + Path: + type: string + nullable: true + EnabledTuners: + type: array + items: + type: string + nullable: true + EnableAllTuners: + type: boolean + NewsCategories: + type: array + items: + type: string + nullable: true + SportsCategories: + type: array + items: + type: string + nullable: true + KidsCategories: + type: array + items: + type: string + nullable: true + MovieCategories: + type: array + items: + type: string + nullable: true + ChannelMappings: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + nullable: true + MoviePrefix: + type: string + nullable: true + PreferredLanguage: + type: string + nullable: true + UserAgent: + type: string + nullable: true + additionalProperties: false + LiveStreamResponse: + type: object + properties: + MediaSource: + allOf: + - $ref: '#/components/schemas/MediaSourceInfo' + additionalProperties: false + LiveTvInfo: + type: object + properties: + Services: + type: array + items: + $ref: '#/components/schemas/LiveTvServiceInfo' + description: Gets or sets the services. + IsEnabled: + type: boolean + description: Gets or sets a value indicating whether this instance is enabled. + EnabledUsers: + type: array + items: + type: string + description: Gets or sets the enabled users. + additionalProperties: false + LiveTvOptions: + type: object + properties: + GuideDays: + type: integer + format: int32 + nullable: true + RecordingPath: + type: string + nullable: true + MovieRecordingPath: + type: string + nullable: true + SeriesRecordingPath: + type: string + nullable: true + EnableRecordingSubfolders: + type: boolean + EnableOriginalAudioWithEncodedRecordings: + type: boolean + TunerHosts: + type: array + items: + $ref: '#/components/schemas/TunerHostInfo' + nullable: true + ListingProviders: + type: array + items: + $ref: '#/components/schemas/ListingsProviderInfo' + nullable: true + PrePaddingSeconds: + type: integer + format: int32 + PostPaddingSeconds: + type: integer + format: int32 + MediaLocationsCreated: + type: array + items: + type: string + nullable: true + RecordingPostProcessor: + type: string + nullable: true + RecordingPostProcessorArguments: + type: string + nullable: true + additionalProperties: false + LiveTvServiceInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + HomePageUrl: + type: string + description: Gets or sets the home page URL. + nullable: true + Status: + allOf: + - $ref: '#/components/schemas/LiveTvServiceStatus' + description: Gets or sets the status. + StatusMessage: + type: string + description: Gets or sets the status message. + nullable: true + Version: + type: string + description: Gets or sets the version. + nullable: true + HasUpdateAvailable: + type: boolean + description: Gets or sets a value indicating whether this instance has update available. + IsVisible: + type: boolean + description: Gets or sets a value indicating whether this instance is visible. + Tuners: + type: array + items: + type: string + nullable: true + additionalProperties: false + description: Class ServiceInfo. + LiveTvServiceStatus: + enum: + - Ok + - Unavailable + type: string + LocalizationOption: + type: object + properties: + Name: + type: string + nullable: true + Value: + type: string + nullable: true + additionalProperties: false + LocationType: + enum: + - FileSystem + - Remote + - Virtual + - Offline + type: string + description: Enum LocationType. + LogFile: + type: object + properties: + DateCreated: + type: string + description: Gets or sets the date created. + format: date-time + DateModified: + type: string + description: Gets or sets the date modified. + format: date-time + Size: + type: integer + description: Gets or sets the size. + format: int64 + Name: + type: string + description: Gets or sets the name. + nullable: true + additionalProperties: false + LogLevel: + enum: + - Trace + - Debug + - Information + - Warning + - Error + - Critical + - None + type: string + MediaAttachment: + type: object + properties: + Codec: + type: string + description: Gets or sets the codec. + nullable: true + CodecTag: + type: string + description: Gets or sets the codec tag. + nullable: true + Comment: + type: string + description: Gets or sets the comment. + nullable: true + Index: + type: integer + description: Gets or sets the index. + format: int32 + FileName: + type: string + description: Gets or sets the filename. + nullable: true + MimeType: + type: string + description: Gets or sets the MIME type. + nullable: true + DeliveryUrl: + type: string + description: Gets or sets the delivery URL. + nullable: true + additionalProperties: false + description: Class MediaAttachment. + MediaEncoderPathDto: + type: object + properties: + Path: + type: string + description: Gets or sets media encoder path. + PathType: + type: string + description: Gets or sets media encoder path type. + additionalProperties: false + description: Media Encoder Path Dto. + MediaPathDto: + required: + - Name + type: object + properties: + Name: + type: string + description: Gets or sets the name of the library. + Path: + type: string + description: Gets or sets the path to add. + nullable: true + PathInfo: + allOf: + - $ref: '#/components/schemas/MediaPathInfo' + description: Gets or sets the path info. + nullable: true + additionalProperties: false + description: Media Path dto. + MediaPathInfo: + type: object + properties: + Path: + type: string + NetworkPath: + type: string + nullable: true + additionalProperties: false + MediaProtocol: + enum: + - File + - Http + - Rtmp + - Rtsp + - Udp + - Rtp + - Ftp + type: string + MediaSourceInfo: + type: object + properties: + Protocol: + allOf: + - $ref: '#/components/schemas/MediaProtocol' + Id: + type: string + nullable: true + Path: + type: string + nullable: true + EncoderPath: + type: string + nullable: true + EncoderProtocol: + allOf: + - $ref: '#/components/schemas/MediaProtocol' + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/MediaSourceType' + Container: + type: string + nullable: true + Size: + type: integer + format: int64 + nullable: true + Name: + type: string + nullable: true + IsRemote: + type: boolean + description: "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + ETag: + type: string + nullable: true + RunTimeTicks: + type: integer + format: int64 + nullable: true + ReadAtNativeFramerate: + type: boolean + IgnoreDts: + type: boolean + IgnoreIndex: + type: boolean + GenPtsInput: + type: boolean + SupportsTranscoding: + type: boolean + SupportsDirectStream: + type: boolean + SupportsDirectPlay: + type: boolean + IsInfiniteStream: + type: boolean + RequiresOpening: + type: boolean + OpenToken: + type: string + nullable: true + RequiresClosing: + type: boolean + LiveStreamId: + type: string + nullable: true + BufferMs: + type: integer + format: int32 + nullable: true + RequiresLooping: + type: boolean + SupportsProbing: + type: boolean + VideoType: + allOf: + - $ref: '#/components/schemas/VideoType' + nullable: true + IsoType: + allOf: + - $ref: '#/components/schemas/IsoType' + nullable: true + Video3DFormat: + allOf: + - $ref: '#/components/schemas/Video3DFormat' + nullable: true + MediaStreams: + type: array + items: + $ref: '#/components/schemas/MediaStream' + nullable: true + MediaAttachments: + type: array + items: + $ref: '#/components/schemas/MediaAttachment' + nullable: true + Formats: + type: array + items: + type: string + nullable: true + Bitrate: + type: integer + format: int32 + nullable: true + Timestamp: + allOf: + - $ref: '#/components/schemas/TransportStreamTimestamp' + nullable: true + RequiredHttpHeaders: + type: object + additionalProperties: + type: string + nullable: true + nullable: true + TranscodingUrl: + type: string + nullable: true + TranscodingSubProtocol: + type: string + nullable: true + TranscodingContainer: + type: string + nullable: true + AnalyzeDurationMs: + type: integer + format: int32 + nullable: true + DefaultAudioStreamIndex: + type: integer + format: int32 + nullable: true + DefaultSubtitleStreamIndex: + type: integer + format: int32 + nullable: true + additionalProperties: false + MediaSourceType: + enum: + - Default + - Grouping + - Placeholder + type: string + MediaStream: + type: object + properties: + Codec: + type: string + description: Gets or sets the codec. + nullable: true + CodecTag: + type: string + description: Gets or sets the codec tag. + nullable: true + Language: + type: string + description: Gets or sets the language. + nullable: true + ColorRange: + type: string + description: Gets or sets the color range. + nullable: true + ColorSpace: + type: string + description: Gets or sets the color space. + nullable: true + ColorTransfer: + type: string + description: Gets or sets the color transfer. + nullable: true + ColorPrimaries: + type: string + description: Gets or sets the color primaries. + nullable: true + DvVersionMajor: + type: integer + description: Gets or sets the Dolby Vision version major. + format: int32 + nullable: true + DvVersionMinor: + type: integer + description: Gets or sets the Dolby Vision version minor. + format: int32 + nullable: true + DvProfile: + type: integer + description: Gets or sets the Dolby Vision profile. + format: int32 + nullable: true + DvLevel: + type: integer + description: Gets or sets the Dolby Vision level. + format: int32 + nullable: true + RpuPresentFlag: + type: integer + description: Gets or sets the Dolby Vision rpu present flag. + format: int32 + nullable: true + ElPresentFlag: + type: integer + description: Gets or sets the Dolby Vision el present flag. + format: int32 + nullable: true + BlPresentFlag: + type: integer + description: Gets or sets the Dolby Vision bl present flag. + format: int32 + nullable: true + DvBlSignalCompatibilityId: + type: integer + description: Gets or sets the Dolby Vision bl signal compatibility id. + format: int32 + nullable: true + Comment: + type: string + description: Gets or sets the comment. + nullable: true + TimeBase: + type: string + description: Gets or sets the time base. + nullable: true + CodecTimeBase: + type: string + description: Gets or sets the codec time base. + nullable: true + Title: + type: string + description: Gets or sets the title. + nullable: true + VideoRange: + type: string + description: Gets the video range. + nullable: true + readOnly: true + VideoRangeType: + type: string + description: Gets the video range type. + nullable: true + readOnly: true + VideoDoViTitle: + type: string + description: Gets the video dovi title. + nullable: true + readOnly: true + LocalizedUndefined: + type: string + nullable: true + LocalizedDefault: + type: string + nullable: true + LocalizedForced: + type: string + nullable: true + LocalizedExternal: + type: string + nullable: true + DisplayTitle: + type: string + nullable: true + readOnly: true + NalLengthSize: + type: string + nullable: true + IsInterlaced: + type: boolean + description: Gets or sets a value indicating whether this instance is interlaced. + IsAVC: + type: boolean + nullable: true + ChannelLayout: + type: string + description: Gets or sets the channel layout. + nullable: true + BitRate: + type: integer + description: Gets or sets the bit rate. + format: int32 + nullable: true + BitDepth: + type: integer + description: Gets or sets the bit depth. + format: int32 + nullable: true + RefFrames: + type: integer + description: Gets or sets the reference frames. + format: int32 + nullable: true + PacketLength: + type: integer + description: Gets or sets the length of the packet. + format: int32 + nullable: true + Channels: + type: integer + description: Gets or sets the channels. + format: int32 + nullable: true + SampleRate: + type: integer + description: Gets or sets the sample rate. + format: int32 + nullable: true + IsDefault: + type: boolean + description: Gets or sets a value indicating whether this instance is default. + IsForced: + type: boolean + description: Gets or sets a value indicating whether this instance is forced. + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + AverageFrameRate: + type: number + description: Gets or sets the average frame rate. + format: float + nullable: true + RealFrameRate: + type: number + description: Gets or sets the real frame rate. + format: float + nullable: true + Profile: + type: string + description: Gets or sets the profile. + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/MediaStreamType' + description: Gets or sets the type. + AspectRatio: + type: string + description: Gets or sets the aspect ratio. + nullable: true + Index: + type: integer + description: Gets or sets the index. + format: int32 + Score: + type: integer + description: Gets or sets the score. + format: int32 + nullable: true + IsExternal: + type: boolean + description: Gets or sets a value indicating whether this instance is external. + DeliveryMethod: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + description: Gets or sets the method. + nullable: true + DeliveryUrl: + type: string + description: Gets or sets the delivery URL. + nullable: true + IsExternalUrl: + type: boolean + description: Gets or sets a value indicating whether this instance is external URL. + nullable: true + IsTextSubtitleStream: + type: boolean + readOnly: true + SupportsExternalStream: + type: boolean + description: Gets or sets a value indicating whether [supports external stream]. + Path: + type: string + description: Gets or sets the filename. + nullable: true + PixelFormat: + type: string + description: Gets or sets the pixel format. + nullable: true + Level: + type: number + description: Gets or sets the level. + format: double + nullable: true + IsAnamorphic: + type: boolean + description: Gets or sets whether this instance is anamorphic. + nullable: true + additionalProperties: false + description: Class MediaStream. + MediaStreamType: + enum: + - Audio + - Video + - Subtitle + - EmbeddedImage + - Data + type: string + description: Enum MediaStreamType. + MediaUpdateInfoDto: + type: object + properties: + Updates: + type: array + items: + $ref: '#/components/schemas/MediaUpdateInfoPathDto' + description: Gets or sets the list of updates. + additionalProperties: false + description: Media Update Info Dto. + MediaUpdateInfoPathDto: + type: object + properties: + Path: + type: string + description: Gets or sets media path. + nullable: true + UpdateType: + type: string + description: "Gets or sets media update type.\r\nCreated, Modified, Deleted." + nullable: true + additionalProperties: false + description: The media update info path. + MediaUrl: + type: object + properties: + Url: + type: string + nullable: true + Name: + type: string + nullable: true + additionalProperties: false + MessageCommand: + required: + - Text + type: object + properties: + Header: + type: string + nullable: true + Text: + type: string + TimeoutMs: + type: integer + format: int64 + nullable: true + additionalProperties: false + MetadataConfiguration: + type: object + properties: + UseFileCreationTimeForDateAdded: + type: boolean + additionalProperties: false + MetadataEditorInfo: + type: object + properties: + ParentalRatingOptions: + type: array + items: + $ref: '#/components/schemas/ParentalRating' + Countries: + type: array + items: + $ref: '#/components/schemas/CountryInfo' + Cultures: + type: array + items: + $ref: '#/components/schemas/CultureDto' + ExternalIdInfos: + type: array + items: + $ref: '#/components/schemas/ExternalIdInfo' + ContentType: + type: string + nullable: true + ContentTypeOptions: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + additionalProperties: false + MetadataField: + enum: + - Cast + - Genres + - ProductionLocations + - Studios + - Tags + - Name + - Overview + - Runtime + - OfficialRating + type: string + description: Enum MetadataFields. + MetadataOptions: + type: object + properties: + ItemType: + type: string + nullable: true + DisabledMetadataSavers: + type: array + items: + type: string + nullable: true + LocalMetadataReaderOrder: + type: array + items: + type: string + nullable: true + DisabledMetadataFetchers: + type: array + items: + type: string + nullable: true + MetadataFetcherOrder: + type: array + items: + type: string + nullable: true + DisabledImageFetchers: + type: array + items: + type: string + nullable: true + ImageFetcherOrder: + type: array + items: + type: string + nullable: true + additionalProperties: false + description: Class MetadataOptions. + MetadataRefreshMode: + enum: + - None + - ValidationOnly + - Default + - FullRefresh + type: string + MovePlaylistItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playlist identifier of the item. + format: uuid + NewIndex: + type: integer + description: Gets or sets the new position. + format: int32 + additionalProperties: false + description: Class MovePlaylistItemRequestDto. + MovieInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + MovieInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/MovieInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + MusicVideoInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + Artists: + type: array + items: + type: string + nullable: true + additionalProperties: false + MusicVideoInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/MusicVideoInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + NameGuidPair: + type: object + properties: + Name: + type: string + nullable: true + Id: + type: string + format: uuid + additionalProperties: false + NameIdPair: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Id: + type: string + description: Gets or sets the identifier. + nullable: true + additionalProperties: false + NameValuePair: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Value: + type: string + description: Gets or sets the value. + nullable: true + additionalProperties: false + NetworkConfiguration: + type: object + properties: + RequireHttps: + type: boolean + description: Gets or sets a value indicating whether the server should force connections over HTTPS. + CertificatePath: + type: string + description: Gets or sets the filesystem path of an X.509 certificate to use for SSL. + CertificatePassword: + type: string + description: Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath. + BaseUrl: + type: string + description: Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at. + PublicHttpsPort: + type: integer + description: Gets or sets the public HTTPS port. + format: int32 + HttpServerPortNumber: + type: integer + description: Gets or sets the HTTP server port number. + format: int32 + HttpsPortNumber: + type: integer + description: Gets or sets the HTTPS server port number. + format: int32 + EnableHttps: + type: boolean + description: Gets or sets a value indicating whether to use HTTPS. + PublicPort: + type: integer + description: Gets or sets the public mapped port. + format: int32 + UPnPCreateHttpPortMap: + type: boolean + description: Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding. + UDPPortRange: + type: string + description: Gets or sets the UDPPortRange. + EnableIPV6: + type: boolean + description: Gets or sets a value indicating whether gets or sets IPV6 capability. + EnableIPV4: + type: boolean + description: Gets or sets a value indicating whether gets or sets IPV4 capability. + EnableSSDPTracing: + type: boolean + description: "Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log.\r\n\"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect." + SSDPTracingFilter: + type: string + description: "Gets or sets the SSDPTracingFilter\r\nGets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + UDPSendCount: + type: integer + description: Gets or sets the number of times SSDP UDP messages are sent. + format: int32 + UDPSendDelay: + type: integer + description: Gets or sets the delay between each groups of SSDP messages (in ms). + format: int32 + IgnoreVirtualInterfaces: + type: boolean + description: Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding. + VirtualInterfaceNames: + type: string + description: Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. . + GatewayMonitorPeriod: + type: integer + description: Gets or sets the time (in seconds) between the pings of SSDP gateway monitor. + format: int32 + EnableMultiSocketBinding: + type: boolean + description: Gets a value indicating whether multi-socket binding is available. + readOnly: true + TrustAllIP6Interfaces: + type: boolean + description: "Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network.\r\nDepending on the address range implemented ULA ranges might not be used." + HDHomerunPortRange: + type: string + description: Gets or sets the ports that HDHomerun uses. + PublishedServerUriBySubnet: + type: array + items: + type: string + description: "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + AutoDiscoveryTracing: + type: boolean + description: Gets or sets a value indicating whether Autodiscovery tracing is enabled. + AutoDiscovery: + type: boolean + description: Gets or sets a value indicating whether Autodiscovery is enabled. + RemoteIPFilter: + type: array + items: + type: string + description: Gets or sets the filter for remote IP connectivity. Used in conjuntion with . + IsRemoteIPFilterBlacklist: + type: boolean + description: Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist. + EnableUPnP: + type: boolean + description: Gets or sets a value indicating whether to enable automatic port forwarding. + EnableRemoteAccess: + type: boolean + description: Gets or sets a value indicating whether access outside of the LAN is permitted. + LocalNetworkSubnets: + type: array + items: + type: string + description: Gets or sets the subnets that are deemed to make up the LAN. + LocalNetworkAddresses: + type: array + items: + type: string + description: Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used. + KnownProxies: + type: array + items: + type: string + description: Gets or sets the known proxies. If the proxy is a network, it's added to the KnownNetworks. + EnablePublishedServerUriByRequest: + type: boolean + description: Gets or sets a value indicating whether the published server uri is based on information in HTTP requests. + additionalProperties: false + description: Defines the Jellyfin.Networking.Configuration.NetworkConfiguration. + NewGroupRequestDto: + type: object + properties: + GroupName: + type: string + description: Gets or sets the group name. + additionalProperties: false + description: Class NewGroupRequestDto. + NextItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playing item identifier. + format: uuid + additionalProperties: false + description: Class NextItemRequestDto. + NotificationDto: + type: object + properties: + Id: + type: string + description: Gets or sets the notification ID. Defaults to an empty string. + UserId: + type: string + description: Gets or sets the notification's user ID. Defaults to an empty string. + Date: + type: string + description: Gets or sets the notification date. + format: date-time + IsRead: + type: boolean + description: Gets or sets a value indicating whether the notification has been read. Defaults to false. + Name: + type: string + description: Gets or sets the notification's name. Defaults to an empty string. + Description: + type: string + description: Gets or sets the notification's description. Defaults to an empty string. + Url: + type: string + description: Gets or sets the notification's URL. Defaults to an empty string. + Level: + allOf: + - $ref: '#/components/schemas/NotificationLevel' + description: Gets or sets the notification level. + additionalProperties: false + description: The notification DTO. + NotificationLevel: + enum: + - Normal + - Warning + - Error + type: string + NotificationOption: + type: object + properties: + Type: + type: string + nullable: true + DisabledMonitorUsers: + type: array + items: + type: string + description: Gets or sets user Ids to not monitor (it's opt out). + SendToUsers: + type: array + items: + type: string + description: Gets or sets user Ids to send to (if SendToUserMode == Custom). + Enabled: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Notifications.NotificationOption is enabled. + DisabledServices: + type: array + items: + type: string + description: Gets or sets the disabled services. + SendToUserMode: + allOf: + - $ref: '#/components/schemas/SendToUserType' + description: Gets or sets the send to user mode. + additionalProperties: false + NotificationOptions: + type: object + properties: + Options: + type: array + items: + $ref: '#/components/schemas/NotificationOption' + nullable: true + additionalProperties: false + NotificationResultDto: + type: object + properties: + Notifications: + type: array + items: + $ref: '#/components/schemas/NotificationDto' + description: Gets or sets the current page of notifications. + TotalRecordCount: + type: integer + description: Gets or sets the total number of notifications. + format: int32 + additionalProperties: false + description: A list of notifications with the total record count for pagination. + NotificationsSummaryDto: + type: object + properties: + UnreadCount: + type: integer + description: Gets or sets the number of unread notifications. + format: int32 + MaxUnreadNotificationLevel: + allOf: + - $ref: '#/components/schemas/NotificationLevel' + description: Gets or sets the maximum unread notification level. + nullable: true + additionalProperties: false + description: The notification summary DTO. + NotificationTypeInfo: + type: object + properties: + Type: + type: string + nullable: true + Name: + type: string + nullable: true + Enabled: + type: boolean + Category: + type: string + nullable: true + IsBasedOnUserEvent: + type: boolean + additionalProperties: false + ObjectGroupUpdate: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + Type: + allOf: + - $ref: '#/components/schemas/GroupUpdateType' + description: Gets the update type. + Data: + description: Gets the update data. + additionalProperties: false + description: Class GroupUpdate. + OpenLiveStreamDto: + type: object + properties: + OpenToken: + type: string + description: Gets or sets the open token. + nullable: true + UserId: + type: string + description: Gets or sets the user id. + format: uuid + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session id. + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the max streaming bitrate. + format: int32 + nullable: true + StartTimeTicks: + type: integer + description: Gets or sets the start time in ticks. + format: int64 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the audio stream index. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the subtitle stream index. + format: int32 + nullable: true + MaxAudioChannels: + type: integer + description: Gets or sets the max audio channels. + format: int32 + nullable: true + ItemId: + type: string + description: Gets or sets the item id. + format: uuid + nullable: true + EnableDirectPlay: + type: boolean + description: Gets or sets a value indicating whether to enable direct play. + nullable: true + EnableDirectStream: + type: boolean + description: Gets or sets a value indicating whether to enale direct stream. + nullable: true + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + nullable: true + DirectPlayProtocols: + type: array + items: + $ref: '#/components/schemas/MediaProtocol' + description: Gets or sets the device play protocols. + additionalProperties: false + description: Open live stream dto. + PackageInfo: + type: object + properties: + name: + type: string + description: Gets or sets the name. + description: + type: string + description: Gets or sets a long description of the plugin containing features or helpful explanations. + overview: + type: string + description: Gets or sets a short overview of what the plugin does. + owner: + type: string + description: Gets or sets the owner. + category: + type: string + description: Gets or sets the category. + guid: + type: string + description: "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates." + format: uuid + versions: + type: array + items: + $ref: '#/components/schemas/VersionInfo' + description: Gets or sets the versions. + imageUrl: + type: string + description: Gets or sets the image url for the package. + nullable: true + additionalProperties: false + description: Class PackageInfo. + ParentalRating: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Value: + type: integer + description: Gets or sets the value. + format: int32 + additionalProperties: false + description: Class ParentalRating. + PathSubstitution: + type: object + properties: + From: + type: string + description: Gets or sets the value to substitute. + To: + type: string + description: Gets or sets the value to substitution with. + additionalProperties: false + description: Defines the MediaBrowser.Model.Configuration.PathSubstitution. + PersonLookupInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + PersonLookupInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/PersonLookupInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + PingRequestDto: + type: object + properties: + Ping: + type: integer + description: Gets or sets the ping time. + format: int64 + additionalProperties: false + description: Class PingRequestDto. + PinRedeemResult: + type: object + properties: + Success: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success. + UsersReset: + type: array + items: + type: string + description: Gets or sets the users reset. + additionalProperties: false + PlayAccess: + enum: + - Full + - None + type: string + PlaybackErrorCode: + enum: + - NotAllowed + - NoCompatibleStream + - RateLimitExceeded + type: string + PlaybackInfoDto: + type: object + properties: + UserId: + type: string + description: Gets or sets the playback userId. + format: uuid + nullable: true + MaxStreamingBitrate: + type: integer + description: Gets or sets the max streaming bitrate. + format: int32 + nullable: true + StartTimeTicks: + type: integer + description: Gets or sets the start time in ticks. + format: int64 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the audio stream index. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the subtitle stream index. + format: int32 + nullable: true + MaxAudioChannels: + type: integer + description: Gets or sets the max audio channels. + format: int32 + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media source id. + nullable: true + LiveStreamId: + type: string + description: Gets or sets the live stream id. + nullable: true + DeviceProfile: + allOf: + - $ref: '#/components/schemas/DeviceProfile' + description: "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + nullable: true + EnableDirectPlay: + type: boolean + description: Gets or sets a value indicating whether to enable direct play. + nullable: true + EnableDirectStream: + type: boolean + description: Gets or sets a value indicating whether to enable direct stream. + nullable: true + EnableTranscoding: + type: boolean + description: Gets or sets a value indicating whether to enable transcoding. + nullable: true + AllowVideoStreamCopy: + type: boolean + description: Gets or sets a value indicating whether to enable video stream copy. + nullable: true + AllowAudioStreamCopy: + type: boolean + description: Gets or sets a value indicating whether to allow audio stream copy. + nullable: true + AutoOpenLiveStream: + type: boolean + description: Gets or sets a value indicating whether to auto open the live stream. + nullable: true + additionalProperties: false + description: Plabyback info dto. + PlaybackInfoResponse: + type: object + properties: + MediaSources: + type: array + items: + $ref: '#/components/schemas/MediaSourceInfo' + description: Gets or sets the media sources. + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + ErrorCode: + allOf: + - $ref: '#/components/schemas/PlaybackErrorCode' + description: Gets or sets the error code. + nullable: true + additionalProperties: false + description: Class PlaybackInfoResponse. + PlaybackProgressInfo: + type: object + properties: + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the subtitle stream. + format: int32 + nullable: true + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + PlaybackStartTimeTicks: + type: integer + format: int64 + nullable: true + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + Brightness: + type: integer + format: int32 + nullable: true + AspectRatio: + type: string + nullable: true + PlayMethod: + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + RepeatMode: + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + description: Class PlaybackProgressInfo. + PlaybackStartInfo: + type: object + properties: + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the subtitle stream. + format: int32 + nullable: true + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + PlaybackStartTimeTicks: + type: integer + format: int64 + nullable: true + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + Brightness: + type: integer + format: int32 + nullable: true + AspectRatio: + type: string + nullable: true + PlayMethod: + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + RepeatMode: + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + description: Class PlaybackStartInfo. + PlaybackStopInfo: + type: object + properties: + Item: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the item. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + format: uuid + SessionId: + type: string + description: Gets or sets the session id. + nullable: true + MediaSourceId: + type: string + description: Gets or sets the media version identifier. + nullable: true + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + nullable: true + LiveStreamId: + type: string + description: Gets or sets the live stream identifier. + nullable: true + PlaySessionId: + type: string + description: Gets or sets the play session identifier. + nullable: true + Failed: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed. + NextMediaType: + type: string + nullable: true + PlaylistItemId: + type: string + nullable: true + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + additionalProperties: false + description: Class PlaybackStopInfo. + PlayCommand: + enum: + - PlayNow + - PlayNext + - PlayLast + - PlayInstantMix + - PlayShuffle + type: string + description: Enum PlayCommand. + PlayerStateInfo: + type: object + properties: + PositionTicks: + type: integer + description: Gets or sets the now playing position ticks. + format: int64 + nullable: true + CanSeek: + type: boolean + description: Gets or sets a value indicating whether this instance can seek. + IsPaused: + type: boolean + description: Gets or sets a value indicating whether this instance is paused. + IsMuted: + type: boolean + description: Gets or sets a value indicating whether this instance is muted. + VolumeLevel: + type: integer + description: Gets or sets the volume level. + format: int32 + nullable: true + AudioStreamIndex: + type: integer + description: Gets or sets the index of the now playing audio stream. + format: int32 + nullable: true + SubtitleStreamIndex: + type: integer + description: Gets or sets the index of the now playing subtitle stream. + format: int32 + nullable: true + MediaSourceId: + type: string + description: Gets or sets the now playing media version identifier. + nullable: true + PlayMethod: + allOf: + - $ref: '#/components/schemas/PlayMethod' + description: Gets or sets the play method. + nullable: true + RepeatMode: + allOf: + - $ref: '#/components/schemas/RepeatMode' + description: Gets or sets the repeat mode. + LiveStreamId: + type: string + description: Gets or sets the now playing live stream identifier. + nullable: true + additionalProperties: false + PlaylistCreationResult: + type: object + properties: + Id: + type: string + additionalProperties: false + PlayMethod: + enum: + - Transcode + - DirectStream + - DirectPlay + type: string + PlayRequest: + type: object + properties: + ItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the item ids. + nullable: true + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks that the first item should be played at. + format: int64 + nullable: true + PlayCommand: + allOf: + - $ref: '#/components/schemas/PlayCommand' + description: Gets or sets the play command. + ControllingUserId: + type: string + description: Gets or sets the controlling user identifier. + format: uuid + SubtitleStreamIndex: + type: integer + format: int32 + nullable: true + AudioStreamIndex: + type: integer + format: int32 + nullable: true + MediaSourceId: + type: string + nullable: true + StartIndex: + type: integer + format: int32 + nullable: true + additionalProperties: false + description: Class PlayRequest. + PlayRequestDto: + type: object + properties: + PlayingQueue: + type: array + items: + type: string + format: uuid + description: Gets or sets the playing queue. + PlayingItemPosition: + type: integer + description: Gets or sets the position of the playing item in the queue. + format: int32 + StartPositionTicks: + type: integer + description: Gets or sets the start position ticks. + format: int64 + additionalProperties: false + description: Class PlayRequestDto. + PlaystateCommand: + enum: + - Stop + - Pause + - Unpause + - NextTrack + - PreviousTrack + - Seek + - Rewind + - FastForward + - PlayPause + type: string + description: Enum PlaystateCommand. + PlaystateRequest: + type: object + properties: + Command: + allOf: + - $ref: '#/components/schemas/PlaystateCommand' + description: Enum PlaystateCommand. + SeekPositionTicks: + type: integer + format: int64 + nullable: true + ControllingUserId: + type: string + description: Gets or sets the controlling user identifier. + nullable: true + additionalProperties: false + PluginInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + Version: + type: string + description: Gets or sets the version. + ConfigurationFileName: + type: string + description: Gets or sets the name of the configuration file. + nullable: true + Description: + type: string + description: Gets or sets the description. + Id: + type: string + description: Gets or sets the unique id. + format: uuid + CanUninstall: + type: boolean + description: Gets or sets a value indicating whether the plugin can be uninstalled. + HasImage: + type: boolean + description: Gets or sets a value indicating whether this plugin has a valid image. + Status: + allOf: + - $ref: '#/components/schemas/PluginStatus' + description: Gets or sets a value indicating the status of the plugin. + additionalProperties: false + description: This is a serializable stub class that is used by the api to provide information about installed plugins. + PluginStatus: + enum: + - Active + - Restart + - Deleted + - Superceded + - Malfunctioned + - NotSupported + - Disabled + type: string + description: Plugin load status. + PreviousItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playing item identifier. + format: uuid + additionalProperties: false + description: Class PreviousItemRequestDto. + ProblemDetails: + type: object + properties: + type: + type: string + nullable: true + title: + type: string + nullable: true + status: + type: integer + format: int32 + nullable: true + detail: + type: string + nullable: true + instance: + type: string + nullable: true + additionalProperties: {} + ProfileCondition: + type: object + properties: + Condition: + allOf: + - $ref: '#/components/schemas/ProfileConditionType' + Property: + allOf: + - $ref: '#/components/schemas/ProfileConditionValue' + Value: + type: string + nullable: true + IsRequired: + type: boolean + additionalProperties: false + ProfileConditionType: + enum: + - Equals + - NotEquals + - LessThanEqual + - GreaterThanEqual + - EqualsAny + type: string + ProfileConditionValue: + enum: + - AudioChannels + - AudioBitrate + - AudioProfile + - Width + - Height + - Has64BitOffsets + - PacketLength + - VideoBitDepth + - VideoBitrate + - VideoFramerate + - VideoLevel + - VideoProfile + - VideoTimestamp + - IsAnamorphic + - RefFrames + - NumAudioStreams + - NumVideoStreams + - IsSecondaryAudio + - VideoCodecTag + - IsAvc + - IsInterlaced + - AudioSampleRate + - AudioBitDepth + - VideoRangeType + type: string + ProgramAudio: + enum: + - Mono + - Stereo + - Dolby + - DolbyDigital + - Thx + - Atmos + type: string + PublicSystemInfo: + type: object + properties: + LocalAddress: + type: string + description: Gets or sets the local address. + nullable: true + ServerName: + type: string + description: Gets or sets the name of the server. + nullable: true + Version: + type: string + description: Gets or sets the server version. + nullable: true + ProductName: + type: string + description: Gets or sets the product name. This is the AssemblyProduct name. + nullable: true + OperatingSystem: + type: string + description: Gets or sets the operating system. + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + StartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether the startup wizard is completed. + nullable: true + additionalProperties: false + QueryFilters: + type: object + properties: + Genres: + type: array + items: + $ref: '#/components/schemas/NameGuidPair' + nullable: true + Tags: + type: array + items: + type: string + nullable: true + additionalProperties: false + QueryFiltersLegacy: + type: object + properties: + Genres: + type: array + items: + type: string + nullable: true + Tags: + type: array + items: + type: string + nullable: true + OfficialRatings: + type: array + items: + type: string + nullable: true + Years: + type: array + items: + type: integer + format: int32 + nullable: true + additionalProperties: false + QueueItem: + type: object + properties: + Id: + type: string + format: uuid + PlaylistItemId: + type: string + nullable: true + additionalProperties: false + QueueRequestDto: + type: object + properties: + ItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the items to enqueue. + Mode: + allOf: + - $ref: '#/components/schemas/GroupQueueMode' + description: Enum GroupQueueMode. + additionalProperties: false + description: Class QueueRequestDto. + QuickConnectDto: + required: + - Secret + type: object + properties: + Secret: + type: string + description: Gets or sets the quick connect secret. + additionalProperties: false + description: The quick connect request body. + QuickConnectResult: + type: object + properties: + Authenticated: + type: boolean + description: Gets or sets a value indicating whether this request is authorized. + Secret: + type: string + description: Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information. + Code: + type: string + description: Gets the user facing code used so the user can quickly differentiate this request from others. + DeviceId: + type: string + description: Gets the requesting device id. + DeviceName: + type: string + description: Gets the requesting device name. + AppName: + type: string + description: Gets the requesting app name. + AppVersion: + type: string + description: Gets the requesting app version. + DateAdded: + type: string + description: Gets or sets the DateTime that this request was created. + format: date-time + additionalProperties: false + description: Stores the state of an quick connect request. + RatingType: + enum: + - Score + - Likes + type: string + ReadyRequestDto: + type: object + properties: + When: + type: string + description: Gets or sets when the request has been made by the client. + format: date-time + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + IsPlaying: + type: boolean + description: Gets or sets a value indicating whether the client playback is unpaused. + PlaylistItemId: + type: string + description: Gets or sets the playlist item identifier of the playing item. + format: uuid + additionalProperties: false + description: Class ReadyRequest. + RecommendationDto: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + nullable: true + RecommendationType: + allOf: + - $ref: '#/components/schemas/RecommendationType' + BaselineItemName: + type: string + nullable: true + CategoryId: + type: string + format: uuid + additionalProperties: false + RecommendationType: + enum: + - SimilarToRecentlyPlayed + - SimilarToLikedItem + - HasDirectorFromRecentlyPlayed + - HasActorFromRecentlyPlayed + - HasLikedDirector + - HasLikedActor + type: string + RecordingStatus: + enum: + - New + - InProgress + - Completed + - Cancelled + - ConflictedOk + - ConflictedNotOk + - Error + type: string + RemoteImageInfo: + type: object + properties: + ProviderName: + type: string + description: Gets or sets the name of the provider. + nullable: true + Url: + type: string + description: Gets or sets the URL. + nullable: true + ThumbnailUrl: + type: string + description: Gets or sets a url used for previewing a smaller version. + nullable: true + Height: + type: integer + description: Gets or sets the height. + format: int32 + nullable: true + Width: + type: integer + description: Gets or sets the width. + format: int32 + nullable: true + CommunityRating: + type: number + description: Gets or sets the community rating. + format: double + nullable: true + VoteCount: + type: integer + description: Gets or sets the vote count. + format: int32 + nullable: true + Language: + type: string + description: Gets or sets the language. + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/ImageType' + description: Gets or sets the type. + RatingType: + allOf: + - $ref: '#/components/schemas/RatingType' + description: Gets or sets the type of the rating. + additionalProperties: false + description: Class RemoteImageInfo. + RemoteImageResult: + type: object + properties: + Images: + type: array + items: + $ref: '#/components/schemas/RemoteImageInfo' + description: Gets or sets the images. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total record count. + format: int32 + Providers: + type: array + items: + type: string + description: Gets or sets the providers. + nullable: true + additionalProperties: false + description: Class RemoteImageResult. + RemoteSearchResult: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + ProductionYear: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + IndexNumberEnd: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + ImageUrl: + type: string + nullable: true + SearchProviderName: + type: string + nullable: true + Overview: + type: string + nullable: true + AlbumArtist: + allOf: + - $ref: '#/components/schemas/RemoteSearchResult' + nullable: true + Artists: + type: array + items: + $ref: '#/components/schemas/RemoteSearchResult' + nullable: true + additionalProperties: false + RemoteSubtitleInfo: + type: object + properties: + ThreeLetterISOLanguageName: + type: string + nullable: true + Id: + type: string + nullable: true + ProviderName: + type: string + nullable: true + Name: + type: string + nullable: true + Format: + type: string + nullable: true + Author: + type: string + nullable: true + Comment: + type: string + nullable: true + DateCreated: + type: string + format: date-time + nullable: true + CommunityRating: + type: number + format: float + nullable: true + DownloadCount: + type: integer + format: int32 + nullable: true + IsHashMatch: + type: boolean + nullable: true + additionalProperties: false + RemoveFromPlaylistRequestDto: + type: object + properties: + PlaylistItemIds: + type: array + items: + type: string + format: uuid + description: Gets or sets the playlist identifiers ot the items. Ignored when clearing the playlist. + ClearPlaylist: + type: boolean + description: Gets or sets a value indicating whether the entire playlist should be cleared. + ClearPlayingItem: + type: boolean + description: Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist. + additionalProperties: false + description: Class RemoveFromPlaylistRequestDto. + RepeatMode: + enum: + - RepeatNone + - RepeatAll + - RepeatOne + type: string + RepositoryInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Url: + type: string + description: Gets or sets the URL. + nullable: true + Enabled: + type: boolean + description: Gets or sets a value indicating whether the repository is enabled. + additionalProperties: false + description: Class RepositoryInfo. + ResponseProfile: + type: object + properties: + Container: + type: string + nullable: true + AudioCodec: + type: string + nullable: true + VideoCodec: + type: string + nullable: true + Type: + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + OrgPn: + type: string + nullable: true + MimeType: + type: string + nullable: true + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + nullable: true + additionalProperties: false + ScrollDirection: + enum: + - Horizontal + - Vertical + type: string + description: An enum representing the axis that should be scrolled. + SearchHint: + type: object + properties: + ItemId: + type: string + description: Gets or sets the item id. + format: uuid + Id: + type: string + format: uuid + Name: + type: string + description: Gets or sets the name. + nullable: true + MatchedTerm: + type: string + description: Gets or sets the matched term. + nullable: true + IndexNumber: + type: integer + description: Gets or sets the index number. + format: int32 + nullable: true + ProductionYear: + type: integer + description: Gets or sets the production year. + format: int32 + nullable: true + ParentIndexNumber: + type: integer + description: Gets or sets the parent index number. + format: int32 + nullable: true + PrimaryImageTag: + type: string + description: Gets or sets the image tag. + nullable: true + ThumbImageTag: + type: string + description: Gets or sets the thumb image tag. + nullable: true + ThumbImageItemId: + type: string + description: Gets or sets the thumb image item identifier. + nullable: true + BackdropImageTag: + type: string + description: Gets or sets the backdrop image tag. + nullable: true + BackdropImageItemId: + type: string + description: Gets or sets the backdrop image item identifier. + nullable: true + Type: + type: string + description: Gets or sets the type. + nullable: true + IsFolder: + type: boolean + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + MediaType: + type: string + description: Gets or sets the type of the media. + nullable: true + StartDate: + type: string + format: date-time + nullable: true + EndDate: + type: string + format: date-time + nullable: true + Series: + type: string + description: Gets or sets the series. + nullable: true + Status: + type: string + nullable: true + Album: + type: string + description: Gets or sets the album. + nullable: true + AlbumId: + type: string + format: uuid + AlbumArtist: + type: string + description: Gets or sets the album artist. + nullable: true + Artists: + type: array + items: + type: string + description: Gets or sets the artists. + nullable: true + SongCount: + type: integer + description: Gets or sets the song count. + format: int32 + nullable: true + EpisodeCount: + type: integer + description: Gets or sets the episode count. + format: int32 + nullable: true + ChannelId: + type: string + description: Gets or sets the channel identifier. + format: uuid + ChannelName: + type: string + description: Gets or sets the name of the channel. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio. + format: double + nullable: true + additionalProperties: false + description: Class SearchHintResult. + SearchHintResult: + type: object + properties: + SearchHints: + type: array + items: + $ref: '#/components/schemas/SearchHint' + description: Gets the search hints. + TotalRecordCount: + type: integer + description: Gets the total record count. + format: int32 + additionalProperties: false + description: Class SearchHintResult. + SeekRequestDto: + type: object + properties: + PositionTicks: + type: integer + description: Gets or sets the position ticks. + format: int64 + additionalProperties: false + description: Class SeekRequestDto. + SendCommand: + type: object + properties: + GroupId: + type: string + description: Gets the group identifier. + format: uuid + PlaylistItemId: + type: string + description: Gets the playlist identifier of the playing item. + format: uuid + When: + type: string + description: Gets or sets the UTC time when to execute the command. + format: date-time + PositionTicks: + type: integer + description: Gets the position ticks. + format: int64 + nullable: true + Command: + allOf: + - $ref: '#/components/schemas/SendCommandType' + description: Gets the command. + EmittedAt: + type: string + description: Gets the UTC time when this command has been emitted. + format: date-time + additionalProperties: false + description: Class SendCommand. + SendCommandType: + enum: + - Unpause + - Pause + - Stop + - Seek + type: string + description: Enum SendCommandType. + SendToUserType: + enum: + - All + - Admins + - Custom + type: string + SeriesInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + SeriesInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/SeriesInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + SeriesStatus: + enum: + - Continuing + - Ended + type: string + description: Enum SeriesStatus. + SeriesTimerInfoDto: + type: object + properties: + Id: + type: string + description: Gets or sets the Id of the recording. + nullable: true + Type: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ExternalId: + type: string + description: Gets or sets the external identifier. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel id of the recording. + format: uuid + ExternalChannelId: + type: string + description: Gets or sets the external channel identifier. + nullable: true + ChannelName: + type: string + description: Gets or sets the channel name of the recording. + nullable: true + ChannelPrimaryImageTag: + type: string + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ExternalProgramId: + type: string + description: Gets or sets the external program identifier. + nullable: true + Name: + type: string + description: Gets or sets the name of the recording. + nullable: true + Overview: + type: string + description: Gets or sets the description of the recording. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + EndDate: + type: string + description: Gets or sets the end date of the recording, in UTC. + format: date-time + ServiceName: + type: string + description: Gets or sets the name of the service. + nullable: true + Priority: + type: integer + description: Gets or sets the priority. + format: int32 + PrePaddingSeconds: + type: integer + description: Gets or sets the pre padding seconds. + format: int32 + PostPaddingSeconds: + type: integer + description: Gets or sets the post padding seconds. + format: int32 + IsPrePaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is pre padding required. + ParentBackdropItemId: + type: string + description: Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + IsPostPaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is post padding required. + KeepUntil: + allOf: + - $ref: '#/components/schemas/KeepUntil' + RecordAnyTime: + type: boolean + description: Gets or sets a value indicating whether [record any time]. + SkipEpisodesInLibrary: + type: boolean + RecordAnyChannel: + type: boolean + description: Gets or sets a value indicating whether [record any channel]. + KeepUpTo: + type: integer + format: int32 + RecordNewOnly: + type: boolean + description: Gets or sets a value indicating whether [record new only]. + Days: + type: array + items: + $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the days. + nullable: true + DayPattern: + allOf: + - $ref: '#/components/schemas/DayPattern' + description: Gets or sets the day pattern. + nullable: true + ImageTags: + type: object + additionalProperties: + type: string + description: Gets or sets the image tags. + nullable: true + ParentThumbItemId: + type: string + description: Gets or sets the parent thumb item id. + nullable: true + ParentThumbImageTag: + type: string + description: Gets or sets the parent thumb image tag. + nullable: true + ParentPrimaryImageItemId: + type: string + description: Gets or sets the parent primary image item identifier. + nullable: true + ParentPrimaryImageTag: + type: string + description: Gets or sets the parent primary image tag. + nullable: true + additionalProperties: false + description: Class SeriesTimerInfoDto. + SeriesTimerInfoDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/SeriesTimerInfoDto' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + ServerConfiguration: + type: object + properties: + LogFileRetentionDays: + type: integer + description: Gets or sets the number of days we should retain log files. + format: int32 + IsStartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether this instance is first run. + CachePath: + type: string + description: Gets or sets the cache path. + nullable: true + PreviousVersion: + type: string + description: Gets or sets the last known version that was ran using the configuration. + nullable: true + PreviousVersionStr: + type: string + description: "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable." + nullable: true + EnableMetrics: + type: boolean + description: Gets or sets a value indicating whether to enable prometheus metrics exporting. + EnableNormalizedItemByNameIds: + type: boolean + IsPortAuthorized: + type: boolean + description: Gets or sets a value indicating whether this instance is port authorized. + QuickConnectAvailable: + type: boolean + description: Gets or sets a value indicating whether quick connect is available for use on this server. + EnableCaseSensitiveItemIds: + type: boolean + description: Gets or sets a value indicating whether [enable case sensitive item ids]. + DisableLiveTvChannelUserDataName: + type: boolean + MetadataPath: + type: string + description: Gets or sets the metadata path. + MetadataNetworkPath: + type: string + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred metadata language. + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + SortReplaceCharacters: + type: array + items: + type: string + description: Gets or sets characters to be replaced with a ' ' in strings to create a sort name. + SortRemoveCharacters: + type: array + items: + type: string + description: Gets or sets characters to be removed from strings to create a sort name. + SortRemoveWords: + type: array + items: + type: string + description: Gets or sets words to be removed from strings to create a sort name. + MinResumePct: + type: integer + description: Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated. + format: int32 + MaxResumePct: + type: integer + description: Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + format: int32 + MinResumeDurationSeconds: + type: integer + description: Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates.. + format: int32 + MinAudiobookResume: + type: integer + description: Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated. + format: int32 + MaxAudiobookResume: + type: integer + description: Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched. + format: int32 + LibraryMonitorDelay: + type: integer + description: "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files." + format: int32 + ImageSavingConvention: + allOf: + - $ref: '#/components/schemas/ImageSavingConvention' + description: Gets or sets the image saving convention. + MetadataOptions: + type: array + items: + $ref: '#/components/schemas/MetadataOptions' + SkipDeserializationForBasicTypes: + type: boolean + ServerName: + type: string + UICulture: + type: string + SaveMetadataHidden: + type: boolean + ContentTypes: + type: array + items: + $ref: '#/components/schemas/NameValuePair' + RemoteClientBitrateLimit: + type: integer + format: int32 + EnableFolderView: + type: boolean + EnableGroupingIntoCollections: + type: boolean + DisplaySpecialsWithinSeasons: + type: boolean + CodecsUsed: + type: array + items: + type: string + PluginRepositories: + type: array + items: + $ref: '#/components/schemas/RepositoryInfo' + EnableExternalContentInSuggestions: + type: boolean + ImageExtractionTimeoutMs: + type: integer + format: int32 + PathSubstitutions: + type: array + items: + $ref: '#/components/schemas/PathSubstitution' + EnableSlowResponseWarning: + type: boolean + description: Gets or sets a value indicating whether slow server responses should be logged as a warning. + SlowResponseThresholdMs: + type: integer + description: Gets or sets the threshold for the slow response time warning in ms. + format: int64 + CorsHosts: + type: array + items: + type: string + description: Gets or sets the cors hosts. + ActivityLogRetentionDays: + type: integer + description: Gets or sets the number of days we should retain activity logs. + format: int32 + nullable: true + LibraryScanFanoutConcurrency: + type: integer + description: Gets or sets the how the library scan fans out. + format: int32 + LibraryMetadataRefreshConcurrency: + type: integer + description: Gets or sets the how many metadata refreshes can run concurrently. + format: int32 + RemoveOldPlugins: + type: boolean + description: Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder. + AllowClientLogUpload: + type: boolean + description: Gets or sets a value indicating whether clients should be allowed to upload logs. + additionalProperties: false + description: Represents the server configuration. + ServerDiscoveryInfo: + type: object + properties: + Address: + type: string + description: Gets the address. + Id: + type: string + description: Gets the server identifier. + Name: + type: string + description: Gets the name. + EndpointAddress: + type: string + description: Gets the endpoint address. + nullable: true + additionalProperties: false + description: The server discovery info model. + SessionInfo: + type: object + properties: + PlayState: + allOf: + - $ref: '#/components/schemas/PlayerStateInfo' + nullable: true + AdditionalUsers: + type: array + items: + $ref: '#/components/schemas/SessionUserInfo' + nullable: true + Capabilities: + allOf: + - $ref: '#/components/schemas/ClientCapabilities' + nullable: true + RemoteEndPoint: + type: string + description: Gets or sets the remote end point. + nullable: true + PlayableMediaTypes: + type: array + items: + type: string + description: Gets the playable media types. + nullable: true + readOnly: true + Id: + type: string + description: Gets or sets the id. + nullable: true + UserId: + type: string + description: Gets or sets the user id. + format: uuid + UserName: + type: string + description: Gets or sets the username. + nullable: true + Client: + type: string + description: Gets or sets the type of the client. + nullable: true + LastActivityDate: + type: string + description: Gets or sets the last activity date. + format: date-time + LastPlaybackCheckIn: + type: string + description: Gets or sets the last playback check in. + format: date-time + DeviceName: + type: string + description: Gets or sets the name of the device. + nullable: true + DeviceType: + type: string + description: Gets or sets the type of the device. + nullable: true + NowPlayingItem: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the now playing item. + nullable: true + FullNowPlayingItem: + allOf: + - $ref: '#/components/schemas/BaseItem' + description: Class BaseItem. + nullable: true + NowViewingItem: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + nullable: true + DeviceId: + type: string + description: Gets or sets the device id. + nullable: true + ApplicationVersion: + type: string + description: Gets or sets the application version. + nullable: true + TranscodingInfo: + allOf: + - $ref: '#/components/schemas/TranscodingInfo' + nullable: true + IsActive: + type: boolean + description: Gets a value indicating whether this instance is active. + readOnly: true + SupportsMediaControl: + type: boolean + readOnly: true + SupportsRemoteControl: + type: boolean + readOnly: true + NowPlayingQueue: + type: array + items: + $ref: '#/components/schemas/QueueItem' + nullable: true + NowPlayingQueueFullItems: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + nullable: true + HasCustomDeviceName: + type: boolean + PlaylistItemId: + type: string + nullable: true + ServerId: + type: string + nullable: true + UserPrimaryImageTag: + type: string + nullable: true + SupportedCommands: + type: array + items: + $ref: '#/components/schemas/GeneralCommandType' + description: Gets the supported commands. + nullable: true + readOnly: true + additionalProperties: false + description: Class SessionInfo. + SessionMessageType: + enum: + - ForceKeepAlive + - GeneralCommand + - UserDataChanged + - Sessions + - Play + - SyncPlayCommand + - SyncPlayGroupUpdate + - Playstate + - RestartRequired + - ServerShuttingDown + - ServerRestarting + - LibraryChanged + - UserDeleted + - UserUpdated + - SeriesTimerCreated + - TimerCreated + - SeriesTimerCancelled + - TimerCancelled + - RefreshProgress + - ScheduledTaskEnded + - PackageInstallationCancelled + - PackageInstallationFailed + - PackageInstallationCompleted + - PackageInstalling + - PackageUninstalled + - ActivityLogEntry + - ScheduledTasksInfo + - ActivityLogEntryStart + - ActivityLogEntryStop + - SessionsStart + - SessionsStop + - ScheduledTasksInfoStart + - ScheduledTasksInfoStop + - KeepAlive + type: string + description: The different kinds of messages that are used in the WebSocket api. + SessionUserInfo: + type: object + properties: + UserId: + type: string + description: Gets or sets the user identifier. + format: uuid + UserName: + type: string + description: Gets or sets the name of the user. + nullable: true + additionalProperties: false + description: Class SessionUserInfo. + SetChannelMappingDto: + required: + - ProviderChannelId + - ProviderId + - TunerChannelId + type: object + properties: + ProviderId: + type: string + description: Gets or sets the provider id. + TunerChannelId: + type: string + description: Gets or sets the tuner channel id. + ProviderChannelId: + type: string + description: Gets or sets the provider channel id. + additionalProperties: false + description: Set channel mapping dto. + SetPlaylistItemRequestDto: + type: object + properties: + PlaylistItemId: + type: string + description: Gets or sets the playlist identifier of the playing item. + format: uuid + additionalProperties: false + description: Class SetPlaylistItemRequestDto. + SetRepeatModeRequestDto: + type: object + properties: + Mode: + allOf: + - $ref: '#/components/schemas/GroupRepeatMode' + description: Enum GroupRepeatMode. + additionalProperties: false + description: Class SetRepeatModeRequestDto. + SetShuffleModeRequestDto: + type: object + properties: + Mode: + allOf: + - $ref: '#/components/schemas/GroupShuffleMode' + description: Enum GroupShuffleMode. + additionalProperties: false + description: Class SetShuffleModeRequestDto. + SongInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + AlbumArtists: + type: array + items: + type: string + nullable: true + Album: + type: string + nullable: true + Artists: + type: array + items: + type: string + nullable: true + additionalProperties: false + SortOrder: + enum: + - Ascending + - Descending + type: string + description: An enum representing the sorting order. + SpecialViewOptionDto: + type: object + properties: + Name: + type: string + description: Gets or sets view option name. + nullable: true + Id: + type: string + description: Gets or sets view option id. + nullable: true + additionalProperties: false + description: Special view option dto. + StartupConfigurationDto: + type: object + properties: + UICulture: + type: string + description: Gets or sets UI language culture. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + PreferredMetadataLanguage: + type: string + description: Gets or sets the preferred language for the metadata. + nullable: true + additionalProperties: false + description: The startup configuration DTO. + StartupRemoteAccessDto: + required: + - EnableAutomaticPortMapping + - EnableRemoteAccess + type: object + properties: + EnableRemoteAccess: + type: boolean + description: Gets or sets a value indicating whether enable remote access. + EnableAutomaticPortMapping: + type: boolean + description: Gets or sets a value indicating whether enable automatic port mapping. + additionalProperties: false + description: Startup remote access dto. + StartupUserDto: + type: object + properties: + Name: + type: string + description: Gets or sets the username. + nullable: true + Password: + type: string + description: Gets or sets the user's password. + nullable: true + additionalProperties: false + description: The startup user DTO. + SubtitleDeliveryMethod: + enum: + - Encode + - Embed + - External + - Hls + - Drop + type: string + description: Delivery method to use during playback of a specific subtitle format. + SubtitleOptions: + type: object + properties: + SkipIfEmbeddedSubtitlesPresent: + type: boolean + SkipIfAudioTrackMatches: + type: boolean + DownloadLanguages: + type: array + items: + type: string + nullable: true + DownloadMovieSubtitles: + type: boolean + DownloadEpisodeSubtitles: + type: boolean + OpenSubtitlesUsername: + type: string + nullable: true + OpenSubtitlesPasswordHash: + type: string + nullable: true + IsOpenSubtitleVipAccount: + type: boolean + RequirePerfectMatch: + type: boolean + additionalProperties: false + SubtitlePlaybackMode: + enum: + - Default + - Always + - OnlyForced + - None + - Smart + type: string + description: An enum representing a subtitle playback mode. + SubtitleProfile: + type: object + properties: + Format: + type: string + nullable: true + Method: + allOf: + - $ref: '#/components/schemas/SubtitleDeliveryMethod' + description: Delivery method to use during playback of a specific subtitle format. + DidlMode: + type: string + nullable: true + Language: + type: string + nullable: true + Container: + type: string + nullable: true + additionalProperties: false + SyncPlayUserAccessType: + enum: + - CreateAndJoinGroups + - JoinGroups + - None + type: string + description: Enum SyncPlayUserAccessType. + SystemInfo: + type: object + properties: + LocalAddress: + type: string + description: Gets or sets the local address. + nullable: true + ServerName: + type: string + description: Gets or sets the name of the server. + nullable: true + Version: + type: string + description: Gets or sets the server version. + nullable: true + ProductName: + type: string + description: Gets or sets the product name. This is the AssemblyProduct name. + nullable: true + OperatingSystem: + type: string + description: Gets or sets the operating system. + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + StartupWizardCompleted: + type: boolean + description: Gets or sets a value indicating whether the startup wizard is completed. + nullable: true + OperatingSystemDisplayName: + type: string + description: Gets or sets the display name of the operating system. + nullable: true + PackageName: + type: string + description: Gets or sets the package name. + nullable: true + HasPendingRestart: + type: boolean + description: Gets or sets a value indicating whether this instance has pending restart. + IsShuttingDown: + type: boolean + SupportsLibraryMonitor: + type: boolean + description: Gets or sets a value indicating whether [supports library monitor]. + WebSocketPortNumber: + type: integer + description: Gets or sets the web socket port number. + format: int32 + CompletedInstallations: + type: array + items: + $ref: '#/components/schemas/InstallationInfo' + description: Gets or sets the completed installations. + nullable: true + CanSelfRestart: + type: boolean + description: Gets or sets a value indicating whether this instance can self restart. + CanLaunchWebBrowser: + type: boolean + ProgramDataPath: + type: string + description: Gets or sets the program data path. + nullable: true + WebPath: + type: string + description: Gets or sets the web UI resources path. + nullable: true + ItemsByNamePath: + type: string + description: Gets or sets the items by name path. + nullable: true + CachePath: + type: string + description: Gets or sets the cache path. + nullable: true + LogPath: + type: string + description: Gets or sets the log path. + nullable: true + InternalMetadataPath: + type: string + description: Gets or sets the internal metadata path. + nullable: true + TranscodingTempPath: + type: string + description: Gets or sets the transcode path. + nullable: true + HasUpdateAvailable: + type: boolean + description: Gets or sets a value indicating whether this instance has update available. + deprecated: true + EncoderLocation: + allOf: + - $ref: '#/components/schemas/FFmpegLocation' + description: Enum describing the location of the FFmpeg tool. + deprecated: true + SystemArchitecture: + allOf: + - $ref: '#/components/schemas/Architecture' + additionalProperties: false + description: Class SystemInfo. + TaskCompletionStatus: + enum: + - Completed + - Failed + - Cancelled + - Aborted + type: string + description: Enum TaskCompletionStatus. + TaskInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + State: + allOf: + - $ref: '#/components/schemas/TaskState' + description: Gets or sets the state of the task. + CurrentProgressPercentage: + type: number + description: Gets or sets the progress. + format: double + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + LastExecutionResult: + allOf: + - $ref: '#/components/schemas/TaskResult' + description: Gets or sets the last execution result. + nullable: true + Triggers: + type: array + items: + $ref: '#/components/schemas/TaskTriggerInfo' + description: Gets or sets the triggers. + nullable: true + Description: + type: string + description: Gets or sets the description. + nullable: true + Category: + type: string + description: Gets or sets the category. + nullable: true + IsHidden: + type: boolean + description: Gets or sets a value indicating whether this instance is hidden. + Key: + type: string + description: Gets or sets the key. + nullable: true + additionalProperties: false + description: Class TaskInfo. + TaskResult: + type: object + properties: + StartTimeUtc: + type: string + description: Gets or sets the start time UTC. + format: date-time + EndTimeUtc: + type: string + description: Gets or sets the end time UTC. + format: date-time + Status: + allOf: + - $ref: '#/components/schemas/TaskCompletionStatus' + description: Gets or sets the status. + Name: + type: string + description: Gets or sets the name. + nullable: true + Key: + type: string + description: Gets or sets the key. + nullable: true + Id: + type: string + description: Gets or sets the id. + nullable: true + ErrorMessage: + type: string + description: Gets or sets the error message. + nullable: true + LongErrorMessage: + type: string + description: Gets or sets the long error message. + nullable: true + additionalProperties: false + description: Class TaskExecutionInfo. + TaskState: + enum: + - Idle + - Cancelling + - Running + type: string + description: Enum TaskState. + TaskTriggerInfo: + type: object + properties: + Type: + type: string + description: Gets or sets the type. + nullable: true + TimeOfDayTicks: + type: integer + description: Gets or sets the time of day. + format: int64 + nullable: true + IntervalTicks: + type: integer + description: Gets or sets the interval. + format: int64 + nullable: true + DayOfWeek: + allOf: + - $ref: '#/components/schemas/DayOfWeek' + description: Gets or sets the day of week. + nullable: true + MaxRuntimeTicks: + type: integer + description: Gets or sets the maximum runtime ticks. + format: int64 + nullable: true + additionalProperties: false + description: Class TaskTriggerInfo. + ThemeMediaResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + OwnerId: + type: string + description: Gets or sets the owner id. + format: uuid + additionalProperties: false + description: Class ThemeMediaResult. + TimerEventInfo: + type: object + properties: + Id: + type: string + ProgramId: + type: string + format: uuid + nullable: true + additionalProperties: false + TimerInfoDto: + type: object + properties: + Id: + type: string + description: Gets or sets the Id of the recording. + nullable: true + Type: + type: string + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ExternalId: + type: string + description: Gets or sets the external identifier. + nullable: true + ChannelId: + type: string + description: Gets or sets the channel id of the recording. + format: uuid + ExternalChannelId: + type: string + description: Gets or sets the external channel identifier. + nullable: true + ChannelName: + type: string + description: Gets or sets the channel name of the recording. + nullable: true + ChannelPrimaryImageTag: + type: string + nullable: true + ProgramId: + type: string + description: Gets or sets the program identifier. + nullable: true + ExternalProgramId: + type: string + description: Gets or sets the external program identifier. + nullable: true + Name: + type: string + description: Gets or sets the name of the recording. + nullable: true + Overview: + type: string + description: Gets or sets the description of the recording. + nullable: true + StartDate: + type: string + description: Gets or sets the start date of the recording, in UTC. + format: date-time + EndDate: + type: string + description: Gets or sets the end date of the recording, in UTC. + format: date-time + ServiceName: + type: string + description: Gets or sets the name of the service. + nullable: true + Priority: + type: integer + description: Gets or sets the priority. + format: int32 + PrePaddingSeconds: + type: integer + description: Gets or sets the pre padding seconds. + format: int32 + PostPaddingSeconds: + type: integer + description: Gets or sets the post padding seconds. + format: int32 + IsPrePaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is pre padding required. + ParentBackdropItemId: + type: string + description: Gets or sets the Id of the Parent that has a backdrop if the item does not have one. + nullable: true + ParentBackdropImageTags: + type: array + items: + type: string + description: Gets or sets the parent backdrop image tags. + nullable: true + IsPostPaddingRequired: + type: boolean + description: Gets or sets a value indicating whether this instance is post padding required. + KeepUntil: + allOf: + - $ref: '#/components/schemas/KeepUntil' + Status: + allOf: + - $ref: '#/components/schemas/RecordingStatus' + description: Gets or sets the status. + SeriesTimerId: + type: string + description: Gets or sets the series timer identifier. + nullable: true + ExternalSeriesTimerId: + type: string + description: Gets or sets the external series timer identifier. + nullable: true + RunTimeTicks: + type: integer + description: Gets or sets the run time ticks. + format: int64 + nullable: true + ProgramInfo: + allOf: + - $ref: '#/components/schemas/BaseItemDto' + description: Gets or sets the program information. + nullable: true + additionalProperties: false + TimerInfoDtoQueryResult: + type: object + properties: + Items: + type: array + items: + $ref: '#/components/schemas/TimerInfoDto' + description: Gets or sets the items. + nullable: true + TotalRecordCount: + type: integer + description: Gets or sets the total number of records available. + format: int32 + StartIndex: + type: integer + description: Gets or sets the index of the first record in Items. + format: int32 + additionalProperties: false + TrailerInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + OriginalTitle: + type: string + description: Gets or sets the original title. + nullable: true + Path: + type: string + description: Gets or sets the path. + nullable: true + MetadataLanguage: + type: string + description: Gets or sets the metadata language. + nullable: true + MetadataCountryCode: + type: string + description: Gets or sets the metadata country code. + nullable: true + ProviderIds: + type: object + additionalProperties: + type: string + nullable: true + description: Gets or sets the provider ids. + nullable: true + Year: + type: integer + description: Gets or sets the year. + format: int32 + nullable: true + IndexNumber: + type: integer + format: int32 + nullable: true + ParentIndexNumber: + type: integer + format: int32 + nullable: true + PremiereDate: + type: string + format: date-time + nullable: true + IsAutomated: + type: boolean + additionalProperties: false + TrailerInfoRemoteSearchQuery: + type: object + properties: + SearchInfo: + allOf: + - $ref: '#/components/schemas/TrailerInfo' + nullable: true + ItemId: + type: string + format: uuid + SearchProviderName: + type: string + description: Gets or sets the provider name to search within if set. + nullable: true + IncludeDisabledProviders: + type: boolean + description: Gets or sets a value indicating whether disabled providers should be included. + additionalProperties: false + TranscodeReason: + enum: + - ContainerNotSupported + - VideoCodecNotSupported + - AudioCodecNotSupported + - SubtitleCodecNotSupported + - AudioIsExternal + - SecondaryAudioNotSupported + - VideoProfileNotSupported + - VideoLevelNotSupported + - VideoResolutionNotSupported + - VideoBitDepthNotSupported + - VideoFramerateNotSupported + - RefFramesNotSupported + - AnamorphicVideoNotSupported + - InterlacedVideoNotSupported + - AudioChannelsNotSupported + - AudioProfileNotSupported + - AudioSampleRateNotSupported + - AudioBitDepthNotSupported + - ContainerBitrateExceedsLimit + - VideoBitrateNotSupported + - AudioBitrateNotSupported + - UnknownVideoStreamInfo + - UnknownAudioStreamInfo + - DirectPlayError + - VideoRangeTypeNotSupported + type: string + TranscodeSeekInfo: + enum: + - Auto + - Bytes + type: string + TranscodingInfo: + type: object + properties: + AudioCodec: + type: string + nullable: true + VideoCodec: + type: string + nullable: true + Container: + type: string + nullable: true + IsVideoDirect: + type: boolean + IsAudioDirect: + type: boolean + Bitrate: + type: integer + format: int32 + nullable: true + Framerate: + type: number + format: float + nullable: true + CompletionPercentage: + type: number + format: double + nullable: true + Width: + type: integer + format: int32 + nullable: true + Height: + type: integer + format: int32 + nullable: true + AudioChannels: + type: integer + format: int32 + nullable: true + HardwareAccelerationType: + allOf: + - $ref: '#/components/schemas/HardwareEncodingType' + nullable: true + TranscodeReasons: + type: array + items: + $ref: '#/components/schemas/TranscodeReason' + additionalProperties: false + TranscodingProfile: + type: object + properties: + Container: + type: string + Type: + allOf: + - $ref: '#/components/schemas/DlnaProfileType' + VideoCodec: + type: string + AudioCodec: + type: string + Protocol: + type: string + EstimateContentLength: + type: boolean + default: false + EnableMpegtsM2TsMode: + type: boolean + default: false + TranscodeSeekInfo: + allOf: + - $ref: '#/components/schemas/TranscodeSeekInfo' + default: Auto + CopyTimestamps: + type: boolean + default: false + Context: + allOf: + - $ref: '#/components/schemas/EncodingContext' + default: Streaming + EnableSubtitlesInManifest: + type: boolean + default: false + MaxAudioChannels: + type: string + nullable: true + MinSegments: + type: integer + format: int32 + default: 0 + SegmentLength: + type: integer + format: int32 + default: 0 + BreakOnNonKeyFrames: + type: boolean + default: false + Conditions: + type: array + items: + $ref: '#/components/schemas/ProfileCondition' + additionalProperties: false + TransportStreamTimestamp: + enum: + - None + - Zero + - Valid + type: string + TunerChannelMapping: + type: object + properties: + Name: + type: string + nullable: true + ProviderChannelName: + type: string + nullable: true + ProviderChannelId: + type: string + nullable: true + Id: + type: string + nullable: true + additionalProperties: false + TunerHostInfo: + type: object + properties: + Id: + type: string + nullable: true + Url: + type: string + nullable: true + Type: + type: string + nullable: true + DeviceId: + type: string + nullable: true + FriendlyName: + type: string + nullable: true + ImportFavoritesOnly: + type: boolean + AllowHWTranscoding: + type: boolean + EnableStreamLooping: + type: boolean + Source: + type: string + nullable: true + TunerCount: + type: integer + format: int32 + UserAgent: + type: string + nullable: true + additionalProperties: false + TypeOptions: + type: object + properties: + Type: + type: string + nullable: true + MetadataFetchers: + type: array + items: + type: string + nullable: true + MetadataFetcherOrder: + type: array + items: + type: string + nullable: true + ImageFetchers: + type: array + items: + type: string + nullable: true + ImageFetcherOrder: + type: array + items: + type: string + nullable: true + ImageOptions: + type: array + items: + $ref: '#/components/schemas/ImageOption' + nullable: true + additionalProperties: false + UnratedItem: + enum: + - Movie + - Trailer + - Series + - Music + - Book + - LiveTvChannel + - LiveTvProgram + - ChannelContent + - Other + type: string + description: An enum representing an unrated item. + UpdateLibraryOptionsDto: + type: object + properties: + Id: + type: string + description: Gets or sets the library item id. + format: uuid + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + description: Gets or sets library options. + nullable: true + additionalProperties: false + description: Update library options dto. + UpdateMediaPathRequestDto: + required: + - Name + - PathInfo + type: object + properties: + Name: + type: string + description: Gets or sets the library name. + PathInfo: + allOf: + - $ref: '#/components/schemas/MediaPathInfo' + description: Gets or sets library folder path information. + additionalProperties: false + description: Update library options dto. + UpdateUserEasyPassword: + type: object + properties: + NewPassword: + type: string + description: Gets or sets the new sha1-hashed password. + nullable: true + NewPw: + type: string + description: Gets or sets the new password. + nullable: true + ResetPassword: + type: boolean + description: Gets or sets a value indicating whether to reset the password. + additionalProperties: false + description: The update user easy password request body. + UpdateUserPassword: + type: object + properties: + CurrentPassword: + type: string + description: Gets or sets the current sha1-hashed password. + nullable: true + CurrentPw: + type: string + description: Gets or sets the current plain text password. + nullable: true + NewPw: + type: string + description: Gets or sets the new plain text password. + nullable: true + ResetPassword: + type: boolean + description: Gets or sets a value indicating whether to reset the password. + additionalProperties: false + description: The update user password request body. + UploadSubtitleDto: + required: + - Data + - Format + - IsForced + - Language + type: object + properties: + Language: + type: string + description: Gets or sets the subtitle language. + Format: + type: string + description: Gets or sets the subtitle format. + IsForced: + type: boolean + description: Gets or sets a value indicating whether the subtitle is forced. + Data: + type: string + description: Gets or sets the subtitle data. + additionalProperties: false + description: Upload subtitles dto. + UserConfiguration: + type: object + properties: + AudioLanguagePreference: + type: string + description: Gets or sets the audio language preference. + nullable: true + PlayDefaultAudioTrack: + type: boolean + description: Gets or sets a value indicating whether [play default audio track]. + SubtitleLanguagePreference: + type: string + description: Gets or sets the subtitle language preference. + nullable: true + DisplayMissingEpisodes: + type: boolean + GroupedFolders: + type: array + items: + type: string + SubtitleMode: + allOf: + - $ref: '#/components/schemas/SubtitlePlaybackMode' + description: An enum representing a subtitle playback mode. + DisplayCollectionsView: + type: boolean + EnableLocalPassword: + type: boolean + OrderedViews: + type: array + items: + type: string + LatestItemsExcludes: + type: array + items: + type: string + MyMediaExcludes: + type: array + items: + type: string + HidePlayedInLatest: + type: boolean + RememberAudioSelections: + type: boolean + RememberSubtitleSelections: + type: boolean + EnableNextEpisodeAutoPlay: + type: boolean + additionalProperties: false + description: Class UserConfiguration. + UserDto: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + ServerId: + type: string + description: Gets or sets the server identifier. + nullable: true + ServerName: + type: string + description: "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only." + nullable: true + Id: + type: string + description: Gets or sets the id. + format: uuid + PrimaryImageTag: + type: string + description: Gets or sets the primary image tag. + nullable: true + HasPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has password. + HasConfiguredPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has configured password. + HasConfiguredEasyPassword: + type: boolean + description: Gets or sets a value indicating whether this instance has configured easy password. + EnableAutoLogin: + type: boolean + description: Gets or sets whether async login is enabled or not. + nullable: true + LastLoginDate: + type: string + description: Gets or sets the last login date. + format: date-time + nullable: true + LastActivityDate: + type: string + description: Gets or sets the last activity date. + format: date-time + nullable: true + Configuration: + allOf: + - $ref: '#/components/schemas/UserConfiguration' + description: Gets or sets the configuration. + nullable: true + Policy: + allOf: + - $ref: '#/components/schemas/UserPolicy' + description: Gets or sets the policy. + nullable: true + PrimaryImageAspectRatio: + type: number + description: Gets or sets the primary image aspect ratio. + format: double + nullable: true + additionalProperties: false + description: Class UserDto. + UserItemDataDto: + type: object + properties: + Rating: + type: number + description: Gets or sets the rating. + format: double + nullable: true + PlayedPercentage: + type: number + description: Gets or sets the played percentage. + format: double + nullable: true + UnplayedItemCount: + type: integer + description: Gets or sets the unplayed item count. + format: int32 + nullable: true + PlaybackPositionTicks: + type: integer + description: Gets or sets the playback position ticks. + format: int64 + PlayCount: + type: integer + description: Gets or sets the play count. + format: int32 + IsFavorite: + type: boolean + description: Gets or sets a value indicating whether this instance is favorite. + Likes: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes. + nullable: true + LastPlayedDate: + type: string + description: Gets or sets the last played date. + format: date-time + nullable: true + Played: + type: boolean + description: Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played. + Key: + type: string + description: Gets or sets the key. + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + additionalProperties: false + description: Class UserItemDataDto. + UserPolicy: + type: object + properties: + IsAdministrator: + type: boolean + description: Gets or sets a value indicating whether this instance is administrator. + IsHidden: + type: boolean + description: Gets or sets a value indicating whether this instance is hidden. + IsDisabled: + type: boolean + description: Gets or sets a value indicating whether this instance is disabled. + MaxParentalRating: + type: integer + description: Gets or sets the max parental rating. + format: int32 + nullable: true + BlockedTags: + type: array + items: + type: string + nullable: true + EnableUserPreferenceAccess: + type: boolean + AccessSchedules: + type: array + items: + $ref: '#/components/schemas/AccessSchedule' + nullable: true + BlockUnratedItems: + type: array + items: + $ref: '#/components/schemas/UnratedItem' + nullable: true + EnableRemoteControlOfOtherUsers: + type: boolean + EnableSharedDeviceControl: + type: boolean + EnableRemoteAccess: + type: boolean + EnableLiveTvManagement: + type: boolean + EnableLiveTvAccess: + type: boolean + EnableMediaPlayback: + type: boolean + EnableAudioPlaybackTranscoding: + type: boolean + EnableVideoPlaybackTranscoding: + type: boolean + EnablePlaybackRemuxing: + type: boolean + ForceRemoteSourceTranscoding: + type: boolean + EnableContentDeletion: + type: boolean + EnableContentDeletionFromFolders: + type: array + items: + type: string + nullable: true + EnableContentDownloading: + type: boolean + EnableSyncTranscoding: + type: boolean + description: Gets or sets a value indicating whether [enable synchronize]. + EnableMediaConversion: + type: boolean + EnabledDevices: + type: array + items: + type: string + nullable: true + EnableAllDevices: + type: boolean + EnabledChannels: + type: array + items: + type: string + format: uuid + nullable: true + EnableAllChannels: + type: boolean + EnabledFolders: + type: array + items: + type: string + format: uuid + nullable: true + EnableAllFolders: + type: boolean + InvalidLoginAttemptCount: + type: integer + format: int32 + LoginAttemptsBeforeLockout: + type: integer + format: int32 + MaxActiveSessions: + type: integer + format: int32 + EnablePublicSharing: + type: boolean + BlockedMediaFolders: + type: array + items: + type: string + format: uuid + nullable: true + BlockedChannels: + type: array + items: + type: string + format: uuid + nullable: true + RemoteClientBitrateLimit: + type: integer + format: int32 + AuthenticationProviderId: + type: string + nullable: true + PasswordResetProviderId: + type: string + nullable: true + SyncPlayAccess: + allOf: + - $ref: '#/components/schemas/SyncPlayUserAccessType' + description: Gets or sets a value indicating what SyncPlay features the user can access. + additionalProperties: false + UtcTimeResponse: + type: object + properties: + RequestReceptionTime: + type: string + description: Gets the UTC time when request has been received. + format: date-time + ResponseTransmissionTime: + type: string + description: Gets the UTC time when response has been sent. + format: date-time + additionalProperties: false + description: Class UtcTimeResponse. + ValidatePathDto: + type: object + properties: + ValidateWritable: + type: boolean + description: Gets or sets a value indicating whether validate if path is writable. + Path: + type: string + description: Gets or sets the path. + nullable: true + IsFile: + type: boolean + description: Gets or sets is path file. + nullable: true + additionalProperties: false + description: Validate path object. + VersionInfo: + type: object + properties: + version: + type: string + description: Gets or sets the version. + VersionNumber: + type: string + description: Gets the version as a System.Version. + readOnly: true + changelog: + type: string + description: Gets or sets the changelog for this version. + nullable: true + targetAbi: + type: string + description: Gets or sets the ABI that this version was built against. + nullable: true + sourceUrl: + type: string + description: Gets or sets the source URL. + nullable: true + checksum: + type: string + description: Gets or sets a checksum for the binary. + nullable: true + timestamp: + type: string + description: Gets or sets a timestamp of when the binary was built. + nullable: true + repositoryName: + type: string + description: Gets or sets the repository name. + repositoryUrl: + type: string + description: Gets or sets the repository url. + additionalProperties: false + description: Defines the MediaBrowser.Model.Updates.VersionInfo class. + Video3DFormat: + enum: + - HalfSideBySide + - FullSideBySide + - FullTopAndBottom + - HalfTopAndBottom + - MVC + type: string + VideoType: + enum: + - VideoFile + - Iso + - Dvd + - BluRay + type: string + description: Enum VideoType. + VirtualFolderInfo: + type: object + properties: + Name: + type: string + description: Gets or sets the name. + nullable: true + Locations: + type: array + items: + type: string + description: Gets or sets the locations. + nullable: true + CollectionType: + allOf: + - $ref: '#/components/schemas/CollectionTypeOptions' + description: Gets or sets the type of the collection. + nullable: true + LibraryOptions: + allOf: + - $ref: '#/components/schemas/LibraryOptions' + nullable: true + ItemId: + type: string + description: Gets or sets the item identifier. + nullable: true + PrimaryImageItemId: + type: string + description: Gets or sets the primary image item identifier. + nullable: true + RefreshProgress: + type: number + format: double + nullable: true + RefreshStatus: + type: string + nullable: true + additionalProperties: false + description: Used to hold information about a user's list of configured virtual folders. + WakeOnLanInfo: + type: object + properties: + MacAddress: + type: string + description: Gets the MAC address of the device. + nullable: true + Port: + type: integer + description: Gets or sets the wake-on-LAN port. + format: int32 + additionalProperties: false + description: Provides the MAC address and port for wake-on-LAN functionality. + XbmcMetadataOptions: + type: object + properties: + UserId: + type: string + nullable: true + ReleaseDateFormat: + type: string + SaveImagePathsInNfo: + type: boolean + EnablePathSubstitution: + type: boolean + EnableExtraThumbsDuplication: + type: boolean + additionalProperties: false + XmlAttribute: + type: object + properties: + Name: + type: string + description: Gets or sets the name of the attribute. + nullable: true + Value: + type: string + description: Gets or sets the value of the attribute. + nullable: true + additionalProperties: false + description: Defines the MediaBrowser.Model.Dlna.XmlAttribute. + securitySchemes: + CustomAuthentication: + type: apiKey + description: API key header parameter + name: Authorization + in: header diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/.gitignore b/bundles/org.openhab.binding.jellyfin/tools/swagger/.gitignore new file mode 100644 index 0000000000000..aeff16aae10ca --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/.gitignore @@ -0,0 +1,2 @@ +swagger-codegen +*preprocessed.json \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/config.json b/bundles/org.openhab.binding.jellyfin/tools/swagger/config.json new file mode 100644 index 0000000000000..1ae9158aa307a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/config.json @@ -0,0 +1,3 @@ +{ + "artifactId": "poc" +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/generate.sh b/bundles/org.openhab.binding.jellyfin/tools/swagger/generate.sh new file mode 100755 index 0000000000000..e4fc9883e8331 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/generate.sh @@ -0,0 +1,48 @@ +#!/usr/bin/bash +clear + +# if [ ! -d "swagger-codegen" ]; then +# echo "⏬ - Pull swagger-codegen repository" +# git clone https://github.com/swagger-api/swagger-codegen + +# cd swagger-codegen + +# echo "⚙️ - Create swagger-codegen package" +# mvn clean package +# cd .. +# fi + +VERSION=$(curl -sL https://repo.jellyfin.org/releases/openapi/jellyfin-openapi-stable.json | jq -r .info.version) + +echo "ℹ️ - Using latest Jellyfin API: ${VERSION}" + +FILENAME="./jellyfin-openapi-$VERSION.json" + +if [ ! -e "${FILENAME}" ]; then + echo "⏬ - Downloading latest OPENAPI definition for Version ${VERSION}..." + wget \ + --no-verbose \ + --output-document=$FILENAME \ + https://repo.jellyfin.org/releases/openapi/jellyfin-openapi-stable.json +fi + +yq -p json -o yaml $FILENAME > jellyfin-openapi-$VERSION.yaml + +#PREPROCESSED="./jellyfin-openapi-$VERSION-preprocessed.json" + +# rm -f $PREPROCESSED +# cp $FILENAME $PREPROCESSED +# node scripts/modify-schema.mjs $PREPROCESSED + +# echo "⚙️ - generating code from $PREPROCESSED" + +# https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.43/swagger-codegen-cli-2.4.43.jar +# java -Xmx8G -jar swagger-codegen-cli-${CLI}.jar config-help -l java +# export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" + +# java -Xmx8G -jar swagger-codegen-cli-${CLI}.jar generate \ +# java -jar swagger-codegen-cli-${CLI}.jar generate \ +# --verbose \ +# --lang java \ +# --config config.json \ +# --input-spec ${PREPROCESSED} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.10.3.json b/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.10.3.json new file mode 100644 index 0000000000000..13c9f6ca977c4 --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.10.3.json @@ -0,0 +1,59314 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Jellyfin API", + "version": "10.10.3", + "x-jellyfin-version": "10.10.3" + }, + "servers": [ + { + "url": "http://localhost" + } + ], + "paths": { + "/System/ActivityLog/Entries": { + "get": { + "tags": [ + "ActivityLog" + ], + "summary": "Gets activity log entries.", + "operationId": "GetLogEntries", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minDate", + "in": "query", + "description": "Optional. The minimum date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasUserId", + "in": "query", + "description": "Optional. Filter log entries if it has user id, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Activity log returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys": { + "get": { + "tags": [ + "ApiKey" + ], + "summary": "Get all keys.", + "operationId": "GetKeys", + "responses": { + "200": { + "description": "Api keys retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "ApiKey" + ], + "summary": "Create a new api key.", + "operationId": "CreateKey", + "parameters": [ + { + "name": "app", + "in": "query", + "description": "Name of the app using the authentication key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys/{key}": { + "delete": { + "tags": [ + "ApiKey" + ], + "summary": "Remove an api key.", + "operationId": "RevokeKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The access token to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Artists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all artists from a given item, folder, or the entire library.", + "operationId": "GetArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets an artist by name.", + "operationId": "GetArtistByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Artist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/AlbumArtists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all album artists from a given item, folder, or the entire library.", + "operationId": "GetAlbumArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Album artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/stream": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Branding/Configuration": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding configuration.", + "operationId": "GetBrandingOptions", + "responses": { + "200": { + "description": "Branding configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + } + } + } + } + } + }, + "/Branding/Css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Branding/Css.css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss_2", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Channels": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets available channels.", + "operationId": "GetChannels", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "supportsLatestItems", + "in": "query", + "description": "Optional. Filter by channels that support getting latest items.", + "schema": { + "type": "boolean" + } + }, + { + "name": "supportsMediaDeletion", + "in": "query", + "description": "Optional. Filter by channels that support media deletion.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorite.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel features.", + "operationId": "GetChannelFeatures", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Channel features returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Items": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel items.", + "operationId": "GetChannelItems", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "folderId", + "in": "query", + "description": "Optional. Folder Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get all channel features.", + "operationId": "GetAllChannelFeatures", + "responses": { + "200": { + "description": "All channel features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Items/Latest": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets latest channel items.", + "operationId": "GetLatestChannelItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "channelIds", + "in": "query", + "description": "Optional. Specify one or more channel id's, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "200": { + "description": "Latest channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ClientLog/Document": { + "post": { + "tags": [ + "ClientLog" + ], + "summary": "Upload a document.", + "operationId": "LogFile", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Document saved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + } + } + }, + "403": { + "description": "Event logging disabled.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "413": { + "description": "Upload size too large.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Creates a new collection.", + "operationId": "CreateCollection", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the collection.", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item Ids to add to the collection.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Create the collection within a specific folder.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Whether or not to lock the new collection.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Collection created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections/{collectionId}/Items": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Adds items to a collection.", + "operationId": "AddToCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items added to collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Collection" + ], + "summary": "Removes items from a collection.", + "operationId": "RemoveFromCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed from collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "CollectionManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets application configuration.", + "operationId": "GetConfiguration", + "responses": { + "200": { + "description": "Application configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates application configuration.", + "operationId": "UpdateConfiguration", + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/{key}": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a named configuration.", + "operationId": "GetNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Configuration returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates named configuration.", + "operationId": "UpdateNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { } + }, + "text/json": { + "schema": { } + }, + "application/*+json": { + "schema": { } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Named configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/MetadataOptions/Default": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a default MetadataOptions object.", + "operationId": "GetDefaultMetadataOptions", + "responses": { + "200": { + "description": "Metadata options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/web/ConfigurationPage": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets a dashboard configuration page.", + "operationId": "GetDashboardConfigurationPage", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the page.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPage returned.", + "content": { + "text/html": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/x-javascript": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Plugin configuration page not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/web/ConfigurationPages": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets the configuration pages.", + "operationId": "GetConfigurationPages", + "parameters": [ + { + "name": "enableInMainMenu", + "in": "query", + "description": "Whether to enable in the main menu.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + } + } + }, + "404": { + "description": "Server still loading.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get Devices.", + "operationId": "GetDevices", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Gets or sets the user identifier.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Devices" + ], + "summary": "Deletes a device.", + "operationId": "DeleteDevice", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device deleted." + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Info": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get info for a device.", + "operationId": "GetDeviceInfo", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device info retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoDto" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Options": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get options for a device.", + "operationId": "GetDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device options retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Devices" + ], + "summary": "Update device options.", + "operationId": "UpdateDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device Options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Device options updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/DisplayPreferences/{displayPreferencesId}": { + "get": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Get Display Preferences.", + "operationId": "GetDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Display preferences retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Update Display Preferences.", + "operationId": "UpdateDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New Display Preferences object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Display preferences updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsAudioSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio stream using HTTP live streaming.", + "operationId": "GetVariantHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "GetMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "HeadMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsVideoSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The desired segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/live.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a hls live stream.", + "operationId": "GetLiveHlsStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The max width.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The max height.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableSubtitlesInManifest", + "in": "query", + "description": "Optional. Whether to enable subtitles in the manifest.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Hls live stream retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetVariantHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "GetMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTrickplay", + "in": "query", + "description": "Enable trickplay image playlists being added to master playlist.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "HeadMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTrickplay", + "in": "query", + "description": "Enable trickplay image playlists being added to master playlist.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Whether to always burn in subtitles when transcoding.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DefaultDirectoryBrowser": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Get Default directory browser.", + "operationId": "GetDefaultDirectoryBrowser", + "responses": { + "200": { + "description": "Default directory browser returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DirectoryContents": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the contents of a given directory in the file system.", + "operationId": "GetDirectoryContents", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeFiles", + "in": "query", + "description": "An optional filter to include or exclude files from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeDirectories", + "in": "query", + "description": "An optional filter to include or exclude folders from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Directory contents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/Drives": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets available drives from the server's file system.", + "operationId": "GetDrives", + "responses": { + "200": { + "description": "List of entries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/NetworkShares": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets network paths.", + "operationId": "GetNetworkShares", + "responses": { + "200": { + "description": "Empty array returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/ParentPath": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the parent path of a given path.", + "operationId": "GetParentPath", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/ValidatePath": { + "post": { + "tags": [ + "Environment" + ], + "summary": "Validates path.", + "operationId": "ValidatePath", + "requestBody": { + "description": "Validate request object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Path validated." + }, + "404": { + "description": "Path not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets legacy query filters.", + "operationId": "GetQueryFiltersLegacy", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Parent id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + } + ], + "responses": { + "200": { + "description": "Legacy filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters2": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets query filters.", + "operationId": "GetQueryFilters", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Is item airing.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Is item movie.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Is item sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Is item kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Is item news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Is item series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Optional. Search recursive.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets all genres from a given item, folder, or the entire library.", + "operationId": "GetGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres/{genreName}": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets a genre, by name.", + "operationId": "GetGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.aac": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyAac", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.mp3": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyMp3", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video segment.", + "operationId": "GetHlsVideoSegmentLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "path", + "description": "The segment container.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video segment returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Hls segment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/hls/{playlistId}/stream.m3u8": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video playlist.", + "operationId": "GetHlsPlaylistLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The video id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/ActiveEncodings": { + "delete": { + "tags": [ + "HlsSegment" + ], + "summary": "Stops an active encoding.", + "operationId": "StopEncodingProcess", + "parameters": [ + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Encoding stopped successfully." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "GetArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "HeadArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Branding/Splashscreen": { + "get": { + "tags": [ + "Image" + ], + "summary": "Generates or gets the splashscreen.", + "operationId": "GetSplashscreen", + "parameters": [ + { + "name": "tag", + "in": "query", + "description": "Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "quality", + "in": "query", + "description": "Quality setting, from 0-100.", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32", + "default": 90 + } + } + ], + "responses": { + "200": { + "description": "Splashscreen returned successfully.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.", + "operationId": "UploadCustomSplashscreen", + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Successfully uploaded new splashscreen." + }, + "400": { + "description": "Error reading MimeType from uploaded image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to upload splashscreen..", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete a custom splashscreen.", + "operationId": "DeleteCustomSplashscreen", + "responses": { + "204": { + "description": "Successfully deleted the custom splashscreen." + }, + "403": { + "description": "User does not have permission to delete splashscreen.." + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Genres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Genres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get item image infos.", + "operationId": "GetItemImageInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item images returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Images/{imageType}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "The image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "The image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": { + "post": { + "tags": [ + "Image" + ], + "summary": "Updates the index for an item image.", + "operationId": "UpdateItemImageIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Old image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newIndex", + "in": "query", + "description": "New image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image index updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/MusicGenres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/MusicGenres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/UserImage": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "400": { + "description": "User id not provided.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImage", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "400": { + "description": "User id not provided.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Albums/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given album.", + "operationId": "GetInstantMixFromAlbum", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists2", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given item.", + "operationId": "GetInstantMixFromItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{name}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreById", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given playlist.", + "operationId": "GetInstantMixFromPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Songs/{itemId}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given song.", + "operationId": "GetInstantMixFromSong", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ExternalIdInfos": { + "get": { + "tags": [ + "ItemLookup" + ], + "summary": "Get the item's external id info.", + "operationId": "GetExternalIdInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "External id info retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Apply/{itemId}": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Applies search criteria to an item and refreshes metadata.", + "operationId": "ApplySearchCriteria", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "Optional. Whether or not to replace all images. Default: True.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "requestBody": { + "description": "The remote search result.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item metadata refreshed." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Book": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get book remote search.", + "operationId": "GetBookRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Book remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/BoxSet": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get box set remote search.", + "operationId": "GetBoxSetRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Box set remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Movie": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get movie remote search.", + "operationId": "GetMovieRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Movie remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicAlbum": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music album remote search.", + "operationId": "GetMusicAlbumRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music album remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicArtist": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music artist remote search.", + "operationId": "GetMusicArtistRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music artist remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicVideo": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music video remote search.", + "operationId": "GetMusicVideoRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music video remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Person": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get person remote search.", + "operationId": "GetPersonRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Person remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Series": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get series remote search.", + "operationId": "GetSeriesRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Series remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Trailer": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get trailer remote search.", + "operationId": "GetTrailerRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Trailer remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Refresh": { + "post": { + "tags": [ + "ItemRefresh" + ], + "summary": "Refreshes metadata for an item.", + "operationId": "RefreshItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "metadataRefreshMode", + "in": "query", + "description": "(Optional) Specifies the metadata refresh mode.", + "schema": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "imageRefreshMode", + "in": "query", + "description": "(Optional) Specifies the image refresh mode.", + "schema": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "replaceAllMetadata", + "in": "query", + "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "regenerateTrickplay", + "in": "query", + "description": "(Optional) Determines if trickplay images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Item metadata refresh queued." + }, + "404": { + "description": "Item to refresh not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter; this is required when not using an API key.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "indexNumber", + "in": "query", + "description": "Optional filter by index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an IMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a TMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a TVDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes items from the library and filesystem.", + "operationId": "DeleteItems", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/{itemId}/UserData": { + "get": { + "tags": [ + "Items" + ], + "summary": "Get Item User Data.", + "operationId": "GetItemUserData", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "return item user data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item is not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Items" + ], + "summary": "Update Item User Data.", + "operationId": "UpdateItemUserData", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "New user data object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserItemDataDto" + } + ], + "description": "This is used by the api to get information about a item user data." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "return updated user item data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item is not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/Resume": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetResumeItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "The item limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "excludeActiveSessions", + "in": "query", + "description": "Optional. Whether to exclude the currently active sessions.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item.", + "operationId": "UpdateItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new item properties.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes an item from the library and filesystem.", + "operationId": "DeleteItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Item deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets an item from a user's library.", + "operationId": "GetItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ContentType": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item's content type.", + "operationId": "UpdateItemContentType", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "contentType", + "in": "query", + "description": "The content type of the item.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Item content type updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/MetadataEditor": { + "get": { + "tags": [ + "ItemUpdate" + ], + "summary": "Gets metadata editor info for an item.", + "operationId": "GetMetadataEditorInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item metadata editor returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Albums/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarAlbums", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Ancestors": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all parents of an item.", + "operationId": "GetAncestors", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item parents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/CriticReviews": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets critic review for an item.", + "operationId": "GetCriticReviews", + "parameters": [ + { + "name": "itemId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Critic reviews returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Download": { + "get": { + "tags": [ + "Library" + ], + "summary": "Downloads item media.", + "operationId": "GetDownload", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Media downloaded.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "Download", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/File": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get the original file of an item.", + "operationId": "GetFile", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "File stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarItems", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeMedia": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs and videos for an item.", + "operationId": "GetThemeMedia", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme songs and videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeSongs": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs for an item.", + "operationId": "GetThemeSongs", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme songs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeVideos": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme videos for an item.", + "operationId": "GetThemeVideos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + } + ], + "responses": { + "200": { + "description": "Theme videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Counts": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get item counts.", + "operationId": "GetItemCounts", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Get counts from a specific user's library.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Get counts of favorite items.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item counts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Libraries/AvailableOptions": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets the library options info.", + "operationId": "GetLibraryOptionsInfo", + "parameters": [ + { + "name": "libraryContentType", + "in": "query", + "description": "Library content type.", + "schema": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ] + } + }, + { + "name": "isNewLibrary", + "in": "query", + "description": "Whether this is a new library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Library options info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Media/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMedia", + "requestBody": { + "description": "The update paths.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/MediaFolders": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all user media folders.", + "operationId": "GetMediaFolders", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional. Filter by folders that are marked hidden, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Media folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Movies/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostAddedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Movies/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/PhysicalPaths": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets a list of physical paths from virtual folders.", + "operationId": "GetPhysicalPaths", + "responses": { + "200": { + "description": "Physical paths returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Refresh": { + "post": { + "tags": [ + "Library" + ], + "summary": "Starts a library scan.", + "operationId": "RefreshLibrary", + "responses": { + "204": { + "description": "Library scan started." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Series/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostAddedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Series/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostUpdatedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarMovies", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarShows", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarTrailers", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders": { + "get": { + "tags": [ + "LibraryStructure" + ], + "summary": "Gets all virtual folders.", + "operationId": "GetVirtualFolders", + "responses": { + "200": { + "description": "Virtual folders retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Adds a virtual folder.", + "operationId": "AddVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "collectionType", + "in": "query", + "description": "The type of the collection.", + "schema": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ] + } + }, + { + "name": "paths", + "in": "query", + "description": "The paths of the virtual folder.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The library options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + } + } + }, + "responses": { + "204": { + "description": "Folder added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Removes a virtual folder.", + "operationId": "RemoveVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the folder.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/LibraryOptions": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Update library options.", + "operationId": "UpdateLibraryOptions", + "requestBody": { + "description": "The library name and options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + } + } + }, + "responses": { + "204": { + "description": "Library updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Name": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Renames a virtual folder.", + "operationId": "RenameVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "newName", + "in": "query", + "description": "The new name.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder renamed." + }, + "404": { + "description": "Library doesn't exist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "409": { + "description": "Library already exists.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Add a media path to a library.", + "operationId": "AddMediaPath", + "parameters": [ + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The media path dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Remove a media path.", + "operationId": "RemoveMediaPath", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the library.", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "The path to remove.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Media path removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths/Update": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Updates a media path.", + "operationId": "UpdateMediaPath", + "requestBody": { + "description": "The name of the library and path infos.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ChannelMappingOptions": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get channel mapping options.", + "operationId": "GetChannelMappingOptions", + "parameters": [ + { + "name": "providerId", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Channel mapping options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ChannelMappings": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Set channel mappings.", + "operationId": "SetChannelMapping", + "requestBody": { + "description": "The set channel mapping dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Created channel mapping returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Channels": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv channels.", + "operationId": "GetLiveTvChannels", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Optional. Filter by channel type.", + "schema": { + "enum": [ + "TV", + "Radio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ] + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorites, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLiked", + "in": "query", + "description": "Optional. Filter by channels that are liked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisliked", + "in": "query", + "description": "Optional. Filter by channels that are disliked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "\"Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Key to sort by.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort order.", + "schema": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + }, + { + "name": "enableFavoriteSorting", + "in": "query", + "description": "Optional. Incorporate favorite and like status into channel sorting.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addCurrentProgram", + "in": "query", + "description": "Optional. Adds current program info to each channel.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Available live tv channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Channels/{channelId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel.", + "operationId": "GetChannel", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Live tv channel returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/GuideInfo": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get guid info.", + "operationId": "GetGuideInfo", + "responses": { + "200": { + "description": "Guid info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Info": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv services.", + "operationId": "GetLiveTvInfo", + "responses": { + "200": { + "description": "Available live tv services returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a listings provider.", + "operationId": "AddListingProvider", + "parameters": [ + { + "name": "pw", + "in": "query", + "description": "Password.", + "schema": { + "type": "string" + } + }, + { + "name": "validateListings", + "in": "query", + "description": "Validate listings.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateLogin", + "in": "query", + "description": "Validate login.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "New listings info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created listings provider returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Delete listing provider.", + "operationId": "DeleteListingProvider", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Listing provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Listing provider deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Default": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets default listings provider info.", + "operationId": "GetDefaultListingProvider", + "responses": { + "200": { + "description": "Default listings provider info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Lineups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available lineups.", + "operationId": "GetLineups", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Provider type.", + "schema": { + "type": "string" + } + }, + { + "name": "location", + "in": "query", + "description": "Location.", + "schema": { + "type": "string" + } + }, + { + "name": "country", + "in": "query", + "description": "Country.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Available lineups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/SchedulesDirect/Countries": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available countries.", + "operationId": "GetSchedulesDirectCountries", + "responses": { + "200": { + "description": "Available countries returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/LiveRecordings/{recordingId}/stream": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording stream.", + "operationId": "GetLiveRecordingFile", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Recording stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Recording not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel stream.", + "operationId": "GetLiveStreamFile", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "container", + "in": "path", + "description": "Container type.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Stream not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/Programs": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetLiveTvPrograms", + "parameters": [ + { + "name": "channelIds", + "in": "query", + "description": "The channels to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "minStartDate", + "in": "query", + "description": "Optional. The minimum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "maxStartDate", + "in": "query", + "description": "Optional. The maximum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minEndDate", + "in": "query", + "description": "Optional. The minimum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxEndDate", + "in": "query", + "description": "Optional. The maximum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genre ids to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by series timer id.", + "schema": { + "type": "string" + } + }, + { + "name": "librarySeriesId", + "in": "query", + "description": "Optional. Filter by library series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetPrograms", + "requestBody": { + "description": "Request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + } + } + }, + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Programs/{programId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv program.", + "operationId": "GetProgram", + "parameters": [ + { + "name": "programId", + "in": "path", + "description": "Program id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Program returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Programs/Recommended": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recommended live tv epgs.", + "operationId": "GetRecommendedPrograms", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Recommended epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recordings.", + "operationId": "GetRecordings", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLibraryItem", + "in": "query", + "description": "Optional. Filter for is library item.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/{recordingId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording.", + "operationId": "GetRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a live tv recording.", + "operationId": "DeleteRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Recording deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Folders": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recording folders.", + "operationId": "GetRecordingFolders", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording groups.", + "operationId": "GetRecordingGroups", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording groups returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups/{groupId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get recording group.", + "operationId": "GetRecordingGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "description": "Group id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Recordings/Series": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording series.", + "operationId": "GetRecordingsSeries", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "groupId", + "in": "query", + "description": "Optional. Filter by recording group.", + "schema": { + "type": "string" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv series timers.", + "operationId": "GetSeriesTimers", + "parameters": [ + { + "name": "sortBy", + "in": "query", + "description": "Optional. Sort by SortName or Priority.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort in Ascending or Descending order.", + "schema": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Timers returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv series timer.", + "operationId": "CreateSeriesTimer", + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer info created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv series timer.", + "operationId": "GetSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Series timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "404": { + "description": "Series timer not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv series timer.", + "operationId": "CancelSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv series timer.", + "operationId": "UpdateSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the live tv timers.", + "operationId": "GetTimers", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by timers belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Optional. Filter by timers that are active.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isScheduled", + "in": "query", + "description": "Optional. Filter by timers that are scheduled.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv timer.", + "operationId": "CreateTimer", + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a timer.", + "operationId": "GetTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv timer.", + "operationId": "CancelTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv timer.", + "operationId": "UpdateTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Timers/Defaults": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the default values for a new timer.", + "operationId": "GetDefaultTimer", + "parameters": [ + { + "name": "programId", + "in": "query", + "description": "Optional. To attach default values based on a program.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Default values returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/TunerHosts": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a tuner host.", + "operationId": "AddTunerHost", + "requestBody": { + "description": "New tuner host.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created tuner host returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a tuner host.", + "operationId": "DeleteTunerHost", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Tuner host id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner host deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/TunerHosts/Types": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get tuner host types.", + "operationId": "GetTunerHostTypes", + "responses": { + "200": { + "description": "Tuner host types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/{tunerId}/Reset": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Resets a tv tuner.", + "operationId": "ResetTuner", + "parameters": [ + { + "name": "tunerId", + "in": "path", + "description": "Tuner id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner reset." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discvover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscvoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Countries": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known countries.", + "operationId": "GetCountries", + "responses": { + "200": { + "description": "Known countries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Cultures": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known cultures.", + "operationId": "GetCultures", + "responses": { + "200": { + "description": "Known cultures returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/Options": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets localization options.", + "operationId": "GetLocalizationOptions", + "responses": { + "200": { + "description": "Localization options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Localization/ParentalRatings": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known parental ratings.", + "operationId": "GetParentalRatings", + "responses": { + "200": { + "description": "Known parental ratings returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/Lyrics": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Gets an item's lyrics.", + "operationId": "GetLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Lyrics returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Something went wrong. No Lyrics will be returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Lyrics" + ], + "summary": "Upload an external lyric file.", + "operationId": "UploadLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the lyric belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fileName", + "in": "query", + "description": "Name of the file being uploaded.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Lyrics uploaded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "400": { + "description": "Error processing upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Lyrics" + ], + "summary": "Deletes an external lyric file.", + "operationId": "DeleteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Lyric deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/RemoteSearch/Lyrics": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Search remote lyrics.", + "operationId": "SearchRemoteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Lyrics retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteLyricInfoDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/RemoteSearch/Lyrics/{lyricId}": { + "post": { + "tags": [ + "Lyrics" + ], + "summary": "Downloads a remote lyric.", + "operationId": "DownloadRemoteLyrics", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "lyricId", + "in": "path", + "description": "The lyric id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Lyric downloaded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Lyrics/{lyricId}": { + "get": { + "tags": [ + "Lyrics" + ], + "summary": "Gets the remote lyrics.", + "operationId": "GetRemoteLyrics", + "parameters": [ + { + "name": "lyricId", + "in": "path", + "description": "The remote provider item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LyricDto" + } + } + } + }, + "404": { + "description": "Lyric not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LyricManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/PlaybackInfo": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "operationId": "GetPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "GetPostedPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "autoOpenLiveStream", + "in": "query", + "description": "Whether to auto open the livestream.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTranscoding", + "in": "query", + "description": "Whether to enable transcoding. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether to allow to copy the video stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether to allow to copy the audio stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The playback info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Close": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Closes a media source.", + "operationId": "CloseLiveStream", + "parameters": [ + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Livestream closed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Open": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Opens a media source.", + "operationId": "OpenLiveStream", + "parameters": [ + { + "name": "openToken", + "in": "query", + "description": "The open token.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "alwaysBurnInSubtitleWhenTranscoding", + "in": "query", + "description": "Always burn-in subtitle when transcoding.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The open live stream dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + } + } + }, + "responses": { + "200": { + "description": "Media source opened.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playback/BitrateTest": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Tests the network with a request with the size of the bitrate.", + "operationId": "GetBitrateTestBytes", + "parameters": [ + { + "name": "size", + "in": "query", + "description": "The bitrate. Defaults to 102400.", + "schema": { + "maximum": 100000000, + "minimum": 1, + "type": "integer", + "format": "int32", + "default": 102400 + } + } + ], + "responses": { + "200": { + "description": "Test buffer returned.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MediaSegments/{itemId}": { + "get": { + "tags": [ + "MediaSegments" + ], + "summary": "Gets all media segments based on an itemId.", + "operationId": "GetItemSegments", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The ItemId.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeSegmentTypes", + "in": "query", + "description": "Optional filter of requested segment types.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSegmentType" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MediaSegmentDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/Recommendations": { + "get": { + "tags": [ + "Movies" + ], + "summary": "Gets movie recommendations.", + "operationId": "GetMovieRecommendations", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. The fields to return.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "categoryLimit", + "in": "query", + "description": "The max number of categories to return.", + "schema": { + "type": "integer", + "format": "int32", + "default": 5 + } + }, + { + "name": "itemLimit", + "in": "query", + "description": "The max number of items to return per category.", + "schema": { + "type": "integer", + "format": "int32", + "default": 8 + } + } + ], + "responses": { + "200": { + "description": "Movie recommendations returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets all music genres from a given item, folder, or the entire library.", + "operationId": "GetMusicGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Music genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{genreName}": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets a music genre, by name.", + "operationId": "GetMusicGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets available packages.", + "operationId": "GetPackages", + "responses": { + "200": { + "description": "Available packages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/{name}": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets a package by name or assembly GUID.", + "operationId": "GetPackageInfo", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the package.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "The GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/Installed/{name}": { + "post": { + "tags": [ + "Package" + ], + "summary": "Installs a package.", + "operationId": "InstallPackage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Package name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "query", + "description": "Optional version. Defaults to latest version.", + "schema": { + "type": "string" + } + }, + { + "name": "repositoryUrl", + "in": "query", + "description": "Optional. Specify the repository to install from.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Package found." + }, + "404": { + "description": "Package not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Packages/Installing/{packageId}": { + "delete": { + "tags": [ + "Package" + ], + "summary": "Cancels a package installation.", + "operationId": "CancelPackageInstallation", + "parameters": [ + { + "name": "packageId", + "in": "path", + "description": "Installation Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Installation cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Repositories": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets all package repositories.", + "operationId": "GetRepositories", + "responses": { + "200": { + "description": "Package repositories returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Package" + ], + "summary": "Sets the enabled and existing package repositories.", + "operationId": "SetRepositories", + "requestBody": { + "description": "The list of package repositories.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Package repositories saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Persons": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Gets all persons.", + "operationId": "GetPersons", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not. userId is required.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludePersonTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "appearsInItemId", + "in": "query", + "description": "Optional. If specified, person results will be filtered on items related to said persons.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Persons returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons/{name}": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Get person by name.", + "operationId": "GetPerson", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Person returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Creates a new playlist.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "CreatePlaylist", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The playlist name.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "deprecated": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media type.", + "deprecated": true, + "schema": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ] + } + } + ], + "requestBody": { + "description": "The create playlist payload.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playlist created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Updates a playlist.", + "operationId": "UpdatePlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistDto id.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistDto" + } + ], + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Playlist updated." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist.", + "operationId": "GetPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "The playlist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistDto" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Adds items to a playlist.", + "operationId": "AddItemToPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item id, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The userId.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Items added to playlist." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Removes items from a playlist.", + "operationId": "RemoveItemFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "entryIds", + "in": "query", + "description": "The item ids, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Gets the original items of a playlist.", + "operationId": "GetPlaylistItems", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Original playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Moves a playlist item.", + "operationId": "MoveItem", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newIndex", + "in": "path", + "description": "The new index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Item moved to new index." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Users": { + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist's users.", + "operationId": "GetPlaylistUsers", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Found shares.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + } + } + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Users/{userId}": { + "get": { + "tags": [ + "Playlists" + ], + "summary": "Get a playlist user.", + "operationId": "GetPlaylistUser", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User permission found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + } + } + } + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Playlists" + ], + "summary": "Modify a user of a playlist's users.", + "operationId": "UpdatePlaylistUser", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The Jellyfin.Api.Models.PlaylistDtos.UpdatePlaylistUserDto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdatePlaylistUserDto" + } + ], + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User's permissions modified." + }, + "403": { + "description": "Access forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Playlist not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Remove a user from a playlist's users.", + "operationId": "RemoveUserFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User permissions removed from playlist." + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "No playlist or user permissions found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized access." + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/PlayingItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a session has begun playing an item.", + "operationId": "OnPlaybackStart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "canSeek", + "in": "query", + "description": "Indicates if the client can seek.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a session has stopped playing an item.", + "operationId": "OnPlaybackStopped", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "nextMediaType", + "in": "query", + "description": "The next media type that will play.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/PlayingItems/{itemId}/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports a session's playback progress.", + "operationId": "OnPlaybackProgress", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "volumeLevel", + "in": "query", + "description": "Scale of 0-100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "repeatMode", + "in": "query", + "description": "The repeat mode.", + "schema": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ] + } + }, + { + "name": "isPaused", + "in": "query", + "description": "Indicates if the player is paused.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isMuted", + "in": "query", + "description": "Indicates if the player is muted.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has started within a session.", + "operationId": "ReportPlaybackStart", + "requestBody": { + "description": "The playback start info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Ping": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Pings a playback session.", + "operationId": "PingPlaybackSession", + "parameters": [ + { + "name": "playSessionId", + "in": "query", + "description": "Playback session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback session pinged." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback progress within a session.", + "operationId": "ReportPlaybackProgress", + "requestBody": { + "description": "The playback progress info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Stopped": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has stopped within a session.", + "operationId": "ReportPlaybackStopped", + "requestBody": { + "description": "The playback stop info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserPlayedItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as played for user.", + "operationId": "MarkPlayedItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "datePlayed", + "in": "query", + "description": "Optional. The date the item was played.", + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "Item marked as played.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as unplayed for user.", + "operationId": "MarkUnplayedItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as unplayed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a list of currently installed plugins.", + "operationId": "GetPlugins", + "responses": { + "200": { + "description": "Installed plugins returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin.", + "operationId": "UninstallPlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin by version.", + "operationId": "UninstallPluginByVersion", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Disable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Disable a plugin.", + "operationId": "DisablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin disabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Enable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Enables a disabled plugin.", + "operationId": "EnablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin enabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Image": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's image.", + "operationId": "GetPluginImage", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Plugin image returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Configuration": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets plugin configuration.", + "operationId": "GetPluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Plugin configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + } + } + }, + "404": { + "description": "Plugin not found or plugin configuration not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Plugins" + ], + "summary": "Updates plugin configuration.", + "description": "Accepts plugin configuration as JSON body.", + "operationId": "UpdatePluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin configuration updated." + }, + "404": { + "description": "Plugin not found or plugin does not have configuration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Manifest": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's manifest.", + "operationId": "GetPluginManifest", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin manifest returned." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/QuickConnect/Authorize": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Authorizes a pending quick connect request.", + "operationId": "AuthorizeQuickConnect", + "parameters": [ + { + "name": "code", + "in": "query", + "description": "Quick connect code to authorize.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user the authorize. Access to the requested user is required.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result authorized successfully.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + }, + "403": { + "description": "Unknown user id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Connect": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Attempts to retrieve authentication information.", + "operationId": "GetQuickConnectState", + "parameters": [ + { + "name": "secret", + "in": "query", + "description": "Secret previously returned from the Initiate endpoint.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "404": { + "description": "Unknown quick connect secret.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/QuickConnect/Enabled": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Gets the current quick connect state.", + "operationId": "GetQuickConnectEnabled", + "responses": { + "200": { + "description": "Quick connect state returned.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + } + } + } + }, + "/QuickConnect/Initiate": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Initiate a new quick connect request.", + "operationId": "InitiateQuickConnect", + "responses": { + "200": { + "description": "Quick connect request successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "401": { + "description": "Quick connect is not active on this server." + } + } + } + }, + "/Items/{itemId}/RemoteImages": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote images for an item.", + "operationId": "GetRemoteImages", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ] + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "providerName", + "in": "query", + "description": "Optional. The image provider to use.", + "schema": { + "type": "string" + } + }, + { + "name": "includeAllLanguages", + "in": "query", + "description": "Optional. Include all languages.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Remote Images returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Download": { + "post": { + "tags": [ + "RemoteImage" + ], + "summary": "Downloads a remote image for an item.", + "operationId": "DownloadRemoteImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "required": true, + "schema": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageUrl", + "in": "query", + "description": "The image url.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Remote image downloaded." + }, + "404": { + "description": "Remote image not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Providers": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote image providers for an item.", + "operationId": "GetRemoteImageProviders", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Returned remote image providers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ScheduledTasks": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get tasks.", + "operationId": "GetTasks", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter tasks that are hidden, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isEnabled", + "in": "query", + "description": "Optional filter tasks that are enabled, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Scheduled tasks retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get task by id.", + "operationId": "GetTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}/Triggers": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Update specified task triggers.", + "operationId": "UpdateTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Triggers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Task triggers updated." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/Running/{taskId}": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Start specified task.", + "operationId": "StartTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task started." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Stop specified task.", + "operationId": "StopTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task stopped." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Search/Hints": { + "get": { + "tags": [ + "Search" + ], + "summary": "Gets the search hint result.", + "operationId": "GetSearchHints", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Supply a user id to search within a user's library or omit to search all.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term to filter on.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "If specified, only children of the parent are returned.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "includePeople", + "in": "query", + "description": "Optional filter whether to include people.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeMedia", + "in": "query", + "description": "Optional filter whether to include media.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeGenres", + "in": "query", + "description": "Optional filter whether to include genres.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeStudios", + "in": "query", + "description": "Optional filter whether to include studios.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeArtists", + "in": "query", + "description": "Optional filter whether to include artists.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Search hint returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Auth/PasswordResetProviders": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all password reset providers.", + "operationId": "GetPasswordResetProviders", + "responses": { + "200": { + "description": "Password reset providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Providers": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all auth providers.", + "operationId": "GetAuthProviders", + "responses": { + "200": { + "description": "Auth providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Sessions": { + "get": { + "tags": [ + "Session" + ], + "summary": "Gets a list of sessions.", + "operationId": "GetSessions", + "parameters": [ + { + "name": "controllableByUserId", + "in": "query", + "description": "Filter by sessions that a given user is allowed to remote control.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "Filter by device Id.", + "schema": { + "type": "string" + } + }, + { + "name": "activeWithinSeconds", + "in": "query", + "description": "Optional. Filter by sessions that were active in the last n seconds.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "List of sessions returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a full general command to a client.", + "operationId": "SendFullGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.GeneralCommand.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Full general command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a general command to a client.", + "operationId": "SendGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "General command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Message": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a command to a client to display a message to the user.", + "operationId": "SendMessageCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Message sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to play an item.", + "operationId": "Play", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playCommand", + "in": "query", + "description": "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.", + "required": true, + "schema": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Enum PlayCommand." + } + }, + { + "name": "itemIds", + "in": "query", + "description": "The ids of the items to play, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The starting position of the first item.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "Optional. The media source id.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a playstate command to a client.", + "operationId": "SendPlaystateCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The MediaBrowser.Model.Session.PlaystateCommand.", + "required": true, + "schema": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + } + }, + { + "name": "seekPositionTicks", + "in": "query", + "description": "The optional position ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "controllingUserId", + "in": "query", + "description": "The optional controlling user id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playstate command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/System/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a system command to a client.", + "operationId": "SendSystemCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "System command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/User/{userId}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Adds an additional user to a session.", + "operationId": "AddUserToSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User added to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Session" + ], + "summary": "Removes an additional user from a session.", + "operationId": "RemoveUserFromSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User removed from session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to browse to an item or view.", + "operationId": "DisplayContent", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session Id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemType", + "in": "query", + "description": "The type of item to browse to.", + "required": true, + "schema": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + } + }, + { + "name": "itemId", + "in": "query", + "description": "The Id of the item.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemName", + "in": "query", + "description": "The name of the item.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "playableMediaTypes", + "in": "query", + "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "supportedCommands", + "in": "query", + "description": "A list of supported remote control commands, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + } + } + }, + { + "name": "supportsMediaControl", + "in": "query", + "description": "Determines whether media can be played remotely..", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsPersistentIdentifier", + "in": "query", + "description": "Determines whether the device supports a unique identifier.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "204": { + "description": "Capabilities posted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities/Full": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostFullCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.ClientCapabilities.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Capabilities updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Logout": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session has ended.", + "operationId": "ReportSessionEnded", + "responses": { + "204": { + "description": "Session end reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session is viewing an item.", + "operationId": "ReportViewing", + "parameters": [ + { + "name": "sessionId", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Session reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Complete": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Completes the startup wizard.", + "operationId": "CompleteWizard", + "responses": { + "204": { + "description": "Startup wizard completed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Configuration": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the initial startup wizard configuration.", + "operationId": "GetStartupConfiguration", + "responses": { + "200": { + "description": "Initial startup wizard configuration retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the initial startup wizard configuration.", + "operationId": "UpdateInitialConfiguration", + "requestBody": { + "description": "The updated startup configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/FirstUser": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser_2", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/RemoteAccess": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets remote access and UPnP.", + "operationId": "SetRemoteAccess", + "requestBody": { + "description": "The startup remote access dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/User": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the user name and password.", + "operationId": "UpdateStartupUser", + "requestBody": { + "description": "The DTO containing username and password.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + } + } + }, + "responses": { + "204": { + "description": "Updated user name and password." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets all studios from a given item, folder, or the entire library.", + "operationId": "GetStudios", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Studios returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios/{name}": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets a studio by name.", + "operationId": "GetStudio", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Studio returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a list of available fallback font files.", + "operationId": "GetFallbackFontList", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts/{name}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a fallback font file.", + "operationId": "GetFallbackFont", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the fallback font file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Fallback font file retrieved.", + "content": { + "font/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{language}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Search remote subtitles.", + "operationId": "SearchRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "language", + "in": "path", + "description": "The language of the subtitles.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isPerfectMatch", + "in": "query", + "description": "Optional. Only show subtitles which are a perfect match.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Subtitles retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Downloads a remote subtitle.", + "operationId": "DownloadRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "subtitleId", + "in": "path", + "description": "The subtitle id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Subtitle downloaded." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Subtitles/Subtitles/{subtitleId}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets the remote subtitles.", + "operationId": "GetRemoteSubtitles", + "parameters": [ + { + "name": "subtitleId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets an HLS subtitle playlist.", + "operationId": "GetSubtitlePlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "The media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The subtitle segment length.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Subtitle playlist retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Upload an external subtitle file.", + "operationId": "UploadSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the subtitle belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Subtitle uploaded." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SubtitleManagement", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles/{index}": { + "delete": { + "tags": [ + "Subtitle" + ], + "summary": "Deletes an external subtitle file.", + "operationId": "DeleteSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the subtitle file.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Subtitle deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitleWithTicks", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeStartPositionTicks", + "in": "path", + "description": "The (route) start position of the subtitle in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitle", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Items/Suggestions": { + "get": { + "tags": [ + "Suggestions" + ], + "summary": "Gets suggestions.", + "operationId": "GetSuggestions", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media types.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "type", + "in": "query", + "description": "The type.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total record count.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Suggestions returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Buffering": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is buffering.", + "operationId": "SyncPlayBuffering", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Join": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Join an existing SyncPlay group.", + "operationId": "SyncPlayJoinGroup", + "requestBody": { + "description": "The group to join.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group join successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Leave": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Leave the joined SyncPlay group.", + "operationId": "SyncPlayLeaveGroup", + "responses": { + "204": { + "description": "Group leave successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/List": { + "get": { + "tags": [ + "SyncPlay" + ], + "summary": "Gets all SyncPlay groups.", + "operationId": "SyncPlayGetGroups", + "responses": { + "200": { + "description": "Groups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/MovePlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to move an item in the playlist in SyncPlay group.", + "operationId": "SyncPlayMovePlaylistItem", + "requestBody": { + "description": "The new position for the item.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/New": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Create a new SyncPlay group.", + "operationId": "SyncPlayCreateGroup", + "requestBody": { + "description": "The settings of the new group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "New group created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayCreateGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/NextItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request next item in SyncPlay group.", + "operationId": "SyncPlayNextItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Next item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Pause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request pause in SyncPlay group.", + "operationId": "SyncPlayPause", + "responses": { + "204": { + "description": "Pause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Ping": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Update session ping.", + "operationId": "SyncPlayPing", + "requestBody": { + "description": "The new ping.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Ping updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/PreviousItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request previous item in SyncPlay group.", + "operationId": "SyncPlayPreviousItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Previous item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Queue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to queue items to the playlist of a SyncPlay group.", + "operationId": "SyncPlayQueue", + "requestBody": { + "description": "The items to add.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Ready": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is ready for playback.", + "operationId": "SyncPlayReady", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/RemoveFromPlaylist": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to remove items from the playlist in SyncPlay group.", + "operationId": "SyncPlayRemoveFromPlaylist", + "requestBody": { + "description": "The items to remove.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Seek": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request seek in SyncPlay group.", + "operationId": "SyncPlaySeek", + "requestBody": { + "description": "The new playback position.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Seek update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetIgnoreWait": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request SyncPlay group to ignore member during group-wait.", + "operationId": "SyncPlaySetIgnoreWait", + "requestBody": { + "description": "The settings to set.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Member state updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetNewQueue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set new playlist in SyncPlay group.", + "operationId": "SyncPlaySetNewQueue", + "requestBody": { + "description": "The new playlist to play in the group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetPlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to change playlist item in SyncPlay group.", + "operationId": "SyncPlaySetPlaylistItem", + "requestBody": { + "description": "The new item to play.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetRepeatMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set repeat mode in SyncPlay group.", + "operationId": "SyncPlaySetRepeatMode", + "requestBody": { + "description": "The new repeat mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/SetShuffleMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set shuffle mode in SyncPlay group.", + "operationId": "SyncPlaySetShuffleMode", + "requestBody": { + "description": "The new shuffle mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Stop": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request stop in SyncPlay group.", + "operationId": "SyncPlayStop", + "responses": { + "204": { + "description": "Stop update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Unpause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request unpause in SyncPlay group.", + "operationId": "SyncPlayUnpause", + "responses": { + "204": { + "description": "Unpause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Endpoint": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the request endpoint.", + "operationId": "GetEndpointInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + } + } + }, + "403": { + "description": "User does not have permission to get endpoint information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the server.", + "operationId": "GetSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + } + } + }, + "403": { + "description": "User does not have permission to retrieve information.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrIgnoreParentalControl", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info/Public": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets public information about the server.", + "operationId": "GetPublicSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + } + } + } + } + } + }, + "/System/Logs": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a list of available server log files.", + "operationId": "GetServerLogs", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + } + } + }, + "403": { + "description": "User does not have permission to get server logs.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Logs/Log": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a log file.", + "operationId": "GetLogFile", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the log file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Log file retrieved.", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "403": { + "description": "User does not have permission to get log files.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Could not find a log file with the name.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Ping": { + "get": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "GetPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "post": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "PostPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/System/Restart": { + "post": { + "tags": [ + "System" + ], + "summary": "Restarts the application.", + "operationId": "RestartApplication", + "responses": { + "204": { + "description": "Server restarted." + }, + "403": { + "description": "User does not have permission to restart server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LocalAccessOrRequiresElevation" + ] + } + ] + } + }, + "/System/Shutdown": { + "post": { + "tags": [ + "System" + ], + "summary": "Shuts down the application.", + "operationId": "ShutdownApplication", + "responses": { + "204": { + "description": "Server shut down." + }, + "403": { + "description": "User does not have permission to shutdown server.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/WakeOnLanInfo": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets wake on lan information.", + "operationId": "GetWakeOnLanInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/GetUtcTime": { + "get": { + "tags": [ + "TimeSync" + ], + "summary": "Gets the current UTC time.", + "operationId": "GetUtcTime", + "responses": { + "200": { + "description": "Time returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + } + } + } + } + } + }, + "/Tmdb/ClientConfiguration": { + "get": { + "tags": [ + "Tmdb" + ], + "summary": "Gets the TMDb image configuration options.", + "operationId": "TmdbClientConfiguration", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigImageTypes" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers": { + "get": { + "tags": [ + "Trailers" + ], + "summary": "Finds movies and trailers similar to a given trailer.", + "operationId": "GetTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter; this is required when not using an API key.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an IMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a TMDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a TVDb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending, Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Trickplay/{width}/{index}.jpg": { + "get": { + "tags": [ + "Trickplay" + ], + "summary": "Gets a trickplay tile image.", + "operationId": "GetTrickplayTileImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "width", + "in": "path", + "description": "The width of a single tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the desired tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if using an alternate version.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Tile image not found at specified index.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Trickplay/{width}/tiles.m3u8": { + "get": { + "tags": [ + "Trickplay" + ], + "summary": "Gets an image tiles playlist for trickplay.", + "operationId": "GetTrickplayHlsPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "width", + "in": "path", + "description": "The width of a single tile.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if using an alternate version.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Tiles playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Episodes": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets episodes for a tv season.", + "operationId": "GetEpisodes", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "season", + "in": "query", + "description": "Optional filter by season number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "seasonId", + "in": "query", + "description": "Optional. Filter by season id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startItemId", + "in": "query", + "description": "Optional. Skip through the list until a given item is found.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "enum": [ + "Default", + "AiredEpisodeOrder", + "Album", + "AlbumArtist", + "Artist", + "DateCreated", + "OfficialRating", + "DatePlayed", + "PremiereDate", + "StartDate", + "SortName", + "Name", + "Random", + "Runtime", + "CommunityRating", + "ProductionYear", + "PlayCount", + "CriticRating", + "IsFolder", + "IsUnplayed", + "IsPlayed", + "SeriesSortName", + "VideoBitRate", + "AirTime", + "Studio", + "IsFavoriteOrLiked", + "DateLastContentAdded", + "SeriesDatePlayed", + "ParentIndexNumber", + "IndexNumber", + "SimilarityScore", + "SearchScore" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ItemSortBy" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Seasons": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets seasons for a tv series.", + "operationId": "GetSeasons", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "isSpecialSeason", + "in": "query", + "description": "Optional. Filter by special season.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/NextUp": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of next up episodes.", + "operationId": "GetNextUp", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the next up episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "seriesId", + "in": "query", + "description": "Optional. Filter by series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "nextUpDateCutoff", + "in": "query", + "description": "Optional. Starting date of shows to show in Next Up section.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total records count. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "disableFirstEpisode", + "in": "query", + "description": "Whether to disable sending the first episode in a series as next up.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableResumable", + "in": "query", + "description": "Whether to include resumable episodes in next up results.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableRewatching", + "in": "query", + "description": "Whether to include watched episodes in next up results.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/Upcoming": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of upcoming episodes.", + "operationId": "GetUpcomingEpisodes", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the upcoming episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/universal": { + "get": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ] + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ] + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of users.", + "operationId": "GetUsers", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter by IsHidden=true or false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisabled", + "in": "query", + "description": "Optional filter by IsDisabled=true or false.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user.", + "operationId": "UpdateUser", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The updated user model.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User updated." + }, + "400": { + "description": "User information was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a user by Id.", + "operationId": "GetUserById", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "IgnoreParentalControl", + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "User" + ], + "summary": "Deletes a user.", + "operationId": "DeleteUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User deleted." + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/{userId}/Policy": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user policy.", + "operationId": "UpdateUserPolicy", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user policy.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User policy updated." + }, + "400": { + "description": "User policy was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User policy update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/AuthenticateByName": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user by name.", + "operationId": "AuthenticateUserByName", + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + } + } + } + }, + "/Users/AuthenticateWithQuickConnect": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user with quick connect.", + "operationId": "AuthenticateWithQuickConnect", + "requestBody": { + "description": "The Jellyfin.Api.Models.UserDtos.QuickConnectDto request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "400": { + "description": "Missing token." + } + } + } + }, + "/Users/Configuration": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user configuration.", + "operationId": "UpdateUserConfiguration", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User configuration updated." + }, + "403": { + "description": "User configuration update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/ForgotPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Initiates the forgot password process for a local user.", + "operationId": "ForgotPassword", + "requestBody": { + "description": "The forgot password request containing the entered username.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Password reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + } + } + } + } + } + }, + "/Users/ForgotPassword/Pin": { + "post": { + "tags": [ + "User" + ], + "summary": "Redeems a forgot password pin.", + "operationId": "ForgotPasswordPin", + "requestBody": { + "description": "The forgot password pin request containing the entered pin.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Pin reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + } + } + } + } + } + }, + "/Users/Me": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets the user based on auth token.", + "operationId": "GetCurrentUser", + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "400": { + "description": "Token is not owned by a user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/New": { + "post": { + "tags": [ + "User" + ], + "summary": "Creates a user.", + "operationId": "CreateUserByName", + "requestBody": { + "description": "The create user by name request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/Password": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's password.", + "operationId": "UpdateUserPassword", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Nullable{System.Guid},Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/Public": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of publicly visible users for display on a login screen.", + "operationId": "GetPublicUsers", + "responses": { + "200": { + "description": "Public users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + } + } + } + }, + "/Items/{itemId}/Intros": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets intros to play before the main media item plays.", + "operationId": "GetIntros", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Intros returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/LocalTrailers": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets local trailers for an item.", + "operationId": "GetLocalTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/SpecialFeatures": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets special features for an item.", + "operationId": "GetSpecialFeatures", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Special features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Latest": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets latest media.", + "operationId": "GetLatestMedia", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Return item limit.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + }, + { + "name": "groupItems", + "in": "query", + "description": "Whether or not to group items into a parent container.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Latest media returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Root": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets the root folder from a user's library.", + "operationId": "GetRootFolder", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Root folder returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserFavoriteItems/{itemId}": { + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Marks an item as a favorite.", + "operationId": "MarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Unmarks item as a favorite.", + "operationId": "UnmarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item unmarked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserItems/{itemId}/Rating": { + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Deletes a user's saved personal rating for an item.", + "operationId": "DeleteUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Personal rating removed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Updates a user's rating for an item.", + "operationId": "UpdateUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "likes", + "in": "query", + "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Nullable{System.Guid},System.Guid,System.Nullable{System.Boolean}) is likes.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item rating updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserViews": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user views.", + "operationId": "GetUserViews", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeExternalContent", + "in": "query", + "description": "Whether or not to include external views such as channels or live tv.", + "schema": { + "type": "boolean" + } + }, + { + "name": "presetViews", + "in": "query", + "description": "Preset views.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionType" + } + } + }, + { + "name": "includeHidden", + "in": "query", + "description": "Whether or not to include hidden content.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "User views returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/UserViews/GroupingOptions": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user view grouping options.", + "operationId": "GetGroupingOptions", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User view grouping options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}": { + "get": { + "tags": [ + "VideoAttachments" + ], + "summary": "Get video attachment.", + "operationId": "GetAttachment", + "parameters": [ + { + "name": "videoId", + "in": "path", + "description": "Video ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "Media Source ID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "path", + "description": "Attachment Index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Attachment retrieved.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Video or attachment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/{itemId}/AdditionalParts": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets additional parts for a video.", + "operationId": "GetAdditionalPart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Additional parts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/AlternateSources": { + "delete": { + "tags": [ + "Videos" + ], + "summary": "Removes alternate video sources.", + "operationId": "DeleteAlternateSources", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Alternate sources deleted." + }, + "404": { + "description": "Video not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/stream": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify an audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAudioVbrEncoding", + "in": "query", + "description": "Optional. Whether to enable Audio Encoding.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/MergeVersions": { + "post": { + "tags": [ + "Videos" + ], + "summary": "Merges videos into a single record.", + "operationId": "MergeVersions", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Item id list. This allows multiple, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Videos merged." + }, + "400": { + "description": "Supply at least 2 video ids.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Years": { + "get": { + "tags": [ + "Years" + ], + "summary": "Get years.", + "operationId": "GetYears", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Skips over a given number of items within the results. Use for paging.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Search recursively.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Year query returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Years/{year}": { + "get": { + "tags": [ + "Years" + ], + "summary": "Gets a year.", + "operationId": "GetYear", + "parameters": [ + { + "name": "year", + "in": "path", + "description": "The year.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Year returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Year not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + } + }, + "components": { + "schemas": { + "AccessSchedule": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id of this instance.", + "format": "int32", + "readOnly": true + }, + "UserId": { + "type": "string", + "description": "Gets the id of the associated user.", + "format": "uuid" + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DynamicDayOfWeek" + } + ], + "description": "Gets or sets the day of week." + }, + "StartHour": { + "type": "number", + "description": "Gets or sets the start hour.", + "format": "double" + }, + "EndHour": { + "type": "number", + "description": "Gets or sets the end hour.", + "format": "double" + } + }, + "additionalProperties": false, + "description": "An entity representing a user's access schedule." + }, + "ActivityLogEntry": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "ShortOverview": { + "type": "string", + "description": "Gets or sets the short overview.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "Date": { + "type": "string", + "description": "Gets or sets the date.", + "format": "date-time" + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true, + "deprecated": true + }, + "Severity": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LogLevel" + } + ], + "description": "Gets or sets the log severity." + } + }, + "additionalProperties": false, + "description": "An activity log entry." + }, + "ActivityLogEntryMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntry", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log created message." + }, + "ActivityLogEntryQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "ActivityLogEntryStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntryStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log entry start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "ActivityLogEntryStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ActivityLogEntryStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Activity log entry stop message." + }, + "AddVirtualFolderDto": { + "type": "object", + "properties": { + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Add virtual folder dto." + }, + "AlbumInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the album artist." + }, + "ArtistProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the artist provider ids." + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "AlbumInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AllThemeMediaResult": { + "type": "object", + "properties": { + "ThemeVideosResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "ThemeSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "SoundtrackSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ArtistInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "ArtistInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AudioSpatialFormat": { + "enum": [ + "None", + "DolbyAtmos", + "DTSX" + ], + "type": "string", + "description": "An enum representing formats of spatial audio." + }, + "AuthenticateUserByName": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Pw": { + "type": "string", + "description": "Gets or sets the plain text password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The authenticate user by name request body." + }, + "AuthenticationInfo": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device identifier.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is active." + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateRevoked": { + "type": "string", + "description": "Gets or sets the date revoked.", + "format": "date-time", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "format": "date-time" + }, + "UserName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AuthenticationInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationInfo" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "AuthenticationResult": { + "type": "object", + "properties": { + "User": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "SessionInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionInfoDto" + } + ], + "description": "Session info DTO.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A class representing an authentication result." + }, + "BaseItemDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "Etag": { + "type": "string", + "description": "Gets or sets the etag.", + "nullable": true + }, + "SourceType": { + "type": "string", + "description": "Gets or sets the type of the source.", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier.", + "nullable": true + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time", + "nullable": true + }, + "DateLastMediaAdded": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ExtraType": { + "enum": [ + "Unknown", + "Clip", + "Trailer", + "BehindTheScenes", + "DeletedScene", + "Interview", + "Scene", + "Sample", + "ThemeSong", + "ThemeVideo", + "Featurette", + "Short" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ExtraType" + } + ], + "nullable": true + }, + "AirsBeforeSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsAfterSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsBeforeEpisodeNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CanDelete": { + "type": "boolean", + "nullable": true + }, + "CanDownload": { + "type": "boolean", + "nullable": true + }, + "HasLyrics": { + "type": "boolean", + "nullable": true + }, + "HasSubtitles": { + "type": "boolean", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "nullable": true + }, + "PreferredMetadataCountryCode": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "SortName": { + "type": "string", + "description": "Gets or sets the name of the sort.", + "nullable": true + }, + "ForcedSortName": { + "type": "string", + "nullable": true + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "description": "Gets or sets the video3 D format.", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "description": "Gets or sets the premiere date.", + "format": "date-time", + "nullable": true + }, + "ExternalUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalUrl" + }, + "description": "Gets or sets the external urls.", + "nullable": true + }, + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media versions.", + "nullable": true + }, + "CriticRating": { + "type": "number", + "description": "Gets or sets the critic rating.", + "format": "float", + "nullable": true + }, + "ProductionLocations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "EnableMediaSourceDisplay": { + "type": "boolean", + "nullable": true + }, + "OfficialRating": { + "type": "string", + "description": "Gets or sets the official rating.", + "nullable": true + }, + "CustomRating": { + "type": "string", + "description": "Gets or sets the custom rating.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "Taglines": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the taglines.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres.", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "float", + "nullable": true + }, + "CumulativeRunTimeTicks": { + "type": "integer", + "description": "Gets or sets the cumulative run time ticks.", + "format": "int64", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayAccess" + } + ], + "description": "Gets or sets the play access.", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "IsPlaceHolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is place holder.", + "nullable": true + }, + "Number": { + "type": "string", + "description": "Gets or sets the number.", + "nullable": true + }, + "ChannelNumber": { + "type": "string", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "description": "Gets or sets the index number end.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the trailer urls.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is HD.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "ParentId": { + "type": "string", + "description": "Gets or sets the parent id.", + "format": "uuid", + "nullable": true + }, + "Type": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + }, + "People": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemPerson" + }, + "description": "Gets or sets the people.", + "nullable": true + }, + "Studios": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the studios.", + "nullable": true + }, + "GenreItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "ParentLogoItemId": { + "type": "string", + "description": "Gets or sets whether the item has a logo, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets whether the item has any backdrops, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "LocalTrailerCount": { + "type": "integer", + "description": "Gets or sets the local trailer count.", + "format": "int32", + "nullable": true + }, + "UserData": { + "allOf": [ + { + "$ref": "#/components/schemas/UserItemDataDto" + } + ], + "description": "Gets or sets the user data for this item based on the user it's being requested for.", + "nullable": true + }, + "RecursiveItemCount": { + "type": "integer", + "description": "Gets or sets the recursive item count.", + "format": "int32", + "nullable": true + }, + "ChildCount": { + "type": "integer", + "description": "Gets or sets the child count.", + "format": "int32", + "nullable": true + }, + "SeriesName": { + "type": "string", + "description": "Gets or sets the name of the series.", + "nullable": true + }, + "SeriesId": { + "type": "string", + "description": "Gets or sets the series id.", + "format": "uuid", + "nullable": true + }, + "SeasonId": { + "type": "string", + "description": "Gets or sets the season identifier.", + "format": "uuid", + "nullable": true + }, + "SpecialFeatureCount": { + "type": "integer", + "description": "Gets or sets the special feature count.", + "format": "int32", + "nullable": true + }, + "DisplayPreferencesId": { + "type": "string", + "description": "Gets or sets the display preferences id.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "AirTime": { + "type": "string", + "description": "Gets or sets the air time.", + "nullable": true + }, + "AirDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the air days.", + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the tags.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio, after image enhancements.", + "format": "double", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "ArtistItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the artist items.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "CollectionType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "DisplayOrder": { + "type": "string", + "description": "Gets or sets the display order.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the album image tag.", + "nullable": true + }, + "SeriesPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the series primary image tag.", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "AlbumArtists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the album artists.", + "nullable": true + }, + "SeasonName": { + "type": "string", + "description": "Gets or sets the name of the season.", + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "description": "Gets or sets the media streams.", + "nullable": true + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "description": "Gets or sets the type of the video.", + "nullable": true + }, + "PartCount": { + "type": "integer", + "description": "Gets or sets the part count.", + "format": "int32", + "nullable": true + }, + "MediaSourceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "BackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the backdrop image tags.", + "nullable": true + }, + "ScreenshotImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the screenshot image tags.", + "nullable": true + }, + "ParentLogoImageTag": { + "type": "string", + "description": "Gets or sets the parent logo image tag.", + "nullable": true + }, + "ParentArtItemId": { + "type": "string", + "description": "Gets or sets whether the item has fan art, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentArtImageTag": { + "type": "string", + "description": "Gets or sets the parent art image tag.", + "nullable": true + }, + "SeriesThumbImageTag": { + "type": "string", + "description": "Gets or sets the series thumb image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value.", + "nullable": true + }, + "SeriesStudio": { + "type": "string", + "description": "Gets or sets the series studio.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "format": "uuid", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + }, + "Chapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChapterInfo" + }, + "description": "Gets or sets the chapters.", + "nullable": true + }, + "Trickplay": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TrickplayInfo" + } + }, + "description": "Gets or sets the trickplay manifest.", + "nullable": true + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LocationType" + } + ], + "description": "Gets or sets the type of the location.", + "nullable": true + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "description": "Gets or sets the type of the iso.", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Media types." + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "LockedFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataField" + }, + "description": "Gets or sets the locked fields.", + "nullable": true + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32", + "nullable": true + }, + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32", + "nullable": true + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32", + "nullable": true + }, + "ProgramCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32", + "nullable": true + }, + "ArtistCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32", + "nullable": true + }, + "LockData": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable internet providers].", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CameraMake": { + "type": "string", + "nullable": true + }, + "CameraModel": { + "type": "string", + "nullable": true + }, + "Software": { + "type": "string", + "nullable": true + }, + "ExposureTime": { + "type": "number", + "format": "double", + "nullable": true + }, + "FocalLength": { + "type": "number", + "format": "double", + "nullable": true + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageOrientation" + } + ], + "nullable": true + }, + "Aperture": { + "type": "number", + "format": "double", + "nullable": true + }, + "ShutterSpeed": { + "type": "number", + "format": "double", + "nullable": true + }, + "Latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Altitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "IsoSpeedRating": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the channel primary image tag.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "IsRepeat": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is repeat.", + "nullable": true + }, + "EpisodeTitle": { + "type": "string", + "description": "Gets or sets the episode title.", + "nullable": true + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ], + "description": "Gets or sets the type of the channel.", + "nullable": true + }, + "Audio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProgramAudio" + } + ], + "description": "Gets or sets the audio.", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is movie.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is sports.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is series.", + "nullable": true + }, + "IsLive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is live.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is kids.", + "nullable": true + }, + "IsPremiere": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is premiere.", + "nullable": true + }, + "TimerId": { + "type": "string", + "description": "Gets or sets the timer identifier.", + "nullable": true + }, + "NormalizationGain": { + "type": "number", + "description": "Gets or sets the gain required for audio normalization.", + "format": "float", + "nullable": true + }, + "CurrentProgram": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the current program.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + }, + "BaseItemDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "BaseItemKind": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "type": "string", + "description": "The base item kind." + }, + "BaseItemPerson": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "Role": { + "type": "string", + "description": "Gets or sets the role.", + "nullable": true + }, + "Type": { + "enum": [ + "Unknown", + "Actor", + "Director", + "Composer", + "Writer", + "GuestStar", + "Producer", + "Conductor", + "Lyricist", + "Arranger", + "Engineer", + "Mixer", + "Remixer", + "Creator", + "Artist", + "AlbumArtist", + "Author", + "Illustrator", + "Penciller", + "Inker", + "Colorist", + "Letterer", + "CoverArtist", + "Editor", + "Translator" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PersonKind" + } + ], + "description": "The person kind." + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the primary image blurhash.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a Person within a BaseItem." + }, + "BasePluginConfiguration": { + "type": "object", + "additionalProperties": false, + "description": "Class BasePluginConfiguration." + }, + "BookInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SeriesName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BookInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BoxSetInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "BoxSetInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BrandingOptions": { + "type": "object", + "properties": { + "LoginDisclaimer": { + "type": "string", + "description": "Gets or sets the login disclaimer.", + "nullable": true + }, + "CustomCss": { + "type": "string", + "description": "Gets or sets the custom CSS.", + "nullable": true + }, + "SplashscreenEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable the splashscreen." + } + }, + "additionalProperties": false, + "description": "The branding options." + }, + "BufferRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class BufferRequestDto." + }, + "CastReceiverApplication": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the cast receiver application id." + }, + "Name": { + "type": "string", + "description": "Gets or sets the cast receiver application name." + } + }, + "additionalProperties": false, + "description": "The cast receiver application model." + }, + "ChannelFeatures": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "CanSearch": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can search." + }, + "MediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaType" + }, + "description": "Gets or sets the media types." + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaContentType" + }, + "description": "Gets or sets the content types." + }, + "MaxPageSize": { + "type": "integer", + "description": "Gets or sets the maximum number of records the channel allows retrieving at a time.", + "format": "int32", + "nullable": true + }, + "AutoRefreshLevels": { + "type": "integer", + "description": "Gets or sets the automatic refresh levels.", + "format": "int32", + "nullable": true + }, + "DefaultSortFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelItemSortField" + }, + "description": "Gets or sets the default sort orders." + }, + "SupportsSortOrderToggle": { + "type": "boolean", + "description": "Gets or sets a value indicating whether a sort ascending/descending toggle is supported." + }, + "SupportsLatestMedia": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports latest media]." + }, + "CanFilter": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can filter." + }, + "SupportsContentDownloading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports content downloading]." + } + }, + "additionalProperties": false + }, + "ChannelItemSortField": { + "enum": [ + "Name", + "CommunityRating", + "PremiereDate", + "DateCreated", + "Runtime", + "PlayCount", + "CommunityPlayCount" + ], + "type": "string" + }, + "ChannelMappingOptionsDto": { + "type": "object", + "properties": { + "TunerChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerChannelMapping" + }, + "description": "Gets or sets list of tuner channels." + }, + "ProviderChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + }, + "description": "Gets or sets list of provider channels." + }, + "Mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "description": "Gets or sets list of mappings." + }, + "ProviderName": { + "type": "string", + "description": "Gets or sets provider name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Channel mapping options dto." + }, + "ChannelMediaContentType": { + "enum": [ + "Clip", + "Podcast", + "Trailer", + "Movie", + "Episode", + "Song", + "MovieExtra", + "TvExtra" + ], + "type": "string" + }, + "ChannelMediaType": { + "enum": [ + "Audio", + "Video", + "Photo" + ], + "type": "string" + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "type": "string", + "description": "Enum ChannelType." + }, + "ChapterInfo": { + "type": "object", + "properties": { + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ImagePath": { + "type": "string", + "description": "Gets or sets the image path.", + "nullable": true + }, + "ImageDateModified": { + "type": "string", + "format": "date-time" + }, + "ImageTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ChapterInfo." + }, + "ClientCapabilitiesDto": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + }, + "description": "Gets or sets the list of playable media types." + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the list of supported commands." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports media control." + }, + "SupportsPersistentIdentifier": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports a persistent identifier." + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "description": "Gets or sets the app store url.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Client capabilities dto." + }, + "ClientLogDocumentResponseDto": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "Gets the resulting filename." + } + }, + "additionalProperties": false, + "description": "Client log document response dto." + }, + "CodecProfile": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CodecType" + } + ], + "description": "Gets or sets the MediaBrowser.Model.Dlna.CodecType which this container must meet." + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this profile must meet." + }, + "ApplyConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition to apply if this profile is met." + }, + "Codec": { + "type": "string", + "description": "Gets or sets the codec(s) that this profile applies to.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the container(s) which this profile will be applied to.", + "nullable": true + }, + "SubContainer": { + "type": "string", + "description": "Gets or sets the sub-container(s) which this profile will be applied to.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.CodecProfile." + }, + "CodecType": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "type": "string" + }, + "CollectionCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "CollectionType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "type": "string", + "description": "Collection type." + }, + "CollectionTypeOptions": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "type": "string", + "description": "The collection type options." + }, + "ConfigImageTypes": { + "type": "object", + "properties": { + "BackdropSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "BaseUrl": { + "type": "string", + "nullable": true + }, + "LogoSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "PosterSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ProfileSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SecureBaseUrl": { + "type": "string", + "nullable": true + }, + "StillSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConfigurationPageInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "EnableInMainMenu": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the configurations page is enabled in the main menu." + }, + "MenuSection": { + "type": "string", + "description": "Gets or sets the menu section.", + "nullable": true + }, + "MenuIcon": { + "type": "string", + "description": "Gets or sets the menu icon.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "PluginId": { + "type": "string", + "description": "Gets or sets the plugin id.", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The configuration page info." + }, + "ContainerProfile": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the MediaBrowser.Model.Dlna.DlnaProfileType which this container must meet." + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the list of MediaBrowser.Model.Dlna.ProfileCondition which this container will be applied to." + }, + "Container": { + "type": "string", + "description": "Gets or sets the container(s) which this container must meet.", + "nullable": true + }, + "SubContainer": { + "type": "string", + "description": "Gets or sets the sub container(s) which this container must meet.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.ContainerProfile." + }, + "CountryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "TwoLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the two letter ISO region.", + "nullable": true + }, + "ThreeLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the three letter ISO region.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class CountryInfo." + }, + "CreatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist." + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids to add to the playlist." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Gets or sets the media type.", + "nullable": true + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the playlist users." + }, + "IsPublic": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is public." + } + }, + "additionalProperties": false, + "description": "Create new playlist dto." + }, + "CreateUserByName": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username." + }, + "Password": { + "type": "string", + "description": "Gets or sets the password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The create user by name request body." + }, + "CultureDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "DisplayName": { + "type": "string", + "description": "Gets the display name." + }, + "TwoLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the two letter ISO language." + }, + "ThreeLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the three letter ISO language.", + "nullable": true, + "readOnly": true + }, + "ThreeLetterISOLanguageNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "description": "Class CultureDto." + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "string" + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "type": "string" + }, + "DefaultDirectoryBrowserInfoDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Default directory browser info." + }, + "DeinterlaceMethod": { + "enum": [ + "yadif", + "bwdif" + ], + "type": "string", + "description": "Enum containing deinterlace methods." + }, + "DeviceInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "LastUserName": { + "type": "string", + "description": "Gets or sets the last name of the user.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "LastUserId": { + "type": "string", + "description": "Gets or sets the last user identifier.", + "format": "uuid", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "description": "Gets or sets the date last modified.", + "format": "date-time", + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Gets or sets the capabilities." + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A DTO representing device information." + }, + "DeviceInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "DeviceOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the id.", + "format": "int32" + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A dto representing custom options for a device." + }, + "DeviceProfile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of this device profile. User profiles must have a unique name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique internal identifier.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for all streamed content.", + "format": "int32", + "nullable": true + }, + "MaxStaticBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files).", + "format": "int32", + "nullable": true + }, + "MusicStreamingTranscodingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for transcoded music streams.", + "format": "int32", + "nullable": true + }, + "MaxStaticMusicBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files.", + "format": "int32", + "nullable": true + }, + "DirectPlayProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectPlayProfile" + }, + "description": "Gets or sets the direct play profiles." + }, + "TranscodingProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodingProfile" + }, + "description": "Gets or sets the transcoding profiles." + }, + "ContainerProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContainerProfile" + }, + "description": "Gets or sets the container profiles. Failing to meet these optional conditions causes transcoding to occur." + }, + "CodecProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CodecProfile" + }, + "description": "Gets or sets the codec profiles." + }, + "SubtitleProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubtitleProfile" + }, + "description": "Gets or sets the subtitle profiles." + } + }, + "additionalProperties": false, + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + }, + "DirectPlayProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "description": "Gets or sets the container." + }, + "AudioCodec": { + "type": "string", + "description": "Gets or sets the audio codec.", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the video codec.", + "nullable": true + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the Dlna profile type." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.DirectPlayProfile." + }, + "DisplayPreferencesDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the user id.", + "nullable": true + }, + "ViewType": { + "type": "string", + "description": "Gets or sets the type of the view.", + "nullable": true + }, + "SortBy": { + "type": "string", + "description": "Gets or sets the sort by.", + "nullable": true + }, + "IndexBy": { + "type": "string", + "description": "Gets or sets the index by.", + "nullable": true + }, + "RememberIndexing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember indexing]." + }, + "PrimaryImageHeight": { + "type": "integer", + "description": "Gets or sets the height of the primary image.", + "format": "int32" + }, + "PrimaryImageWidth": { + "type": "integer", + "description": "Gets or sets the width of the primary image.", + "format": "int32" + }, + "CustomPrefs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the custom prefs." + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ScrollDirection" + } + ], + "description": "An enum representing the axis that should be scrolled." + }, + "ShowBackdrop": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to show backdrops on this item." + }, + "RememberSorting": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember sorting]." + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ], + "description": "An enum representing the sorting order." + }, + "ShowSidebar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [show sidebar]." + }, + "Client": { + "type": "string", + "description": "Gets or sets the client.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the display preferences for any item that supports them (usually Folders)." + }, + "DlnaProfileType": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "type": "string" + }, + "DownMixStereoAlgorithms": { + "enum": [ + "None", + "Dave750", + "NightmodeDialogue", + "Rfc7845", + "Ac4" + ], + "type": "string", + "description": "An enum representing an algorithm to downmix surround sound to stereo." + }, + "DynamicDayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "type": "string", + "description": "An enum that represents a day of the week, weekdays, weekends, or all days." + }, + "EmbeddedSubtitleOptions": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "type": "string", + "description": "An enum representing the options to disable embedded subs." + }, + "EncoderPreset": { + "enum": [ + "auto", + "placebo", + "veryslow", + "slower", + "slow", + "medium", + "fast", + "faster", + "veryfast", + "superfast", + "ultrafast" + ], + "type": "string", + "description": "Enum containing encoder presets." + }, + "EncodingContext": { + "enum": [ + "Streaming", + "Static" + ], + "type": "string" + }, + "EncodingOptions": { + "type": "object", + "properties": { + "EncodingThreadCount": { + "type": "integer", + "description": "Gets or sets the thread count used for encoding.", + "format": "int32" + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the temporary transcoding path.", + "nullable": true + }, + "FallbackFontPath": { + "type": "string", + "description": "Gets or sets the path to the fallback font.", + "nullable": true + }, + "EnableFallbackFont": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use the fallback font." + }, + "EnableAudioVbr": { + "type": "boolean", + "description": "Gets or sets a value indicating whether audio VBR is enabled." + }, + "DownMixAudioBoost": { + "type": "number", + "description": "Gets or sets the audio boost applied when downmixing audio.", + "format": "double" + }, + "DownMixStereoAlgorithm": { + "enum": [ + "None", + "Dave750", + "NightmodeDialogue", + "Rfc7845", + "Ac4" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DownMixStereoAlgorithms" + } + ], + "description": "Gets or sets the algorithm used for downmixing audio to stereo." + }, + "MaxMuxingQueueSize": { + "type": "integer", + "description": "Gets or sets the maximum size of the muxing queue.", + "format": "int32" + }, + "EnableThrottling": { + "type": "boolean", + "description": "Gets or sets a value indicating whether throttling is enabled." + }, + "ThrottleDelaySeconds": { + "type": "integer", + "description": "Gets or sets the delay after which throttling happens.", + "format": "int32" + }, + "EnableSegmentDeletion": { + "type": "boolean", + "description": "Gets or sets a value indicating whether segment deletion is enabled." + }, + "SegmentKeepSeconds": { + "type": "integer", + "description": "Gets or sets seconds for which segments should be kept before being deleted.", + "format": "int32" + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/HardwareAccelerationType" + } + ], + "description": "Gets or sets the hardware acceleration type." + }, + "EncoderAppPath": { + "type": "string", + "description": "Gets or sets the FFmpeg path as set by the user via the UI.", + "nullable": true + }, + "EncoderAppPathDisplay": { + "type": "string", + "description": "Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page.", + "nullable": true + }, + "VaapiDevice": { + "type": "string", + "description": "Gets or sets the VA-API device.", + "nullable": true + }, + "QsvDevice": { + "type": "string", + "description": "Gets or sets the QSV device.", + "nullable": true + }, + "EnableTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether tonemapping is enabled." + }, + "EnableVppTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether VPP tonemapping is enabled." + }, + "EnableVideoToolboxTonemapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether videotoolbox tonemapping is enabled." + }, + "TonemappingAlgorithm": { + "enum": [ + "none", + "clip", + "linear", + "gamma", + "reinhard", + "hable", + "mobius", + "bt2390" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingAlgorithm" + } + ], + "description": "Gets or sets the tone-mapping algorithm." + }, + "TonemappingMode": { + "enum": [ + "auto", + "max", + "rgb", + "lum", + "itp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingMode" + } + ], + "description": "Gets or sets the tone-mapping mode." + }, + "TonemappingRange": { + "enum": [ + "auto", + "tv", + "pc" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TonemappingRange" + } + ], + "description": "Gets or sets the tone-mapping range." + }, + "TonemappingDesat": { + "type": "number", + "description": "Gets or sets the tone-mapping desaturation.", + "format": "double" + }, + "TonemappingPeak": { + "type": "number", + "description": "Gets or sets the tone-mapping peak.", + "format": "double" + }, + "TonemappingParam": { + "type": "number", + "description": "Gets or sets the tone-mapping parameters.", + "format": "double" + }, + "VppTonemappingBrightness": { + "type": "number", + "description": "Gets or sets the VPP tone-mapping brightness.", + "format": "double" + }, + "VppTonemappingContrast": { + "type": "number", + "description": "Gets or sets the VPP tone-mapping contrast.", + "format": "double" + }, + "H264Crf": { + "type": "integer", + "description": "Gets or sets the H264 CRF.", + "format": "int32" + }, + "H265Crf": { + "type": "integer", + "description": "Gets or sets the H265 CRF.", + "format": "int32" + }, + "EncoderPreset": { + "enum": [ + "auto", + "placebo", + "veryslow", + "slower", + "slow", + "medium", + "fast", + "faster", + "veryfast", + "superfast", + "ultrafast" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncoderPreset" + } + ], + "description": "Gets or sets the encoder preset.", + "nullable": true + }, + "DeinterlaceDoubleRate": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the framerate is doubled when deinterlacing." + }, + "DeinterlaceMethod": { + "enum": [ + "yadif", + "bwdif" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DeinterlaceMethod" + } + ], + "description": "Gets or sets the deinterlace method." + }, + "EnableDecodingColorDepth10Hevc": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 10bit HEVC decoding is enabled." + }, + "EnableDecodingColorDepth10Vp9": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 10bit VP9 decoding is enabled." + }, + "EnableDecodingColorDepth10HevcRext": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 8/10bit HEVC RExt decoding is enabled." + }, + "EnableDecodingColorDepth12HevcRext": { + "type": "boolean", + "description": "Gets or sets a value indicating whether 12bit HEVC RExt decoding is enabled." + }, + "EnableEnhancedNvdecDecoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the enhanced NVDEC is enabled." + }, + "PreferSystemNativeHwDecoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the system native hardware decoder should be used." + }, + "EnableIntelLowPowerH264HwEncoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the Intel H264 low-power hardware encoder should be used." + }, + "EnableIntelLowPowerHevcHwEncoder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the Intel HEVC low-power hardware encoder should be used." + }, + "EnableHardwareEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether hardware encoding is enabled." + }, + "AllowHevcEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether HEVC encoding is enabled." + }, + "AllowAv1Encoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether AV1 encoding is enabled." + }, + "EnableSubtitleExtraction": { + "type": "boolean", + "description": "Gets or sets a value indicating whether subtitle extraction is enabled." + }, + "HardwareDecodingCodecs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the codecs hardware encoding is used for.", + "nullable": true + }, + "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the file extensions on-demand metadata based keyframe extraction is enabled for.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class EncodingOptions." + }, + "EndPointInfo": { + "type": "object", + "properties": { + "IsLocal": { + "type": "boolean" + }, + "IsInNetwork": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExternalIdInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc)." + }, + "Key": { + "type": "string", + "description": "Gets or sets the unique key for this id. This key should be unique across all providers." + }, + "Type": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ExternalIdMediaType" + } + ], + "description": "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type.", + "nullable": true + }, + "UrlFormatString": { + "type": "string", + "description": "Gets or sets the URL format string.", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "Represents the external id information for serialization to the client." + }, + "ExternalIdMediaType": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track", + "Book" + ], + "type": "string", + "description": "The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo." + }, + "ExternalUrl": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the type of the item.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExtraType": { + "enum": [ + "Unknown", + "Clip", + "Trailer", + "BehindTheScenes", + "DeletedScene", + "Interview", + "Scene", + "Sample", + "ThemeSong", + "ThemeVideo", + "Featurette", + "Short" + ], + "type": "string" + }, + "FileSystemEntryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "Path": { + "type": "string", + "description": "Gets the path." + }, + "Type": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "allOf": [ + { + "$ref": "#/components/schemas/FileSystemEntryType" + } + ], + "description": "Gets the type." + } + }, + "additionalProperties": false, + "description": "Class FileSystemEntryInfo." + }, + "FileSystemEntryType": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "type": "string", + "description": "Enum FileSystemEntryType." + }, + "FontFile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class FontFile." + }, + "ForceKeepAliveMessage": { + "type": "object", + "properties": { + "Data": { + "type": "integer", + "description": "Gets or sets the data.", + "format": "int32" + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ForceKeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Force keep alive websocket messages." + }, + "ForgotPasswordAction": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "type": "string" + }, + "ForgotPasswordDto": { + "required": [ + "EnteredUsername" + ], + "type": "object", + "properties": { + "EnteredUsername": { + "type": "string", + "description": "Gets or sets the entered username to have its password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password request body DTO." + }, + "ForgotPasswordPinDto": { + "required": [ + "Pin" + ], + "type": "object", + "properties": { + "Pin": { + "type": "string", + "description": "Gets or sets the entered pin to have the password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password Pin enter request body DTO." + }, + "ForgotPasswordResult": { + "type": "object", + "properties": { + "Action": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordAction" + } + ], + "description": "Gets or sets the action." + }, + "PinFile": { + "type": "string", + "description": "Gets or sets the pin file.", + "nullable": true + }, + "PinExpirationDate": { + "type": "string", + "description": "Gets or sets the pin expiration date.", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "GeneralCommand": { + "type": "object", + "properties": { + "Name": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + }, + "ControllingUserId": { + "type": "string", + "format": "uuid" + }, + "Arguments": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + "additionalProperties": false + }, + "GeneralCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "GeneralCommand", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "General command websocket message." + }, + "GeneralCommandType": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate", + "SetPlaybackOrder" + ], + "type": "string", + "description": "This exists simply to identify a set of known commands." + }, + "GetProgramsDto": { + "type": "object", + "properties": { + "ChannelIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the channels to return guide information for.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets optional. Filter by user id.", + "format": "uuid", + "nullable": true + }, + "MinStartDate": { + "type": "string", + "description": "Gets or sets the minimum premiere start date.", + "format": "date-time", + "nullable": true + }, + "HasAired": { + "type": "boolean", + "description": "Gets or sets filter by programs that have completed airing, or not.", + "nullable": true + }, + "IsAiring": { + "type": "boolean", + "description": "Gets or sets filter by programs that are currently airing, or not.", + "nullable": true + }, + "MaxStartDate": { + "type": "string", + "description": "Gets or sets the maximum premiere start date.", + "format": "date-time", + "nullable": true + }, + "MinEndDate": { + "type": "string", + "description": "Gets or sets the minimum premiere end date.", + "format": "date-time", + "nullable": true + }, + "MaxEndDate": { + "type": "string", + "description": "Gets or sets the maximum premiere end date.", + "format": "date-time", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets filter for movies.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets filter for series.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets filter for news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets filter for kids.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets filter for sports.", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.", + "format": "int32", + "nullable": true + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the maximum number of records to return.", + "format": "int32", + "nullable": true + }, + "SortBy": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemSortBy" + }, + "description": "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "nullable": true + }, + "SortOrder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + }, + "description": "Gets or sets sort order.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres to return guide information for.", + "nullable": true + }, + "GenreIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the genre ids to return guide information for.", + "nullable": true + }, + "EnableImages": { + "type": "boolean", + "description": "Gets or sets include image information in output.", + "nullable": true + }, + "EnableTotalRecordCount": { + "type": "boolean", + "description": "Gets or sets a value indicating whether retrieve total record count.", + "default": true + }, + "ImageTypeLimit": { + "type": "integer", + "description": "Gets or sets the max number of images to return, per image type.", + "format": "int32", + "nullable": true + }, + "EnableImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the image types to include in the output.", + "nullable": true + }, + "EnableUserData": { + "type": "boolean", + "description": "Gets or sets include user data.", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets filter by series timer id.", + "nullable": true + }, + "LibrarySeriesId": { + "type": "string", + "description": "Gets or sets filter by library series id.", + "format": "uuid", + "nullable": true + }, + "Fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + }, + "description": "Gets or sets specify additional fields of information to return in the output.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Get programs dto." + }, + "GroupInfoDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "GroupName": { + "type": "string", + "description": "Gets the group name." + }, + "State": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the group state." + }, + "Participants": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the participants." + }, + "LastUpdatedAt": { + "type": "string", + "description": "Gets the date when this DTO has been created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class GroupInfoDto." + }, + "GroupInfoDtoGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupInfoDto" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "GroupQueueMode": { + "enum": [ + "Queue", + "QueueNext" + ], + "type": "string", + "description": "Enum GroupQueueMode." + }, + "GroupRepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "type": "string", + "description": "Enum GroupRepeatMode." + }, + "GroupShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "type": "string", + "description": "Enum GroupShuffleMode." + }, + "GroupStateType": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "type": "string", + "description": "Enum GroupState." + }, + "GroupStateUpdate": { + "type": "object", + "properties": { + "State": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the state of the group." + }, + "Reason": { + "enum": [ + "Play", + "SetPlaylistItem", + "RemoveFromPlaylist", + "MovePlaylistItem", + "Queue", + "Unpause", + "Pause", + "Stop", + "Seek", + "Buffer", + "Ready", + "NextItem", + "PreviousItem", + "SetRepeatMode", + "SetShuffleMode", + "Ping", + "IgnoreWait" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackRequestType" + } + ], + "description": "Gets the reason of the state change." + } + }, + "additionalProperties": false, + "description": "Class GroupStateUpdate." + }, + "GroupStateUpdateGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateUpdate" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "GroupUpdate": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/GroupInfoDtoGroupUpdate" + }, + { + "$ref": "#/components/schemas/GroupStateUpdateGroupUpdate" + }, + { + "$ref": "#/components/schemas/StringGroupUpdate" + }, + { + "$ref": "#/components/schemas/PlayQueueUpdateGroupUpdate" + } + ], + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + } + }, + "additionalProperties": false, + "description": "Group update without data.", + "discriminator": { + "propertyName": "Type", + "mapping": { + "UserJoined": "#/components/schemas/StringGroupUpdate", + "UserLeft": "#/components/schemas/StringGroupUpdate", + "GroupJoined": "#/components/schemas/GroupInfoDtoGroupUpdate", + "GroupLeft": "#/components/schemas/StringGroupUpdate", + "StateUpdate": "#/components/schemas/GroupStateUpdateGroupUpdate", + "PlayQueue": "#/components/schemas/PlayQueueUpdateGroupUpdate", + "NotInGroup": "#/components/schemas/StringGroupUpdate", + "GroupDoesNotExist": "#/components/schemas/StringGroupUpdate", + "LibraryAccessDenied": "#/components/schemas/StringGroupUpdate" + } + } + }, + "GroupUpdateType": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "type": "string", + "description": "Enum GroupUpdateType." + }, + "GuideInfo": { + "type": "object", + "properties": { + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "type": "string", + "description": "Enum containing hardware acceleration types." + }, + "IgnoreWaitRequestDto": { + "type": "object", + "properties": { + "IgnoreWait": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client should be ignored." + } + }, + "additionalProperties": false, + "description": "Class IgnoreWaitRequestDto." + }, + "ImageFormat": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp", + "Svg" + ], + "type": "string", + "description": "Enum ImageOutputFormat." + }, + "ImageInfo": { + "type": "object", + "properties": { + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type of the image." + }, + "ImageIndex": { + "type": "integer", + "description": "Gets or sets the index of the image.", + "format": "int32", + "nullable": true + }, + "ImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "BlurHash": { + "type": "string", + "description": "Gets or sets the blurhash.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class ImageInfo." + }, + "ImageOption": { + "type": "object", + "properties": { + "Type": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the limit.", + "format": "int32" + }, + "MinWidth": { + "type": "integer", + "description": "Gets or sets the minimum width.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "type": "string" + }, + "ImageProviderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "SupportedImages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets the supported image types." + } + }, + "additionalProperties": false, + "description": "Class ImageProviderInfo." + }, + "ImageResolution": { + "enum": [ + "MatchSource", + "P144", + "P240", + "P360", + "P480", + "P720", + "P1080", + "P1440", + "P2160" + ], + "type": "string", + "description": "Enum ImageResolution." + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "type": "string" + }, + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "type": "string", + "description": "Enum ImageType." + }, + "InboundKeepAliveMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "KeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Keep alive websocket messages." + }, + "InboundWebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityLogEntryStartMessage" + }, + { + "$ref": "#/components/schemas/ActivityLogEntryStopMessage" + }, + { + "$ref": "#/components/schemas/InboundKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoStartMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoStopMessage" + }, + { + "$ref": "#/components/schemas/SessionsStartMessage" + }, + { + "$ref": "#/components/schemas/SessionsStopMessage" + } + ], + "description": "Represents the list of possible inbound websocket types", + "discriminator": { + "propertyName": "MessageType", + "mapping": { + "ActivityLogEntryStart": "#/components/schemas/ActivityLogEntryStartMessage", + "ActivityLogEntryStop": "#/components/schemas/ActivityLogEntryStopMessage", + "KeepAlive": "#/components/schemas/InboundKeepAliveMessage", + "ScheduledTasksInfoStart": "#/components/schemas/ScheduledTasksInfoStartMessage", + "ScheduledTasksInfoStop": "#/components/schemas/ScheduledTasksInfoStopMessage", + "SessionsStart": "#/components/schemas/SessionsStartMessage", + "SessionsStop": "#/components/schemas/SessionsStopMessage" + } + } + }, + "InstallationInfo": { + "type": "object", + "properties": { + "Guid": { + "type": "string", + "description": "Gets or sets the Id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "Changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "SourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "Checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "PackageInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PackageInfo" + } + ], + "description": "Gets or sets package information for the installation.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class InstallationInfo." + }, + "IPlugin": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name of the plugin.", + "nullable": true, + "readOnly": true + }, + "Description": { + "type": "string", + "description": "Gets the Description.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets the unique id.", + "format": "uuid", + "readOnly": true + }, + "Version": { + "type": "string", + "description": "Gets the plugin version.", + "nullable": true, + "readOnly": true + }, + "AssemblyFilePath": { + "type": "string", + "description": "Gets the path to the assembly file.", + "nullable": true, + "readOnly": true + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets a value indicating whether the plugin can be uninstalled.", + "readOnly": true + }, + "DataFolderPath": { + "type": "string", + "description": "Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Plugins.IPlugin." + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum IsoType." + }, + "ItemCounts": { + "type": "object", + "properties": { + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32" + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32" + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32" + }, + "ArtistCount": { + "type": "integer", + "description": "Gets or sets the artist count.", + "format": "int32" + }, + "ProgramCount": { + "type": "integer", + "description": "Gets or sets the program count.", + "format": "int32" + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32" + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32" + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32" + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32" + }, + "BoxSetCount": { + "type": "integer", + "description": "Gets or sets the box set count.", + "format": "int32" + }, + "BookCount": { + "type": "integer", + "description": "Gets or sets the book count.", + "format": "int32" + }, + "ItemCount": { + "type": "integer", + "description": "Gets or sets the item count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class LibrarySummary." + }, + "ItemFields": { + "enum": [ + "AirTime", + "CanDelete", + "CanDownload", + "ChannelInfo", + "Chapters", + "Trickplay", + "ChildCount", + "CumulativeRunTimeTicks", + "CustomRating", + "DateCreated", + "DateLastMediaAdded", + "DisplayPreferencesId", + "Etag", + "ExternalUrls", + "Genres", + "HomePageUrl", + "ItemCounts", + "MediaSourceCount", + "MediaSources", + "OriginalTitle", + "Overview", + "ParentId", + "Path", + "People", + "PlayAccess", + "ProductionLocations", + "ProviderIds", + "PrimaryImageAspectRatio", + "RecursiveItemCount", + "Settings", + "ScreenshotImageTags", + "SeriesPrimaryImage", + "SeriesStudio", + "SortName", + "SpecialEpisodeNumbers", + "Studios", + "Taglines", + "Tags", + "RemoteTrailers", + "MediaStreams", + "SeasonUserData", + "ServiceName", + "ThemeSongIds", + "ThemeVideoIds", + "ExternalEtag", + "PresentationUniqueKey", + "InheritedParentalRatingValue", + "ExternalSeriesId", + "SeriesPresentationUniqueKey", + "DateLastRefreshed", + "DateLastSaved", + "RefreshState", + "ChannelImage", + "EnableMediaSourceDisplay", + "Width", + "Height", + "ExtraIds", + "LocalTrailerCount", + "IsHD", + "SpecialFeatureCount" + ], + "type": "string", + "description": "Used to control the data that gets attached to DtoBaseItems." + }, + "ItemFilter": { + "enum": [ + "IsFolder", + "IsNotFolder", + "IsUnplayed", + "IsPlayed", + "IsFavorite", + "IsResumable", + "Likes", + "Dislikes", + "IsFavoriteOrLikes" + ], + "type": "string", + "description": "Enum ItemFilter." + }, + "ItemSortBy": { + "enum": [ + "Default", + "AiredEpisodeOrder", + "Album", + "AlbumArtist", + "Artist", + "DateCreated", + "OfficialRating", + "DatePlayed", + "PremiereDate", + "StartDate", + "SortName", + "Name", + "Random", + "Runtime", + "CommunityRating", + "ProductionYear", + "PlayCount", + "CriticRating", + "IsFolder", + "IsUnplayed", + "IsPlayed", + "SeriesSortName", + "VideoBitRate", + "AirTime", + "Studio", + "IsFavoriteOrLiked", + "DateLastContentAdded", + "SeriesDatePlayed", + "ParentIndexNumber", + "IndexNumber", + "SimilarityScore", + "SearchScore" + ], + "type": "string", + "description": "These represent sort orders." + }, + "JoinGroupRequestDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets or sets the group identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class JoinGroupRequestDto." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "type": "string" + }, + "LibraryChangedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryUpdateInfo" + } + ], + "description": "Class LibraryUpdateInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "LibraryChanged", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Library changed message." + }, + "LibraryOptionInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets name.", + "nullable": true + }, + "DefaultEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether default enabled." + } + }, + "additionalProperties": false, + "description": "Library option info dto." + }, + "LibraryOptions": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + }, + "EnablePhotos": { + "type": "boolean" + }, + "EnableRealtimeMonitor": { + "type": "boolean" + }, + "EnableLUFSScan": { + "type": "boolean" + }, + "EnableChapterImageExtraction": { + "type": "boolean" + }, + "ExtractChapterImagesDuringLibraryScan": { + "type": "boolean" + }, + "EnableTrickplayImageExtraction": { + "type": "boolean" + }, + "ExtractTrickplayImagesDuringLibraryScan": { + "type": "boolean" + }, + "PathInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaPathInfo" + } + }, + "SaveLocalMetadata": { + "type": "boolean" + }, + "EnableInternetProviders": { + "type": "boolean", + "deprecated": true + }, + "EnableAutomaticSeriesGrouping": { + "type": "boolean" + }, + "EnableEmbeddedTitles": { + "type": "boolean" + }, + "EnableEmbeddedExtrasTitles": { + "type": "boolean" + }, + "EnableEmbeddedEpisodeInfos": { + "type": "boolean" + }, + "AutomaticRefreshIntervalDays": { + "type": "integer", + "format": "int32" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "SeasonZeroDisplayName": { + "type": "string" + }, + "MetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledLocalMetadataReaders": { + "type": "array", + "items": { + "type": "string" + } + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledSubtitleFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "DisabledMediaSegmentProviders": { + "type": "array", + "items": { + "type": "string" + } + }, + "MediaSegmentProvideOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "SkipSubtitlesIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipSubtitlesIfAudioTrackMatches": { + "type": "boolean" + }, + "SubtitleDownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RequirePerfectSubtitleMatch": { + "type": "boolean" + }, + "SaveSubtitlesWithMedia": { + "type": "boolean" + }, + "SaveLyricsWithMedia": { + "type": "boolean", + "default": false + }, + "SaveTrickplayWithMedia": { + "type": "boolean", + "default": false + }, + "DisabledLyricFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "LyricFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "PreferNonstandardArtistsTag": { + "type": "boolean", + "default": false + }, + "UseCustomTagDelimiters": { + "type": "boolean", + "default": false + }, + "CustomTagDelimiters": { + "type": "array", + "items": { + "type": "string" + } + }, + "DelimiterWhitelist": { + "type": "array", + "items": { + "type": "string" + } + }, + "AutomaticallyAddToCollection": { + "type": "boolean" + }, + "AllowEmbeddedSubtitles": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EmbeddedSubtitleOptions" + } + ], + "description": "An enum representing the options to disable embedded subs." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeOptions" + } + } + }, + "additionalProperties": false + }, + "LibraryOptionsResultDto": { + "type": "object", + "properties": { + "MetadataSavers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata savers." + }, + "MetadataReaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata readers." + }, + "SubtitleFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the subtitle fetchers." + }, + "LyricFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the list of lyric fetchers." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryTypeOptionsDto" + }, + "description": "Gets or sets the type options." + } + }, + "additionalProperties": false, + "description": "Library options result dto." + }, + "LibraryTypeOptionsDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata fetchers." + }, + "ImageFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the image fetchers." + }, + "SupportedImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the supported image types." + }, + "DefaultImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "description": "Gets or sets the default image options." + } + }, + "additionalProperties": false, + "description": "Library type options dto." + }, + "LibraryUpdateInfo": { + "type": "object", + "properties": { + "FoldersAddedTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders added to." + }, + "FoldersRemovedFrom": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders removed from." + }, + "ItemsAdded": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items added." + }, + "ItemsRemoved": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items removed." + }, + "ItemsUpdated": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items updated." + }, + "CollectionFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "IsEmpty": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class LibraryUpdateInfo." + }, + "ListingsProviderInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "Username": { + "type": "string", + "nullable": true + }, + "Password": { + "type": "string", + "nullable": true + }, + "ListingsId": { + "type": "string", + "nullable": true + }, + "ZipCode": { + "type": "string", + "nullable": true + }, + "Country": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EnabledTuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllTuners": { + "type": "boolean" + }, + "NewsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SportsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "KidsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MovieCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ChannelMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "nullable": true + }, + "MoviePrefix": { + "type": "string", + "nullable": true + }, + "PreferredLanguage": { + "type": "string", + "nullable": true + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveStreamResponse": { + "type": "object", + "properties": { + "MediaSource": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceInfo" + } + ] + } + }, + "additionalProperties": false + }, + "LiveTvInfo": { + "type": "object", + "properties": { + "Services": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveTvServiceInfo" + }, + "description": "Gets or sets the services." + }, + "IsEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is enabled." + }, + "EnabledUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the enabled users." + } + }, + "additionalProperties": false + }, + "LiveTvOptions": { + "type": "object", + "properties": { + "GuideDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RecordingPath": { + "type": "string", + "nullable": true + }, + "MovieRecordingPath": { + "type": "string", + "nullable": true + }, + "SeriesRecordingPath": { + "type": "string", + "nullable": true + }, + "EnableRecordingSubfolders": { + "type": "boolean" + }, + "EnableOriginalAudioWithEncodedRecordings": { + "type": "boolean" + }, + "TunerHosts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + }, + "nullable": true + }, + "ListingProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListingsProviderInfo" + }, + "nullable": true + }, + "PrePaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "MediaLocationsCreated": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RecordingPostProcessor": { + "type": "string", + "nullable": true + }, + "RecordingPostProcessorArguments": { + "type": "string", + "nullable": true + }, + "SaveRecordingNFO": { + "type": "boolean" + }, + "SaveRecordingImages": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "LiveTvServiceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "HomePageUrl": { + "type": "string", + "description": "Gets or sets the home page URL.", + "nullable": true + }, + "Status": { + "enum": [ + "Ok", + "Unavailable" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LiveTvServiceStatus" + } + ], + "description": "Gets or sets the status." + }, + "StatusMessage": { + "type": "string", + "description": "Gets or sets the status message.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available." + }, + "IsVisible": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is visible." + }, + "Tuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ServiceInfo." + }, + "LiveTvServiceStatus": { + "enum": [ + "Ok", + "Unavailable" + ], + "type": "string" + }, + "LocalizationOption": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "type": "string", + "description": "Enum LocationType." + }, + "LogFile": { + "type": "object", + "properties": { + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + } + }, + "additionalProperties": false + }, + "LogLevel": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "type": "string" + }, + "LyricDto": { + "type": "object", + "properties": { + "Metadata": { + "allOf": [ + { + "$ref": "#/components/schemas/LyricMetadata" + } + ], + "description": "Gets or sets Metadata for the lyrics." + }, + "Lyrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LyricLine" + }, + "description": "Gets or sets a collection of individual lyric lines." + } + }, + "additionalProperties": false, + "description": "LyricResponse model." + }, + "LyricLine": { + "type": "object", + "properties": { + "Text": { + "type": "string", + "description": "Gets the text of this lyric line." + }, + "Start": { + "type": "integer", + "description": "Gets the start time in ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Lyric model." + }, + "LyricMetadata": { + "type": "object", + "properties": { + "Artist": { + "type": "string", + "description": "Gets or sets the song artist.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album this song is on.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title of the song.", + "nullable": true + }, + "Author": { + "type": "string", + "description": "Gets or sets the author of the lyric data.", + "nullable": true + }, + "Length": { + "type": "integer", + "description": "Gets or sets the length of the song in ticks.", + "format": "int64", + "nullable": true + }, + "By": { + "type": "string", + "description": "Gets or sets who the LRC file was created by.", + "nullable": true + }, + "Offset": { + "type": "integer", + "description": "Gets or sets the lyric offset compared to audio in ticks.", + "format": "int64", + "nullable": true + }, + "Creator": { + "type": "string", + "description": "Gets or sets the software used to create the LRC file.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version of the creator used.", + "nullable": true + }, + "IsSynced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this lyric is synced.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "LyricMetadata model." + }, + "MediaAttachment": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "FileName": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "MimeType": { + "type": "string", + "description": "Gets or sets the MIME type.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaAttachment." + }, + "MediaPathDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the library." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path to add.", + "nullable": true + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets the path info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Media Path dto." + }, + "MediaPathInfo": { + "type": "object", + "properties": { + "Path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "MediaProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "type": "string" + }, + "MediaSegmentDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the id of the media segment.", + "format": "uuid" + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the id of the associated item.", + "format": "uuid" + }, + "Type": { + "enum": [ + "Unknown", + "Commercial", + "Preview", + "Recap", + "Outro", + "Intro" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaSegmentType" + } + ], + "description": "Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents." + }, + "StartTicks": { + "type": "integer", + "description": "Gets or sets the start of the segment.", + "format": "int64" + }, + "EndTicks": { + "type": "integer", + "description": "Gets or sets the end of the segment.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Api model for MediaSegment's." + }, + "MediaSegmentDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSegmentDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "MediaSegmentType": { + "enum": [ + "Unknown", + "Commercial", + "Preview", + "Recap", + "Outro", + "Intro" + ], + "type": "string", + "description": "Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents." + }, + "MediaSourceInfo": { + "type": "object", + "properties": { + "Protocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ] + }, + "Id": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EncoderPath": { + "type": "string", + "nullable": true + }, + "EncoderProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ], + "nullable": true + }, + "Type": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceType" + } + ] + }, + "Container": { + "type": "string", + "nullable": true + }, + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "IsRemote": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + }, + "ETag": { + "type": "string", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ReadAtNativeFramerate": { + "type": "boolean" + }, + "IgnoreDts": { + "type": "boolean" + }, + "IgnoreIndex": { + "type": "boolean" + }, + "GenPtsInput": { + "type": "boolean" + }, + "SupportsTranscoding": { + "type": "boolean" + }, + "SupportsDirectStream": { + "type": "boolean" + }, + "SupportsDirectPlay": { + "type": "boolean" + }, + "IsInfiniteStream": { + "type": "boolean" + }, + "UseMostCompatibleTranscodingProfile": { + "type": "boolean", + "default": false + }, + "RequiresOpening": { + "type": "boolean" + }, + "OpenToken": { + "type": "string", + "nullable": true + }, + "RequiresClosing": { + "type": "boolean" + }, + "LiveStreamId": { + "type": "string", + "nullable": true + }, + "BufferMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RequiresLooping": { + "type": "boolean" + }, + "SupportsProbing": { + "type": "boolean" + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "nullable": true + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "nullable": true + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "nullable": true + }, + "MediaAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaAttachment" + }, + "nullable": true + }, + "Formats": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "FallbackMaxStreamingBitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Timestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TransportStreamTimestamp" + } + ], + "nullable": true + }, + "RequiredHttpHeaders": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "TranscodingUrl": { + "type": "string", + "nullable": true + }, + "TranscodingSubProtocol": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ], + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "TranscodingContainer": { + "type": "string", + "nullable": true + }, + "AnalyzeDurationMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultAudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultSubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "HasSegments": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MediaSourceType": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "type": "string" + }, + "MediaStream": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "ColorRange": { + "type": "string", + "description": "Gets or sets the color range.", + "nullable": true + }, + "ColorSpace": { + "type": "string", + "description": "Gets or sets the color space.", + "nullable": true + }, + "ColorTransfer": { + "type": "string", + "description": "Gets or sets the color transfer.", + "nullable": true + }, + "ColorPrimaries": { + "type": "string", + "description": "Gets or sets the color primaries.", + "nullable": true + }, + "DvVersionMajor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version major.", + "format": "int32", + "nullable": true + }, + "DvVersionMinor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version minor.", + "format": "int32", + "nullable": true + }, + "DvProfile": { + "type": "integer", + "description": "Gets or sets the Dolby Vision profile.", + "format": "int32", + "nullable": true + }, + "DvLevel": { + "type": "integer", + "description": "Gets or sets the Dolby Vision level.", + "format": "int32", + "nullable": true + }, + "RpuPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision rpu present flag.", + "format": "int32", + "nullable": true + }, + "ElPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision el present flag.", + "format": "int32", + "nullable": true + }, + "BlPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl present flag.", + "format": "int32", + "nullable": true + }, + "DvBlSignalCompatibilityId": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl signal compatibility id.", + "format": "int32", + "nullable": true + }, + "Rotation": { + "type": "integer", + "description": "Gets or sets the Rotation in degrees.", + "format": "int32", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "TimeBase": { + "type": "string", + "description": "Gets or sets the time base.", + "nullable": true + }, + "CodecTimeBase": { + "type": "string", + "description": "Gets or sets the codec time base.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title.", + "nullable": true + }, + "VideoRange": { + "enum": [ + "Unknown", + "SDR", + "HDR" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoRange" + } + ], + "description": "An enum representing video ranges.", + "readOnly": true + }, + "VideoRangeType": { + "enum": [ + "Unknown", + "SDR", + "HDR10", + "HLG", + "DOVI", + "DOVIWithHDR10", + "DOVIWithHLG", + "DOVIWithSDR", + "HDR10Plus" + ], + "allOf": [ + { + "$ref": "#/components/schemas/VideoRangeType" + } + ], + "description": "An enum representing types of video ranges.", + "readOnly": true + }, + "VideoDoViTitle": { + "type": "string", + "description": "Gets the video dovi title.", + "nullable": true, + "readOnly": true + }, + "AudioSpatialFormat": { + "enum": [ + "None", + "DolbyAtmos", + "DTSX" + ], + "allOf": [ + { + "$ref": "#/components/schemas/AudioSpatialFormat" + } + ], + "description": "An enum representing formats of spatial audio.", + "default": "None", + "readOnly": true + }, + "LocalizedUndefined": { + "type": "string", + "nullable": true + }, + "LocalizedDefault": { + "type": "string", + "nullable": true + }, + "LocalizedForced": { + "type": "string", + "nullable": true + }, + "LocalizedExternal": { + "type": "string", + "nullable": true + }, + "LocalizedHearingImpaired": { + "type": "string", + "nullable": true + }, + "DisplayTitle": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "NalLengthSize": { + "type": "string", + "nullable": true + }, + "IsInterlaced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is interlaced." + }, + "IsAVC": { + "type": "boolean", + "nullable": true + }, + "ChannelLayout": { + "type": "string", + "description": "Gets or sets the channel layout.", + "nullable": true + }, + "BitRate": { + "type": "integer", + "description": "Gets or sets the bit rate.", + "format": "int32", + "nullable": true + }, + "BitDepth": { + "type": "integer", + "description": "Gets or sets the bit depth.", + "format": "int32", + "nullable": true + }, + "RefFrames": { + "type": "integer", + "description": "Gets or sets the reference frames.", + "format": "int32", + "nullable": true + }, + "PacketLength": { + "type": "integer", + "description": "Gets or sets the length of the packet.", + "format": "int32", + "nullable": true + }, + "Channels": { + "type": "integer", + "description": "Gets or sets the channels.", + "format": "int32", + "nullable": true + }, + "SampleRate": { + "type": "integer", + "description": "Gets or sets the sample rate.", + "format": "int32", + "nullable": true + }, + "IsDefault": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is default." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is forced." + }, + "IsHearingImpaired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is for the hearing impaired." + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "AverageFrameRate": { + "type": "number", + "description": "Gets or sets the average frame rate.", + "format": "float", + "nullable": true + }, + "RealFrameRate": { + "type": "number", + "description": "Gets or sets the real frame rate.", + "format": "float", + "nullable": true + }, + "ReferenceFrameRate": { + "type": "number", + "description": "Gets the framerate used as reference.\r\nPrefer AverageFrameRate, if that is null or an unrealistic value\r\nthen fallback to RealFrameRate.", + "format": "float", + "nullable": true, + "readOnly": true + }, + "Profile": { + "type": "string", + "description": "Gets or sets the profile.", + "nullable": true + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamType" + } + ], + "description": "Gets or sets the type." + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "Score": { + "type": "integer", + "description": "Gets or sets the score.", + "format": "int32", + "nullable": true + }, + "IsExternal": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external." + }, + "DeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the method.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + }, + "IsExternalUrl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external URL.", + "nullable": true + }, + "IsTextSubtitleStream": { + "type": "boolean", + "readOnly": true + }, + "SupportsExternalStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports external stream]." + }, + "Path": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "PixelFormat": { + "type": "string", + "description": "Gets or sets the pixel format.", + "nullable": true + }, + "Level": { + "type": "number", + "description": "Gets or sets the level.", + "format": "double", + "nullable": true + }, + "IsAnamorphic": { + "type": "boolean", + "description": "Gets or sets whether this instance is anamorphic.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaStream." + }, + "MediaStreamProtocol": { + "enum": [ + "http", + "hls" + ], + "type": "string", + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "MediaStreamType": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data", + "Lyric" + ], + "type": "string", + "description": "Enum MediaStreamType." + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "type": "string", + "description": "Media types." + }, + "MediaUpdateInfoDto": { + "type": "object", + "properties": { + "Updates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUpdateInfoPathDto" + }, + "description": "Gets or sets the list of updates." + } + }, + "additionalProperties": false, + "description": "Media Update Info Dto." + }, + "MediaUpdateInfoPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media path.", + "nullable": true + }, + "UpdateType": { + "type": "string", + "description": "Gets or sets media update type.\r\nCreated, Modified, Deleted.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The media update info path." + }, + "MediaUrl": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MessageCommand": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Header": { + "type": "string", + "nullable": true + }, + "Text": { + "type": "string" + }, + "TimeoutMs": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetadataConfiguration": { + "type": "object", + "properties": { + "UseFileCreationTimeForDateAdded": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MetadataEditorInfo": { + "type": "object", + "properties": { + "ParentalRatingOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + }, + "Countries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + }, + "Cultures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + }, + "ExternalIdInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + }, + "ContentType": { + "enum": [ + "unknown", + "movies", + "tvshows", + "music", + "musicvideos", + "trailers", + "homevideos", + "boxsets", + "books", + "photos", + "livetv", + "playlists", + "folders" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionType" + } + ], + "nullable": true + }, + "ContentTypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + } + }, + "additionalProperties": false + }, + "MetadataField": { + "enum": [ + "Cast", + "Genres", + "ProductionLocations", + "Studios", + "Tags", + "Name", + "Overview", + "Runtime", + "OfficialRating" + ], + "type": "string", + "description": "Enum MetadataFields." + }, + "MetadataOptions": { + "type": "object", + "properties": { + "ItemType": { + "type": "string", + "nullable": true + }, + "DisabledMetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledMetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MetadataOptions." + }, + "MetadataRefreshMode": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "type": "string" + }, + "MovePlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the item.", + "format": "uuid" + }, + "NewIndex": { + "type": "integer", + "description": "Gets or sets the new position.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class MovePlaylistItemRequestDto." + }, + "MovieInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MovieInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "MusicVideoInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MusicVideoInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "NameGuidPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "NameIdPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NameValuePair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "BaseUrl": { + "type": "string", + "description": "Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at." + }, + "EnableHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use HTTPS." + }, + "RequireHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the server should force connections over HTTPS." + }, + "CertificatePath": { + "type": "string", + "description": "Gets or sets the filesystem path of an X.509 certificate to use for SSL." + }, + "CertificatePassword": { + "type": "string", + "description": "Gets or sets the password required to access the X.509 certificate data in the file specified by MediaBrowser.Common.Net.NetworkConfiguration.CertificatePath." + }, + "InternalHttpPort": { + "type": "integer", + "description": "Gets or sets the internal HTTP server port.", + "format": "int32" + }, + "InternalHttpsPort": { + "type": "integer", + "description": "Gets or sets the internal HTTPS server port.", + "format": "int32" + }, + "PublicHttpPort": { + "type": "integer", + "description": "Gets or sets the public HTTP port.", + "format": "int32" + }, + "PublicHttpsPort": { + "type": "integer", + "description": "Gets or sets the public HTTPS port.", + "format": "int32" + }, + "AutoDiscovery": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery is enabled." + }, + "EnableUPnP": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable automatic port forwarding." + }, + "EnableIPv4": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IPv6 is enabled." + }, + "EnableIPv6": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IPv6 is enabled." + }, + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether access from outside of the LAN is permitted." + }, + "LocalNetworkSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the subnets that are deemed to make up the LAN." + }, + "LocalNetworkAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used." + }, + "KnownProxies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the known proxies." + }, + "IgnoreVirtualInterfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether address names that match MediaBrowser.Common.Net.NetworkConfiguration.VirtualInterfaceNames should be ignored for the purposes of binding." + }, + "VirtualInterfaceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets a value indicating the interface name prefixes that should be ignored. The list can be comma separated and values are case-insensitive. ." + }, + "EnablePublishedServerUriByRequest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the published server uri is based on information in HTTP requests." + }, + "PublishedServerUriBySubnet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + }, + "RemoteIPFilter": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the filter for remote IP connectivity. Used in conjunction with ." + }, + "IsRemoteIPFilterBlacklist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Net.NetworkConfiguration." + }, + "NewGroupRequestDto": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Gets or sets the group name." + } + }, + "additionalProperties": false, + "description": "Class NewGroupRequestDto." + }, + "NextItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class NextItemRequestDto." + }, + "OpenLiveStreamDto": { + "type": "object", + "properties": { + "OpenToken": { + "type": "string", + "description": "Gets or sets the open token.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session id.", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enale direct stream.", + "nullable": true + }, + "AlwaysBurnInSubtitleWhenTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether always burn in subtitles when transcoding.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "DirectPlayProtocols": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaProtocol" + }, + "description": "Gets or sets the device play protocols." + } + }, + "additionalProperties": false, + "description": "Open live stream dto." + }, + "OutboundKeepAliveMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "KeepAlive", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Keep alive websocket messages." + }, + "OutboundWebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityLogEntryMessage" + }, + { + "$ref": "#/components/schemas/ForceKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/GeneralCommandMessage" + }, + { + "$ref": "#/components/schemas/LibraryChangedMessage" + }, + { + "$ref": "#/components/schemas/OutboundKeepAliveMessage" + }, + { + "$ref": "#/components/schemas/PlayMessage" + }, + { + "$ref": "#/components/schemas/PlaystateMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationCancelledMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationCompletedMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallationFailedMessage" + }, + { + "$ref": "#/components/schemas/PluginInstallingMessage" + }, + { + "$ref": "#/components/schemas/PluginUninstalledMessage" + }, + { + "$ref": "#/components/schemas/RefreshProgressMessage" + }, + { + "$ref": "#/components/schemas/RestartRequiredMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTaskEndedMessage" + }, + { + "$ref": "#/components/schemas/ScheduledTasksInfoMessage" + }, + { + "$ref": "#/components/schemas/SeriesTimerCancelledMessage" + }, + { + "$ref": "#/components/schemas/SeriesTimerCreatedMessage" + }, + { + "$ref": "#/components/schemas/ServerRestartingMessage" + }, + { + "$ref": "#/components/schemas/ServerShuttingDownMessage" + }, + { + "$ref": "#/components/schemas/SessionsMessage" + }, + { + "$ref": "#/components/schemas/SyncPlayCommandMessage" + }, + { + "$ref": "#/components/schemas/SyncPlayGroupUpdateCommandMessage" + }, + { + "$ref": "#/components/schemas/TimerCancelledMessage" + }, + { + "$ref": "#/components/schemas/TimerCreatedMessage" + }, + { + "$ref": "#/components/schemas/UserDataChangedMessage" + }, + { + "$ref": "#/components/schemas/UserDeletedMessage" + }, + { + "$ref": "#/components/schemas/UserUpdatedMessage" + } + ], + "description": "Represents the list of possible outbound websocket types", + "discriminator": { + "propertyName": "MessageType", + "mapping": { + "ActivityLogEntry": "#/components/schemas/ActivityLogEntryMessage", + "ForceKeepAlive": "#/components/schemas/ForceKeepAliveMessage", + "GeneralCommand": "#/components/schemas/GeneralCommandMessage", + "LibraryChanged": "#/components/schemas/LibraryChangedMessage", + "KeepAlive": "#/components/schemas/OutboundKeepAliveMessage", + "Play": "#/components/schemas/PlayMessage", + "Playstate": "#/components/schemas/PlaystateMessage", + "PackageInstallationCancelled": "#/components/schemas/PluginInstallationCancelledMessage", + "PackageInstallationCompleted": "#/components/schemas/PluginInstallationCompletedMessage", + "PackageInstallationFailed": "#/components/schemas/PluginInstallationFailedMessage", + "PackageInstalling": "#/components/schemas/PluginInstallingMessage", + "PackageUninstalled": "#/components/schemas/PluginUninstalledMessage", + "RefreshProgress": "#/components/schemas/RefreshProgressMessage", + "RestartRequired": "#/components/schemas/RestartRequiredMessage", + "ScheduledTaskEnded": "#/components/schemas/ScheduledTaskEndedMessage", + "ScheduledTasksInfo": "#/components/schemas/ScheduledTasksInfoMessage", + "SeriesTimerCancelled": "#/components/schemas/SeriesTimerCancelledMessage", + "SeriesTimerCreated": "#/components/schemas/SeriesTimerCreatedMessage", + "ServerRestarting": "#/components/schemas/ServerRestartingMessage", + "ServerShuttingDown": "#/components/schemas/ServerShuttingDownMessage", + "Sessions": "#/components/schemas/SessionsMessage", + "SyncPlayCommand": "#/components/schemas/SyncPlayCommandMessage", + "SyncPlayGroupUpdate": "#/components/schemas/SyncPlayGroupUpdateCommandMessage", + "TimerCancelled": "#/components/schemas/TimerCancelledMessage", + "TimerCreated": "#/components/schemas/TimerCreatedMessage", + "UserDataChanged": "#/components/schemas/UserDataChangedMessage", + "UserDeleted": "#/components/schemas/UserDeletedMessage", + "UserUpdated": "#/components/schemas/UserUpdatedMessage" + } + } + }, + "PackageInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name." + }, + "description": { + "type": "string", + "description": "Gets or sets a long description of the plugin containing features or helpful explanations." + }, + "overview": { + "type": "string", + "description": "Gets or sets a short overview of what the plugin does." + }, + "owner": { + "type": "string", + "description": "Gets or sets the owner." + }, + "category": { + "type": "string", + "description": "Gets or sets the category." + }, + "guid": { + "type": "string", + "description": "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates.", + "format": "uuid" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VersionInfo" + }, + "description": "Gets or sets the versions." + }, + "imageUrl": { + "type": "string", + "description": "Gets or sets the image url for the package.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PackageInfo." + }, + "ParentalRating": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "integer", + "description": "Gets or sets the value.", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ParentalRating." + }, + "PathSubstitution": { + "type": "object", + "properties": { + "From": { + "type": "string", + "description": "Gets or sets the value to substitute." + }, + "To": { + "type": "string", + "description": "Gets or sets the value to substitution with." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Configuration.PathSubstitution." + }, + "PersonKind": { + "enum": [ + "Unknown", + "Actor", + "Director", + "Composer", + "Writer", + "GuestStar", + "Producer", + "Conductor", + "Lyricist", + "Arranger", + "Engineer", + "Mixer", + "Remixer", + "Creator", + "Artist", + "AlbumArtist", + "Author", + "Illustrator", + "Penciller", + "Inker", + "Colorist", + "Letterer", + "CoverArtist", + "Editor", + "Translator" + ], + "type": "string", + "description": "The person kind." + }, + "PersonLookupInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "PersonLookupInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "PingRequestDto": { + "type": "object", + "properties": { + "Ping": { + "type": "integer", + "description": "Gets or sets the ping time.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PingRequestDto." + }, + "PinRedeemResult": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success." + }, + "UsersReset": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the users reset." + } + }, + "additionalProperties": false + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "type": "string" + }, + "PlaybackErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "type": "string" + }, + "PlaybackInfoDto": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the playback userId.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media source id.", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream id.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct stream.", + "nullable": true + }, + "EnableTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable transcoding.", + "nullable": true + }, + "AllowVideoStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable video stream copy.", + "nullable": true + }, + "AllowAudioStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to allow audio stream copy.", + "nullable": true + }, + "AutoOpenLiveStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to auto open the live stream.", + "nullable": true + }, + "AlwaysBurnInSubtitleWhenTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether always burn in subtitles when transcoding.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Plabyback info dto." + }, + "PlaybackInfoResponse": { + "type": "object", + "properties": { + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media sources." + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "ErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackErrorCode" + } + ], + "description": "Gets or sets the error code.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackInfoResponse." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "type": "string", + "description": "Enum PlaybackOrder." + }, + "PlaybackProgressInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackProgressInfo." + }, + "PlaybackRequestType": { + "enum": [ + "Play", + "SetPlaylistItem", + "RemoveFromPlaylist", + "MovePlaylistItem", + "Queue", + "Unpause", + "Pause", + "Stop", + "Seek", + "Buffer", + "Ready", + "NextItem", + "PreviousItem", + "SetRepeatMode", + "SetShuffleMode", + "Ping", + "IgnoreWait" + ], + "type": "string", + "description": "Enum PlaybackRequestType." + }, + "PlaybackStartInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStartInfo." + }, + "PlaybackStopInfo": { + "type": "object", + "properties": { + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "Failed": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed." + }, + "NextMediaType": { + "type": "string", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStopInfo." + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "type": "string", + "description": "Enum PlayCommand." + }, + "PlayerStateInfo": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the now playing position ticks.", + "format": "int64", + "nullable": true + }, + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing subtitle stream.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the now playing media version identifier.", + "nullable": true + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method.", + "nullable": true + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "PlaybackOrder": { + "enum": [ + "Default", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackOrder" + } + ], + "description": "Gets or sets the playback order." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the now playing live stream identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PlaylistCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PlaylistDto": { + "type": "object", + "properties": { + "OpenAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is publicly readable." + }, + "Shares": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the share permissions." + }, + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids." + } + }, + "additionalProperties": false, + "description": "DTO for playlists." + }, + "PlaylistUserPermissions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "CanEdit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the user has edit permissions." + } + }, + "additionalProperties": false, + "description": "Class to hold data on user permissions for playlists." + }, + "PlayMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequest" + } + ], + "description": "Class PlayRequest.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Play", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Play command websocket message." + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "type": "string" + }, + "PlayQueueUpdate": { + "type": "object", + "properties": { + "Reason": { + "enum": [ + "NewPlaylist", + "SetCurrentItem", + "RemoveItems", + "MoveItem", + "Queue", + "QueueNext", + "NextItem", + "PreviousItem", + "RepeatMode", + "ShuffleMode" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayQueueUpdateReason" + } + ], + "description": "Gets the request type that originated this update." + }, + "LastUpdate": { + "type": "string", + "description": "Gets the UTC time of the last change to the playing queue.", + "format": "date-time" + }, + "Playlist": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SyncPlayQueueItem" + }, + "description": "Gets the playlist." + }, + "PlayingItemIndex": { + "type": "integer", + "description": "Gets the playing item index in the playlist.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets the start position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets a value indicating whether the current item is playing." + }, + "ShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Gets the shuffle mode." + }, + "RepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Gets the repeat mode." + } + }, + "additionalProperties": false, + "description": "Class PlayQueueUpdate." + }, + "PlayQueueUpdateGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayQueueUpdate" + } + ], + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "PlayQueueUpdateReason": { + "enum": [ + "NewPlaylist", + "SetCurrentItem", + "RemoveItems", + "MoveItem", + "Queue", + "QueueNext", + "NextItem", + "PreviousItem", + "RepeatMode", + "ShuffleMode" + ], + "type": "string", + "description": "Enum PlayQueueUpdateReason." + }, + "PlayRequest": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids.", + "nullable": true + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks that the first item should be played at.", + "format": "int64", + "nullable": true + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Gets or sets the play command." + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "format": "uuid" + }, + "SubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlayRequest." + }, + "PlayRequestDto": { + "type": "object", + "properties": { + "PlayingQueue": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playing queue." + }, + "PlayingItemPosition": { + "type": "integer", + "description": "Gets or sets the position of the playing item in the queue.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PlayRequestDto." + }, + "PlaystateCommand": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "type": "string", + "description": "Enum PlaystateCommand." + }, + "PlaystateMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateRequest" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Playstate", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Playstate message." + }, + "PlaystateRequest": { + "type": "object", + "properties": { + "Command": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + }, + "SeekPositionTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PluginInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Version": { + "type": "string", + "description": "Gets or sets the version." + }, + "ConfigurationFileName": { + "type": "string", + "description": "Gets or sets the name of the configuration file.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description." + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique id.", + "format": "uuid" + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the plugin can be uninstalled." + }, + "HasImage": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this plugin has a valid image." + }, + "Status": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "allOf": [ + { + "$ref": "#/components/schemas/PluginStatus" + } + ], + "description": "Gets or sets a value indicating the status of the plugin." + } + }, + "additionalProperties": false, + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins." + }, + "PluginInstallationCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation cancelled message." + }, + "PluginInstallationCompletedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationCompleted", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation completed message." + }, + "PluginInstallationFailedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstallationFailed", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin installation failed message." + }, + "PluginInstallingMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/InstallationInfo" + } + ], + "description": "Class InstallationInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageInstalling", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Package installing message." + }, + "PluginStatus": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "type": "string", + "description": "Plugin load status." + }, + "PluginUninstalledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/PluginInfo" + } + ], + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "PackageUninstalled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Plugin uninstalled message." + }, + "PreviousItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class PreviousItemRequestDto." + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "ProcessPriorityClass": { + "enum": [ + "Normal", + "Idle", + "High", + "RealTime", + "BelowNormal", + "AboveNormal" + ], + "type": "string" + }, + "ProfileCondition": { + "type": "object", + "properties": { + "Condition": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionType" + } + ] + }, + "Property": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionValue" + } + ] + }, + "Value": { + "type": "string", + "nullable": true + }, + "IsRequired": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProfileConditionType": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "type": "string" + }, + "ProfileConditionValue": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "type": "string" + }, + "ProgramAudio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "type": "string" + }, + "PublicSystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true, + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFilters": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFiltersLegacy": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "OfficialRatings": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueItem": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueRequestDto": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the items to enqueue." + }, + "Mode": { + "enum": [ + "Queue", + "QueueNext" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupQueueMode" + } + ], + "description": "Gets or sets the mode in which to add the new items." + } + }, + "additionalProperties": false, + "description": "Class QueueRequestDto." + }, + "QuickConnectDto": { + "required": [ + "Secret" + ], + "type": "object", + "properties": { + "Secret": { + "type": "string", + "description": "Gets or sets the quick connect secret." + } + }, + "additionalProperties": false, + "description": "The quick connect request body." + }, + "QuickConnectResult": { + "type": "object", + "properties": { + "Authenticated": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this request is authorized." + }, + "Secret": { + "type": "string", + "description": "Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information." + }, + "Code": { + "type": "string", + "description": "Gets the user facing code used so the user can quickly differentiate this request from others." + }, + "DeviceId": { + "type": "string", + "description": "Gets the requesting device id." + }, + "DeviceName": { + "type": "string", + "description": "Gets the requesting device name." + }, + "AppName": { + "type": "string", + "description": "Gets the requesting app name." + }, + "AppVersion": { + "type": "string", + "description": "Gets the requesting app version." + }, + "DateAdded": { + "type": "string", + "description": "Gets or sets the DateTime that this request was created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Stores the state of an quick connect request." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "type": "string" + }, + "ReadyRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ReadyRequest." + }, + "RecommendationDto": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecommendationType" + } + ] + }, + "BaselineItemName": { + "type": "string", + "nullable": true + }, + "CategoryId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "type": "string" + }, + "RecordingStatus": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "type": "string" + }, + "RefreshProgressMessage": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "RefreshProgress", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Refresh progress message." + }, + "RemoteImageInfo": { + "type": "object", + "properties": { + "ProviderName": { + "type": "string", + "description": "Gets or sets the name of the provider.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "ThumbnailUrl": { + "type": "string", + "description": "Gets or sets a url used for previewing a smaller version.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "double", + "nullable": true + }, + "VoteCount": { + "type": "integer", + "description": "Gets or sets the vote count.", + "format": "int32", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Type": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RatingType" + } + ], + "description": "Gets or sets the type of the rating." + } + }, + "additionalProperties": false, + "description": "Class RemoteImageInfo." + }, + "RemoteImageResult": { + "type": "object", + "properties": { + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteImageInfo" + }, + "description": "Gets or sets the images.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total record count.", + "format": "int32" + }, + "Providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the providers.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class RemoteImageResult." + }, + "RemoteLyricInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the id for the lyric." + }, + "ProviderName": { + "type": "string", + "description": "Gets the provider name." + }, + "Lyrics": { + "allOf": [ + { + "$ref": "#/components/schemas/LyricDto" + } + ], + "description": "Gets the lyrics." + } + }, + "additionalProperties": false, + "description": "The remote lyric info dto." + }, + "RemoteSearchResult": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ImageUrl": { + "type": "string", + "nullable": true + }, + "SearchProviderName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "nullable": true + }, + "AlbumArtist": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ], + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoteSubtitleInfo": { + "type": "object", + "properties": { + "ThreeLetterISOLanguageName": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + }, + "ProviderName": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Format": { + "type": "string", + "nullable": true + }, + "Author": { + "type": "string", + "nullable": true + }, + "Comment": { + "type": "string", + "nullable": true + }, + "DateCreated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "format": "float", + "nullable": true + }, + "FrameRate": { + "type": "number", + "format": "float", + "nullable": true + }, + "DownloadCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IsHashMatch": { + "type": "boolean", + "nullable": true + }, + "AiTranslated": { + "type": "boolean", + "nullable": true + }, + "MachineTranslated": { + "type": "boolean", + "nullable": true + }, + "Forced": { + "type": "boolean", + "nullable": true + }, + "HearingImpaired": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoveFromPlaylistRequestDto": { + "type": "object", + "properties": { + "PlaylistItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playlist identifiers of the items. Ignored when clearing the playlist." + }, + "ClearPlaylist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the entire playlist should be cleared." + }, + "ClearPlayingItem": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist." + } + }, + "additionalProperties": false, + "description": "Class RemoveFromPlaylistRequestDto." + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "type": "string" + }, + "RepositoryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the repository is enabled." + } + }, + "additionalProperties": false, + "description": "Class RepositoryInfo." + }, + "RestartRequiredMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "RestartRequired", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Restart required." + }, + "ScheduledTaskEndedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Class TaskExecutionInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTaskEnded", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled task ended message." + }, + "ScheduledTasksInfoMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfo", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info message." + }, + "ScheduledTasksInfoStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfoStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "ScheduledTasksInfoStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ScheduledTasksInfoStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Scheduled tasks info stop message." + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "type": "string", + "description": "An enum representing the axis that should be scrolled." + }, + "SearchHint": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "MatchedTerm": { + "type": "string", + "description": "Gets or sets the matched term.", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "ThumbImageTag": { + "type": "string", + "description": "Gets or sets the thumb image tag.", + "nullable": true + }, + "ThumbImageItemId": { + "type": "string", + "description": "Gets or sets the thumb image item identifier.", + "nullable": true + }, + "BackdropImageTag": { + "type": "string", + "description": "Gets or sets the backdrop image tag.", + "nullable": true + }, + "BackdropImageItemId": { + "type": "string", + "description": "Gets or sets the backdrop image item identifier.", + "nullable": true + }, + "Type": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "MediaType": { + "enum": [ + "Unknown", + "Video", + "Audio", + "Photo", + "Book" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaType" + } + ], + "description": "Media types." + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time", + "nullable": true + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "Series": { + "type": "string", + "description": "Gets or sets the series.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists." + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the name of the channel.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SearchHintResult": { + "type": "object", + "properties": { + "SearchHints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchHint" + }, + "description": "Gets the search hints." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets the total record count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SeekRequestDto": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class SeekRequestDto." + }, + "SendCommand": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the playing item.", + "format": "uuid" + }, + "When": { + "type": "string", + "description": "Gets or sets the UTC time when to execute the command.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets the position ticks.", + "format": "int64", + "nullable": true + }, + "Command": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SendCommandType" + } + ], + "description": "Gets the command." + }, + "EmittedAt": { + "type": "string", + "description": "Gets the UTC time when this command has been emitted.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class SendCommand." + }, + "SendCommandType": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "type": "string", + "description": "Enum SendCommandType." + }, + "SeriesInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SeriesInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "SeriesStatus": { + "enum": [ + "Continuing", + "Ended", + "Unreleased" + ], + "type": "string", + "description": "The status of a series." + }, + "SeriesTimerCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SeriesTimerCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Series timer cancelled message." + }, + "SeriesTimerCreatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SeriesTimerCreated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Series timer created message." + }, + "SeriesTimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "RecordAnyTime": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any time]." + }, + "SkipEpisodesInLibrary": { + "type": "boolean" + }, + "RecordAnyChannel": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any channel]." + }, + "KeepUpTo": { + "type": "integer", + "format": "int32" + }, + "RecordNewOnly": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record new only]." + }, + "Days": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the days.", + "nullable": true + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DayPattern" + } + ], + "description": "Gets or sets the day pattern.", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SeriesTimerInfoDto." + }, + "SeriesTimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "ServerConfiguration": { + "type": "object", + "properties": { + "LogFileRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain log files.", + "format": "int32" + }, + "IsStartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is first run." + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "PreviousVersion": { + "type": "string", + "description": "Gets or sets the last known version that was ran using the configuration.", + "nullable": true + }, + "PreviousVersionStr": { + "type": "string", + "description": "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable.", + "nullable": true + }, + "EnableMetrics": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable prometheus metrics exporting." + }, + "EnableNormalizedItemByNameIds": { + "type": "boolean" + }, + "IsPortAuthorized": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is port authorized." + }, + "QuickConnectAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether quick connect is available for use on this server." + }, + "EnableCaseSensitiveItemIds": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable case sensitive item ids]." + }, + "DisableLiveTvChannelUserDataName": { + "type": "boolean" + }, + "MetadataPath": { + "type": "string", + "description": "Gets or sets the metadata path." + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language." + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code." + }, + "SortReplaceCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be replaced with a ' ' in strings to create a sort name." + }, + "SortRemoveCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be removed from strings to create a sort name." + }, + "SortRemoveWords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets words to be removed from strings to create a sort name." + }, + "MinResumePct": { + "type": "integer", + "description": "Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxResumePct": { + "type": "integer", + "description": "Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "MinResumeDurationSeconds": { + "type": "integer", + "description": "Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates..", + "format": "int32" + }, + "MinAudiobookResume": { + "type": "integer", + "description": "Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxAudiobookResume": { + "type": "integer", + "description": "Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "InactiveSessionThreshold": { + "type": "integer", + "description": "Gets or sets the threshold in minutes after a inactive session gets closed automatically.\r\nIf set to 0 the check for inactive sessions gets disabled.", + "format": "int32" + }, + "LibraryMonitorDelay": { + "type": "integer", + "description": "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files.", + "format": "int32" + }, + "LibraryUpdateDuration": { + "type": "integer", + "description": "Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification.", + "format": "int32" + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageSavingConvention" + } + ], + "description": "Gets or sets the image saving convention." + }, + "MetadataOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "SkipDeserializationForBasicTypes": { + "type": "boolean" + }, + "ServerName": { + "type": "string" + }, + "UICulture": { + "type": "string" + }, + "SaveMetadataHidden": { + "type": "boolean" + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "EnableFolderView": { + "type": "boolean" + }, + "EnableGroupingIntoCollections": { + "type": "boolean" + }, + "DisplaySpecialsWithinSeasons": { + "type": "boolean" + }, + "CodecsUsed": { + "type": "array", + "items": { + "type": "string" + } + }, + "PluginRepositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + }, + "EnableExternalContentInSuggestions": { + "type": "boolean" + }, + "ImageExtractionTimeoutMs": { + "type": "integer", + "format": "int32" + }, + "PathSubstitutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathSubstitution" + } + }, + "EnableSlowResponseWarning": { + "type": "boolean", + "description": "Gets or sets a value indicating whether slow server responses should be logged as a warning." + }, + "SlowResponseThresholdMs": { + "type": "integer", + "description": "Gets or sets the threshold for the slow response time warning in ms.", + "format": "int64" + }, + "CorsHosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the cors hosts." + }, + "ActivityLogRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain activity logs.", + "format": "int32", + "nullable": true + }, + "LibraryScanFanoutConcurrency": { + "type": "integer", + "description": "Gets or sets the how the library scan fans out.", + "format": "int32" + }, + "LibraryMetadataRefreshConcurrency": { + "type": "integer", + "description": "Gets or sets the how many metadata refreshes can run concurrently.", + "format": "int32" + }, + "RemoveOldPlugins": { + "type": "boolean", + "description": "Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder." + }, + "AllowClientLogUpload": { + "type": "boolean", + "description": "Gets or sets a value indicating whether clients should be allowed to upload logs." + }, + "DummyChapterDuration": { + "type": "integer", + "description": "Gets or sets the dummy chapter duration in seconds, use 0 (zero) or less to disable generation alltogether.", + "format": "int32" + }, + "ChapterImageResolution": { + "enum": [ + "MatchSource", + "P144", + "P240", + "P360", + "P480", + "P720", + "P1080", + "P1440", + "P2160" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ImageResolution" + } + ], + "description": "Gets or sets the chapter image resolution." + }, + "ParallelImageEncodingLimit": { + "type": "integer", + "description": "Gets or sets the limit for parallel image encoding.", + "format": "int32" + }, + "CastReceiverApplications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CastReceiverApplication" + }, + "description": "Gets or sets the list of cast receiver applications." + }, + "TrickplayOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/TrickplayOptions" + } + ], + "description": "Gets or sets the trickplay options." + } + }, + "additionalProperties": false, + "description": "Represents the server configuration." + }, + "ServerDiscoveryInfo": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Gets the address." + }, + "Id": { + "type": "string", + "description": "Gets the server identifier." + }, + "Name": { + "type": "string", + "description": "Gets the name." + }, + "EndpointAddress": { + "type": "string", + "description": "Gets the endpoint address.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The server discovery info model." + }, + "ServerRestartingMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ServerRestarting", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Server restarting down message." + }, + "ServerShuttingDownMessage": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "ServerShuttingDown", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Server shutting down message." + }, + "SessionInfoDto": { + "type": "object", + "properties": { + "PlayState": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayerStateInfo" + } + ], + "description": "Gets or sets the play state.", + "nullable": true + }, + "AdditionalUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionUserInfo" + }, + "description": "Gets or sets the additional users.", + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Gets or sets the client capabilities.", + "nullable": true + }, + "RemoteEndPoint": { + "type": "string", + "description": "Gets or sets the remote end point.", + "nullable": true + }, + "PlayableMediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + }, + "description": "Gets or sets the playable media types." + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Client": { + "type": "string", + "description": "Gets or sets the type of the client.", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time" + }, + "LastPlaybackCheckIn": { + "type": "string", + "description": "Gets or sets the last playback check in.", + "format": "date-time" + }, + "LastPausedDate": { + "type": "string", + "description": "Gets or sets the last paused date.", + "format": "date-time", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "DeviceType": { + "type": "string", + "description": "Gets or sets the type of the device.", + "nullable": true + }, + "NowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the now playing item.", + "nullable": true + }, + "NowViewingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the now viewing item.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "ApplicationVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "TranscodingInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodingInfo" + } + ], + "description": "Gets or sets the transcoding info.", + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this session is active." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session supports media control." + }, + "SupportsRemoteControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session supports remote control." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "description": "Gets or sets the now playing queue.", + "nullable": true + }, + "NowPlayingQueueFullItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the now playing queue full items.", + "nullable": true + }, + "HasCustomDeviceName": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the session has a custom device name." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item id.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server id.", + "nullable": true + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the supported commands." + } + }, + "additionalProperties": false, + "description": "Session info DTO." + }, + "SessionMessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "type": "string", + "description": "The different kinds of messages that are used in the WebSocket api." + }, + "SessionsMessage": { + "type": "object", + "properties": { + "Data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfoDto" + }, + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "Sessions", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions message." + }, + "SessionsStartMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SessionsStart", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions start message.\r\nData is the timing data encoded as \"$initialDelay,$interval\" in ms." + }, + "SessionsStopMessage": { + "type": "object", + "properties": { + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SessionsStop", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sessions stop message." + }, + "SessionUserInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the name of the user.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SessionUserInfo." + }, + "SetChannelMappingDto": { + "required": [ + "ProviderChannelId", + "ProviderId", + "TunerChannelId" + ], + "type": "object", + "properties": { + "ProviderId": { + "type": "string", + "description": "Gets or sets the provider id." + }, + "TunerChannelId": { + "type": "string", + "description": "Gets or sets the tuner channel id." + }, + "ProviderChannelId": { + "type": "string", + "description": "Gets or sets the provider channel id." + } + }, + "additionalProperties": false, + "description": "Set channel mapping dto." + }, + "SetPlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class SetPlaylistItemRequestDto." + }, + "SetRepeatModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + } + }, + "additionalProperties": false, + "description": "Class SetRepeatModeRequestDto." + }, + "SetShuffleModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Gets or sets the shuffle mode." + } + }, + "additionalProperties": false, + "description": "Class SetShuffleModeRequestDto." + }, + "SongInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Album": { + "type": "string", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string", + "description": "An enum representing the sorting order." + }, + "SpecialViewOptionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets view option name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets view option id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Special view option dto." + }, + "StartupConfigurationDto": { + "type": "object", + "properties": { + "UICulture": { + "type": "string", + "description": "Gets or sets UI language culture.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred language for the metadata.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup configuration DTO." + }, + "StartupRemoteAccessDto": { + "required": [ + "EnableAutomaticPortMapping", + "EnableRemoteAccess" + ], + "type": "object", + "properties": { + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable remote access." + }, + "EnableAutomaticPortMapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable automatic port mapping." + } + }, + "additionalProperties": false, + "description": "Startup remote access dto." + }, + "StartupUserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the user's password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup user DTO." + }, + "StringGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid", + "readOnly": true + }, + "Type": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "type": "string", + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "SubtitleDeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "type": "string", + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "SubtitleOptions": { + "type": "object", + "properties": { + "SkipIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipIfAudioTrackMatches": { + "type": "boolean" + }, + "DownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DownloadMovieSubtitles": { + "type": "boolean" + }, + "DownloadEpisodeSubtitles": { + "type": "boolean" + }, + "OpenSubtitlesUsername": { + "type": "string", + "nullable": true + }, + "OpenSubtitlesPasswordHash": { + "type": "string", + "nullable": true + }, + "IsOpenSubtitleVipAccount": { + "type": "boolean" + }, + "RequirePerfectMatch": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubtitlePlaybackMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "type": "string", + "description": "An enum representing a subtitle playback mode." + }, + "SubtitleProfile": { + "type": "object", + "properties": { + "Format": { + "type": "string", + "description": "Gets or sets the format.", + "nullable": true + }, + "Method": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the delivery method." + }, + "DidlMode": { + "type": "string", + "description": "Gets or sets the DIDL mode.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the container.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A class for subtitle profile information." + }, + "SyncPlayCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/SendCommand" + } + ], + "description": "Class SendCommand.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SyncPlayCommand", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Sync play command." + }, + "SyncPlayGroupUpdateCommandMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdate" + } + ], + "description": "Group update without data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "SyncPlayGroupUpdate", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Untyped sync play command." + }, + "SyncPlayQueueItem": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets the item identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the item.", + "format": "uuid", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class QueueItem." + }, + "SyncPlayUserAccessType": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "type": "string", + "description": "Enum SyncPlayUserAccessType." + }, + "SystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true, + "deprecated": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + }, + "OperatingSystemDisplayName": { + "type": "string", + "description": "Gets or sets the display name of the operating system.", + "nullable": true, + "deprecated": true + }, + "PackageName": { + "type": "string", + "description": "Gets or sets the package name.", + "nullable": true + }, + "HasPendingRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has pending restart." + }, + "IsShuttingDown": { + "type": "boolean" + }, + "SupportsLibraryMonitor": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports library monitor]." + }, + "WebSocketPortNumber": { + "type": "integer", + "description": "Gets or sets the web socket port number.", + "format": "int32" + }, + "CompletedInstallations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InstallationInfo" + }, + "description": "Gets or sets the completed installations.", + "nullable": true + }, + "CanSelfRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can self restart.", + "default": true, + "deprecated": true + }, + "CanLaunchWebBrowser": { + "type": "boolean", + "default": false, + "deprecated": true + }, + "ProgramDataPath": { + "type": "string", + "description": "Gets or sets the program data path.", + "nullable": true + }, + "WebPath": { + "type": "string", + "description": "Gets or sets the web UI resources path.", + "nullable": true + }, + "ItemsByNamePath": { + "type": "string", + "description": "Gets or sets the items by name path.", + "nullable": true + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "LogPath": { + "type": "string", + "description": "Gets or sets the log path.", + "nullable": true + }, + "InternalMetadataPath": { + "type": "string", + "description": "Gets or sets the internal metadata path.", + "nullable": true + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the transcode path.", + "nullable": true + }, + "CastReceiverApplications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CastReceiverApplication" + }, + "description": "Gets or sets the list of cast receiver applications.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available.", + "default": false, + "deprecated": true + }, + "EncoderLocation": { + "type": "string", + "default": "System", + "nullable": true, + "deprecated": true + }, + "SystemArchitecture": { + "type": "string", + "default": "X64", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "Class SystemInfo." + }, + "TaskCompletionStatus": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "type": "string", + "description": "Enum TaskCompletionStatus." + }, + "TaskInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "State": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TaskState" + } + ], + "description": "Gets or sets the state of the task." + }, + "CurrentProgressPercentage": { + "type": "number", + "description": "Gets or sets the progress.", + "format": "double", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "LastExecutionResult": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Gets or sets the last execution result.", + "nullable": true + }, + "Triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + }, + "description": "Gets or sets the triggers.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description.", + "nullable": true + }, + "Category": { + "type": "string", + "description": "Gets or sets the category.", + "nullable": true + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskInfo." + }, + "TaskResult": { + "type": "object", + "properties": { + "StartTimeUtc": { + "type": "string", + "description": "Gets or sets the start time UTC.", + "format": "date-time" + }, + "EndTimeUtc": { + "type": "string", + "description": "Gets or sets the end time UTC.", + "format": "date-time" + }, + "Status": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TaskCompletionStatus" + } + ], + "description": "Gets or sets the status." + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "ErrorMessage": { + "type": "string", + "description": "Gets or sets the error message.", + "nullable": true + }, + "LongErrorMessage": { + "type": "string", + "description": "Gets or sets the long error message.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskExecutionInfo." + }, + "TaskState": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "type": "string", + "description": "Enum TaskState." + }, + "TaskTriggerInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "TimeOfDayTicks": { + "type": "integer", + "description": "Gets or sets the time of day.", + "format": "int64", + "nullable": true + }, + "IntervalTicks": { + "type": "integer", + "description": "Gets or sets the interval.", + "format": "int64", + "nullable": true + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DayOfWeek" + } + ], + "description": "Gets or sets the day of week.", + "nullable": true + }, + "MaxRuntimeTicks": { + "type": "integer", + "description": "Gets or sets the maximum runtime ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskTriggerInfo." + }, + "ThemeMediaResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + }, + "OwnerId": { + "type": "string", + "description": "Gets or sets the owner id.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ThemeMediaResult." + }, + "TimerCancelledMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "TimerCancelled", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Timer cancelled message." + }, + "TimerCreatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerEventInfo" + } + ], + "description": "Gets or sets the data.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "TimerCreated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Timer created message." + }, + "TimerEventInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string" + }, + "ProgramId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "Status": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ], + "description": "Gets or sets the status." + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ExternalSeriesTimerId": { + "type": "string", + "description": "Gets or sets the external series timer identifier.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "ProgramInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the program information.", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimerInfoDto" + }, + "description": "Gets or sets the items." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Query result container." + }, + "TonemappingAlgorithm": { + "enum": [ + "none", + "clip", + "linear", + "gamma", + "reinhard", + "hable", + "mobius", + "bt2390" + ], + "type": "string", + "description": "Enum containing tonemapping algorithms." + }, + "TonemappingMode": { + "enum": [ + "auto", + "max", + "rgb", + "lum", + "itp" + ], + "type": "string", + "description": "Enum containing tonemapping modes." + }, + "TonemappingRange": { + "enum": [ + "auto", + "tv", + "pc" + ], + "type": "string", + "description": "Enum containing tonemapping ranges." + }, + "TrailerInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TrailerInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "TranscodeReason": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported", + "VideoCodecTagNotSupported" + ], + "type": "string" + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "type": "string" + }, + "TranscodingInfo": { + "type": "object", + "properties": { + "AudioCodec": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "Container": { + "type": "string", + "description": "Gets or sets the thread count used for encoding.", + "nullable": true + }, + "IsVideoDirect": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the video is passed through." + }, + "IsAudioDirect": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the audio is passed through." + }, + "Bitrate": { + "type": "integer", + "description": "Gets or sets the bitrate.", + "format": "int32", + "nullable": true + }, + "Framerate": { + "type": "number", + "description": "Gets or sets the framerate.", + "format": "float", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the video width.", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the video height.", + "format": "int32", + "nullable": true + }, + "AudioChannels": { + "type": "integer", + "description": "Gets or sets the audio channels.", + "format": "int32", + "nullable": true + }, + "HardwareAccelerationType": { + "enum": [ + "none", + "amf", + "qsv", + "nvenc", + "v4l2m2m", + "vaapi", + "videotoolbox", + "rkmpp" + ], + "allOf": [ + { + "$ref": "#/components/schemas/HardwareAccelerationType" + } + ], + "description": "Gets or sets the hardware acceleration type.", + "nullable": true + }, + "TranscodeReasons": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported", + "VideoCodecTagNotSupported" + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodeReason" + }, + "description": "Gets or sets the transcode reasons." + } + }, + "additionalProperties": false, + "description": "Class holding information on a runnning transcode." + }, + "TranscodingProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "description": "Gets or sets the container." + }, + "Type": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle", + "Lyric" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ], + "description": "Gets or sets the DLNA profile type." + }, + "VideoCodec": { + "type": "string", + "description": "Gets or sets the video codec." + }, + "AudioCodec": { + "type": "string", + "description": "Gets or sets the audio codec." + }, + "Protocol": { + "enum": [ + "http", + "hls" + ], + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamProtocol" + } + ], + "description": "Media streaming protocol.\r\nLowercase for backwards compatibility." + }, + "EstimateContentLength": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the content length should be estimated.", + "default": false + }, + "EnableMpegtsM2TsMode": { + "type": "boolean", + "description": "Gets or sets a value indicating whether M2TS mode is enabled.", + "default": false + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TranscodeSeekInfo" + } + ], + "description": "Gets or sets the transcoding seek info mode.", + "default": "Auto" + }, + "CopyTimestamps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether timestamps should be copied.", + "default": false + }, + "Context": { + "enum": [ + "Streaming", + "Static" + ], + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ], + "description": "Gets or sets the encoding context.", + "default": "Streaming" + }, + "EnableSubtitlesInManifest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether subtitles are allowed in the manifest.", + "default": false + }, + "MaxAudioChannels": { + "type": "string", + "description": "Gets or sets the maximum audio channels.", + "nullable": true + }, + "MinSegments": { + "type": "integer", + "description": "Gets or sets the minimum amount of segments.", + "format": "int32", + "default": 0 + }, + "SegmentLength": { + "type": "integer", + "description": "Gets or sets the segment length.", + "format": "int32", + "default": 0 + }, + "BreakOnNonKeyFrames": { + "type": "boolean", + "description": "Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported.", + "default": false + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "description": "Gets or sets the profile conditions." + }, + "EnableAudioVbrEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether variable bitrate encoding is supported.", + "default": true + } + }, + "additionalProperties": false, + "description": "A class for transcoding profile information." + }, + "TransportStreamTimestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "type": "string" + }, + "TrickplayInfo": { + "type": "object", + "properties": { + "Width": { + "type": "integer", + "description": "Gets or sets width of an individual thumbnail.", + "format": "int32" + }, + "Height": { + "type": "integer", + "description": "Gets or sets height of an individual thumbnail.", + "format": "int32" + }, + "TileWidth": { + "type": "integer", + "description": "Gets or sets amount of thumbnails per row.", + "format": "int32" + }, + "TileHeight": { + "type": "integer", + "description": "Gets or sets amount of thumbnails per column.", + "format": "int32" + }, + "ThumbnailCount": { + "type": "integer", + "description": "Gets or sets total amount of non-black thumbnails.", + "format": "int32" + }, + "Interval": { + "type": "integer", + "description": "Gets or sets interval in milliseconds between each trickplay thumbnail.", + "format": "int32" + }, + "Bandwidth": { + "type": "integer", + "description": "Gets or sets peak bandwith usage in bits per second.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "An entity representing the metadata for a group of trickplay tiles." + }, + "TrickplayOptions": { + "type": "object", + "properties": { + "EnableHwAcceleration": { + "type": "boolean", + "description": "Gets or sets a value indicating whether or not to use HW acceleration." + }, + "EnableHwEncoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding." + }, + "EnableKeyFrameOnlyExtraction": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to only extract key frames.\r\nSignificantly faster, but is not compatible with all decoders and/or video files." + }, + "ScanBehavior": { + "enum": [ + "Blocking", + "NonBlocking" + ], + "allOf": [ + { + "$ref": "#/components/schemas/TrickplayScanBehavior" + } + ], + "description": "Gets or sets the behavior used by trickplay provider on library scan/update." + }, + "ProcessPriority": { + "enum": [ + "Normal", + "Idle", + "High", + "RealTime", + "BelowNormal", + "AboveNormal" + ], + "allOf": [ + { + "$ref": "#/components/schemas/ProcessPriorityClass" + } + ], + "description": "Gets or sets the process priority for the ffmpeg process." + }, + "Interval": { + "type": "integer", + "description": "Gets or sets the interval, in ms, between each new trickplay image.", + "format": "int32" + }, + "WidthResolutions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Gets or sets the target width resolutions, in px, to generates preview images for." + }, + "TileWidth": { + "type": "integer", + "description": "Gets or sets number of tile images to allow in X dimension.", + "format": "int32" + }, + "TileHeight": { + "type": "integer", + "description": "Gets or sets number of tile images to allow in Y dimension.", + "format": "int32" + }, + "Qscale": { + "type": "integer", + "description": "Gets or sets the ffmpeg output quality level.", + "format": "int32" + }, + "JpegQuality": { + "type": "integer", + "description": "Gets or sets the jpeg quality to use for image tiles.", + "format": "int32" + }, + "ProcessThreads": { + "type": "integer", + "description": "Gets or sets the number of threads to be used by ffmpeg.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class TrickplayOptions." + }, + "TrickplayScanBehavior": { + "enum": [ + "Blocking", + "NonBlocking" + ], + "type": "string", + "description": "Enum TrickplayScanBehavior." + }, + "TunerChannelMapping": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "ProviderChannelName": { + "type": "string", + "nullable": true + }, + "ProviderChannelId": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TunerHostInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Url": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "DeviceId": { + "type": "string", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "nullable": true + }, + "ImportFavoritesOnly": { + "type": "boolean" + }, + "AllowHWTranscoding": { + "type": "boolean" + }, + "AllowFmp4TranscodingContainer": { + "type": "boolean" + }, + "AllowStreamSharing": { + "type": "boolean" + }, + "FallbackMaxStreamingBitrate": { + "type": "integer", + "format": "int32" + }, + "EnableStreamLooping": { + "type": "boolean" + }, + "Source": { + "type": "string", + "nullable": true + }, + "TunerCount": { + "type": "integer", + "format": "int32" + }, + "UserAgent": { + "type": "string", + "nullable": true + }, + "IgnoreDts": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TypeOptions": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "UnratedItem": { + "enum": [ + "Movie", + "Trailer", + "Series", + "Music", + "Book", + "LiveTvChannel", + "LiveTvProgram", + "ChannelContent", + "Other" + ], + "type": "string", + "description": "An enum representing an unrated item." + }, + "UpdateLibraryOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the library item id.", + "format": "uuid" + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateMediaPathRequestDto": { + "required": [ + "Name", + "PathInfo" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the library name." + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets library folder path information." + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist.", + "nullable": true + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids of the playlist.", + "nullable": true + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PlaylistUserPermissions" + }, + "description": "Gets or sets the playlist users.", + "nullable": true + }, + "IsPublic": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playlist is public.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update existing playlist dto. Fields set to `null` will not be updated and keep their current values." + }, + "UpdatePlaylistUserDto": { + "type": "object", + "properties": { + "CanEdit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the user can edit the playlist.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update existing playlist user dto. Fields set to `null` will not be updated and keep their current values." + }, + "UpdateUserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64", + "nullable": true + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32", + "nullable": true + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite.", + "nullable": true + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UpdateUserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a item user data." + }, + "UpdateUserPassword": { + "type": "object", + "properties": { + "CurrentPassword": { + "type": "string", + "description": "Gets or sets the current sha1-hashed password.", + "nullable": true + }, + "CurrentPw": { + "type": "string", + "description": "Gets or sets the current plain text password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new plain text password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user password request body." + }, + "UploadSubtitleDto": { + "required": [ + "Data", + "Format", + "IsForced", + "IsHearingImpaired", + "Language" + ], + "type": "object", + "properties": { + "Language": { + "type": "string", + "description": "Gets or sets the subtitle language." + }, + "Format": { + "type": "string", + "description": "Gets or sets the subtitle format." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is forced." + }, + "IsHearingImpaired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is for hearing impaired." + }, + "Data": { + "type": "string", + "description": "Gets or sets the subtitle data." + } + }, + "additionalProperties": false, + "description": "Upload subtitles dto." + }, + "UserConfiguration": { + "type": "object", + "properties": { + "AudioLanguagePreference": { + "type": "string", + "description": "Gets or sets the audio language preference.", + "nullable": true + }, + "PlayDefaultAudioTrack": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [play default audio track]." + }, + "SubtitleLanguagePreference": { + "type": "string", + "description": "Gets or sets the subtitle language preference.", + "nullable": true + }, + "DisplayMissingEpisodes": { + "type": "boolean" + }, + "GroupedFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "SubtitleMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SubtitlePlaybackMode" + } + ], + "description": "An enum representing a subtitle playback mode." + }, + "DisplayCollectionsView": { + "type": "boolean" + }, + "EnableLocalPassword": { + "type": "boolean" + }, + "OrderedViews": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "LatestItemsExcludes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "MyMediaExcludes": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "HidePlayedInLatest": { + "type": "boolean" + }, + "RememberAudioSelections": { + "type": "boolean" + }, + "RememberSubtitleSelections": { + "type": "boolean" + }, + "EnableNextEpisodeAutoPlay": { + "type": "boolean" + }, + "CastReceiverId": { + "type": "string", + "description": "Gets or sets the id of the selected cast receiver.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserConfiguration." + }, + "UserDataChangedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDataChangeInfo" + } + ], + "description": "Class UserDataChangeInfo.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserDataChanged", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User data changed message." + }, + "UserDataChangeInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserDataList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserItemDataDto" + }, + "description": "Gets or sets the user data list." + } + }, + "additionalProperties": false, + "description": "Class UserDataChangeInfo." + }, + "UserDeletedMessage": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "Gets or sets the data.", + "format": "uuid" + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserDeleted", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User deleted message." + }, + "UserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "HasPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has password." + }, + "HasConfiguredPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured password." + }, + "HasConfiguredEasyPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured easy password.", + "deprecated": true + }, + "EnableAutoLogin": { + "type": "boolean", + "description": "Gets or sets whether async login is enabled or not.", + "nullable": true + }, + "LastLoginDate": { + "type": "string", + "description": "Gets or sets the last login date.", + "format": "date-time", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time", + "nullable": true + }, + "Configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Gets or sets the configuration.", + "nullable": true + }, + "Policy": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ], + "description": "Gets or sets the policy.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserDto." + }, + "UserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64" + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32" + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite." + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class UserItemDataDto." + }, + "UserPolicy": { + "required": [ + "AuthenticationProviderId", + "PasswordResetProviderId" + ], + "type": "object", + "properties": { + "IsAdministrator": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is administrator." + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "EnableCollectionManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can manage collections.", + "default": false + }, + "EnableSubtitleManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can manage subtitles.", + "default": false + }, + "EnableLyricManagement": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this user can manage lyrics.", + "default": false + }, + "IsDisabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is disabled." + }, + "MaxParentalRating": { + "type": "integer", + "description": "Gets or sets the max parental rating.", + "format": "int32", + "nullable": true + }, + "BlockedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "AllowedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableUserPreferenceAccess": { + "type": "boolean" + }, + "AccessSchedules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessSchedule" + }, + "nullable": true + }, + "BlockUnratedItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnratedItem" + }, + "nullable": true + }, + "EnableRemoteControlOfOtherUsers": { + "type": "boolean" + }, + "EnableSharedDeviceControl": { + "type": "boolean" + }, + "EnableRemoteAccess": { + "type": "boolean" + }, + "EnableLiveTvManagement": { + "type": "boolean" + }, + "EnableLiveTvAccess": { + "type": "boolean" + }, + "EnableMediaPlayback": { + "type": "boolean" + }, + "EnableAudioPlaybackTranscoding": { + "type": "boolean" + }, + "EnableVideoPlaybackTranscoding": { + "type": "boolean" + }, + "EnablePlaybackRemuxing": { + "type": "boolean" + }, + "ForceRemoteSourceTranscoding": { + "type": "boolean" + }, + "EnableContentDeletion": { + "type": "boolean" + }, + "EnableContentDeletionFromFolders": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableContentDownloading": { + "type": "boolean" + }, + "EnableSyncTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable synchronize]." + }, + "EnableMediaConversion": { + "type": "boolean" + }, + "EnabledDevices": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllDevices": { + "type": "boolean" + }, + "EnabledChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllChannels": { + "type": "boolean" + }, + "EnabledFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllFolders": { + "type": "boolean" + }, + "InvalidLoginAttemptCount": { + "type": "integer", + "format": "int32" + }, + "LoginAttemptsBeforeLockout": { + "type": "integer", + "format": "int32" + }, + "MaxActiveSessions": { + "type": "integer", + "format": "int32" + }, + "EnablePublicSharing": { + "type": "boolean" + }, + "BlockedMediaFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "BlockedChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "AuthenticationProviderId": { + "type": "string" + }, + "PasswordResetProviderId": { + "type": "string" + }, + "SyncPlayAccess": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SyncPlayUserAccessType" + } + ], + "description": "Enum SyncPlayUserAccessType." + } + }, + "additionalProperties": false + }, + "UserUpdatedMessage": { + "type": "object", + "properties": { + "Data": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "MessageId": { + "type": "string", + "description": "Gets or sets the message id.", + "format": "uuid" + }, + "MessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "allOf": [ + { + "$ref": "#/components/schemas/SessionMessageType" + } + ], + "description": "The different kinds of messages that are used in the WebSocket api.", + "default": "UserUpdated", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "User updated message." + }, + "UtcTimeResponse": { + "type": "object", + "properties": { + "RequestReceptionTime": { + "type": "string", + "description": "Gets the UTC time when request has been received.", + "format": "date-time" + }, + "ResponseTransmissionTime": { + "type": "string", + "description": "Gets the UTC time when response has been sent.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class UtcTimeResponse." + }, + "ValidatePathDto": { + "type": "object", + "properties": { + "ValidateWritable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether validate if path is writable." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "IsFile": { + "type": "boolean", + "description": "Gets or sets is path file.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Validate path object." + }, + "VersionInfo": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "Gets or sets the version." + }, + "VersionNumber": { + "type": "string", + "description": "Gets the version as a System.Version.", + "readOnly": true + }, + "changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "targetAbi": { + "type": "string", + "description": "Gets or sets the ABI that this version was built against.", + "nullable": true + }, + "sourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "timestamp": { + "type": "string", + "description": "Gets or sets a timestamp of when the binary was built.", + "nullable": true + }, + "repositoryName": { + "type": "string", + "description": "Gets or sets the repository name." + }, + "repositoryUrl": { + "type": "string", + "description": "Gets or sets the repository url." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Updates.VersionInfo class." + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "type": "string" + }, + "VideoRange": { + "enum": [ + "Unknown", + "SDR", + "HDR" + ], + "type": "string", + "description": "An enum representing video ranges." + }, + "VideoRangeType": { + "enum": [ + "Unknown", + "SDR", + "HDR10", + "HLG", + "DOVI", + "DOVIWithHDR10", + "DOVIWithHLG", + "DOVIWithSDR", + "HDR10Plus" + ], + "type": "string", + "description": "An enum representing types of video ranges." + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum VideoType." + }, + "VirtualFolderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the locations.", + "nullable": true + }, + "CollectionType": { + "enum": [ + "movies", + "tvshows", + "music", + "musicvideos", + "homevideos", + "boxsets", + "books", + "mixed" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "PrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the primary image item identifier.", + "nullable": true + }, + "RefreshProgress": { + "type": "number", + "format": "double", + "nullable": true + }, + "RefreshStatus": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Used to hold information about a user's list of configured virtual folders." + }, + "WakeOnLanInfo": { + "type": "object", + "properties": { + "MacAddress": { + "type": "string", + "description": "Gets the MAC address of the device.", + "nullable": true + }, + "Port": { + "type": "integer", + "description": "Gets or sets the wake-on-LAN port.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Provides the MAC address and port for wake-on-LAN functionality." + }, + "WebSocketMessage": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/InboundWebSocketMessage" + }, + { + "$ref": "#/components/schemas/OutboundWebSocketMessage" + } + ], + "description": "Represents the possible websocket types" + }, + "XbmcMetadataOptions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "nullable": true + }, + "ReleaseDateFormat": { + "type": "string" + }, + "SaveImagePathsInNfo": { + "type": "boolean" + }, + "EnablePathSubstitution": { + "type": "boolean" + }, + "EnableExtraThumbsDuplication": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "securitySchemes": { + "CustomAuthentication": { + "type": "apiKey", + "description": "API key header parameter", + "name": "Authorization", + "in": "header" + } + } + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.8.13.json b/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.8.13.json new file mode 100644 index 0000000000000..2992207ced90a --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/jellyfin-openapi-10.8.13.json @@ -0,0 +1,58087 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Jellyfin API", + "version": "10.8.13", + "x-jellyfin-version": "10.8.13" + }, + "servers": [ + { + "url": "http://nuc.ehrendingen:8096" + } + ], + "paths": { + "/System/ActivityLog/Entries": { + "get": { + "tags": [ + "ActivityLog" + ], + "summary": "Gets activity log entries.", + "operationId": "GetLogEntries", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minDate", + "in": "query", + "description": "Optional. The minimum date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasUserId", + "in": "query", + "description": "Optional. Filter log entries if it has user id, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Activity log returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ActivityLogEntryQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys": { + "get": { + "tags": [ + "ApiKey" + ], + "summary": "Get all keys.", + "operationId": "GetKeys", + "responses": { + "200": { + "description": "Api keys retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "ApiKey" + ], + "summary": "Create a new api key.", + "operationId": "CreateKey", + "parameters": [ + { + "name": "app", + "in": "query", + "description": "Name of the app using the authentication key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Keys/{key}": { + "delete": { + "tags": [ + "ApiKey" + ], + "summary": "Remove an api key.", + "operationId": "RevokeKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The access token to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Api key deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Artists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all artists from a given item, folder, or the entire library.", + "operationId": "GetArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/AlbumArtists": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets all album artists from a given item, folder, or the entire library.", + "operationId": "GetAlbumArtists", + "parameters": [ + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Album artists returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{name}": { + "get": { + "tags": [ + "Artists" + ], + "summary": "Gets an artist by name.", + "operationId": "GetArtistByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Artist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/stream": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Audio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadAudioStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The audio container.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamporphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Branding/Configuration": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding configuration.", + "operationId": "GetBrandingOptions", + "responses": { + "200": { + "description": "Branding configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BrandingOptions" + } + } + } + } + } + } + }, + "/Branding/Css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Branding/Css.css": { + "get": { + "tags": [ + "Branding" + ], + "summary": "Gets branding css.", + "operationId": "GetBrandingCss_2", + "responses": { + "200": { + "description": "Branding css returned.", + "content": { + "text/css": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No branding css configured." + } + } + } + }, + "/Channels": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets available channels.", + "operationId": "GetChannels", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "User Id to filter by. Use System.Guid.Empty to not filter by user.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "supportsLatestItems", + "in": "query", + "description": "Optional. Filter by channels that support getting latest items.", + "schema": { + "type": "boolean" + } + }, + { + "name": "supportsMediaDeletion", + "in": "query", + "description": "Optional. Filter by channels that support media deletion.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorite.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get all channel features.", + "operationId": "GetAllChannelFeatures", + "responses": { + "200": { + "description": "All channel features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/Items/Latest": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Gets latest channel items.", + "operationId": "GetLatestChannelItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "channelIds", + "in": "query", + "description": "Optional. Specify one or more channel id's, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "200": { + "description": "Latest channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Features": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel features.", + "operationId": "GetChannelFeatures", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Channel features returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelFeatures" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Channels/{channelId}/Items": { + "get": { + "tags": [ + "Channels" + ], + "summary": "Get channel items.", + "operationId": "GetChannelItems", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "folderId", + "in": "query", + "description": "Optional. Folder Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Channel items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/ClientLog/Document": { + "post": { + "tags": [ + "ClientLog" + ], + "summary": "Upload a document.", + "operationId": "LogFile", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "200": { + "description": "Document saved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ClientLogDocumentResponseDto" + } + } + } + }, + "403": { + "description": "Event logging disabled.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "413": { + "description": "Upload size too large.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Creates a new collection.", + "operationId": "CreateCollection", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the collection.", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item Ids to add to the collection.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Create the collection within a specific folder.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Whether or not to lock the new collection.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Collection created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Collections/{collectionId}/Items": { + "post": { + "tags": [ + "Collection" + ], + "summary": "Adds items to a collection.", + "operationId": "AddToCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items added to collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Collection" + ], + "summary": "Removes items from a collection.", + "operationId": "RemoveFromCollection", + "parameters": [ + { + "name": "collectionId", + "in": "path", + "description": "The collection id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item ids, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed from collection." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets application configuration.", + "operationId": "GetConfiguration", + "responses": { + "200": { + "description": "Application configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ServerConfiguration" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates application configuration.", + "operationId": "UpdateConfiguration", + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ServerConfiguration" + } + ], + "description": "Represents the server configuration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/MetadataOptions/Default": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a default MetadataOptions object.", + "operationId": "GetDefaultMetadataOptions", + "responses": { + "200": { + "description": "Metadata options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataOptions" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Configuration/{key}": { + "get": { + "tags": [ + "Configuration" + ], + "summary": "Gets a named configuration.", + "operationId": "GetNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Configuration returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates named configuration.", + "operationId": "UpdateNamedConfiguration", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Configuration key.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Configuration.", + "content": { + "application/json": { + "schema": { } + }, + "text/json": { + "schema": { } + }, + "application/*+json": { + "schema": { } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Named configuration updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/MediaEncoder/Path": { + "post": { + "tags": [ + "Configuration" + ], + "summary": "Updates the path to the media encoder.", + "operationId": "UpdateMediaEncoderPath", + "requestBody": { + "description": "Media encoder path form body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaEncoderPathDto" + } + ], + "description": "Media Encoder Path Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media encoder path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated", + "DefaultAuthorization" + ] + } + ] + } + }, + "/web/ConfigurationPage": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets a dashboard configuration page.", + "operationId": "GetDashboardConfigurationPage", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the page.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPage returned.", + "content": { + "text/html": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/x-javascript": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Plugin configuration page not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/web/ConfigurationPages": { + "get": { + "tags": [ + "Dashboard" + ], + "summary": "Gets the configuration pages.", + "operationId": "GetConfigurationPages", + "parameters": [ + { + "name": "enableInMainMenu", + "in": "query", + "description": "Whether to enable in the main menu.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "ConfigurationPages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationPageInfo" + } + } + } + } + }, + "404": { + "description": "Server still loading.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Devices": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get Devices.", + "operationId": "GetDevices", + "parameters": [ + { + "name": "supportsSync", + "in": "query", + "description": "Gets or sets a value indicating whether [supports synchronize].", + "schema": { + "type": "boolean" + } + }, + { + "name": "userId", + "in": "query", + "description": "Gets or sets the user identifier.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Devices" + ], + "summary": "Deletes a device.", + "operationId": "DeleteDevice", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device deleted." + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Info": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get info for a device.", + "operationId": "GetDeviceInfo", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device info retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceInfo" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Devices/Options": { + "get": { + "tags": [ + "Devices" + ], + "summary": "Get options for a device.", + "operationId": "GetDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device options retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceOptions" + } + } + } + }, + "404": { + "description": "Device not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Devices" + ], + "summary": "Update device options.", + "operationId": "UpdateDeviceOptions", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Device Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device Options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceOptionsDto" + } + ], + "description": "A dto representing custom options for a device." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Device options updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/DisplayPreferences/{displayPreferencesId}": { + "get": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Get Display Preferences.", + "operationId": "GetDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Display preferences retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "DisplayPreferences" + ], + "summary": "Update Display Preferences.", + "operationId": "UpdateDisplayPreferences", + "parameters": [ + { + "name": "displayPreferencesId", + "in": "path", + "description": "Display preferences id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "client", + "in": "query", + "description": "Client.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New Display Preferences object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DisplayPreferencesDto" + } + ], + "description": "Defines the display preferences for any item that supports them (usually Folders)." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Display preferences updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Dlna/icons/{fileName}": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets a server icon.", + "operationId": "GetIcon", + "parameters": [ + { + "name": "fileName", + "in": "path", + "description": "The icon filename.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/ConnectionManager": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetConnectionManager_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ConnectionManager/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a connection manager control request.", + "operationId": "ProcessConnectionManagerControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/ContentDirectory": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna content directory xml.", + "operationId": "GetContentDirectory_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna content directory returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/ContentDirectory/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a content directory control request.", + "operationId": "ProcessContentDirectoryControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/Control": { + "post": { + "tags": [ + "DlnaServer" + ], + "summary": "Process a media receiver registrar control request.", + "operationId": "ProcessMediaReceiverRegistrarControlRequest", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets Dlna media receiver registrar xml.", + "operationId": "GetMediaReceiverRegistrar_3", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Dlna media receiver registrar xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/description": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Get Description Xml.", + "operationId": "GetDescriptionXml", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Description xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/description.xml": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Get Description Xml.", + "operationId": "GetDescriptionXml_2", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Description xml returned.", + "content": { + "text/xml": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/{serverId}/icons/{fileName}": { + "get": { + "tags": [ + "DlnaServer" + ], + "summary": "Gets a server icon.", + "operationId": "GetIconId", + "parameters": [ + { + "name": "serverId", + "in": "path", + "description": "Server UUID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fileName", + "in": "path", + "description": "The icon filename.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Request processed.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "503": { + "description": "DLNA is disabled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "AnonymousLanAccessPolicy" + ] + } + ] + } + }, + "/Dlna/ProfileInfos": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Get profile infos.", + "operationId": "GetProfileInfos", + "responses": { + "200": { + "description": "Device profile infos returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceProfileInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles": { + "post": { + "tags": [ + "Dlna" + ], + "summary": "Creates a profile.", + "operationId": "CreateProfile", + "requestBody": { + "description": "Device profile.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + } + } + }, + "responses": { + "204": { + "description": "Device profile created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles/Default": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Gets the default profile.", + "operationId": "GetDefaultProfile", + "responses": { + "200": { + "description": "Default device profile returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Dlna/Profiles/{profileId}": { + "get": { + "tags": [ + "Dlna" + ], + "summary": "Gets a single profile.", + "operationId": "GetProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Device profile returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DeviceProfile" + } + } + } + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Dlna" + ], + "summary": "Deletes a profile.", + "operationId": "DeleteProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Device profile deleted." + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Dlna" + ], + "summary": "Updates a profile.", + "operationId": "UpdateProfile", + "parameters": [ + { + "name": "profileId", + "in": "path", + "description": "Profile id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Device profile.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + } + } + } + }, + "responses": { + "204": { + "description": "Device profile updated." + }, + "404": { + "description": "Device profile not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsAudioSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio stream using HTTP live streaming.", + "operationId": "GetVariantHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "GetMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets an audio hls playlist stream.", + "operationId": "HeadMasterHlsAudioPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetHlsVideoSegment", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "runtimeTicks", + "in": "query", + "description": "The position of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "actualSegmentLengthTicks", + "in": "query", + "description": "The length of the requested segment in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The desired segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/live.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a hls live stream.", + "operationId": "GetLiveHlsStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The audio container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment lenght.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The max width.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The max height.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableSubtitlesInManifest", + "in": "query", + "description": "Optional. Whether to enable subtitles in the manifest.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Hls live stream retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/main.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video stream using HTTP live streaming.", + "operationId": "GetVariantHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/master.m3u8": { + "get": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "GetMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "DynamicHls" + ], + "summary": "Gets a video hls playlist stream.", + "operationId": "HeadMasterHlsVideoPlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + { + "name": "enableAdaptiveBitrateStreaming", + "in": "query", + "description": "Enable adaptive bitrate streaming.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Environment/DefaultDirectoryBrowser": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Get Default directory browser.", + "operationId": "GetDefaultDirectoryBrowser", + "responses": { + "200": { + "description": "Default directory browser returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/DirectoryContents": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the contents of a given directory in the file system.", + "operationId": "GetDirectoryContents", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeFiles", + "in": "query", + "description": "An optional filter to include or exclude files from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeDirectories", + "in": "query", + "description": "An optional filter to include or exclude folders from the results. true/false.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Directory contents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/Drives": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets available drives from the server's file system.", + "operationId": "GetDrives", + "responses": { + "200": { + "description": "List of entries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/NetworkShares": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets network paths.", + "operationId": "GetNetworkShares", + "responses": { + "200": { + "description": "Empty array returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSystemEntryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/ParentPath": { + "get": { + "tags": [ + "Environment" + ], + "summary": "Gets the parent path of a given path.", + "operationId": "GetParentPath", + "parameters": [ + { + "name": "path", + "in": "query", + "description": "The path.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Environment/ValidatePath": { + "post": { + "tags": [ + "Environment" + ], + "summary": "Validates path.", + "operationId": "ValidatePath", + "requestBody": { + "description": "Validate request object.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidatePathDto" + } + ], + "description": "Validate path object." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Path validated." + }, + "404": { + "description": "Path not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Items/Filters": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets legacy query filters.", + "operationId": "GetQueryFiltersLegacy", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Parent id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "Legacy filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFiltersLegacy" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Filters2": { + "get": { + "tags": [ + "Filter" + ], + "summary": "Gets query filters.", + "operationId": "GetQueryFilters", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Is item airing.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Is item movie.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Is item sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Is item kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Is item news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Is item series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Optional. Search recursive.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Filters retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QueryFilters" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets all genres from a given item, folder, or the entire library.", + "operationId": "GetGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Genres/{genreName}": { + "get": { + "tags": [ + "Genres" + ], + "summary": "Gets a genre, by name.", + "operationId": "GetGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.aac": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyAac", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Audio/{itemId}/hls/{segmentId}/stream.mp3": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets the specified audio segment for an audio item.", + "operationId": "GetHlsAudioSegmentLegacyMp3", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls audio segment returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/ActiveEncodings": { + "delete": { + "tags": [ + "HlsSegment" + ], + "summary": "Stops an active encoding.", + "operationId": "StopEncodingProcess", + "parameters": [ + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Encoding stopped successfully." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls/{playlistId}/stream.m3u8": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video playlist.", + "operationId": "GetHlsPlaylistLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The video id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video playlist returned.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": { + "get": { + "tags": [ + "HlsSegment" + ], + "summary": "Gets a hls video segment.", + "operationId": "GetHlsVideoSegmentLegacy", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentId", + "in": "path", + "description": "The segment id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "path", + "description": "The segment container.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Hls video segment returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Hls segment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Images/General": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all general images.", + "operationId": "GetGeneralImages", + "responses": { + "200": { + "description": "Retrieved list of images.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/General/{name}/{type}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get General Image.", + "operationId": "GetGeneralImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "path", + "description": "Image Type (primary, backdrop, logo, etc).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Images/MediaInfo": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all media info images.", + "operationId": "GetMediaInfoImages", + "responses": { + "200": { + "description": "Image list retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/MediaInfo/{theme}/{name}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get media info image.", + "operationId": "GetMediaInfoImage", + "parameters": [ + { + "name": "theme", + "in": "path", + "description": "The theme to get the image from.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Images/Ratings": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get all general images.", + "operationId": "GetRatingImages", + "responses": { + "200": { + "description": "Retrieved list of images.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageByNameInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Images/Ratings/{theme}/{name}": { + "get": { + "tags": [ + "ImageByName" + ], + "summary": "Get rating image.", + "operationId": "GetRatingImage", + "parameters": [ + { + "name": "theme", + "in": "path", + "description": "The theme to get the image from.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "path", + "description": "The name of the image.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream retrieved.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Image not found.", + "content": { + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Artists/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "GetArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get artist image by name.", + "operationId": "HeadArtistImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Artist name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Branding/Splashscreen": { + "get": { + "tags": [ + "Image" + ], + "summary": "Generates or gets the splashscreen.", + "operationId": "GetSplashscreen", + "parameters": [ + { + "name": "tag", + "in": "query", + "description": "Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "quality", + "in": "query", + "description": "Quality setting, from 0-100.", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32", + "default": 90 + } + } + ], + "responses": { + "200": { + "description": "Splashscreen returned successfully.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.", + "operationId": "UploadCustomSplashscreen", + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Successfully uploaded new splashscreen." + }, + "400": { + "description": "Error reading MimeType from uploaded image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User does not have permission to upload splashscreen..", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete a custom splashscreen.", + "operationId": "DeleteCustomSplashscreen", + "responses": { + "204": { + "description": "Successfully deleted the custom splashscreen." + }, + "403": { + "description": "User does not have permission to delete splashscreen.." + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Genres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Genres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "GetGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get genre image by name.", + "operationId": "HeadGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get item image infos.", + "operationId": "GetItemImageInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item images returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Images/{imageType}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "The image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}": { + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete an item's image.", + "operationId": "DeleteItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "The image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "Image" + ], + "summary": "Set item image.", + "operationId": "SetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image saved." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImageByIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": { + "post": { + "tags": [ + "Image" + ], + "summary": "Updates the index for an item image.", + "operationId": "UpdateItemImageIndex", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Old image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newIndex", + "in": "query", + "description": "New image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image index updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "GetItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Gets the item's image.", + "operationId": "HeadItemImage2", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "maxWidth", + "in": "path", + "description": "The maximum image width to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "path", + "description": "The maximum image height to return.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "path", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "format", + "in": "path", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ], + "description": "Enum ImageOutputFormat." + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "percentPlayed", + "in": "path", + "description": "Optional. Percent to render for the percent played overlay.", + "required": true, + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "path", + "description": "Optional. Unplayed count overlay to render.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/MusicGenres/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/MusicGenres/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "GetMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get music genre image by name.", + "operationId": "HeadMusicGenreImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Music genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Persons/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "GetPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get person image by name.", + "operationId": "HeadPersonImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Studios/{name}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "GetStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get studio image by name.", + "operationId": "HeadStudioImageByIndex", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "query", + "description": "(Unused) Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "query", + "description": "(Unused) Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImage", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + }, + { + "name": "imageIndex", + "in": "query", + "description": "Image index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}/{imageIndex}": { + "get": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "GetUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "head": { + "tags": [ + "Image" + ], + "summary": "Get user profile image.", + "operationId": "HeadUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageIndex", + "in": "path", + "description": "Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional. Supply the cache tag from the item object to receive strong caching headers.", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Determines the output format of the image - original,gif,jpg,png.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageFormat" + } + ] + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "The maximum image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "The maximum image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "percentPlayed", + "in": "query", + "description": "Optional. Percent to render for the percent played overlay.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "unplayedCount", + "in": "query", + "description": "Optional. Unplayed count overlay to render.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "width", + "in": "query", + "description": "The fixed image width to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "The fixed image height to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "quality", + "in": "query", + "description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillWidth", + "in": "query", + "description": "Width of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fillHeight", + "in": "query", + "description": "Height of box to fill.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cropWhitespace", + "in": "query", + "description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "addPlayedIndicator", + "in": "query", + "description": "Optional. Add a played indicator.", + "schema": { + "type": "boolean" + } + }, + { + "name": "blur", + "in": "query", + "description": "Optional. Blur image.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backgroundColor", + "in": "query", + "description": "Optional. Apply a background color for transparent images.", + "schema": { + "type": "string" + } + }, + { + "name": "foregroundLayer", + "in": "query", + "description": "Optional. Apply a foreground layer on top of the image.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Image stream returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Images/{imageType}/{index}": { + "post": { + "tags": [ + "Image" + ], + "summary": "Sets the user image.", + "operationId": "PostUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "responses": { + "204": { + "description": "Image updated." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Image" + ], + "summary": "Delete the user's image.", + "operationId": "DeleteUserImageByIndex", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "imageType", + "in": "path", + "description": "(Unused) Image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "index", + "in": "path", + "description": "(Unused) Image index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Image deleted." + }, + "403": { + "description": "User does not have permission to delete the image.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Albums/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given album.", + "operationId": "GetInstantMixFromAlbum", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists2", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given artist.", + "operationId": "GetInstantMixFromArtists", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given item.", + "operationId": "GetInstantMixFromItem", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreById", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{name}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given genre.", + "operationId": "GetInstantMixFromMusicGenreByName", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given playlist.", + "operationId": "GetInstantMixFromPlaylist", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Songs/{id}/InstantMix": { + "get": { + "tags": [ + "InstantMix" + ], + "summary": "Creates an instant playlist based on a given song.", + "operationId": "GetInstantMixFromSong", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Instant playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Apply/{itemId}": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Applies search criteria to an item and refreshes metadata.", + "operationId": "ApplySearchCriteria", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "Optional. Whether or not to replace all images. Default: True.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "requestBody": { + "description": "The remote search result.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item metadata refreshed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Book": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get book remote search.", + "operationId": "GetBookRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Book remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/BoxSet": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get box set remote search.", + "operationId": "GetBoxSetRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Box set remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Movie": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get movie remote search.", + "operationId": "GetMovieRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Movie remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicAlbum": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music album remote search.", + "operationId": "GetMusicAlbumRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music album remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicArtist": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music artist remote search.", + "operationId": "GetMusicArtistRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music artist remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/MusicVideo": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get music video remote search.", + "operationId": "GetMusicVideoRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Music video remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Person": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get person remote search.", + "operationId": "GetPersonRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Person remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Series": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get series remote search.", + "operationId": "GetSeriesRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Series remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/RemoteSearch/Trailer": { + "post": { + "tags": [ + "ItemLookup" + ], + "summary": "Get trailer remote search.", + "operationId": "GetTrailerRemoteSearchResults", + "requestBody": { + "description": "Remote search query.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery" + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Trailer remote search executed.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ExternalIdInfos": { + "get": { + "tags": [ + "ItemLookup" + ], + "summary": "Get the item's external id info.", + "operationId": "GetExternalIdInfos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "External id info retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Refresh": { + "post": { + "tags": [ + "ItemRefresh" + ], + "summary": "Refreshes metadata for an item.", + "operationId": "RefreshItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "metadataRefreshMode", + "in": "query", + "description": "(Optional) Specifies the metadata refresh mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "imageRefreshMode", + "in": "query", + "description": "(Optional) Specifies the image refresh mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MetadataRefreshMode" + } + ], + "default": "None" + } + }, + { + "name": "replaceAllMetadata", + "in": "query", + "description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "replaceAllImages", + "in": "query", + "description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Item metadata refresh queued." + }, + "404": { + "description": "Item to refresh not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item.", + "operationId": "UpdateItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new item properties.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Item updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes an item from the library and filesystem.", + "operationId": "DeleteItem", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Item deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ContentType": { + "post": { + "tags": [ + "ItemUpdate" + ], + "summary": "Updates an item's content type.", + "operationId": "UpdateItemContentType", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "contentType", + "in": "query", + "description": "The content type of the item.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Item content type updated." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/MetadataEditor": { + "get": { + "tags": [ + "ItemUpdate" + ], + "summary": "Gets metadata editor info for an item.", + "operationId": "GetMetadataEditorInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item metadata editor returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/MetadataEditorInfo" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItems", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id supplied as query parameter.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Library" + ], + "summary": "Deletes items from the library and filesystem.", + "operationId": "DeleteItems", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Items deleted." + }, + "401": { + "description": "Unauthorized access.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetItemsByUserId", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id supplied as query parameter.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Resume": { + "get": { + "tags": [ + "Items" + ], + "summary": "Gets items based on a query.", + "operationId": "GetResumeItems", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "The item limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "excludeActiveSessions", + "in": "query", + "description": "Optional. Whether to exclude the currently active sessions.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/VirtualFolders": { + "get": { + "tags": [ + "LibraryStructure" + ], + "summary": "Gets all virtual folders.", + "operationId": "GetVirtualFolders", + "responses": { + "200": { + "description": "Virtual folders retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VirtualFolderInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Adds a virtual folder.", + "operationId": "AddVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "collectionType", + "in": "query", + "description": "The type of the collection.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ] + } + }, + { + "name": "paths", + "in": "query", + "description": "The paths of the virtual folder.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The library options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AddVirtualFolderDto" + } + ], + "description": "Add virtual folder dto." + } + } + } + }, + "responses": { + "204": { + "description": "Folder added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Removes a virtual folder.", + "operationId": "RemoveVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the folder.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/LibraryOptions": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Update library options.", + "operationId": "UpdateLibraryOptions", + "requestBody": { + "description": "The library name and options.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateLibraryOptionsDto" + } + ], + "description": "Update library options dto." + } + } + } + }, + "responses": { + "204": { + "description": "Library updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Name": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Renames a virtual folder.", + "operationId": "RenameVirtualFolder", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the virtual folder.", + "schema": { + "type": "string" + } + }, + { + "name": "newName", + "in": "query", + "description": "The new name.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Folder renamed." + }, + "404": { + "description": "Library doesn't exist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "409": { + "description": "Library already exists.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Add a media path to a library.", + "operationId": "AddMediaPath", + "parameters": [ + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "The media path dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathDto" + } + ], + "description": "Media Path dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path added." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "delete": { + "tags": [ + "LibraryStructure" + ], + "summary": "Remove a media path.", + "operationId": "RemoveMediaPath", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the library.", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "The path to remove.", + "schema": { + "type": "string" + } + }, + { + "name": "refreshLibrary", + "in": "query", + "description": "Whether to refresh the library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Media path removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Library/VirtualFolders/Paths/Update": { + "post": { + "tags": [ + "LibraryStructure" + ], + "summary": "Updates a media path.", + "operationId": "UpdateMediaPath", + "requestBody": { + "description": "The name of the library and path infos.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateMediaPathRequestDto" + } + ], + "description": "Update library options dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Media path updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Albums/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarAlbums", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Artists/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarArtists", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/Counts": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get item counts.", + "operationId": "GetItemCounts", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Get counts from a specific user's library.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Get counts of favorite items.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item counts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ItemCounts" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Ancestors": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all parents of an item.", + "operationId": "GetAncestors", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item parents returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/CriticReviews": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets critic review for an item.", + "operationId": "GetCriticReviews", + "parameters": [ + { + "name": "itemId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Critic reviews returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Download": { + "get": { + "tags": [ + "Library" + ], + "summary": "Downloads item media.", + "operationId": "GetDownload", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Media downloaded.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "Download" + ] + } + ] + } + }, + "/Items/{itemId}/File": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get the original file of an item.", + "operationId": "GetFile", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "File stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarItems", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeMedia": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs and videos for an item.", + "operationId": "GetThemeMedia", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme songs and videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AllThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeSongs": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme songs for an item.", + "operationId": "GetThemeSongs", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme songs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/ThemeVideos": { + "get": { + "tags": [ + "Library" + ], + "summary": "Get theme videos for an item.", + "operationId": "GetThemeVideos", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "inheritFromParent", + "in": "query", + "description": "Optional. Determines whether or not parent items should be searched for theme media.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Theme videos returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ThemeMediaResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Libraries/AvailableOptions": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets the library options info.", + "operationId": "GetLibraryOptionsInfo", + "parameters": [ + { + "name": "libraryContentType", + "in": "query", + "description": "Library content type.", + "schema": { + "type": "string" + } + }, + { + "name": "isNewLibrary", + "in": "query", + "description": "Whether this is a new library.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Library options info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LibraryOptionsResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Library/Media/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMedia", + "requestBody": { + "description": "The update paths.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaUpdateInfoDto" + } + ], + "description": "Media Update Info Dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/MediaFolders": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets all user media folders.", + "operationId": "GetMediaFolders", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional. Filter by folders that are marked hidden, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Media folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Movies/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostAddedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Movies/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new movies have been added by an external source.", + "operationId": "PostUpdatedMovies", + "parameters": [ + { + "name": "tmdbId", + "in": "query", + "description": "The tmdbId.", + "schema": { + "type": "string" + } + }, + { + "name": "imdbId", + "in": "query", + "description": "The imdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/PhysicalPaths": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets a list of physical paths from virtual folders.", + "operationId": "GetPhysicalPaths", + "responses": { + "200": { + "description": "Physical paths returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Refresh": { + "post": { + "tags": [ + "Library" + ], + "summary": "Starts a library scan.", + "operationId": "RefreshLibrary", + "responses": { + "204": { + "description": "Library scan started." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Library/Series/Added": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostAddedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Library/Series/Updated": { + "post": { + "tags": [ + "Library" + ], + "summary": "Reports that new episodes of a series have been added by an external source.", + "operationId": "PostUpdatedSeries", + "parameters": [ + { + "name": "tvdbId", + "in": "query", + "description": "The tvdbId.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Report success." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarMovies", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarShows", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers/{itemId}/Similar": { + "get": { + "tags": [ + "Library" + ], + "summary": "Gets similar items.", + "operationId": "GetSimilarTrailers", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Exclude artist ids.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + } + ], + "responses": { + "200": { + "description": "Similar items returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveTv/ChannelMappingOptions": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get channel mapping options.", + "operationId": "GetChannelMappingOptions", + "parameters": [ + { + "name": "providerId", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Channel mapping options returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ChannelMappingOptionsDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ChannelMappings": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Set channel mappings.", + "operationId": "SetChannelMapping", + "requestBody": { + "description": "The set channel mapping dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetChannelMappingDto" + } + ], + "description": "Set channel mapping dto." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Created channel mapping returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerChannelMapping" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Channels": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv channels.", + "operationId": "GetLiveTvChannels", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Optional. Filter by channel type.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ] + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional. Filter by channels that are favorites, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLiked", + "in": "query", + "description": "Optional. Filter by channels that are liked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisliked", + "in": "query", + "description": "Optional. Filter by channels that are disliked, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "\"Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Key to sort by.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort order.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + }, + { + "name": "enableFavoriteSorting", + "in": "query", + "description": "Optional. Incorporate favorite and like status into channel sorting.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addCurrentProgram", + "in": "query", + "description": "Optional. Adds current program info to each channel.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Available live tv channels returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Channels/{channelId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel.", + "operationId": "GetChannel", + "parameters": [ + { + "name": "channelId", + "in": "path", + "description": "Channel id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Live tv channel returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/GuideInfo": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get guid info.", + "operationId": "GetGuideInfo", + "responses": { + "200": { + "description": "Guid info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/GuideInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Info": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv services.", + "operationId": "GetLiveTvInfo", + "responses": { + "200": { + "description": "Available live tv services returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveTvInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a listings provider.", + "operationId": "AddListingProvider", + "parameters": [ + { + "name": "pw", + "in": "query", + "description": "Password.", + "schema": { + "type": "string" + } + }, + { + "name": "validateListings", + "in": "query", + "description": "Validate listings.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateLogin", + "in": "query", + "description": "Validate login.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "description": "New listings info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created listings provider returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Delete listing provider.", + "operationId": "DeleteListingProvider", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Listing provider id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Listing provider deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Default": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets default listings provider info.", + "operationId": "GetDefaultListingProvider", + "responses": { + "200": { + "description": "Default listings provider info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ListingsProviderInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/Lineups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available lineups.", + "operationId": "GetLineups", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Provider id.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Provider type.", + "schema": { + "type": "string" + } + }, + { + "name": "location", + "in": "query", + "description": "Location.", + "schema": { + "type": "string" + } + }, + { + "name": "country", + "in": "query", + "description": "Country.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Available lineups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/ListingProviders/SchedulesDirect/Countries": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available countries.", + "operationId": "GetSchedulesDirectCountries", + "responses": { + "200": { + "description": "Available countries returned.", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/LiveRecordings/{recordingId}/stream": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording stream.", + "operationId": "GetLiveRecordingFile", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Recording stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Recording not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv channel stream.", + "operationId": "GetLiveStreamFile", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "container", + "in": "path", + "description": "Container type.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Stream not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/LiveTv/Programs": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetLiveTvPrograms", + "parameters": [ + { + "name": "channelIds", + "in": "query", + "description": "The channels to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "minStartDate", + "in": "query", + "description": "Optional. The minimum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "maxStartDate", + "in": "query", + "description": "Optional. The maximum premiere start date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minEndDate", + "in": "query", + "description": "Optional. The minimum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxEndDate", + "in": "query", + "description": "Optional. The maximum premiere end date.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "genres", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genre ids to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by series timer id.", + "schema": { + "type": "string" + } + }, + { + "name": "librarySeriesId", + "in": "query", + "description": "Optional. Filter by library series id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Gets available live tv epgs.", + "operationId": "GetPrograms", + "requestBody": { + "description": "Request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GetProgramsDto" + } + ], + "description": "Get programs dto." + } + } + } + }, + "responses": { + "200": { + "description": "Live tv epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Programs/Recommended": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recommended live tv epgs.", + "operationId": "GetRecommendedPrograms", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. filter by user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isAiring", + "in": "query", + "description": "Optional. Filter by programs that are currently airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasAired", + "in": "query", + "description": "Optional. Filter by programs that have completed airing, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "The genres to return guide information for.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Retrieve total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Recommended epgs returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Programs/{programId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv program.", + "operationId": "GetProgram", + "parameters": [ + { + "name": "programId", + "in": "path", + "description": "Program id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Program returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recordings.", + "operationId": "GetRecordings", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional. Filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional. Filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional. Filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional. Filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional. Filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isLibraryItem", + "in": "query", + "description": "Optional. Filter for is library item.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Folders": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets recording folders.", + "operationId": "GetRecordingFolders", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording folders returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording groups.", + "operationId": "GetRecordingGroups", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording groups returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Groups/{groupId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get recording group.", + "operationId": "GetRecordingGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "description": "Group id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/Series": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv recording series.", + "operationId": "GetRecordingsSeries", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "groupId", + "in": "query", + "description": "Optional. Filter by recording group.", + "schema": { + "type": "string" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "status", + "in": "query", + "description": "Optional. Filter by recording status.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ] + } + }, + { + "name": "isInProgress", + "in": "query", + "description": "Optional. Filter by recordings that are in progress, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by recordings belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Return total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Live tv recordings returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Recordings/{recordingId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv recording.", + "operationId": "GetRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Recording returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a live tv recording.", + "operationId": "DeleteRecording", + "parameters": [ + { + "name": "recordingId", + "in": "path", + "description": "Recording id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Recording deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets live tv series timers.", + "operationId": "GetSeriesTimers", + "parameters": [ + { + "name": "sortBy", + "in": "query", + "description": "Optional. Sort by SortName or Priority.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Optional. Sort in Ascending or Descending order.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Timers returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv series timer.", + "operationId": "CreateSeriesTimer", + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer info created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/SeriesTimers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a live tv series timer.", + "operationId": "GetSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Series timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "404": { + "description": "Series timer not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv series timer.", + "operationId": "CancelSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv series timer.", + "operationId": "UpdateSeriesTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New series timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + ], + "description": "Class SeriesTimerInfoDto." + } + } + } + }, + "responses": { + "204": { + "description": "Series timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Timers": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the live tv timers.", + "operationId": "GetTimers", + "parameters": [ + { + "name": "channelId", + "in": "query", + "description": "Optional. Filter by channel id.", + "schema": { + "type": "string" + } + }, + { + "name": "seriesTimerId", + "in": "query", + "description": "Optional. Filter by timers belonging to a series timer.", + "schema": { + "type": "string" + } + }, + { + "name": "isActive", + "in": "query", + "description": "Optional. Filter by timers that are active.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isScheduled", + "in": "query", + "description": "Optional. Filter by timers that are scheduled.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Creates a live tv timer.", + "operationId": "CreateTimer", + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Timers/Defaults": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets the default values for a new timer.", + "operationId": "GetDefaultTimer", + "parameters": [ + { + "name": "programId", + "in": "query", + "description": "Optional. To attach default values based on a program.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Default values returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Timers/{timerId}": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Gets a timer.", + "operationId": "GetTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Timer returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TimerInfoDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Cancels a live tv timer.", + "operationId": "CancelTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Timer deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Updates a live tv timer.", + "operationId": "UpdateTimer", + "parameters": [ + { + "name": "timerId", + "in": "path", + "description": "Timer id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New timer info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TimerInfoDto" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "Timer updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/TunerHosts": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Adds a tuner host.", + "operationId": "AddTunerHost", + "requestBody": { + "description": "New tuner host.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/TunerHostInfo" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Created tuner host returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + }, + "delete": { + "tags": [ + "LiveTv" + ], + "summary": "Deletes a tuner host.", + "operationId": "DeleteTunerHost", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Tuner host id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner host deleted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/TunerHosts/Types": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Get tuner host types.", + "operationId": "GetTunerHostTypes", + "responses": { + "200": { + "description": "Tuner host types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvAccess" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Tuners/Discvover": { + "get": { + "tags": [ + "LiveTv" + ], + "summary": "Discover tuners.", + "operationId": "DiscvoverTuners", + "parameters": [ + { + "name": "newDevicesOnly", + "in": "query", + "description": "Only discover new tuners.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Tuners returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/LiveTv/Tuners/{tunerId}/Reset": { + "post": { + "tags": [ + "LiveTv" + ], + "summary": "Resets a tv tuner.", + "operationId": "ResetTuner", + "parameters": [ + { + "name": "tunerId", + "in": "path", + "description": "Tuner id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Tuner reset." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LiveTvManagement" + ] + } + ] + } + }, + "/Localization/Countries": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known countries.", + "operationId": "GetCountries", + "responses": { + "200": { + "description": "Known countries returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/Cultures": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known cultures.", + "operationId": "GetCultures", + "responses": { + "200": { + "description": "Known cultures returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/Options": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets localization options.", + "operationId": "GetLocalizationOptions", + "responses": { + "200": { + "description": "Localization options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocalizationOption" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Localization/ParentalRatings": { + "get": { + "tags": [ + "Localization" + ], + "summary": "Gets known parental ratings.", + "operationId": "GetParentalRatings", + "responses": { + "200": { + "description": "Known parental ratings returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrDefault" + ] + } + ] + } + }, + "/Items/{itemId}/PlaybackInfo": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "operationId": "GetPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Gets live playback media info for an item.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "GetPostedPlaybackInfo", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "autoOpenLiveStream", + "in": "query", + "description": "Whether to auto open the livestream.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "enableTranscoding", + "in": "query", + "description": "Whether to enable transcoding. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether to allow to copy the video stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether to allow to copy the audio stream. Default: true.", + "deprecated": true, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The playback info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackInfoDto" + } + ], + "description": "Plabyback info dto." + } + } + } + }, + "responses": { + "200": { + "description": "Playback info returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaybackInfoResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Close": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Closes a media source.", + "operationId": "CloseLiveStream", + "parameters": [ + { + "name": "liveStreamId", + "in": "query", + "description": "The livestream id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Livestream closed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/LiveStreams/Open": { + "post": { + "tags": [ + "MediaInfo" + ], + "summary": "Opens a media source.", + "operationId": "OpenLiveStream", + "parameters": [ + { + "name": "openToken", + "in": "query", + "description": "The open token.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "The start time in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableDirectPlay", + "in": "query", + "description": "Whether to enable direct play. Default: true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableDirectStream", + "in": "query", + "description": "Whether to enable direct stream. Default: true.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "description": "The open live stream dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenLiveStreamDto" + } + ], + "description": "Open live stream dto." + } + } + } + }, + "responses": { + "200": { + "description": "Media source opened.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/LiveStreamResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playback/BitrateTest": { + "get": { + "tags": [ + "MediaInfo" + ], + "summary": "Tests the network with a request with the size of the bitrate.", + "operationId": "GetBitrateTestBytes", + "parameters": [ + { + "name": "size", + "in": "query", + "description": "The bitrate. Defaults to 102400.", + "schema": { + "maximum": 100000000, + "minimum": 1, + "type": "integer", + "format": "int32", + "default": 102400 + } + } + ], + "responses": { + "200": { + "description": "Test buffer returned.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Movies/Recommendations": { + "get": { + "tags": [ + "Movies" + ], + "summary": "Gets movie recommendations.", + "operationId": "GetMovieRecommendations", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. The fields to return.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "categoryLimit", + "in": "query", + "description": "The max number of categories to return.", + "schema": { + "type": "integer", + "format": "int32", + "default": 5 + } + }, + { + "name": "itemLimit", + "in": "query", + "description": "The max number of items to return per category.", + "schema": { + "type": "integer", + "format": "int32", + "default": 8 + } + } + ], + "responses": { + "200": { + "description": "Movie recommendations returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecommendationDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets all music genres from a given item, folder, or the entire library.", + "operationId": "GetMusicGenres", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Include total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Music genres returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/MusicGenres/{genreName}": { + "get": { + "tags": [ + "MusicGenres" + ], + "summary": "Gets a music genre, by name.", + "operationId": "GetMusicGenre", + "parameters": [ + { + "name": "genreName", + "in": "path", + "description": "The genre name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Admin": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sends a notification to all admins.", + "operationId": "CreateAdminNotification", + "requestBody": { + "description": "The notification request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AdminNotificationDto" + } + ], + "description": "The admin notification dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Notification sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Services": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets notification services.", + "operationId": "GetNotificationServices", + "responses": { + "200": { + "description": "All notification services returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/Types": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets notification types.", + "operationId": "GetNotificationTypes", + "responses": { + "200": { + "description": "All notification types returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTypeInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets a user's notifications.", + "operationId": "GetNotifications", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Notifications returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationResultDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Read": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sets notifications as read.", + "operationId": "SetRead", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Notifications set as read." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Summary": { + "get": { + "tags": [ + "Notifications" + ], + "summary": "Gets a user's notification summary.", + "operationId": "GetNotificationsSummary", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Summary of user's notifications returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/NotificationsSummaryDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Notifications/{userId}/Unread": { + "post": { + "tags": [ + "Notifications" + ], + "summary": "Sets notifications as unread.", + "operationId": "SetUnread", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Notifications set as unread." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Jellyfin.Plugin.OpenSubtitles/ValidateLoginInfo": { + "post": { + "tags": [ + "OpenSubtitles" + ], + "operationId": "ValidateLoginInfo", + "requestBody": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/LoginInfoInput" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/LoginInfoInput" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/LoginInfoInput" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets available packages.", + "operationId": "GetPackages", + "responses": { + "200": { + "description": "Available packages returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/Installed/{name}": { + "post": { + "tags": [ + "Package" + ], + "summary": "Installs a package.", + "operationId": "InstallPackage", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Package name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "query", + "description": "Optional version. Defaults to latest version.", + "schema": { + "type": "string" + } + }, + { + "name": "repositoryUrl", + "in": "query", + "description": "Optional. Specify the repository to install from.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Package found." + }, + "404": { + "description": "Package not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/Installing/{packageId}": { + "delete": { + "tags": [ + "Package" + ], + "summary": "Cancels a package installation.", + "operationId": "CancelPackageInstallation", + "parameters": [ + { + "name": "packageId", + "in": "path", + "description": "Installation Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Installation cancelled." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Packages/{name}": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets a package by name or assembly GUID.", + "operationId": "GetPackageInfo", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the package.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assemblyGuid", + "in": "query", + "description": "The GUID of the associated assembly.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PackageInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Repositories": { + "get": { + "tags": [ + "Package" + ], + "summary": "Gets all package repositories.", + "operationId": "GetRepositories", + "responses": { + "200": { + "description": "Package repositories returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Package" + ], + "summary": "Sets the enabled and existing package repositories.", + "operationId": "SetRepositories", + "requestBody": { + "description": "The list of package repositories.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Package repositories saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Gets all persons.", + "operationId": "GetPersons", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term.", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not. userId is required.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "excludePersonTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "appearsInItemId", + "in": "query", + "description": "Optional. If specified, person results will be filtered on items related to said persons.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Persons returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Persons/{name}": { + "get": { + "tags": [ + "Persons" + ], + "summary": "Get person by name.", + "operationId": "GetPerson", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Person name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Person returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/DurationHistogramReport": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetDurationHistogramReport", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "filter", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/GetTvShowsReport": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetTvShowsReport", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/HourlyReport": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetHourlyReport", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "filter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/MoviesReport": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetMovieReport", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/PlayActivity": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetUsageStats", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "filter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "dataType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/load_backup": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "LoadBackup", + "parameters": [ + { + "name": "backupFilePath", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/save_backup": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "SaveBackup", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/submit_custom_query": { + "post": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "CustomQuery", + "requestBody": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomQueryData" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomQueryData" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CustomQueryData" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/type_filter_list": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetTypeFilterList", + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/user_activity": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetUserReport", + "parameters": [ + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/user_list": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetJellyfinUsers", + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/user_manage/add": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "IgnoreListAdd", + "parameters": [ + { + "name": "id", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/user_manage/prune": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "PruneUnknownUsers", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/user_manage/remove": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "IgnoreListRemove", + "parameters": [ + { + "name": "id", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/{breakdownType}/BreakdownReport": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetBreakdownReport", + "parameters": [ + { + "name": "breakdownType", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/user_usage_stats/{userId}/{date}/GetItems": { + "get": { + "tags": [ + "PlaybackReportingActivity" + ], + "operationId": "GetUserReportData", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "date", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "timezoneOffset", + "in": "query", + "schema": { + "type": "number", + "format": "float" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Creates a new playlist.", + "description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.", + "operationId": "CreatePlaylist", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The playlist name.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "The item ids.", + "deprecated": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media type.", + "deprecated": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The create playlist payload.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatePlaylistDto" + } + ], + "description": "Create new playlist dto." + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PlaylistCreationResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Adds items to a playlist.", + "operationId": "AddToPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ids", + "in": "query", + "description": "Item id, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "The userId.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Items added to playlist." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playlists" + ], + "summary": "Removes items from a playlist.", + "operationId": "RemoveFromPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "entryIds", + "in": "query", + "description": "The item ids, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "204": { + "description": "Items removed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "get": { + "tags": [ + "Playlists" + ], + "summary": "Gets the original items of a playlist.", + "operationId": "GetPlaylistItems", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + } + ], + "responses": { + "200": { + "description": "Original playlist returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Playlist not found." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": { + "post": { + "tags": [ + "Playlists" + ], + "summary": "Moves a playlist item.", + "operationId": "MoveItem", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "description": "The playlist id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newIndex", + "in": "path", + "description": "The new index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Item moved to new index." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has started within a session.", + "operationId": "ReportPlaybackStart", + "requestBody": { + "description": "The playback start info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStartInfo" + } + ], + "description": "Class PlaybackStartInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Ping": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Pings a playback session.", + "operationId": "PingPlaybackSession", + "parameters": [ + { + "name": "playSessionId", + "in": "query", + "description": "Playback session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback session pinged." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback progress within a session.", + "operationId": "ReportPlaybackProgress", + "requestBody": { + "description": "The playback progress info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackProgressInfo" + } + ], + "description": "Class PlaybackProgressInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Playing/Stopped": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports playback has stopped within a session.", + "operationId": "ReportPlaybackStopped", + "requestBody": { + "description": "The playback stop info.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackStopInfo" + } + ], + "description": "Class PlaybackStopInfo." + } + } + } + }, + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayedItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as played for user.", + "operationId": "MarkPlayedItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "datePlayed", + "in": "query", + "description": "Optional. The date the item was played.", + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "Item marked as played.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Marks an item as unplayed for user.", + "operationId": "MarkUnplayedItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as unplayed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayingItems/{itemId}": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a user has begun playing an item.", + "operationId": "OnPlaybackStart", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "canSeek", + "in": "query", + "description": "Indicates if the client can seek.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play start recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Playstate" + ], + "summary": "Reports that a user has stopped playing an item.", + "operationId": "OnPlaybackStopped", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "nextMediaType", + "in": "query", + "description": "The next media type that will play.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playback stop recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/PlayingItems/{itemId}/Progress": { + "post": { + "tags": [ + "Playstate" + ], + "summary": "Reports a user's playback progress.", + "operationId": "OnPlaybackProgress", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The id of the MediaSource.", + "schema": { + "type": "string" + } + }, + { + "name": "positionTicks", + "in": "query", + "description": "Optional. The current position, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "The audio stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "The subtitle stream index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "volumeLevel", + "in": "query", + "description": "Scale of 0-100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "playMethod", + "in": "query", + "description": "The play method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ] + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "repeatMode", + "in": "query", + "description": "The repeat mode.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ] + } + }, + { + "name": "isPaused", + "in": "query", + "description": "Indicates if the player is paused.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isMuted", + "in": "query", + "description": "Indicates if the player is muted.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "Play progress recorded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a list of currently installed plugins.", + "operationId": "GetPlugins", + "responses": { + "200": { + "description": "Installed plugins returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PluginInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin.", + "operationId": "UninstallPlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Configuration": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets plugin configuration.", + "operationId": "GetPluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Plugin configuration returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BasePluginConfiguration" + } + } + } + }, + "404": { + "description": "Plugin not found or plugin configuration not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "Plugins" + ], + "summary": "Updates plugin configuration.", + "description": "Accepts plugin configuration as JSON body.", + "operationId": "UpdatePluginConfiguration", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin configuration updated." + }, + "404": { + "description": "Plugin not found or plugin does not have configuration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/Manifest": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's manifest.", + "operationId": "GetPluginManifest", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Plugin manifest returned." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}": { + "delete": { + "tags": [ + "Plugins" + ], + "summary": "Uninstalls a plugin by version.", + "operationId": "UninstallPluginByVersion", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin uninstalled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Disable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Disable a plugin.", + "operationId": "DisablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin disabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Enable": { + "post": { + "tags": [ + "Plugins" + ], + "summary": "Enables a disabled plugin.", + "operationId": "EnablePlugin", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Plugin enabled." + }, + "404": { + "description": "Plugin not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation", + "DefaultAuthorization" + ] + } + ] + } + }, + "/Plugins/{pluginId}/{version}/Image": { + "get": { + "tags": [ + "Plugins" + ], + "summary": "Gets a plugin's image.", + "operationId": "GetPluginImage", + "parameters": [ + { + "name": "pluginId", + "in": "path", + "description": "Plugin id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "version", + "in": "path", + "description": "Plugin version.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Plugin image returned.", + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Authorize": { + "post": { + "tags": [ + "QuickConnect" + ], + "summary": "Authorizes a pending quick connect request.", + "operationId": "Authorize", + "parameters": [ + { + "name": "code", + "in": "query", + "description": "Quick connect code to authorize.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result authorized successfully.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + }, + "403": { + "description": "Unknown user id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/QuickConnect/Connect": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Attempts to retrieve authentication information.", + "operationId": "Connect", + "parameters": [ + { + "name": "secret", + "in": "query", + "description": "Secret previously returned from the Initiate endpoint.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Quick connect result returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "404": { + "description": "Unknown quick connect secret.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/QuickConnect/Enabled": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Gets the current quick connect state.", + "operationId": "GetEnabled", + "responses": { + "200": { + "description": "Quick connect state returned.", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "boolean" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "boolean" + } + } + } + } + } + } + }, + "/QuickConnect/Initiate": { + "get": { + "tags": [ + "QuickConnect" + ], + "summary": "Initiate a new quick connect request.", + "operationId": "Initiate", + "responses": { + "200": { + "description": "Quick connect request successfully created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/QuickConnectResult" + } + } + } + }, + "401": { + "description": "Quick connect is not active on this server." + } + } + } + }, + "/Items/{itemId}/RemoteImages": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote images for an item.", + "operationId": "GetRemoteImages", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ] + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "providerName", + "in": "query", + "description": "Optional. The image provider to use.", + "schema": { + "type": "string" + } + }, + { + "name": "includeAllLanguages", + "in": "query", + "description": "Optional. Include all languages.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Remote Images returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/RemoteImageResult" + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Download": { + "post": { + "tags": [ + "RemoteImage" + ], + "summary": "Downloads a remote image for an item.", + "operationId": "DownloadRemoteImage", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "type", + "in": "query", + "description": "The image type.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Enum ImageType." + } + }, + { + "name": "imageUrl", + "in": "query", + "description": "The image url.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Remote image downloaded." + }, + "404": { + "description": "Remote image not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteImages/Providers": { + "get": { + "tags": [ + "RemoteImage" + ], + "summary": "Gets available remote image providers for an item.", + "operationId": "GetRemoteImageProviders", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "Item Id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Returned remote image providers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageProviderInfo" + } + } + } + } + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Reports/Activities": { + "get": { + "tags": [ + "Reports" + ], + "operationId": "GetActivityLogs", + "parameters": [ + { + "name": "reportView", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "displayType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hasQueryLimit", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "groupBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "reportColumns", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Reports/Headers": { + "get": { + "tags": [ + "Reports" + ], + "operationId": "GetReportHeaders", + "parameters": [ + { + "name": "reportView", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Reports/Items": { + "get": { + "tags": [ + "Reports" + ], + "operationId": "GetItemReport", + "parameters": [ + { + "name": "hasThemeSong", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minIndexNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isMissing", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaried", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "airedDuringSeason", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hasOverview", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isInBoxSet", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortOrder", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "filters", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isFavorite", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNotFavorite", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "imageTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isPlayed", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "genreIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "officialRatings", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "years", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "enableUserData", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "person", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "studios", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "artists", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "artistIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "albums", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "albumIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "videoTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minOfficialRating", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "is3D", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "reportView", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "displayType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hasQueryLimit", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "groupBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "reportColumns", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReportResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Reports/Items/Download": { + "get": { + "tags": [ + "Reports" + ], + "operationId": "GetReportDownload", + "parameters": [ + { + "name": "hasThemeSong", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minIndexNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isMissing", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaried", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "airedDuringSeason", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hasOverview", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isInBoxSet", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortOrder", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "fields", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "filters", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isFavorite", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNotFavorite", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "imageTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sortBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isPlayed", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "genreIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "officialRatings", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "years", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "enableUserData", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "person", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "studios", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "artists", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "artistIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "albums", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "albumIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "videoTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minOfficialRating", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "is3D", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "reportView", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "displayType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hasQueryLimit", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "groupBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "reportColumns", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "minDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "exportType", + "in": "query", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReportExportType" + } + ], + "default": "CSV" + } + }, + { + "name": "enableImages", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReportResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Lastfm/Login": { + "post": { + "tags": [ + "RestApi" + ], + "operationId": "CreateMobileSession", + "requestBody": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/LastFMUser" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/ScheduledTasks": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get tasks.", + "operationId": "GetTasks", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter tasks that are hidden, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isEnabled", + "in": "query", + "description": "Optional filter tasks that are enabled, or not.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Scheduled tasks retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/Running/{taskId}": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Start specified task.", + "operationId": "StartTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task started." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "delete": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Stop specified task.", + "operationId": "StopTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Task stopped." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}": { + "get": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Get task by id.", + "operationId": "GetTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Task retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/TaskInfo" + } + } + } + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/ScheduledTasks/{taskId}/Triggers": { + "post": { + "tags": [ + "ScheduledTasks" + ], + "summary": "Update specified task triggers.", + "operationId": "UpdateTask", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task Id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Triggers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Task triggers updated." + }, + "404": { + "description": "Task not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Search/Hints": { + "get": { + "tags": [ + "Search" + ], + "summary": "Gets the search hint result.", + "operationId": "Get", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Supply a user id to search within a user's library or omit to search all.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "The search term to filter on.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "If specified, only results with the specified item types are returned. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "If specified, results with these item types are filtered out. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "If specified, only results with the specified media types are returned. This allows multiple, comma delimeted.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "If specified, only children of the parent are returned.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "includePeople", + "in": "query", + "description": "Optional filter whether to include people.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeMedia", + "in": "query", + "description": "Optional filter whether to include media.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeGenres", + "in": "query", + "description": "Optional filter whether to include genres.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeStudios", + "in": "query", + "description": "Optional filter whether to include studios.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "includeArtists", + "in": "query", + "description": "Optional filter whether to include artists.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Search hint returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SearchHintResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Auth/PasswordResetProviders": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all password reset providers.", + "operationId": "GetPasswordResetProviders", + "responses": { + "200": { + "description": "Password reset providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Auth/Providers": { + "get": { + "tags": [ + "Session" + ], + "summary": "Get all auth providers.", + "operationId": "GetAuthProviders", + "responses": { + "200": { + "description": "Auth providers retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Sessions": { + "get": { + "tags": [ + "Session" + ], + "summary": "Gets a list of sessions.", + "operationId": "GetSessions", + "parameters": [ + { + "name": "controllableByUserId", + "in": "query", + "description": "Filter by sessions that a given user is allowed to remote control.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "Filter by device Id.", + "schema": { + "type": "string" + } + }, + { + "name": "activeWithinSeconds", + "in": "query", + "description": "Optional. Filter by sessions that were active in the last n seconds.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "List of sessions returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "playableMediaTypes", + "in": "query", + "description": "A list of playable media types, comma delimited. Audio, Video, Book, Photo.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "supportedCommands", + "in": "query", + "description": "A list of supported remote control commands, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + } + } + }, + { + "name": "supportsMediaControl", + "in": "query", + "description": "Determines whether media can be played remotely..", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsSync", + "in": "query", + "description": "Determines whether sync is supported.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "supportsPersistentIdentifier", + "in": "query", + "description": "Determines whether the device supports a unique identifier.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "204": { + "description": "Capabilities posted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Capabilities/Full": { + "post": { + "tags": [ + "Session" + ], + "summary": "Updates capabilities for a device.", + "operationId": "PostFullCapabilities", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.ClientCapabilities.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilitiesDto" + } + ], + "description": "Client capabilities dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Capabilities updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Logout": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session has ended.", + "operationId": "ReportSessionEnded", + "responses": { + "204": { + "description": "Session end reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Reports that a session is viewing an item.", + "operationId": "ReportViewing", + "parameters": [ + { + "name": "sessionId", + "in": "query", + "description": "The session id.", + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Session reported to server." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a full general command to a client.", + "operationId": "SendFullGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.GeneralCommand.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Full general command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Command/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a general command to a client.", + "operationId": "SendGeneralCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "General command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Message": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a command to a client to display a message to the user.", + "operationId": "SendMessageCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The MediaBrowser.Model.Session.MessageCommand object containing Header, Message Text, and TimeoutMs.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MessageCommand" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Message sent." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to play an item.", + "operationId": "Play", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "playCommand", + "in": "query", + "description": "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Enum PlayCommand." + } + }, + { + "name": "itemIds", + "in": "query", + "description": "The ids of the items to play, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The starting position of the first item.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "Optional. The media source id.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to play.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Playing/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a playstate command to a client.", + "operationId": "SendPlaystateCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The MediaBrowser.Model.Session.PlaystateCommand.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + } + }, + { + "name": "seekPositionTicks", + "in": "query", + "description": "The optional position ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "controllingUserId", + "in": "query", + "description": "The optional controlling user id.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Playstate command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/System/{command}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Issues a system command to a client.", + "operationId": "SendSystemCommand", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "command", + "in": "path", + "description": "The command to send.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + } + } + ], + "responses": { + "204": { + "description": "System command sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/User/{userId}": { + "post": { + "tags": [ + "Session" + ], + "summary": "Adds an additional user to a session.", + "operationId": "AddUserToSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User added to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "Session" + ], + "summary": "Removes an additional user from a session.", + "operationId": "RemoveUserFromSession", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User removed from session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Sessions/{sessionId}/Viewing": { + "post": { + "tags": [ + "Session" + ], + "summary": "Instructs a session to browse to an item or view.", + "operationId": "DisplayContent", + "parameters": [ + { + "name": "sessionId", + "in": "path", + "description": "The session Id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemType", + "in": "query", + "description": "The type of item to browse to.", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "The base item kind." + } + }, + { + "name": "itemId", + "in": "query", + "description": "The Id of the item.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemName", + "in": "query", + "description": "The name of the item.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Instruction sent to session." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Startup/Complete": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Completes the startup wizard.", + "operationId": "CompleteWizard", + "responses": { + "204": { + "description": "Startup wizard completed." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/Configuration": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the initial startup wizard configuration.", + "operationId": "GetStartupConfiguration", + "responses": { + "200": { + "description": "Initial startup wizard configuration retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the initial startup wizard configuration.", + "operationId": "UpdateInitialConfiguration", + "requestBody": { + "description": "The updated startup configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupConfigurationDto" + } + ], + "description": "The startup configuration DTO." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/FirstUser": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser_2", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/RemoteAccess": { + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets remote access and UPnP.", + "operationId": "SetRemoteAccess", + "requestBody": { + "description": "The startup remote access dto.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupRemoteAccessDto" + } + ], + "description": "Startup remote access dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Configuration saved." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Startup/User": { + "get": { + "tags": [ + "Startup" + ], + "summary": "Gets the first user.", + "operationId": "GetFirstUser", + "responses": { + "200": { + "description": "Initial user retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/StartupUserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + }, + "post": { + "tags": [ + "Startup" + ], + "summary": "Sets the user name and password.", + "operationId": "UpdateStartupUser", + "requestBody": { + "description": "The DTO containing username and password.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/StartupUserDto" + } + ], + "description": "The startup user DTO." + } + } + } + }, + "responses": { + "204": { + "description": "Updated user name and password." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrElevated" + ] + } + ] + } + }, + "/Studios": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets all studios from a given item, folder, or the entire library.", + "operationId": "GetStudios", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Search term.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Total record count.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Studios returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Studios/{name}": { + "get": { + "tags": [ + "Studios" + ], + "summary": "Gets a studio by name.", + "operationId": "GetStudio", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Studio name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Studio returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a list of available fallback font files.", + "operationId": "GetFallbackFontList", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FontFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/FallbackFont/Fonts/{name}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets a fallback font file.", + "operationId": "GetFallbackFont", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "The name of the fallback font file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Fallback font file retrieved.", + "content": { + "font/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{language}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Search remote subtitles.", + "operationId": "SearchRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "language", + "in": "path", + "description": "The language of the subtitles.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "isPerfectMatch", + "in": "query", + "description": "Optional. Only show subtitles which are a perfect match.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Subtitles retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSubtitleInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Items/{itemId}/RemoteSearch/Subtitles/{subtitleId}": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Downloads a remote subtitle.", + "operationId": "DownloadRemoteSubtitles", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "subtitleId", + "in": "path", + "description": "The subtitle id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Subtitle downloaded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Providers/Subtitles/Subtitles/{id}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets the remote subtitles.", + "operationId": "GetRemoteSubtitles", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles": { + "post": { + "tags": [ + "Subtitle" + ], + "summary": "Upload an external subtitle file.", + "operationId": "UploadSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item the subtitle belongs to.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UploadSubtitleDto" + } + ], + "description": "Upload subtitles dto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Subtitle uploaded." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/Subtitles/{index}": { + "delete": { + "tags": [ + "Subtitle" + ], + "summary": "Deletes an external subtitle file.", + "operationId": "DeleteSubtitle", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The index of the subtitle file.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "Subtitle deleted." + }, + "404": { + "description": "Item not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/{mediaSourceId}/Subtitles/{index}/subtitles.m3u8": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets an HLS subtitle playlist.", + "operationId": "GetSubtitlePlaylist", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "index", + "in": "path", + "description": "The subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "The media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The subtitle segment length.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Subtitle playlist retrieved.", + "content": { + "application/x-mpegURL": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitle", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{routeItemId}/{routeMediaSourceId}/Subtitles/{routeIndex}/{routeStartPositionTicks}/Stream.{routeFormat}": { + "get": { + "tags": [ + "Subtitle" + ], + "summary": "Gets subtitles in a specified format.", + "operationId": "GetSubtitleWithTicks", + "parameters": [ + { + "name": "routeItemId", + "in": "path", + "description": "The (route) item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "routeMediaSourceId", + "in": "path", + "description": "The (route) media source id.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "routeIndex", + "in": "path", + "description": "The (route) subtitle stream index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "routeStartPositionTicks", + "in": "path", + "description": "The (route) start position of the subtitle in ticks.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "routeFormat", + "in": "path", + "description": "The (route) format of the returned subtitle.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "itemId", + "in": "query", + "description": "The item id.", + "deprecated": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media source id.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "description": "The subtitle stream index.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startPositionTicks", + "in": "query", + "description": "The start position of the subtitle in ticks.", + "deprecated": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "format", + "in": "query", + "description": "The format of the returned subtitle.", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "endPositionTicks", + "in": "query", + "description": "Optional. The end position of the subtitle in ticks.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Optional. Whether to copy the timestamps.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "addVttTimeMap", + "in": "query", + "description": "Optional. Whether to add a VTT time map.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "File returned.", + "content": { + "text/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Users/{userId}/Suggestions": { + "get": { + "tags": [ + "Suggestions" + ], + "summary": "Gets suggestions.", + "operationId": "GetSuggestions", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaType", + "in": "query", + "description": "The media types.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "type", + "in": "query", + "description": "The type.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The start index.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The limit.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total record count.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Suggestions returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/SyncPlay/Buffering": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is buffering.", + "operationId": "SyncPlayBuffering", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/BufferRequestDto" + } + ], + "description": "Class BufferRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Join": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Join an existing SyncPlay group.", + "operationId": "SyncPlayJoinGroup", + "requestBody": { + "description": "The group to join.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/JoinGroupRequestDto" + } + ], + "description": "Class JoinGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group join successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Leave": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Leave the joined SyncPlay group.", + "operationId": "SyncPlayLeaveGroup", + "responses": { + "204": { + "description": "Group leave successful." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/List": { + "get": { + "tags": [ + "SyncPlay" + ], + "summary": "Gets all SyncPlay groups.", + "operationId": "SyncPlayGetGroups", + "responses": { + "200": { + "description": "Groups returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupInfoDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayJoinGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/MovePlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to move an item in the playlist in SyncPlay group.", + "operationId": "SyncPlayMovePlaylistItem", + "requestBody": { + "description": "The new position for the item.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MovePlaylistItemRequestDto" + } + ], + "description": "Class MovePlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/New": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Create a new SyncPlay group.", + "operationId": "SyncPlayCreateGroup", + "requestBody": { + "description": "The settings of the new group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NewGroupRequestDto" + } + ], + "description": "Class NewGroupRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "New group created." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayCreateGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/NextItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request next item in SyncPlay group.", + "operationId": "SyncPlayNextItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NextItemRequestDto" + } + ], + "description": "Class NextItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Next item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Pause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request pause in SyncPlay group.", + "operationId": "SyncPlayPause", + "responses": { + "204": { + "description": "Pause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Ping": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Update session ping.", + "operationId": "SyncPlayPing", + "requestBody": { + "description": "The new ping.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PingRequestDto" + } + ], + "description": "Class PingRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Ping updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/PreviousItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request previous item in SyncPlay group.", + "operationId": "SyncPlayPreviousItem", + "requestBody": { + "description": "The current item information.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PreviousItemRequestDto" + } + ], + "description": "Class PreviousItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Previous item update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Queue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to queue items to the playlist of a SyncPlay group.", + "operationId": "SyncPlayQueue", + "requestBody": { + "description": "The items to add.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QueueRequestDto" + } + ], + "description": "Class QueueRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Ready": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Notify SyncPlay group that member is ready for playback.", + "operationId": "SyncPlayReady", + "requestBody": { + "description": "The player status.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ReadyRequestDto" + } + ], + "description": "Class ReadyRequest." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Group state update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/RemoveFromPlaylist": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to remove items from the playlist in SyncPlay group.", + "operationId": "SyncPlayRemoveFromPlaylist", + "requestBody": { + "description": "The items to remove.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoveFromPlaylistRequestDto" + } + ], + "description": "Class RemoveFromPlaylistRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Seek": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request seek in SyncPlay group.", + "operationId": "SyncPlaySeek", + "requestBody": { + "description": "The new playback position.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SeekRequestDto" + } + ], + "description": "Class SeekRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Seek update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetIgnoreWait": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request SyncPlay group to ignore member during group-wait.", + "operationId": "SyncPlaySetIgnoreWait", + "requestBody": { + "description": "The settings to set.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreWaitRequestDto" + } + ], + "description": "Class IgnoreWaitRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Member state updated." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetNewQueue": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set new playlist in SyncPlay group.", + "operationId": "SyncPlaySetNewQueue", + "requestBody": { + "description": "The new playlist to play in the group.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayRequestDto" + } + ], + "description": "Class PlayRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetPlaylistItem": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to change playlist item in SyncPlay group.", + "operationId": "SyncPlaySetPlaylistItem", + "requestBody": { + "description": "The new item to play.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetPlaylistItemRequestDto" + } + ], + "description": "Class SetPlaylistItemRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetRepeatMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set repeat mode in SyncPlay group.", + "operationId": "SyncPlaySetRepeatMode", + "requestBody": { + "description": "The new repeat mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetRepeatModeRequestDto" + } + ], + "description": "Class SetRepeatModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/SetShuffleMode": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request to set shuffle mode in SyncPlay group.", + "operationId": "SyncPlaySetShuffleMode", + "requestBody": { + "description": "The new shuffle mode.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SetShuffleModeRequestDto" + } + ], + "description": "Class SetShuffleModeRequestDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Play queue update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Stop": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request stop in SyncPlay group.", + "operationId": "SyncPlayStop", + "responses": { + "204": { + "description": "Stop update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/SyncPlay/Unpause": { + "post": { + "tags": [ + "SyncPlay" + ], + "summary": "Request unpause in SyncPlay group.", + "operationId": "SyncPlayUnpause", + "responses": { + "204": { + "description": "Unpause update sent to all group members." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "SyncPlayIsInGroup", + "SyncPlayHasAccess" + ] + } + ] + } + }, + "/System/Endpoint": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the request endpoint.", + "operationId": "GetEndpointInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/EndPointInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/System/Info": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets information about the server.", + "operationId": "GetSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/SystemInfo" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "FirstTimeSetupOrIgnoreParentalControl" + ] + } + ] + } + }, + "/System/Info/Public": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets public information about the server.", + "operationId": "GetPublicSystemInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PublicSystemInfo" + } + } + } + } + } + } + }, + "/System/Logs": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a list of available server log files.", + "operationId": "GetServerLogs", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogFile" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Logs/Log": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets a log file.", + "operationId": "GetLogFile", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "The name of the log file to get.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Log file retrieved.", + "content": { + "text/plain": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/Ping": { + "get": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "GetPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "post": { + "tags": [ + "System" + ], + "summary": "Pings the system.", + "operationId": "PostPingSystem", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "string" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/System/Restart": { + "post": { + "tags": [ + "System" + ], + "summary": "Restarts the application.", + "operationId": "RestartApplication", + "responses": { + "204": { + "description": "Server restarted." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "LocalAccessOrRequiresElevation" + ] + } + ] + } + }, + "/System/Shutdown": { + "post": { + "tags": [ + "System" + ], + "summary": "Shuts down the application.", + "operationId": "ShutdownApplication", + "responses": { + "204": { + "description": "Server shut down." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/System/WakeOnLanInfo": { + "get": { + "tags": [ + "System" + ], + "summary": "Gets wake on lan information.", + "operationId": "GetWakeOnLanInfo", + "responses": { + "200": { + "description": "Information retrieved.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WakeOnLanInfo" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "deprecated": true, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/GetUtcTime": { + "get": { + "tags": [ + "TimeSync" + ], + "summary": "Gets the current UTC time.", + "operationId": "GetUtcTime", + "responses": { + "200": { + "description": "Time returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UtcTimeResponse" + } + } + } + } + } + } + }, + "/Tmdb/ClientConfiguration": { + "get": { + "tags": [ + "Tmdb" + ], + "summary": "Gets the TMDb image configuration options.", + "operationId": "TmdbClientConfiguration", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfigImageTypes" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Trailers": { + "get": { + "tags": [ + "Trailers" + ], + "summary": "Finds movies and trailers similar to a given trailer.", + "operationId": "GetTrailers", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "maxOfficialRating", + "in": "query", + "description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "hasThemeSong", + "in": "query", + "description": "Optional filter by items with theme songs.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasThemeVideo", + "in": "query", + "description": "Optional filter by items with theme videos.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSubtitles", + "in": "query", + "description": "Optional filter by items with subtitles.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasSpecialFeature", + "in": "query", + "description": "Optional filter by items with special features.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTrailer", + "in": "query", + "description": "Optional filter by items with trailers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "parentIndexNumber", + "in": "query", + "description": "Optional filter by parent index number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasParentalRating", + "in": "query", + "description": "Optional filter by items that have or do not have a parental rating.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isHd", + "in": "query", + "description": "Optional filter by items that are HD or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "is4K", + "in": "query", + "description": "Optional filter by items that are 4K or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "locationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "excludeLocationTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LocationType" + } + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isUnaired", + "in": "query", + "description": "Optional filter by items that are unaired episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minCommunityRating", + "in": "query", + "description": "Optional filter by minimum community rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minCriticRating", + "in": "query", + "description": "Optional filter by minimum critic rating.", + "schema": { + "type": "number", + "format": "double" + } + }, + { + "name": "minPremiereDate", + "in": "query", + "description": "Optional. The minimum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSaved", + "in": "query", + "description": "Optional. The minimum last saved date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "minDateLastSavedForUser", + "in": "query", + "description": "Optional. The minimum last saved date for the current user. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "maxPremiereDate", + "in": "query", + "description": "Optional. The maximum premiere date. Format = ISO.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "hasOverview", + "in": "query", + "description": "Optional filter by items that have an overview or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasImdbId", + "in": "query", + "description": "Optional filter by items that have an imdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTmdbId", + "in": "query", + "description": "Optional filter by items that have a tmdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasTvdbId", + "in": "query", + "description": "Optional filter by items that have a tvdb id or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMovie", + "in": "query", + "description": "Optional filter for live tv movies.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSeries", + "in": "query", + "description": "Optional filter for live tv series.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isNews", + "in": "query", + "description": "Optional filter for live tv news.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isKids", + "in": "query", + "description": "Optional filter for live tv kids.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isSports", + "in": "query", + "description": "Optional filter for live tv sports.", + "schema": { + "type": "boolean" + } + }, + { + "name": "excludeItemIds", + "in": "query", + "description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "recursive", + "in": "query", + "description": "When searching within folders, this determines whether or not the search will be recursive. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "searchTerm", + "in": "query", + "description": "Optional. Filter based on a search term.", + "schema": { + "type": "string" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "filters", + "in": "query", + "description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFilter" + } + } + }, + { + "name": "isFavorite", + "in": "query", + "description": "Optional filter by items that are marked as favorite, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "imageTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Optional filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "genres", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "officialRatings", + "in": "query", + "description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "tags", + "in": "query", + "description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "years", + "in": "query", + "description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional, include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "person", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person.", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified person id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "personTypes", + "in": "query", + "description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "studios", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "artists", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "artistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albumArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "contributingArtistIds", + "in": "query", + "description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "albums", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "albumIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "ids", + "in": "query", + "description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "videoTypes", + "in": "query", + "description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoType" + } + } + }, + { + "name": "minOfficialRating", + "in": "query", + "description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).", + "schema": { + "type": "string" + } + }, + { + "name": "isLocked", + "in": "query", + "description": "Optional filter by items that are locked.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isPlaceHolder", + "in": "query", + "description": "Optional filter by items that are placeholders.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hasOfficialRating", + "in": "query", + "description": "Optional filter by items that have official ratings.", + "schema": { + "type": "boolean" + } + }, + { + "name": "collapseBoxSetItems", + "in": "query", + "description": "Whether or not to hide items behind their boxsets.", + "schema": { + "type": "boolean" + } + }, + { + "name": "minWidth", + "in": "query", + "description": "Optional. Filter by the minimum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minHeight", + "in": "query", + "description": "Optional. Filter by the minimum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. Filter by the maximum width of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. Filter by the maximum height of the item.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "is3D", + "in": "query", + "description": "Optional filter by items that are 3D, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "seriesStatus", + "in": "query", + "description": "Optional filter by Series Status. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesStatus" + } + } + }, + { + "name": "nameStartsWithOrGreater", + "in": "query", + "description": "Optional filter by items whose name is sorted equally or greater than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameStartsWith", + "in": "query", + "description": "Optional filter by items whose name is sorted equally than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "nameLessThan", + "in": "query", + "description": "Optional filter by items whose name is equally or lesser than a given input string.", + "schema": { + "type": "string" + } + }, + { + "name": "studioIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "genreIds", + "in": "query", + "description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Optional. Enable the total record count.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/NextUp": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of next up episodes.", + "operationId": "GetNextUp", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the next up episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "seriesId", + "in": "query", + "description": "Optional. Filter by series id.", + "schema": { + "type": "string" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "nextUpDateCutoff", + "in": "query", + "description": "Optional. Starting date of shows to show in Next Up section.", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "enableTotalRecordCount", + "in": "query", + "description": "Whether to enable the total records count. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "disableFirstEpisode", + "in": "query", + "description": "Whether to disable sending the first episode in a series as next up.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRewatching", + "in": "query", + "description": "Whether to include watched episode in next up results.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/Upcoming": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets a list of upcoming episodes.", + "operationId": "GetUpcomingEpisodes", + "parameters": [ + { + "name": "userId", + "in": "query", + "description": "The user id of the user to get the upcoming episodes for.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Episodes": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets episodes for a tv season.", + "operationId": "GetEpisodes", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "season", + "in": "query", + "description": "Optional filter by season number.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "seasonId", + "in": "query", + "description": "Optional. Filter by season id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "startItemId", + "in": "query", + "description": "Optional. Skip through the list until a given item is found.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional, include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional, the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Shows/{seriesId}/Seasons": { + "get": { + "tags": [ + "TvShows" + ], + "summary": "Gets seasons for a tv series.", + "operationId": "GetSeasons", + "parameters": [ + { + "name": "seriesId", + "in": "path", + "description": "The series id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "isSpecialSeason", + "in": "query", + "description": "Optional. Filter by special season.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isMissing", + "in": "query", + "description": "Optional. Filter by items that are missing episodes or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "adjacentTo", + "in": "query", + "description": "Optional. Return items that are siblings of a supplied item.", + "schema": { + "type": "string" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Audio/{itemId}/universal": { + "get": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "GetUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "type": "string" + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "head": { + "tags": [ + "UniversalAudio" + ], + "summary": "Gets an audio stream.", + "operationId": "HeadUniversalAudioStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "Optional. The audio container.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. The user id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. The audio codec to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "transcodingAudioChannels", + "in": "query", + "description": "Optional. The number of how many audio channels to transcode to.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxStreamingBitrate", + "in": "query", + "description": "Optional. The maximum streaming bitrate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "transcodingContainer", + "in": "query", + "description": "Optional. The container to transcode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodingProtocol", + "in": "query", + "description": "Optional. The transcoding protocol.", + "schema": { + "type": "string" + } + }, + { + "name": "maxAudioSampleRate", + "in": "query", + "description": "Optional. The maximum audio sample rate.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableRemoteMedia", + "in": "query", + "description": "Optional. Whether to enable remote media.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "enableRedirection", + "in": "query", + "description": "Whether to enable redirection. Defaults to true.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Audio stream returned.", + "content": { + "audio/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "302": { + "description": "Redirected to remote audio stream." + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/FavoriteItems/{itemId}": { + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Marks an item as a favorite.", + "operationId": "MarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item marked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Unmarks item as a favorite.", + "operationId": "UnmarkFavoriteItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item unmarked as favorite.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Latest": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets latest media.", + "operationId": "GetLatestMedia", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "isPlayed", + "in": "query", + "description": "Filter by items that are played, or not.", + "schema": { + "type": "boolean" + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. include image information in output.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. the max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "limit", + "in": "query", + "description": "Return item limit.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + }, + { + "name": "groupItems", + "in": "query", + "description": "Whether or not to group items into a parent container.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Latest media returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/Root": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets the root folder from a user's library.", + "operationId": "GetRootFolder", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Root folder returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets an item from a user's library.", + "operationId": "GetItem", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Item returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/Intros": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets intros to play before the main media item plays.", + "operationId": "GetIntros", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Intros returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/LocalTrailers": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets local trailers for an item.", + "operationId": "GetLocalTrailers", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/Rating": { + "delete": { + "tags": [ + "UserLibrary" + ], + "summary": "Deletes a user's saved personal rating for an item.", + "operationId": "DeleteUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Personal rating removed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + }, + "post": { + "tags": [ + "UserLibrary" + ], + "summary": "Updates a user's rating for an item.", + "operationId": "UpdateUserItemRating", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "likes", + "in": "query", + "description": "Whether this M:Jellyfin.Api.Controllers.UserLibraryController.UpdateUserItemRating(System.Guid,System.Guid,System.Nullable{System.Boolean}) is likes.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Item rating updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserItemDataDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Items/{itemId}/SpecialFeatures": { + "get": { + "tags": [ + "UserLibrary" + ], + "summary": "Gets special features for an item.", + "operationId": "GetSpecialFeatures", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "itemId", + "in": "path", + "description": "Item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Special features returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/GroupingOptions": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user view grouping options.", + "operationId": "GetGroupingOptions", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User view grouping options returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpecialViewOptionDto" + } + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Views": { + "get": { + "tags": [ + "UserViews" + ], + "summary": "Get user views.", + "operationId": "GetUserViews", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "User id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "includeExternalContent", + "in": "query", + "description": "Whether or not to include external views such as channels or live tv.", + "schema": { + "type": "boolean" + } + }, + { + "name": "presetViews", + "in": "query", + "description": "Preset views.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "includeHidden", + "in": "query", + "description": "Whether or not to include hidden content.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "User views returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of users.", + "operationId": "GetUsers", + "parameters": [ + { + "name": "isHidden", + "in": "query", + "description": "Optional filter by IsHidden=true or false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "isDisabled", + "in": "query", + "description": "Optional filter by IsDisabled=true or false.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/AuthenticateByName": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user by name.", + "operationId": "AuthenticateUserByName", + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.AuthenticateUserByName(Jellyfin.Api.Models.UserDtos.AuthenticateUserByName) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/AuthenticateUserByName" + } + ], + "description": "The authenticate user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + } + } + } + }, + "/Users/AuthenticateWithQuickConnect": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user with quick connect.", + "operationId": "AuthenticateWithQuickConnect", + "requestBody": { + "description": "The Jellyfin.Api.Models.UserDtos.QuickConnectDto request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/QuickConnectDto" + } + ], + "description": "The quick connect request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "400": { + "description": "Missing token." + } + } + } + }, + "/Users/ForgotPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Initiates the forgot password process for a local user.", + "operationId": "ForgotPassword", + "requestBody": { + "description": "The forgot password request containing the entered username.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordDto" + } + ], + "description": "Forgot Password request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Password reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ForgotPasswordResult" + } + } + } + } + } + } + }, + "/Users/ForgotPassword/Pin": { + "post": { + "tags": [ + "User" + ], + "summary": "Redeems a forgot password pin.", + "operationId": "ForgotPasswordPin", + "requestBody": { + "description": "The forgot password pin request containing the entered pin.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordPinDto" + } + ], + "description": "Forgot Password Pin enter request body DTO." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Pin reset process started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/PinRedeemResult" + } + } + } + } + } + } + }, + "/Users/Me": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets the user based on auth token.", + "operationId": "GetCurrentUser", + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "400": { + "description": "Token is not owned by a user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/New": { + "post": { + "tags": [ + "User" + ], + "summary": "Creates a user.", + "operationId": "CreateUserByName", + "requestBody": { + "description": "The create user by name request body.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateUserByName" + } + ], + "description": "The create user by name request body." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "User created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Users/Public": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a list of publicly visible users for display on a login screen.", + "operationId": "GetPublicUsers", + "responses": { + "200": { + "description": "Public users returned.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + } + } + } + }, + "/Users/{userId}": { + "get": { + "tags": [ + "User" + ], + "summary": "Gets a user by Id.", + "operationId": "GetUserById", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "User returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "IgnoreParentalControl" + ] + } + ] + }, + "delete": { + "tags": [ + "User" + ], + "summary": "Deletes a user.", + "operationId": "DeleteUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "User deleted." + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + }, + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user.", + "operationId": "UpdateUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The updated user model.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User updated." + }, + "400": { + "description": "User information was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Authenticate": { + "post": { + "tags": [ + "User" + ], + "summary": "Authenticates a user.", + "operationId": "AuthenticateUser", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "pw", + "in": "query", + "description": "The password as plain text.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "The password sha1-hash.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/AuthenticationResult" + } + } + } + }, + "403": { + "description": "Sha1-hashed password only is not allowed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Users/{userId}/Configuration": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user configuration.", + "operationId": "UpdateUserConfiguration", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user configuration.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Class UserConfiguration." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User configuration updated." + }, + "403": { + "description": "User configuration update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/EasyPassword": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's easy password.", + "operationId": "UpdateUserEasyPassword", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserEasyPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserEasyPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserEasyPassword" + } + ], + "description": "The update user easy password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Password": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user's password.", + "operationId": "UpdateUserPassword", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The M:Jellyfin.Api.Controllers.UserController.UpdateUserPassword(System.Guid,Jellyfin.Api.Models.UserDtos.UpdateUserPassword) request.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UpdateUserPassword" + } + ], + "description": "The update user password request body." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Password successfully reset." + }, + "403": { + "description": "User is not allowed to update the password.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "User not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Users/{userId}/Policy": { + "post": { + "tags": [ + "User" + ], + "summary": "Updates a user policy.", + "operationId": "UpdateUserPolicy", + "parameters": [ + { + "name": "userId", + "in": "path", + "description": "The user id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "description": "The new user policy.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "text/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + }, + "application/*+json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ] + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "User policy updated." + }, + "400": { + "description": "User policy was not supplied.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "User policy update forbidden.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{videoId}/{mediaSourceId}/Attachments/{index}": { + "get": { + "tags": [ + "VideoAttachments" + ], + "summary": "Get video attachment.", + "operationId": "GetAttachment", + "parameters": [ + { + "name": "videoId", + "in": "path", + "description": "Video ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "mediaSourceId", + "in": "path", + "description": "Media Source ID.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "path", + "description": "Attachment Index.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Attachment retrieved.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + }, + "404": { + "description": "Video or attachment not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/Videos/MergeVersions": { + "post": { + "tags": [ + "Videos" + ], + "summary": "Merges videos into a single record.", + "operationId": "MergeVersions", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Item id list. This allows multiple, comma delimited.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + ], + "responses": { + "204": { + "description": "Videos merged." + }, + "400": { + "description": "Supply at least 2 video ids.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/AdditionalParts": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets additional parts for a video.", + "operationId": "GetAdditionalPart", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Additional parts returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Videos/{itemId}/AlternateSources": { + "delete": { + "tags": [ + "Videos" + ], + "summary": "Removes alternate video sources.", + "operationId": "DeleteAlternateSources", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "204": { + "description": "Alternate sources deleted." + }, + "404": { + "description": "Video not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "RequiresElevation" + ] + } + ] + } + }, + "/Videos/{itemId}/stream": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStream", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "query", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Videos/{itemId}/stream.{container}": { + "get": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "GetVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "head": { + "tags": [ + "Videos" + ], + "summary": "Gets a video stream.", + "operationId": "HeadVideoStreamByContainer", + "parameters": [ + { + "name": "itemId", + "in": "path", + "description": "The item id.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "container", + "in": "path", + "description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "static", + "in": "query", + "description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "params", + "in": "query", + "description": "The streaming parameters.", + "schema": { + "type": "string" + } + }, + { + "name": "tag", + "in": "query", + "description": "The tag.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceProfileId", + "in": "query", + "description": "Optional. The dlna device profile id to utilize.", + "schema": { + "type": "string" + } + }, + { + "name": "playSessionId", + "in": "query", + "description": "The play session id.", + "schema": { + "type": "string" + } + }, + { + "name": "segmentContainer", + "in": "query", + "description": "The segment container.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "segmentLength", + "in": "query", + "description": "The segment length.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "minSegments", + "in": "query", + "description": "The minimum number of segments.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "mediaSourceId", + "in": "query", + "description": "The media version id, if playing an alternate version.", + "schema": { + "type": "string" + } + }, + { + "name": "deviceId", + "in": "query", + "description": "The device id of the client requesting. Used to stop encoding processes when needed.", + "schema": { + "type": "string" + } + }, + { + "name": "audioCodec", + "in": "query", + "description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "enableAutoStreamCopy", + "in": "query", + "description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowVideoStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the video stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "allowAudioStreamCopy", + "in": "query", + "description": "Whether or not to allow copying of the audio stream url.", + "schema": { + "type": "boolean" + } + }, + { + "name": "breakOnNonKeyFrames", + "in": "query", + "description": "Optional. Whether to break on non key frames.", + "schema": { + "type": "boolean" + } + }, + { + "name": "audioSampleRate", + "in": "query", + "description": "Optional. Specify a specific audio sample rate, e.g. 44100.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioBitDepth", + "in": "query", + "description": "Optional. The maximum audio bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioBitRate", + "in": "query", + "description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "audioChannels", + "in": "query", + "description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxAudioChannels", + "in": "query", + "description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "profile", + "in": "query", + "description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.", + "schema": { + "type": "string" + } + }, + { + "name": "level", + "in": "query", + "description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.", + "schema": { + "type": "string" + } + }, + { + "name": "framerate", + "in": "query", + "description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "maxFramerate", + "in": "query", + "description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "copyTimestamps", + "in": "query", + "description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.", + "schema": { + "type": "boolean" + } + }, + { + "name": "startTimeTicks", + "in": "query", + "description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "width", + "in": "query", + "description": "Optional. The fixed horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "height", + "in": "query", + "description": "Optional. The fixed vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxWidth", + "in": "query", + "description": "Optional. The maximum horizontal resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxHeight", + "in": "query", + "description": "Optional. The maximum vertical resolution of the encoded video.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoBitRate", + "in": "query", + "description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleStreamIndex", + "in": "query", + "description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subtitleMethod", + "in": "query", + "description": "Optional. Specify the subtitle delivery method.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ] + } + }, + { + "name": "maxRefFrames", + "in": "query", + "description": "Optional.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "maxVideoBitDepth", + "in": "query", + "description": "Optional. The maximum video bit depth.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "requireAvc", + "in": "query", + "description": "Optional. Whether to require avc.", + "schema": { + "type": "boolean" + } + }, + { + "name": "deInterlace", + "in": "query", + "description": "Optional. Whether to deinterlace the video.", + "schema": { + "type": "boolean" + } + }, + { + "name": "requireNonAnamorphic", + "in": "query", + "description": "Optional. Whether to require a non anamorphic stream.", + "schema": { + "type": "boolean" + } + }, + { + "name": "transcodingMaxAudioChannels", + "in": "query", + "description": "Optional. The maximum number of audio channels to transcode.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cpuCoreLimit", + "in": "query", + "description": "Optional. The limit of how many cpu cores to use.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "liveStreamId", + "in": "query", + "description": "The live stream id.", + "schema": { + "type": "string" + } + }, + { + "name": "enableMpegtsM2TsMode", + "in": "query", + "description": "Optional. Whether to enable the MpegtsM2Ts mode.", + "schema": { + "type": "boolean" + } + }, + { + "name": "videoCodec", + "in": "query", + "description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "subtitleCodec", + "in": "query", + "description": "Optional. Specify a subtitle codec to encode to.", + "schema": { + "pattern": "^[a-zA-Z0-9\\-\\._,|]{0,40}$", + "type": "string" + } + }, + { + "name": "transcodeReasons", + "in": "query", + "description": "Optional. The transcoding reason.", + "schema": { + "type": "string" + } + }, + { + "name": "audioStreamIndex", + "in": "query", + "description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "videoStreamIndex", + "in": "query", + "description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.", + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ] + } + }, + { + "name": "streamOptions", + "in": "query", + "description": "Optional. The streaming options.", + "schema": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + } + ], + "responses": { + "200": { + "description": "Video stream returned.", + "content": { + "video/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/Years": { + "get": { + "tags": [ + "Years" + ], + "summary": "Get years.", + "operationId": "GetYears", + "parameters": [ + { + "name": "startIndex", + "in": "query", + "description": "Skips over a given number of items within the results. Use for paging.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Optional. The maximum number of records to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort Order - Ascending,Descending.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + } + } + }, + { + "name": "parentId", + "in": "query", + "description": "Specify this to localize the search to a specific item or folder. Omit to use the root.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "fields", + "in": "query", + "description": "Optional. Specify additional fields of information to return in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + } + } + }, + { + "name": "excludeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be excluded based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "includeItemTypes", + "in": "query", + "description": "Optional. If specified, results will be included based on item type. This allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemKind" + } + } + }, + { + "name": "mediaTypes", + "in": "query", + "description": "Optional. Filter by MediaType. Allows multiple, comma delimited.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "sortBy", + "in": "query", + "description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "enableUserData", + "in": "query", + "description": "Optional. Include user data.", + "schema": { + "type": "boolean" + } + }, + { + "name": "imageTypeLimit", + "in": "query", + "description": "Optional. The max number of images to return, per image type.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enableImageTypes", + "in": "query", + "description": "Optional. The image types to include in the output.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + } + } + }, + { + "name": "userId", + "in": "query", + "description": "User Id.", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Search recursively.", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "enableImages", + "in": "query", + "description": "Optional. Include image information in output.", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Year query returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDtoQueryResult" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + }, + "/Years/{year}": { + "get": { + "tags": [ + "Years" + ], + "summary": "Gets a year.", + "operationId": "GetYear", + "parameters": [ + { + "name": "year", + "in": "path", + "description": "The year.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "userId", + "in": "query", + "description": "Optional. Filter by user id, and attach user data.", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Year returned.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/BaseItemDto" + } + } + } + }, + "404": { + "description": "Year not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"CamelCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "application/json; profile=\"PascalCase\"": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "CustomAuthentication": [ + "DefaultAuthorization" + ] + } + ] + } + } + }, + "components": { + "schemas": { + "AccessSchedule": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id of this instance.", + "format": "int32", + "readOnly": true + }, + "UserId": { + "type": "string", + "description": "Gets the id of the associated user.", + "format": "uuid" + }, + "DayOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/DynamicDayOfWeek" + } + ], + "description": "Gets or sets the day of week." + }, + "StartHour": { + "type": "number", + "description": "Gets or sets the start hour.", + "format": "double" + }, + "EndHour": { + "type": "number", + "description": "Gets or sets the end hour.", + "format": "double" + } + }, + "additionalProperties": false, + "description": "An entity representing a user's access schedule." + }, + "ActivityLogEntry": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "ShortOverview": { + "type": "string", + "description": "Gets or sets the short overview.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type." + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "Date": { + "type": "string", + "description": "Gets or sets the date.", + "format": "date-time" + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the user primary image tag.", + "nullable": true, + "deprecated": true + }, + "Severity": { + "allOf": [ + { + "$ref": "#/components/schemas/LogLevel" + } + ], + "description": "Gets or sets the log severity." + } + }, + "additionalProperties": false, + "description": "An activity log entry." + }, + "ActivityLogEntryQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityLogEntry" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AddVirtualFolderDto": { + "type": "object", + "properties": { + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Add virtual folder dto." + }, + "AdminNotificationDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the notification name.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the notification description.", + "nullable": true + }, + "NotificationLevel": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the notification level.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the notification url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The admin notification dto." + }, + "AlbumInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the album artist." + }, + "ArtistProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the artist provider ids." + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "AlbumInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/AlbumInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AllThemeMediaResult": { + "type": "object", + "properties": { + "ThemeVideosResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "ThemeSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + }, + "SoundtrackSongsResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ThemeMediaResult" + } + ], + "description": "Class ThemeMediaResult.", + "nullable": true + } + }, + "additionalProperties": false + }, + "Architecture": { + "enum": [ + "X86", + "X64", + "Arm", + "Arm64", + "Wasm", + "S390x" + ], + "type": "string" + }, + "ArtistInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SongInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SongInfo" + } + } + }, + "additionalProperties": false + }, + "ArtistInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/ArtistInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "AuthenticateUserByName": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Pw": { + "type": "string", + "description": "Gets or sets the plain text password.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the sha1-hashed password.", + "nullable": true, + "deprecated": true + } + }, + "additionalProperties": false, + "description": "The authenticate user by name request body." + }, + "AuthenticationInfo": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the identifier.", + "format": "int64" + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device identifier.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "IsActive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is active." + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateRevoked": { + "type": "string", + "description": "Gets or sets the date revoked.", + "format": "date-time", + "nullable": true + }, + "DateLastActivity": { + "type": "string", + "format": "date-time" + }, + "UserName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AuthenticationInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationInfo" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AuthenticationResult": { + "type": "object", + "properties": { + "User": { + "allOf": [ + { + "$ref": "#/components/schemas/UserDto" + } + ], + "description": "Class UserDto.", + "nullable": true + }, + "SessionInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionInfo" + } + ], + "description": "Class SessionInfo.", + "nullable": true + }, + "AccessToken": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BaseItem": { + "type": "object", + "properties": { + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "readOnly": true + }, + "IsShortcut": { + "type": "boolean" + }, + "ShortcutPath": { + "type": "string", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32" + }, + "Height": { + "type": "integer", + "format": "int32" + }, + "ExtraIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "DateLastSaved": { + "type": "string", + "format": "date-time" + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the remote trailers.", + "nullable": true + }, + "SupportsExternalTransfer": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class BaseItem." + }, + "BaseItemDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "Etag": { + "type": "string", + "description": "Gets or sets the etag.", + "nullable": true + }, + "SourceType": { + "type": "string", + "description": "Gets or sets the type of the source.", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier.", + "nullable": true + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time", + "nullable": true + }, + "DateLastMediaAdded": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ExtraType": { + "type": "string", + "nullable": true + }, + "AirsBeforeSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsAfterSeasonNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AirsBeforeEpisodeNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CanDelete": { + "type": "boolean", + "nullable": true + }, + "CanDownload": { + "type": "boolean", + "nullable": true + }, + "HasSubtitles": { + "type": "boolean", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "nullable": true + }, + "PreferredMetadataCountryCode": { + "type": "string", + "nullable": true + }, + "SupportsSync": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports synchronize].", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "SortName": { + "type": "string", + "description": "Gets or sets the name of the sort.", + "nullable": true + }, + "ForcedSortName": { + "type": "string", + "nullable": true + }, + "Video3DFormat": { + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "description": "Gets or sets the video3 D format.", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "description": "Gets or sets the premiere date.", + "format": "date-time", + "nullable": true + }, + "ExternalUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalUrl" + }, + "description": "Gets or sets the external urls.", + "nullable": true + }, + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media versions.", + "nullable": true + }, + "CriticRating": { + "type": "number", + "description": "Gets or sets the critic rating.", + "format": "float", + "nullable": true + }, + "ProductionLocations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "EnableMediaSourceDisplay": { + "type": "boolean", + "nullable": true + }, + "OfficialRating": { + "type": "string", + "description": "Gets or sets the official rating.", + "nullable": true + }, + "CustomRating": { + "type": "string", + "description": "Gets or sets the custom rating.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid", + "nullable": true + }, + "ChannelName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the overview.", + "nullable": true + }, + "Taglines": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the taglines.", + "nullable": true + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres.", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "float", + "nullable": true + }, + "CumulativeRunTimeTicks": { + "type": "integer", + "description": "Gets or sets the cumulative run time ticks.", + "format": "int64", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "PlayAccess": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayAccess" + } + ], + "description": "Gets or sets the play access.", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "IsPlaceHolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is place holder.", + "nullable": true + }, + "Number": { + "type": "string", + "description": "Gets or sets the number.", + "nullable": true + }, + "ChannelNumber": { + "type": "string", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "description": "Gets or sets the index number end.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "RemoteTrailers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUrl" + }, + "description": "Gets or sets the trailer urls.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "IsHD": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is HD.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is folder.", + "nullable": true + }, + "ParentId": { + "type": "string", + "description": "Gets or sets the parent id.", + "format": "uuid", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemKind" + } + ], + "description": "Gets or sets the type." + }, + "People": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemPerson" + }, + "description": "Gets or sets the people.", + "nullable": true + }, + "Studios": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the studios.", + "nullable": true + }, + "GenreItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "ParentLogoItemId": { + "type": "string", + "description": "Gets or sets wether the item has a logo, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets wether the item has any backdrops, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "LocalTrailerCount": { + "type": "integer", + "description": "Gets or sets the local trailer count.", + "format": "int32", + "nullable": true + }, + "UserData": { + "allOf": [ + { + "$ref": "#/components/schemas/UserItemDataDto" + } + ], + "description": "Gets or sets the user data for this item based on the user it's being requested for.", + "nullable": true + }, + "RecursiveItemCount": { + "type": "integer", + "description": "Gets or sets the recursive item count.", + "format": "int32", + "nullable": true + }, + "ChildCount": { + "type": "integer", + "description": "Gets or sets the child count.", + "format": "int32", + "nullable": true + }, + "SeriesName": { + "type": "string", + "description": "Gets or sets the name of the series.", + "nullable": true + }, + "SeriesId": { + "type": "string", + "description": "Gets or sets the series id.", + "format": "uuid", + "nullable": true + }, + "SeasonId": { + "type": "string", + "description": "Gets or sets the season identifier.", + "format": "uuid", + "nullable": true + }, + "SpecialFeatureCount": { + "type": "integer", + "description": "Gets or sets the special feature count.", + "format": "int32", + "nullable": true + }, + "DisplayPreferencesId": { + "type": "string", + "description": "Gets or sets the display preferences id.", + "nullable": true + }, + "Status": { + "type": "string", + "description": "Gets or sets the status.", + "nullable": true + }, + "AirTime": { + "type": "string", + "description": "Gets or sets the air time.", + "nullable": true + }, + "AirDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the air days.", + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the tags.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio, after image enhancements.", + "format": "double", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "ArtistItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the artist items.", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "CollectionType": { + "type": "string", + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "DisplayOrder": { + "type": "string", + "description": "Gets or sets the display order.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "description": "Gets or sets the album id.", + "format": "uuid", + "nullable": true + }, + "AlbumPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the album image tag.", + "nullable": true + }, + "SeriesPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the series primary image tag.", + "nullable": true + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "AlbumArtists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "description": "Gets or sets the album artists.", + "nullable": true + }, + "SeasonName": { + "type": "string", + "description": "Gets or sets the name of the season.", + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "description": "Gets or sets the media streams.", + "nullable": true + }, + "VideoType": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "description": "Gets or sets the type of the video.", + "nullable": true + }, + "PartCount": { + "type": "integer", + "description": "Gets or sets the part count.", + "format": "int32", + "nullable": true + }, + "MediaSourceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "BackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the backdrop image tags.", + "nullable": true + }, + "ScreenshotImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the screenshot image tags.", + "nullable": true + }, + "ParentLogoImageTag": { + "type": "string", + "description": "Gets or sets the parent logo image tag.", + "nullable": true + }, + "ParentArtItemId": { + "type": "string", + "description": "Gets or sets wether the item has fan art, this will hold the Id of the Parent that has one.", + "format": "uuid", + "nullable": true + }, + "ParentArtImageTag": { + "type": "string", + "description": "Gets or sets the parent art image tag.", + "nullable": true + }, + "SeriesThumbImageTag": { + "type": "string", + "description": "Gets or sets the series thumb image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the blurhashes for the image tags.\r\nMaps image type to dictionary mapping image tag to blurhash value.", + "nullable": true + }, + "SeriesStudio": { + "type": "string", + "description": "Gets or sets the series studio.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "format": "uuid", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + }, + "Chapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChapterInfo" + }, + "description": "Gets or sets the chapters.", + "nullable": true + }, + "LocationType": { + "allOf": [ + { + "$ref": "#/components/schemas/LocationType" + } + ], + "description": "Gets or sets the type of the location.", + "nullable": true + }, + "IsoType": { + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "description": "Gets or sets the type of the iso.", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the type of the media.", + "nullable": true + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time", + "nullable": true + }, + "LockedFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataField" + }, + "description": "Gets or sets the locked fields.", + "nullable": true + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32", + "nullable": true + }, + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32", + "nullable": true + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32", + "nullable": true + }, + "ProgramCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32", + "nullable": true + }, + "ArtistCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32", + "nullable": true + }, + "LockData": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable internet providers].", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "CameraMake": { + "type": "string", + "nullable": true + }, + "CameraModel": { + "type": "string", + "nullable": true + }, + "Software": { + "type": "string", + "nullable": true + }, + "ExposureTime": { + "type": "number", + "format": "double", + "nullable": true + }, + "FocalLength": { + "type": "number", + "format": "double", + "nullable": true + }, + "ImageOrientation": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageOrientation" + } + ], + "nullable": true + }, + "Aperture": { + "type": "number", + "format": "double", + "nullable": true + }, + "ShutterSpeed": { + "type": "number", + "format": "double", + "nullable": true + }, + "Latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "Altitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "IsoSpeedRating": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the channel primary image tag.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "description": "Gets or sets the completion percentage.", + "format": "double", + "nullable": true + }, + "IsRepeat": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is repeat.", + "nullable": true + }, + "EpisodeTitle": { + "type": "string", + "description": "Gets or sets the episode title.", + "nullable": true + }, + "ChannelType": { + "allOf": [ + { + "$ref": "#/components/schemas/ChannelType" + } + ], + "description": "Gets or sets the type of the channel.", + "nullable": true + }, + "Audio": { + "allOf": [ + { + "$ref": "#/components/schemas/ProgramAudio" + } + ], + "description": "Gets or sets the audio.", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is movie.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is sports.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is series.", + "nullable": true + }, + "IsLive": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is live.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is news.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is kids.", + "nullable": true + }, + "IsPremiere": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is premiere.", + "nullable": true + }, + "TimerId": { + "type": "string", + "description": "Gets or sets the timer identifier.", + "nullable": true + }, + "CurrentProgram": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the current program.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client." + }, + "BaseItemDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "BaseItemKind": { + "enum": [ + "AggregateFolder", + "Audio", + "AudioBook", + "BasePluginFolder", + "Book", + "BoxSet", + "Channel", + "ChannelFolderItem", + "CollectionFolder", + "Episode", + "Folder", + "Genre", + "ManualPlaylistsFolder", + "Movie", + "LiveTvChannel", + "LiveTvProgram", + "MusicAlbum", + "MusicArtist", + "MusicGenre", + "MusicVideo", + "Person", + "Photo", + "PhotoAlbum", + "Playlist", + "PlaylistsFolder", + "Program", + "Recording", + "Season", + "Series", + "Studio", + "Trailer", + "TvChannel", + "TvProgram", + "UserRootFolder", + "UserView", + "Video", + "Year" + ], + "type": "string", + "description": "The base item kind." + }, + "BaseItemPerson": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "Role": { + "type": "string", + "description": "Gets or sets the role.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "ImageBlurHashes": { + "type": "object", + "properties": { + "Primary": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Art": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Backdrop": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Banner": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Logo": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Thumb": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Disc": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Box": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Screenshot": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Menu": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Chapter": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "BoxRear": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Profile": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Gets or sets the primary image blurhash.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is used by the api to get information about a Person within a BaseItem." + }, + "BasePluginConfiguration": { + "type": "object", + "additionalProperties": false, + "description": "Class BasePluginConfiguration." + }, + "BookInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "SeriesName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BookInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BookInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BoxSetInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "BoxSetInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BoxSetInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "BrandingOptions": { + "type": "object", + "properties": { + "LoginDisclaimer": { + "type": "string", + "description": "Gets or sets the login disclaimer.", + "nullable": true + }, + "CustomCss": { + "type": "string", + "description": "Gets or sets the custom CSS.", + "nullable": true + }, + "SplashscreenEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable the splashscreen." + } + }, + "additionalProperties": false, + "description": "The branding options." + }, + "BufferRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class BufferRequestDto." + }, + "ChannelFeatures": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "format": "uuid" + }, + "CanSearch": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can search." + }, + "MediaTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaType" + }, + "description": "Gets or sets the media types." + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMediaContentType" + }, + "description": "Gets or sets the content types." + }, + "MaxPageSize": { + "type": "integer", + "description": "Gets or sets the maximum number of records the channel allows retrieving at a time.", + "format": "int32", + "nullable": true + }, + "AutoRefreshLevels": { + "type": "integer", + "description": "Gets or sets the automatic refresh levels.", + "format": "int32", + "nullable": true + }, + "DefaultSortFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelItemSortField" + }, + "description": "Gets or sets the default sort orders." + }, + "SupportsSortOrderToggle": { + "type": "boolean", + "description": "Gets or sets a value indicating whether a sort ascending/descending toggle is supported." + }, + "SupportsLatestMedia": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports latest media]." + }, + "CanFilter": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can filter." + }, + "SupportsContentDownloading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports content downloading]." + } + }, + "additionalProperties": false + }, + "ChannelItemSortField": { + "enum": [ + "Name", + "CommunityRating", + "PremiereDate", + "DateCreated", + "Runtime", + "PlayCount", + "CommunityPlayCount" + ], + "type": "string" + }, + "ChannelMappingOptionsDto": { + "type": "object", + "properties": { + "TunerChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerChannelMapping" + }, + "description": "Gets or sets list of tuner channels." + }, + "ProviderChannels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameIdPair" + }, + "description": "Gets or sets list of provider channels." + }, + "Mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "description": "Gets or sets list of mappings." + }, + "ProviderName": { + "type": "string", + "description": "Gets or sets provider name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Channel mapping options dto." + }, + "ChannelMediaContentType": { + "enum": [ + "Clip", + "Podcast", + "Trailer", + "Movie", + "Episode", + "Song", + "MovieExtra", + "TvExtra" + ], + "type": "string" + }, + "ChannelMediaType": { + "enum": [ + "Audio", + "Video", + "Photo" + ], + "type": "string" + }, + "ChannelType": { + "enum": [ + "TV", + "Radio" + ], + "type": "string", + "description": "Enum ChannelType." + }, + "ChapterInfo": { + "type": "object", + "properties": { + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ImagePath": { + "type": "string", + "description": "Gets or sets the image path.", + "nullable": true + }, + "ImageDateModified": { + "type": "string", + "format": "date-time" + }, + "ImageTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ChapterInfo." + }, + "ClientCapabilities": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "nullable": true + }, + "SupportsMediaControl": { + "type": "boolean" + }, + "SupportsContentUploading": { + "type": "boolean" + }, + "MessageCallbackUrl": { + "type": "string", + "nullable": true + }, + "SupportsPersistentIdentifier": { + "type": "boolean" + }, + "SupportsSync": { + "type": "boolean" + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "nullable": true + }, + "IconUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ClientCapabilitiesDto": { + "type": "object", + "properties": { + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the list of playable media types." + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets or sets the list of supported commands." + }, + "SupportsMediaControl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports media control." + }, + "SupportsContentUploading": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports content uploading." + }, + "MessageCallbackUrl": { + "type": "string", + "description": "Gets or sets the message callback url.", + "nullable": true + }, + "SupportsPersistentIdentifier": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports a persistent identifier." + }, + "SupportsSync": { + "type": "boolean", + "description": "Gets or sets a value indicating whether session supports sync." + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "AppStoreUrl": { + "type": "string", + "description": "Gets or sets the app store url.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "description": "Gets or sets the icon url.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Client capabilities dto." + }, + "ClientLogDocumentResponseDto": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "Gets the resulting filename." + } + }, + "additionalProperties": false, + "description": "Client log document response dto." + }, + "CodecProfile": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/CodecType" + } + ] + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "ApplyConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "Codec": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CodecType": { + "enum": [ + "Video", + "VideoAudio", + "Audio" + ], + "type": "string" + }, + "CollectionCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "CollectionTypeOptions": { + "enum": [ + "Movies", + "TvShows", + "Music", + "MusicVideos", + "HomeVideos", + "BoxSets", + "Books", + "Mixed" + ], + "type": "string" + }, + "ConfigImageTypes": { + "type": "object", + "properties": { + "BackdropSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "BaseUrl": { + "type": "string", + "nullable": true + }, + "LogoSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "PosterSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ProfileSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SecureBaseUrl": { + "type": "string", + "nullable": true + }, + "StillSizes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConfigurationPageInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "EnableInMainMenu": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the configurations page is enabled in the main menu." + }, + "MenuSection": { + "type": "string", + "description": "Gets or sets the menu section.", + "nullable": true + }, + "MenuIcon": { + "type": "string", + "description": "Gets or sets the menu icon.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "PluginId": { + "type": "string", + "description": "Gets or sets the plugin id.", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The configuration page info." + }, + "ContainerProfile": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + }, + "Container": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ControlResponse": { + "type": "object", + "properties": { + "Headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "Xml": { + "type": "string" + }, + "IsSuccessful": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "CountryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "DisplayName": { + "type": "string", + "description": "Gets or sets the display name.", + "nullable": true + }, + "TwoLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the two letter ISO region.", + "nullable": true + }, + "ThreeLetterISORegionName": { + "type": "string", + "description": "Gets or sets the name of the three letter ISO region.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class CountryInfo." + }, + "CreatePlaylistDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the new playlist.", + "nullable": true + }, + "Ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets item ids to add to the playlist." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the media type.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Create new playlist dto." + }, + "CreateUserByName": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The create user by name request body." + }, + "CultureDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "DisplayName": { + "type": "string", + "description": "Gets the display name." + }, + "TwoLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the two letter ISO language." + }, + "ThreeLetterISOLanguageName": { + "type": "string", + "description": "Gets the name of the three letter ISO language.", + "nullable": true, + "readOnly": true + }, + "ThreeLetterISOLanguageNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "description": "Class CultureDto." + }, + "CustomQueryData": { + "type": "object", + "properties": { + "CustomQueryString": { + "type": "string" + }, + "ReplaceUserId": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "string" + }, + "DayPattern": { + "enum": [ + "Daily", + "Weekdays", + "Weekends" + ], + "type": "string" + }, + "DefaultDirectoryBrowserInfoDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Default directory browser info." + }, + "DeviceIdentification": { + "type": "object", + "properties": { + "FriendlyName": { + "type": "string", + "description": "Gets or sets the name of the friendly." + }, + "ModelNumber": { + "type": "string", + "description": "Gets or sets the model number." + }, + "SerialNumber": { + "type": "string", + "description": "Gets or sets the serial number." + }, + "ModelName": { + "type": "string", + "description": "Gets or sets the name of the model." + }, + "ModelDescription": { + "type": "string", + "description": "Gets or sets the model description." + }, + "ModelUrl": { + "type": "string", + "description": "Gets or sets the model URL." + }, + "Manufacturer": { + "type": "string", + "description": "Gets or sets the manufacturer." + }, + "ManufacturerUrl": { + "type": "string", + "description": "Gets or sets the manufacturer URL." + }, + "Headers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HttpHeaderInfo" + }, + "description": "Gets or sets the headers." + } + }, + "additionalProperties": false + }, + "DeviceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "AccessToken": { + "type": "string", + "description": "Gets or sets the access token.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "LastUserName": { + "type": "string", + "description": "Gets or sets the last name of the user.", + "nullable": true + }, + "AppName": { + "type": "string", + "description": "Gets or sets the name of the application.", + "nullable": true + }, + "AppVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "LastUserId": { + "type": "string", + "description": "Gets or sets the last user identifier.", + "format": "uuid" + }, + "DateLastActivity": { + "type": "string", + "description": "Gets or sets the date last modified.", + "format": "date-time" + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilities" + } + ], + "description": "Gets or sets the capabilities.", + "nullable": true + }, + "IconUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DeviceInfoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceInfo" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "DeviceOptions": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets the id.", + "format": "int32", + "readOnly": true + }, + "DeviceId": { + "type": "string", + "description": "Gets the device id." + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "An entity representing custom options for a device." + }, + "DeviceOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Gets or sets the id.", + "format": "int32" + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "CustomName": { + "type": "string", + "description": "Gets or sets the custom name.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A dto representing custom options for a device." + }, + "DeviceProfile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of this device profile.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the Id.", + "nullable": true + }, + "Identification": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceIdentification" + } + ], + "description": "Gets or sets the Identification.", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "description": "Gets or sets the friendly name of the device profile, which can be shown to users.", + "nullable": true + }, + "Manufacturer": { + "type": "string", + "description": "Gets or sets the manufacturer of the device which this profile represents.", + "nullable": true + }, + "ManufacturerUrl": { + "type": "string", + "description": "Gets or sets an url for the manufacturer of the device which this profile represents.", + "nullable": true + }, + "ModelName": { + "type": "string", + "description": "Gets or sets the model name of the device which this profile represents.", + "nullable": true + }, + "ModelDescription": { + "type": "string", + "description": "Gets or sets the model description of the device which this profile represents.", + "nullable": true + }, + "ModelNumber": { + "type": "string", + "description": "Gets or sets the model number of the device which this profile represents.", + "nullable": true + }, + "ModelUrl": { + "type": "string", + "description": "Gets or sets the ModelUrl.", + "nullable": true + }, + "SerialNumber": { + "type": "string", + "description": "Gets or sets the serial number of the device which this profile represents.", + "nullable": true + }, + "EnableAlbumArtInDidl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableAlbumArtInDidl.", + "default": false + }, + "EnableSingleAlbumArtLimit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableSingleAlbumArtLimit.", + "default": false + }, + "EnableSingleSubtitleLimit": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableSingleSubtitleLimit.", + "default": false + }, + "SupportedMediaTypes": { + "type": "string", + "description": "Gets or sets the SupportedMediaTypes." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the UserId.", + "nullable": true + }, + "AlbumArtPn": { + "type": "string", + "description": "Gets or sets the AlbumArtPn.", + "nullable": true + }, + "MaxAlbumArtWidth": { + "type": "integer", + "description": "Gets or sets the MaxAlbumArtWidth.", + "format": "int32", + "nullable": true + }, + "MaxAlbumArtHeight": { + "type": "integer", + "description": "Gets or sets the MaxAlbumArtHeight.", + "format": "int32", + "nullable": true + }, + "MaxIconWidth": { + "type": "integer", + "description": "Gets or sets the maximum allowed width of embedded icons.", + "format": "int32", + "nullable": true + }, + "MaxIconHeight": { + "type": "integer", + "description": "Gets or sets the maximum allowed height of embedded icons.", + "format": "int32", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for all streamed content.", + "format": "int32", + "nullable": true + }, + "MaxStaticBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed content (= direct played files).", + "format": "int32", + "nullable": true + }, + "MusicStreamingTranscodingBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for transcoded music streams.", + "format": "int32", + "nullable": true + }, + "MaxStaticMusicBitrate": { + "type": "integer", + "description": "Gets or sets the maximum allowed bitrate for statically streamed (= direct played) music files.", + "format": "int32", + "nullable": true + }, + "SonyAggregationFlags": { + "type": "string", + "description": "Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.", + "nullable": true + }, + "ProtocolInfo": { + "type": "string", + "description": "Gets or sets the ProtocolInfo.", + "nullable": true + }, + "TimelineOffsetSeconds": { + "type": "integer", + "description": "Gets or sets the TimelineOffsetSeconds.", + "format": "int32", + "default": 0 + }, + "RequiresPlainVideoItems": { + "type": "boolean", + "description": "Gets or sets a value indicating whether RequiresPlainVideoItems.", + "default": false + }, + "RequiresPlainFolders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether RequiresPlainFolders.", + "default": false + }, + "EnableMSMediaReceiverRegistrar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar.", + "default": false + }, + "IgnoreTranscodeByteRangeRequests": { + "type": "boolean", + "description": "Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests.", + "default": false + }, + "XmlRootAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/XmlAttribute" + }, + "description": "Gets or sets the XmlRootAttributes." + }, + "DirectPlayProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectPlayProfile" + }, + "description": "Gets or sets the direct play profiles." + }, + "TranscodingProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodingProfile" + }, + "description": "Gets or sets the transcoding profiles." + }, + "ContainerProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContainerProfile" + }, + "description": "Gets or sets the container profiles." + }, + "CodecProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CodecProfile" + }, + "description": "Gets or sets the codec profiles." + }, + "ResponseProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseProfile" + }, + "description": "Gets or sets the ResponseProfiles." + }, + "SubtitleProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubtitleProfile" + }, + "description": "Gets or sets the subtitle profiles." + } + }, + "additionalProperties": false, + "description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n
\r\nSpecifically, it defines the supported containers and\r\ncodecs (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which containers/codecs to transcode to in case it isn't." + }, + "DeviceProfileInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfileType" + } + ], + "description": "Gets or sets the type." + } + }, + "additionalProperties": false + }, + "DeviceProfileType": { + "enum": [ + "System", + "User" + ], + "type": "string" + }, + "DirectPlayProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "nullable": true + }, + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + } + }, + "additionalProperties": false + }, + "DisplayPreferencesDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the user id.", + "nullable": true + }, + "ViewType": { + "type": "string", + "description": "Gets or sets the type of the view.", + "nullable": true + }, + "SortBy": { + "type": "string", + "description": "Gets or sets the sort by.", + "nullable": true + }, + "IndexBy": { + "type": "string", + "description": "Gets or sets the index by.", + "nullable": true + }, + "RememberIndexing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember indexing]." + }, + "PrimaryImageHeight": { + "type": "integer", + "description": "Gets or sets the height of the primary image.", + "format": "int32" + }, + "PrimaryImageWidth": { + "type": "integer", + "description": "Gets or sets the width of the primary image.", + "format": "int32" + }, + "CustomPrefs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the custom prefs." + }, + "ScrollDirection": { + "allOf": [ + { + "$ref": "#/components/schemas/ScrollDirection" + } + ], + "description": "Gets or sets the scroll direction." + }, + "ShowBackdrop": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to show backdrops on this item." + }, + "RememberSorting": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [remember sorting]." + }, + "SortOrder": { + "allOf": [ + { + "$ref": "#/components/schemas/SortOrder" + } + ], + "description": "Gets or sets the sort order." + }, + "ShowSidebar": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [show sidebar]." + }, + "Client": { + "type": "string", + "description": "Gets or sets the client.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the display preferences for any item that supports them (usually Folders)." + }, + "DlnaOptions": { + "type": "object", + "properties": { + "EnablePlayTo": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem." + }, + "EnableServer": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem." + }, + "EnableDebugLog": { + "type": "boolean", + "description": "Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "EnablePlayToTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log.\r\nIf the setting \"Emby.Dlna.PlayTo\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "ClientDiscoveryIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the ssdp client discovery interval time (in seconds).\r\nThis is the time after which the server will send a ssdp search request.", + "format": "int32" + }, + "AliveMessageIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the frequency at which ssdp alive notifications are transmitted.", + "format": "int32" + }, + "BlastAliveMessageIntervalSeconds": { + "type": "integer", + "description": "Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED.", + "format": "int32" + }, + "DefaultUserId": { + "type": "string", + "description": "Gets or sets the default user account that the dlna server uses.", + "nullable": true + }, + "AutoCreatePlayToProfiles": { + "type": "boolean", + "description": "Gets or sets a value indicating whether playTo device profiles should be created." + }, + "BlastAliveMessages": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to blast alive messages." + }, + "SendOnlyMatchedHost": { + "type": "boolean", + "description": "gets or sets a value indicating whether to send only matched host." + } + }, + "additionalProperties": false, + "description": "The DlnaOptions class contains the user definable parameters for the dlna subsystems." + }, + "DlnaProfileType": { + "enum": [ + "Audio", + "Video", + "Photo", + "Subtitle" + ], + "type": "string" + }, + "DynamicDayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Everyday", + "Weekday", + "Weekend" + ], + "type": "string", + "description": "An enum that represents a day of the week, weekdays, weekends, or all days." + }, + "EmbeddedSubtitleOptions": { + "enum": [ + "AllowAll", + "AllowText", + "AllowImage", + "AllowNone" + ], + "type": "string", + "description": "An enum representing the options to disable embedded subs." + }, + "EncodingContext": { + "enum": [ + "Streaming", + "Static" + ], + "type": "string" + }, + "EncodingOptions": { + "type": "object", + "properties": { + "EncodingThreadCount": { + "type": "integer", + "format": "int32" + }, + "TranscodingTempPath": { + "type": "string", + "nullable": true + }, + "FallbackFontPath": { + "type": "string", + "nullable": true + }, + "EnableFallbackFont": { + "type": "boolean" + }, + "DownMixAudioBoost": { + "type": "number", + "format": "double" + }, + "MaxMuxingQueueSize": { + "type": "integer", + "format": "int32" + }, + "EnableThrottling": { + "type": "boolean" + }, + "ThrottleDelaySeconds": { + "type": "integer", + "format": "int32" + }, + "HardwareAccelerationType": { + "type": "string", + "nullable": true + }, + "EncoderAppPath": { + "type": "string", + "description": "Gets or sets the FFmpeg path as set by the user via the UI.", + "nullable": true + }, + "EncoderAppPathDisplay": { + "type": "string", + "description": "Gets or sets the current FFmpeg path being used by the system and displayed on the transcode page.", + "nullable": true + }, + "VaapiDevice": { + "type": "string", + "nullable": true + }, + "EnableTonemapping": { + "type": "boolean" + }, + "EnableVppTonemapping": { + "type": "boolean" + }, + "TonemappingAlgorithm": { + "type": "string", + "nullable": true + }, + "TonemappingMode": { + "type": "string", + "nullable": true + }, + "TonemappingRange": { + "type": "string", + "nullable": true + }, + "TonemappingDesat": { + "type": "number", + "format": "double" + }, + "TonemappingPeak": { + "type": "number", + "format": "double" + }, + "TonemappingParam": { + "type": "number", + "format": "double" + }, + "VppTonemappingBrightness": { + "type": "number", + "format": "double" + }, + "VppTonemappingContrast": { + "type": "number", + "format": "double" + }, + "H264Crf": { + "type": "integer", + "format": "int32" + }, + "H265Crf": { + "type": "integer", + "format": "int32" + }, + "EncoderPreset": { + "type": "string", + "nullable": true + }, + "DeinterlaceDoubleRate": { + "type": "boolean" + }, + "DeinterlaceMethod": { + "type": "string", + "nullable": true + }, + "EnableDecodingColorDepth10Hevc": { + "type": "boolean" + }, + "EnableDecodingColorDepth10Vp9": { + "type": "boolean" + }, + "EnableEnhancedNvdecDecoder": { + "type": "boolean" + }, + "PreferSystemNativeHwDecoder": { + "type": "boolean" + }, + "EnableIntelLowPowerH264HwEncoder": { + "type": "boolean" + }, + "EnableIntelLowPowerHevcHwEncoder": { + "type": "boolean" + }, + "EnableHardwareEncoding": { + "type": "boolean" + }, + "AllowHevcEncoding": { + "type": "boolean" + }, + "EnableSubtitleExtraction": { + "type": "boolean" + }, + "HardwareDecodingCodecs": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "AllowOnDemandMetadataBasedKeyframeExtractionForExtensions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "EndPointInfo": { + "type": "object", + "properties": { + "IsLocal": { + "type": "boolean" + }, + "IsInNetwork": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExternalIdInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the display name of the external id provider (IE: IMDB, MusicBrainz, etc)." + }, + "Key": { + "type": "string", + "description": "Gets or sets the unique key for this id. This key should be unique across all providers." + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ExternalIdMediaType" + } + ], + "description": "Gets or sets the specific media type for this id. This is used to distinguish between the different\r\nexternal id types for providers with multiple ids.\r\nA null value indicates there is no specific media type associated with the external id, or this is the\r\ndefault id for the external provider so there is no need to specify a type.", + "nullable": true + }, + "UrlFormatString": { + "type": "string", + "description": "Gets or sets the URL format string.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents the external id information for serialization to the client." + }, + "ExternalIdMediaType": { + "enum": [ + "Album", + "AlbumArtist", + "Artist", + "BoxSet", + "Episode", + "Movie", + "OtherArtist", + "Person", + "ReleaseGroup", + "Season", + "Series", + "Track" + ], + "type": "string", + "description": "The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo." + }, + "ExternalUrl": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the type of the item.", + "nullable": true + } + }, + "additionalProperties": false + }, + "FFmpegLocation": { + "enum": [ + "NotFound", + "SetByArgument", + "Custom", + "System" + ], + "type": "string", + "description": "Enum describing the location of the FFmpeg tool." + }, + "FileSystemEntryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "Path": { + "type": "string", + "description": "Gets the path." + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/FileSystemEntryType" + } + ], + "description": "Gets the type." + } + }, + "additionalProperties": false, + "description": "Class FileSystemEntryInfo." + }, + "FileSystemEntryType": { + "enum": [ + "File", + "Directory", + "NetworkComputer", + "NetworkShare" + ], + "type": "string", + "description": "Enum FileSystemEntryType." + }, + "FontFile": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class FontFile." + }, + "ForgotPasswordAction": { + "enum": [ + "ContactAdmin", + "PinCode", + "InNetworkRequired" + ], + "type": "string" + }, + "ForgotPasswordDto": { + "required": [ + "EnteredUsername" + ], + "type": "object", + "properties": { + "EnteredUsername": { + "type": "string", + "description": "Gets or sets the entered username to have its password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password request body DTO." + }, + "ForgotPasswordPinDto": { + "required": [ + "Pin" + ], + "type": "object", + "properties": { + "Pin": { + "type": "string", + "description": "Gets or sets the entered pin to have the password reset." + } + }, + "additionalProperties": false, + "description": "Forgot Password Pin enter request body DTO." + }, + "ForgotPasswordResult": { + "type": "object", + "properties": { + "Action": { + "allOf": [ + { + "$ref": "#/components/schemas/ForgotPasswordAction" + } + ], + "description": "Gets or sets the action." + }, + "PinFile": { + "type": "string", + "description": "Gets or sets the pin file.", + "nullable": true + }, + "PinExpirationDate": { + "type": "string", + "description": "Gets or sets the pin expiration date.", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "GeneralCommand": { + "type": "object", + "properties": { + "Name": { + "allOf": [ + { + "$ref": "#/components/schemas/GeneralCommandType" + } + ], + "description": "This exists simply to identify a set of known commands." + }, + "ControllingUserId": { + "type": "string", + "format": "uuid" + }, + "Arguments": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + } + }, + "additionalProperties": false + }, + "GeneralCommandType": { + "enum": [ + "MoveUp", + "MoveDown", + "MoveLeft", + "MoveRight", + "PageUp", + "PageDown", + "PreviousLetter", + "NextLetter", + "ToggleOsd", + "ToggleContextMenu", + "Select", + "Back", + "TakeScreenshot", + "SendKey", + "SendString", + "GoHome", + "GoToSettings", + "VolumeUp", + "VolumeDown", + "Mute", + "Unmute", + "ToggleMute", + "SetVolume", + "SetAudioStreamIndex", + "SetSubtitleStreamIndex", + "ToggleFullscreen", + "DisplayContent", + "GoToSearch", + "DisplayMessage", + "SetRepeatMode", + "ChannelUp", + "ChannelDown", + "Guide", + "ToggleStats", + "PlayMediaSource", + "PlayTrailers", + "SetShuffleQueue", + "PlayState", + "PlayNext", + "ToggleOsdMenu", + "Play", + "SetMaxStreamingBitrate" + ], + "type": "string", + "description": "This exists simply to identify a set of known commands." + }, + "GetProgramsDto": { + "type": "object", + "properties": { + "ChannelIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the channels to return guide information for." + }, + "UserId": { + "type": "string", + "description": "Gets or sets optional. Filter by user id.", + "format": "uuid" + }, + "MinStartDate": { + "type": "string", + "description": "Gets or sets the minimum premiere start date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "HasAired": { + "type": "boolean", + "description": "Gets or sets filter by programs that have completed airing, or not.\r\nOptional.", + "nullable": true + }, + "IsAiring": { + "type": "boolean", + "description": "Gets or sets filter by programs that are currently airing, or not.\r\nOptional.", + "nullable": true + }, + "MaxStartDate": { + "type": "string", + "description": "Gets or sets the maximum premiere start date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "MinEndDate": { + "type": "string", + "description": "Gets or sets the minimum premiere end date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "MaxEndDate": { + "type": "string", + "description": "Gets or sets the maximum premiere end date.\r\nOptional.", + "format": "date-time", + "nullable": true + }, + "IsMovie": { + "type": "boolean", + "description": "Gets or sets filter for movies.\r\nOptional.", + "nullable": true + }, + "IsSeries": { + "type": "boolean", + "description": "Gets or sets filter for series.\r\nOptional.", + "nullable": true + }, + "IsNews": { + "type": "boolean", + "description": "Gets or sets filter for news.\r\nOptional.", + "nullable": true + }, + "IsKids": { + "type": "boolean", + "description": "Gets or sets filter for kids.\r\nOptional.", + "nullable": true + }, + "IsSports": { + "type": "boolean", + "description": "Gets or sets filter for sports.\r\nOptional.", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the record index to start at. All items with a lower index will be dropped from the results.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the maximum number of records to return.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "SortBy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets specify one or more sort orders, comma delimited. Options: Name, StartDate.\r\nOptional." + }, + "SortOrder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortOrder" + }, + "description": "Gets or sets sort Order - Ascending,Descending." + }, + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the genres to return guide information for." + }, + "GenreIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the genre ids to return guide information for." + }, + "EnableImages": { + "type": "boolean", + "description": "Gets or sets include image information in output.\r\nOptional.", + "nullable": true + }, + "EnableTotalRecordCount": { + "type": "boolean", + "description": "Gets or sets a value indicating whether retrieve total record count." + }, + "ImageTypeLimit": { + "type": "integer", + "description": "Gets or sets the max number of images to return, per image type.\r\nOptional.", + "format": "int32", + "nullable": true + }, + "EnableImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the image types to include in the output.\r\nOptional." + }, + "EnableUserData": { + "type": "boolean", + "description": "Gets or sets include user data.\r\nOptional.", + "nullable": true + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets filter by series timer id.\r\nOptional.", + "nullable": true + }, + "LibrarySeriesId": { + "type": "string", + "description": "Gets or sets filter by library series id.\r\nOptional.", + "format": "uuid" + }, + "Fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemFields" + }, + "description": "Gets or sets specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.\r\nOptional." + } + }, + "additionalProperties": false, + "description": "Get programs dto." + }, + "GroupInfoDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "GroupName": { + "type": "string", + "description": "Gets the group name." + }, + "State": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupStateType" + } + ], + "description": "Gets the group state." + }, + "Participants": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the participants." + }, + "LastUpdatedAt": { + "type": "string", + "description": "Gets the date when this DTO has been created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class GroupInfoDto." + }, + "GroupQueueMode": { + "enum": [ + "Queue", + "QueueNext" + ], + "type": "string", + "description": "Enum GroupQueueMode." + }, + "GroupRepeatMode": { + "enum": [ + "RepeatOne", + "RepeatAll", + "RepeatNone" + ], + "type": "string", + "description": "Enum GroupRepeatMode." + }, + "GroupShuffleMode": { + "enum": [ + "Sorted", + "Shuffle" + ], + "type": "string", + "description": "Enum GroupShuffleMode." + }, + "GroupStateType": { + "enum": [ + "Idle", + "Waiting", + "Paused", + "Playing" + ], + "type": "string", + "description": "Enum GroupState." + }, + "GroupUpdateType": { + "enum": [ + "UserJoined", + "UserLeft", + "GroupJoined", + "GroupLeft", + "StateUpdate", + "PlayQueue", + "NotInGroup", + "GroupDoesNotExist", + "CreateGroupDenied", + "JoinGroupDenied", + "LibraryAccessDenied" + ], + "type": "string", + "description": "Enum GroupUpdateType." + }, + "GuideInfo": { + "type": "object", + "properties": { + "StartDate": { + "type": "string", + "description": "Gets or sets the start date.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date.", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "HardwareEncodingType": { + "enum": [ + "AMF", + "QSV", + "NVENC", + "V4L2M2M", + "VAAPI", + "VideoToolBox" + ], + "type": "string", + "description": "Enum HardwareEncodingType." + }, + "HeaderMatchType": { + "enum": [ + "Equals", + "Regex", + "Substring" + ], + "type": "string" + }, + "HeaderMetadata": { + "enum": [ + "None", + "Path", + "Name", + "PremiereDate", + "DateAdded", + "ReleaseDate", + "Runtime", + "PlayCount", + "Season", + "SeasonNumber", + "Series", + "Network", + "Year", + "ParentalRating", + "CommunityRating", + "Trailers", + "Specials", + "AlbumArtist", + "Album", + "Disc", + "Track", + "Audio", + "EmbeddedImage", + "Video", + "Resolution", + "Subtitles", + "Genres", + "Countries", + "Status", + "Tracks", + "EpisodeSeries", + "EpisodeSeason", + "EpisodeNumber", + "AudioAlbumArtist", + "MusicArtist", + "AudioAlbum", + "Locked", + "ImagePrimary", + "ImageBackdrop", + "ImageLogo", + "Actor", + "Studios", + "Composer", + "Director", + "GuestStar", + "Producer", + "Writer", + "Artist", + "Years", + "ParentalRatings", + "CommunityRatings", + "Overview", + "ShortOverview", + "Type", + "Date", + "UserPrimaryImage", + "Severity", + "Item", + "User", + "UserId" + ], + "type": "string" + }, + "HttpHeaderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + }, + "Match": { + "allOf": [ + { + "$ref": "#/components/schemas/HeaderMatchType" + } + ] + } + }, + "additionalProperties": false + }, + "IPlugin": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name of the plugin.", + "nullable": true, + "readOnly": true + }, + "Description": { + "type": "string", + "description": "Gets the Description.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets the unique id.", + "format": "uuid", + "readOnly": true + }, + "Version": { + "type": "string", + "description": "Gets the plugin version.", + "nullable": true, + "readOnly": true + }, + "AssemblyFilePath": { + "type": "string", + "description": "Gets the path to the assembly file.", + "nullable": true, + "readOnly": true + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets a value indicating whether the plugin can be uninstalled.", + "readOnly": true + }, + "DataFolderPath": { + "type": "string", + "description": "Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Common.Plugins.IPlugin." + }, + "IgnoreWaitRequestDto": { + "type": "object", + "properties": { + "IgnoreWait": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client should be ignored." + } + }, + "additionalProperties": false, + "description": "Class IgnoreWaitRequestDto." + }, + "ImageByNameInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Theme": { + "type": "string", + "description": "Gets or sets the theme.", + "nullable": true + }, + "Context": { + "type": "string", + "description": "Gets or sets the context.", + "nullable": true + }, + "FileLength": { + "type": "integer", + "description": "Gets or sets the length of the file.", + "format": "int64" + }, + "Format": { + "type": "string", + "description": "Gets or sets the format.", + "nullable": true + } + }, + "additionalProperties": false + }, + "ImageFormat": { + "enum": [ + "Bmp", + "Gif", + "Jpg", + "Png", + "Webp" + ], + "type": "string", + "description": "Enum ImageOutputFormat." + }, + "ImageInfo": { + "type": "object", + "properties": { + "ImageType": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type of the image." + }, + "ImageIndex": { + "type": "integer", + "description": "Gets or sets the index of the image.", + "format": "int32", + "nullable": true + }, + "ImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "BlurHash": { + "type": "string", + "description": "Gets or sets the blurhash.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class ImageInfo." + }, + "ImageOption": { + "type": "object", + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "Limit": { + "type": "integer", + "description": "Gets or sets the limit.", + "format": "int32" + }, + "MinWidth": { + "type": "integer", + "description": "Gets or sets the minimum width.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ImageOrientation": { + "enum": [ + "TopLeft", + "TopRight", + "BottomRight", + "BottomLeft", + "LeftTop", + "RightTop", + "RightBottom", + "LeftBottom" + ], + "type": "string" + }, + "ImageProviderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets the name." + }, + "SupportedImages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets the supported image types." + } + }, + "additionalProperties": false, + "description": "Class ImageProviderInfo." + }, + "ImageSavingConvention": { + "enum": [ + "Legacy", + "Compatible" + ], + "type": "string" + }, + "ImageType": { + "enum": [ + "Primary", + "Art", + "Backdrop", + "Banner", + "Logo", + "Thumb", + "Disc", + "Box", + "Screenshot", + "Menu", + "Chapter", + "BoxRear", + "Profile" + ], + "type": "string", + "description": "Enum ImageType." + }, + "InstallationInfo": { + "type": "object", + "properties": { + "Guid": { + "type": "string", + "description": "Gets or sets the Id.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "Changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "SourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "Checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "PackageInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PackageInfo" + } + ], + "description": "Gets or sets package information for the installation.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class InstallationInfo." + }, + "IsoType": { + "enum": [ + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum IsoType." + }, + "ItemCounts": { + "type": "object", + "properties": { + "MovieCount": { + "type": "integer", + "description": "Gets or sets the movie count.", + "format": "int32" + }, + "SeriesCount": { + "type": "integer", + "description": "Gets or sets the series count.", + "format": "int32" + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32" + }, + "ArtistCount": { + "type": "integer", + "description": "Gets or sets the artist count.", + "format": "int32" + }, + "ProgramCount": { + "type": "integer", + "description": "Gets or sets the program count.", + "format": "int32" + }, + "TrailerCount": { + "type": "integer", + "description": "Gets or sets the trailer count.", + "format": "int32" + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32" + }, + "AlbumCount": { + "type": "integer", + "description": "Gets or sets the album count.", + "format": "int32" + }, + "MusicVideoCount": { + "type": "integer", + "description": "Gets or sets the music video count.", + "format": "int32" + }, + "BoxSetCount": { + "type": "integer", + "description": "Gets or sets the box set count.", + "format": "int32" + }, + "BookCount": { + "type": "integer", + "description": "Gets or sets the book count.", + "format": "int32" + }, + "ItemCount": { + "type": "integer", + "description": "Gets or sets the item count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class LibrarySummary." + }, + "ItemFields": { + "enum": [ + "AirTime", + "CanDelete", + "CanDownload", + "ChannelInfo", + "Chapters", + "ChildCount", + "CumulativeRunTimeTicks", + "CustomRating", + "DateCreated", + "DateLastMediaAdded", + "DisplayPreferencesId", + "Etag", + "ExternalUrls", + "Genres", + "HomePageUrl", + "ItemCounts", + "MediaSourceCount", + "MediaSources", + "OriginalTitle", + "Overview", + "ParentId", + "Path", + "People", + "PlayAccess", + "ProductionLocations", + "ProviderIds", + "PrimaryImageAspectRatio", + "RecursiveItemCount", + "Settings", + "ScreenshotImageTags", + "SeriesPrimaryImage", + "SeriesStudio", + "SortName", + "SpecialEpisodeNumbers", + "Studios", + "BasicSyncInfo", + "SyncInfo", + "Taglines", + "Tags", + "RemoteTrailers", + "MediaStreams", + "SeasonUserData", + "ServiceName", + "ThemeSongIds", + "ThemeVideoIds", + "ExternalEtag", + "PresentationUniqueKey", + "InheritedParentalRatingValue", + "ExternalSeriesId", + "SeriesPresentationUniqueKey", + "DateLastRefreshed", + "DateLastSaved", + "RefreshState", + "ChannelImage", + "EnableMediaSourceDisplay", + "Width", + "Height", + "ExtraIds", + "LocalTrailerCount", + "IsHD", + "SpecialFeatureCount" + ], + "type": "string", + "description": "Used to control the data that gets attached to DtoBaseItems." + }, + "ItemFilter": { + "enum": [ + "IsFolder", + "IsNotFolder", + "IsUnplayed", + "IsPlayed", + "IsFavorite", + "IsResumable", + "Likes", + "Dislikes", + "IsFavoriteOrLikes" + ], + "type": "string", + "description": "Enum ItemFilter." + }, + "ItemViewType": { + "enum": [ + "None", + "Detail", + "Edit", + "List", + "ItemByNameDetails", + "StatusImage", + "EmbeddedImage", + "SubtitleImage", + "TrailersImage", + "SpecialsImage", + "LockDataImage", + "TagsPrimaryImage", + "TagsBackdropImage", + "TagsLogoImage", + "UserPrimaryImage" + ], + "type": "string" + }, + "JoinGroupRequestDto": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets or sets the group identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class JoinGroupRequestDto." + }, + "KeepUntil": { + "enum": [ + "UntilDeleted", + "UntilSpaceNeeded", + "UntilWatched", + "UntilDate" + ], + "type": "string" + }, + "LastFMUser": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "nullable": true + }, + "Password": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LibraryOptionInfoDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets name.", + "nullable": true + }, + "DefaultEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether default enabled." + } + }, + "additionalProperties": false, + "description": "Library option info dto." + }, + "LibraryOptions": { + "type": "object", + "properties": { + "EnablePhotos": { + "type": "boolean" + }, + "EnableRealtimeMonitor": { + "type": "boolean" + }, + "EnableChapterImageExtraction": { + "type": "boolean" + }, + "ExtractChapterImagesDuringLibraryScan": { + "type": "boolean" + }, + "PathInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaPathInfo" + } + }, + "SaveLocalMetadata": { + "type": "boolean" + }, + "EnableInternetProviders": { + "type": "boolean", + "deprecated": true + }, + "EnableAutomaticSeriesGrouping": { + "type": "boolean" + }, + "EnableEmbeddedTitles": { + "type": "boolean" + }, + "EnableEmbeddedEpisodeInfos": { + "type": "boolean" + }, + "AutomaticRefreshIntervalDays": { + "type": "integer", + "format": "int32" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "SeasonZeroDisplayName": { + "type": "string" + }, + "MetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledLocalMetadataReaders": { + "type": "array", + "items": { + "type": "string" + } + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledSubtitleFetchers": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleFetcherOrder": { + "type": "array", + "items": { + "type": "string" + } + }, + "SkipSubtitlesIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipSubtitlesIfAudioTrackMatches": { + "type": "boolean" + }, + "SubtitleDownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RequirePerfectSubtitleMatch": { + "type": "boolean" + }, + "SaveSubtitlesWithMedia": { + "type": "boolean" + }, + "AutomaticallyAddToCollection": { + "type": "boolean" + }, + "AllowEmbeddedSubtitles": { + "allOf": [ + { + "$ref": "#/components/schemas/EmbeddedSubtitleOptions" + } + ], + "description": "An enum representing the options to disable embedded subs." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeOptions" + } + } + }, + "additionalProperties": false + }, + "LibraryOptionsResultDto": { + "type": "object", + "properties": { + "MetadataSavers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata savers." + }, + "MetadataReaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata readers." + }, + "SubtitleFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the subtitle fetchers." + }, + "TypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryTypeOptionsDto" + }, + "description": "Gets or sets the type options." + } + }, + "additionalProperties": false, + "description": "Library options result dto." + }, + "LibraryTypeOptionsDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the metadata fetchers." + }, + "ImageFetchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryOptionInfoDto" + }, + "description": "Gets or sets the image fetchers." + }, + "SupportedImageTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageType" + }, + "description": "Gets or sets the supported image types." + }, + "DefaultImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "description": "Gets or sets the default image options." + } + }, + "additionalProperties": false, + "description": "Library type options dto." + }, + "LibraryUpdateInfo": { + "type": "object", + "properties": { + "FoldersAddedTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders added to." + }, + "FoldersRemovedFrom": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the folders removed from." + }, + "ItemsAdded": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items added." + }, + "ItemsRemoved": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items removed." + }, + "ItemsUpdated": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the items updated." + }, + "CollectionFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "IsEmpty": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class LibraryUpdateInfo." + }, + "ListingsProviderInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "Username": { + "type": "string", + "nullable": true + }, + "Password": { + "type": "string", + "nullable": true + }, + "ListingsId": { + "type": "string", + "nullable": true + }, + "ZipCode": { + "type": "string", + "nullable": true + }, + "Country": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EnabledTuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllTuners": { + "type": "boolean" + }, + "NewsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "SportsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "KidsCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MovieCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ChannelMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + }, + "nullable": true + }, + "MoviePrefix": { + "type": "string", + "nullable": true + }, + "PreferredLanguage": { + "type": "string", + "nullable": true + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveStreamResponse": { + "type": "object", + "properties": { + "MediaSource": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceInfo" + } + ] + } + }, + "additionalProperties": false + }, + "LiveTvInfo": { + "type": "object", + "properties": { + "Services": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LiveTvServiceInfo" + }, + "description": "Gets or sets the services." + }, + "IsEnabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is enabled." + }, + "EnabledUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the enabled users." + } + }, + "additionalProperties": false + }, + "LiveTvOptions": { + "type": "object", + "properties": { + "GuideDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RecordingPath": { + "type": "string", + "nullable": true + }, + "MovieRecordingPath": { + "type": "string", + "nullable": true + }, + "SeriesRecordingPath": { + "type": "string", + "nullable": true + }, + "EnableRecordingSubfolders": { + "type": "boolean" + }, + "EnableOriginalAudioWithEncodedRecordings": { + "type": "boolean" + }, + "TunerHosts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TunerHostInfo" + }, + "nullable": true + }, + "ListingProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListingsProviderInfo" + }, + "nullable": true + }, + "PrePaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "format": "int32" + }, + "MediaLocationsCreated": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "RecordingPostProcessor": { + "type": "string", + "nullable": true + }, + "RecordingPostProcessorArguments": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LiveTvServiceInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "HomePageUrl": { + "type": "string", + "description": "Gets or sets the home page URL.", + "nullable": true + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/LiveTvServiceStatus" + } + ], + "description": "Gets or sets the status." + }, + "StatusMessage": { + "type": "string", + "description": "Gets or sets the status message.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the version.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available." + }, + "IsVisible": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is visible." + }, + "Tuners": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class ServiceInfo." + }, + "LiveTvServiceStatus": { + "enum": [ + "Ok", + "Unavailable" + ], + "type": "string" + }, + "LocalizationOption": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LocationType": { + "enum": [ + "FileSystem", + "Remote", + "Virtual", + "Offline" + ], + "type": "string", + "description": "Enum LocationType." + }, + "LogFile": { + "type": "object", + "properties": { + "DateCreated": { + "type": "string", + "description": "Gets or sets the date created.", + "format": "date-time" + }, + "DateModified": { + "type": "string", + "description": "Gets or sets the date modified.", + "format": "date-time" + }, + "Size": { + "type": "integer", + "description": "Gets or sets the size.", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + } + }, + "additionalProperties": false + }, + "LogLevel": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "type": "string" + }, + "LoginInfoInput": { + "required": [ + "Password", + "Username" + ], + "type": "object", + "properties": { + "Username": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "CustomApiKey": { + "type": "string" + } + }, + "additionalProperties": false + }, + "MediaAttachment": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "FileName": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "MimeType": { + "type": "string", + "description": "Gets or sets the MIME type.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaAttachment." + }, + "MediaEncoderPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media encoder path." + }, + "PathType": { + "type": "string", + "description": "Gets or sets media encoder path type." + } + }, + "additionalProperties": false, + "description": "Media Encoder Path Dto." + }, + "MediaPathDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the library." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path to add.", + "nullable": true + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets the path info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Media Path dto." + }, + "MediaPathInfo": { + "type": "object", + "properties": { + "Path": { + "type": "string" + }, + "NetworkPath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MediaProtocol": { + "enum": [ + "File", + "Http", + "Rtmp", + "Rtsp", + "Udp", + "Rtp", + "Ftp" + ], + "type": "string" + }, + "MediaSourceInfo": { + "type": "object", + "properties": { + "Protocol": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ] + }, + "Id": { + "type": "string", + "nullable": true + }, + "Path": { + "type": "string", + "nullable": true + }, + "EncoderPath": { + "type": "string", + "nullable": true + }, + "EncoderProtocol": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaProtocol" + } + ], + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaSourceType" + } + ] + }, + "Container": { + "type": "string", + "nullable": true + }, + "Size": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "IsRemote": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the media is remote.\r\nDifferentiate internet url vs local network." + }, + "ETag": { + "type": "string", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ReadAtNativeFramerate": { + "type": "boolean" + }, + "IgnoreDts": { + "type": "boolean" + }, + "IgnoreIndex": { + "type": "boolean" + }, + "GenPtsInput": { + "type": "boolean" + }, + "SupportsTranscoding": { + "type": "boolean" + }, + "SupportsDirectStream": { + "type": "boolean" + }, + "SupportsDirectPlay": { + "type": "boolean" + }, + "IsInfiniteStream": { + "type": "boolean" + }, + "RequiresOpening": { + "type": "boolean" + }, + "OpenToken": { + "type": "string", + "nullable": true + }, + "RequiresClosing": { + "type": "boolean" + }, + "LiveStreamId": { + "type": "string", + "nullable": true + }, + "BufferMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "RequiresLooping": { + "type": "boolean" + }, + "SupportsProbing": { + "type": "boolean" + }, + "VideoType": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + } + ], + "nullable": true + }, + "IsoType": { + "allOf": [ + { + "$ref": "#/components/schemas/IsoType" + } + ], + "nullable": true + }, + "Video3DFormat": { + "allOf": [ + { + "$ref": "#/components/schemas/Video3DFormat" + } + ], + "nullable": true + }, + "MediaStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaStream" + }, + "nullable": true + }, + "MediaAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaAttachment" + }, + "nullable": true + }, + "Formats": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Timestamp": { + "allOf": [ + { + "$ref": "#/components/schemas/TransportStreamTimestamp" + } + ], + "nullable": true + }, + "RequiredHttpHeaders": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "TranscodingUrl": { + "type": "string", + "nullable": true + }, + "TranscodingSubProtocol": { + "type": "string", + "nullable": true + }, + "TranscodingContainer": { + "type": "string", + "nullable": true + }, + "AnalyzeDurationMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultAudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "DefaultSubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "MediaSourceType": { + "enum": [ + "Default", + "Grouping", + "Placeholder" + ], + "type": "string" + }, + "MediaStream": { + "type": "object", + "properties": { + "Codec": { + "type": "string", + "description": "Gets or sets the codec.", + "nullable": true + }, + "CodecTag": { + "type": "string", + "description": "Gets or sets the codec tag.", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "ColorRange": { + "type": "string", + "description": "Gets or sets the color range.", + "nullable": true + }, + "ColorSpace": { + "type": "string", + "description": "Gets or sets the color space.", + "nullable": true + }, + "ColorTransfer": { + "type": "string", + "description": "Gets or sets the color transfer.", + "nullable": true + }, + "ColorPrimaries": { + "type": "string", + "description": "Gets or sets the color primaries.", + "nullable": true + }, + "DvVersionMajor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version major.", + "format": "int32", + "nullable": true + }, + "DvVersionMinor": { + "type": "integer", + "description": "Gets or sets the Dolby Vision version minor.", + "format": "int32", + "nullable": true + }, + "DvProfile": { + "type": "integer", + "description": "Gets or sets the Dolby Vision profile.", + "format": "int32", + "nullable": true + }, + "DvLevel": { + "type": "integer", + "description": "Gets or sets the Dolby Vision level.", + "format": "int32", + "nullable": true + }, + "RpuPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision rpu present flag.", + "format": "int32", + "nullable": true + }, + "ElPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision el present flag.", + "format": "int32", + "nullable": true + }, + "BlPresentFlag": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl present flag.", + "format": "int32", + "nullable": true + }, + "DvBlSignalCompatibilityId": { + "type": "integer", + "description": "Gets or sets the Dolby Vision bl signal compatibility id.", + "format": "int32", + "nullable": true + }, + "Comment": { + "type": "string", + "description": "Gets or sets the comment.", + "nullable": true + }, + "TimeBase": { + "type": "string", + "description": "Gets or sets the time base.", + "nullable": true + }, + "CodecTimeBase": { + "type": "string", + "description": "Gets or sets the codec time base.", + "nullable": true + }, + "Title": { + "type": "string", + "description": "Gets or sets the title.", + "nullable": true + }, + "VideoRange": { + "type": "string", + "description": "Gets the video range.", + "nullable": true, + "readOnly": true + }, + "VideoRangeType": { + "type": "string", + "description": "Gets the video range type.", + "nullable": true, + "readOnly": true + }, + "VideoDoViTitle": { + "type": "string", + "description": "Gets the video dovi title.", + "nullable": true, + "readOnly": true + }, + "LocalizedUndefined": { + "type": "string", + "nullable": true + }, + "LocalizedDefault": { + "type": "string", + "nullable": true + }, + "LocalizedForced": { + "type": "string", + "nullable": true + }, + "LocalizedExternal": { + "type": "string", + "nullable": true + }, + "DisplayTitle": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "NalLengthSize": { + "type": "string", + "nullable": true + }, + "IsInterlaced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is interlaced." + }, + "IsAVC": { + "type": "boolean", + "nullable": true + }, + "ChannelLayout": { + "type": "string", + "description": "Gets or sets the channel layout.", + "nullable": true + }, + "BitRate": { + "type": "integer", + "description": "Gets or sets the bit rate.", + "format": "int32", + "nullable": true + }, + "BitDepth": { + "type": "integer", + "description": "Gets or sets the bit depth.", + "format": "int32", + "nullable": true + }, + "RefFrames": { + "type": "integer", + "description": "Gets or sets the reference frames.", + "format": "int32", + "nullable": true + }, + "PacketLength": { + "type": "integer", + "description": "Gets or sets the length of the packet.", + "format": "int32", + "nullable": true + }, + "Channels": { + "type": "integer", + "description": "Gets or sets the channels.", + "format": "int32", + "nullable": true + }, + "SampleRate": { + "type": "integer", + "description": "Gets or sets the sample rate.", + "format": "int32", + "nullable": true + }, + "IsDefault": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is default." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is forced." + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "AverageFrameRate": { + "type": "number", + "description": "Gets or sets the average frame rate.", + "format": "float", + "nullable": true + }, + "RealFrameRate": { + "type": "number", + "description": "Gets or sets the real frame rate.", + "format": "float", + "nullable": true + }, + "Profile": { + "type": "string", + "description": "Gets or sets the profile.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaStreamType" + } + ], + "description": "Gets or sets the type." + }, + "AspectRatio": { + "type": "string", + "description": "Gets or sets the aspect ratio.", + "nullable": true + }, + "Index": { + "type": "integer", + "description": "Gets or sets the index.", + "format": "int32" + }, + "Score": { + "type": "integer", + "description": "Gets or sets the score.", + "format": "int32", + "nullable": true + }, + "IsExternal": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external." + }, + "DeliveryMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Gets or sets the method.", + "nullable": true + }, + "DeliveryUrl": { + "type": "string", + "description": "Gets or sets the delivery URL.", + "nullable": true + }, + "IsExternalUrl": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is external URL.", + "nullable": true + }, + "IsTextSubtitleStream": { + "type": "boolean", + "readOnly": true + }, + "SupportsExternalStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports external stream]." + }, + "Path": { + "type": "string", + "description": "Gets or sets the filename.", + "nullable": true + }, + "PixelFormat": { + "type": "string", + "description": "Gets or sets the pixel format.", + "nullable": true + }, + "Level": { + "type": "number", + "description": "Gets or sets the level.", + "format": "double", + "nullable": true + }, + "IsAnamorphic": { + "type": "boolean", + "description": "Gets or sets whether this instance is anamorphic.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MediaStream." + }, + "MediaStreamType": { + "enum": [ + "Audio", + "Video", + "Subtitle", + "EmbeddedImage", + "Data" + ], + "type": "string", + "description": "Enum MediaStreamType." + }, + "MediaUpdateInfoDto": { + "type": "object", + "properties": { + "Updates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaUpdateInfoPathDto" + }, + "description": "Gets or sets the list of updates." + } + }, + "additionalProperties": false, + "description": "Media Update Info Dto." + }, + "MediaUpdateInfoPathDto": { + "type": "object", + "properties": { + "Path": { + "type": "string", + "description": "Gets or sets media path.", + "nullable": true + }, + "UpdateType": { + "type": "string", + "description": "Gets or sets media update type.\r\nCreated, Modified, Deleted.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The media update info path." + }, + "MediaUrl": { + "type": "object", + "properties": { + "Url": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MessageCommand": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Header": { + "type": "string", + "nullable": true + }, + "Text": { + "type": "string" + }, + "TimeoutMs": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetadataConfiguration": { + "type": "object", + "properties": { + "UseFileCreationTimeForDateAdded": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MetadataEditorInfo": { + "type": "object", + "properties": { + "ParentalRatingOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParentalRating" + } + }, + "Countries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryInfo" + } + }, + "Cultures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CultureDto" + } + }, + "ExternalIdInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExternalIdInfo" + } + }, + "ContentType": { + "type": "string", + "nullable": true + }, + "ContentTypeOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + } + }, + "additionalProperties": false + }, + "MetadataField": { + "enum": [ + "Cast", + "Genres", + "ProductionLocations", + "Studios", + "Tags", + "Name", + "Overview", + "Runtime", + "OfficialRating" + ], + "type": "string", + "description": "Enum MetadataFields." + }, + "MetadataOptions": { + "type": "object", + "properties": { + "ItemType": { + "type": "string", + "nullable": true + }, + "DisabledMetadataSavers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "LocalMetadataReaderOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledMetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DisabledImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class MetadataOptions." + }, + "MetadataRefreshMode": { + "enum": [ + "None", + "ValidationOnly", + "Default", + "FullRefresh" + ], + "type": "string" + }, + "MovePlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the item.", + "format": "uuid" + }, + "NewIndex": { + "type": "integer", + "description": "Gets or sets the new position.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class MovePlaylistItemRequestDto." + }, + "MovieInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "MovieInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MovieInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "MusicVideoInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MusicVideoInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MusicVideoInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "NameGuidPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "NameIdPair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NameValuePair": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value.", + "nullable": true + } + }, + "additionalProperties": false + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "RequireHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the server should force connections over HTTPS." + }, + "CertificatePath": { + "type": "string", + "description": "Gets or sets the filesystem path of an X.509 certificate to use for SSL." + }, + "CertificatePassword": { + "type": "string", + "description": "Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath." + }, + "BaseUrl": { + "type": "string", + "description": "Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at." + }, + "PublicHttpsPort": { + "type": "integer", + "description": "Gets or sets the public HTTPS port.", + "format": "int32" + }, + "HttpServerPortNumber": { + "type": "integer", + "description": "Gets or sets the HTTP server port number.", + "format": "int32" + }, + "HttpsPortNumber": { + "type": "integer", + "description": "Gets or sets the HTTPS server port number.", + "format": "int32" + }, + "EnableHttps": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to use HTTPS." + }, + "PublicPort": { + "type": "integer", + "description": "Gets or sets the public mapped port.", + "format": "int32" + }, + "UPnPCreateHttpPortMap": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding." + }, + "UDPPortRange": { + "type": "string", + "description": "Gets or sets the UDPPortRange." + }, + "EnableIPV6": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets IPV6 capability." + }, + "EnableIPV4": { + "type": "boolean", + "description": "Gets or sets a value indicating whether gets or sets IPV4 capability." + }, + "EnableSSDPTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log.\r\n\"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect." + }, + "SSDPTracingFilter": { + "type": "string", + "description": "Gets or sets the SSDPTracingFilter\r\nGets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log.\r\nIf the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work." + }, + "UDPSendCount": { + "type": "integer", + "description": "Gets or sets the number of times SSDP UDP messages are sent.", + "format": "int32" + }, + "UDPSendDelay": { + "type": "integer", + "description": "Gets or sets the delay between each groups of SSDP messages (in ms).", + "format": "int32" + }, + "IgnoreVirtualInterfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding." + }, + "VirtualInterfaceNames": { + "type": "string", + "description": "Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. ." + }, + "GatewayMonitorPeriod": { + "type": "integer", + "description": "Gets or sets the time (in seconds) between the pings of SSDP gateway monitor.", + "format": "int32" + }, + "EnableMultiSocketBinding": { + "type": "boolean", + "description": "Gets a value indicating whether multi-socket binding is available.", + "readOnly": true + }, + "TrustAllIP6Interfaces": { + "type": "boolean", + "description": "Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network.\r\nDepending on the address range implemented ULA ranges might not be used." + }, + "HDHomerunPortRange": { + "type": "string", + "description": "Gets or sets the ports that HDHomerun uses." + }, + "PublishedServerUriBySubnet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the PublishedServerUriBySubnet\r\nGets or sets PublishedServerUri to advertise for specific subnets." + }, + "AutoDiscoveryTracing": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery tracing is enabled." + }, + "AutoDiscovery": { + "type": "boolean", + "description": "Gets or sets a value indicating whether Autodiscovery is enabled." + }, + "RemoteIPFilter": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the filter for remote IP connectivity. Used in conjuntion with ." + }, + "IsRemoteIPFilterBlacklist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether contains a blacklist or a whitelist. Default is a whitelist." + }, + "EnableUPnP": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable automatic port forwarding." + }, + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether access outside of the LAN is permitted." + }, + "LocalNetworkSubnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the subnets that are deemed to make up the LAN." + }, + "LocalNetworkAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used." + }, + "KnownProxies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the known proxies. If the proxy is a network, it's added to the KnownNetworks." + }, + "EnablePublishedServerUriByRequest": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the published server uri is based on information in HTTP requests." + } + }, + "additionalProperties": false, + "description": "Defines the Jellyfin.Networking.Configuration.NetworkConfiguration." + }, + "NewGroupRequestDto": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Gets or sets the group name." + } + }, + "additionalProperties": false, + "description": "Class NewGroupRequestDto." + }, + "NextItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class NextItemRequestDto." + }, + "NotificationDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the notification ID. Defaults to an empty string." + }, + "UserId": { + "type": "string", + "description": "Gets or sets the notification's user ID. Defaults to an empty string." + }, + "Date": { + "type": "string", + "description": "Gets or sets the notification date.", + "format": "date-time" + }, + "IsRead": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the notification has been read. Defaults to false." + }, + "Name": { + "type": "string", + "description": "Gets or sets the notification's name. Defaults to an empty string." + }, + "Description": { + "type": "string", + "description": "Gets or sets the notification's description. Defaults to an empty string." + }, + "Url": { + "type": "string", + "description": "Gets or sets the notification's URL. Defaults to an empty string." + }, + "Level": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the notification level." + } + }, + "additionalProperties": false, + "description": "The notification DTO." + }, + "NotificationLevel": { + "enum": [ + "Normal", + "Warning", + "Error" + ], + "type": "string" + }, + "NotificationOption": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "DisabledMonitorUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets user Ids to not monitor (it's opt out)." + }, + "SendToUsers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets user Ids to send to (if SendToUserMode == Custom)." + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Notifications.NotificationOption is enabled." + }, + "DisabledServices": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the disabled services." + }, + "SendToUserMode": { + "allOf": [ + { + "$ref": "#/components/schemas/SendToUserType" + } + ], + "description": "Gets or sets the send to user mode." + } + }, + "additionalProperties": false + }, + "NotificationOptions": { + "type": "object", + "properties": { + "Options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NotificationResultDto": { + "type": "object", + "properties": { + "Notifications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationDto" + }, + "description": "Gets or sets the current page of notifications." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of notifications.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "A list of notifications with the total record count for pagination." + }, + "NotificationTypeInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Enabled": { + "type": "boolean" + }, + "Category": { + "type": "string", + "nullable": true + }, + "IsBasedOnUserEvent": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "NotificationsSummaryDto": { + "type": "object", + "properties": { + "UnreadCount": { + "type": "integer", + "description": "Gets or sets the number of unread notifications.", + "format": "int32" + }, + "MaxUnreadNotificationLevel": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationLevel" + } + ], + "description": "Gets or sets the maximum unread notification level.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The notification summary DTO." + }, + "ObjectGroupUpdate": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupUpdateType" + } + ], + "description": "Gets the update type." + }, + "Data": { + "description": "Gets the update data." + } + }, + "additionalProperties": false, + "description": "Class GroupUpdate." + }, + "OpenLiveStreamDto": { + "type": "object", + "properties": { + "OpenToken": { + "type": "string", + "description": "Gets or sets the open token.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session id.", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enale direct stream.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "DirectPlayProtocols": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaProtocol" + }, + "description": "Gets or sets the device play protocols." + } + }, + "additionalProperties": false, + "description": "Open live stream dto." + }, + "PackageInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the name." + }, + "description": { + "type": "string", + "description": "Gets or sets a long description of the plugin containing features or helpful explanations." + }, + "overview": { + "type": "string", + "description": "Gets or sets a short overview of what the plugin does." + }, + "owner": { + "type": "string", + "description": "Gets or sets the owner." + }, + "category": { + "type": "string", + "description": "Gets or sets the category." + }, + "guid": { + "type": "string", + "description": "Gets or sets the guid of the assembly associated with this plugin.\r\nThis is used to identify the proper item for automatic updates.", + "format": "uuid" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VersionInfo" + }, + "description": "Gets or sets the versions." + }, + "imageUrl": { + "type": "string", + "description": "Gets or sets the image url for the package.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PackageInfo." + }, + "ParentalRating": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Value": { + "type": "integer", + "description": "Gets or sets the value.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class ParentalRating." + }, + "PathSubstitution": { + "type": "object", + "properties": { + "From": { + "type": "string", + "description": "Gets or sets the value to substitute." + }, + "To": { + "type": "string", + "description": "Gets or sets the value to substitution with." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Configuration.PathSubstitution." + }, + "PersonLookupInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "PersonLookupInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonLookupInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "PinRedeemResult": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Users.PinRedeemResult is success." + }, + "UsersReset": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the users reset." + } + }, + "additionalProperties": false + }, + "PingRequestDto": { + "type": "object", + "properties": { + "Ping": { + "type": "integer", + "description": "Gets or sets the ping time.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PingRequestDto." + }, + "PlayAccess": { + "enum": [ + "Full", + "None" + ], + "type": "string" + }, + "PlayCommand": { + "enum": [ + "PlayNow", + "PlayNext", + "PlayLast", + "PlayInstantMix", + "PlayShuffle" + ], + "type": "string", + "description": "Enum PlayCommand." + }, + "PlayMethod": { + "enum": [ + "Transcode", + "DirectStream", + "DirectPlay" + ], + "type": "string" + }, + "PlayRequest": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the item ids.", + "nullable": true + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks that the first item should be played at.", + "format": "int64", + "nullable": true + }, + "PlayCommand": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayCommand" + } + ], + "description": "Gets or sets the play command." + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "format": "uuid" + }, + "SubtitleStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "nullable": true + }, + "StartIndex": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlayRequest." + }, + "PlayRequestDto": { + "type": "object", + "properties": { + "PlayingQueue": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playing queue." + }, + "PlayingItemPosition": { + "type": "integer", + "description": "Gets or sets the position of the playing item in the queue.", + "format": "int32" + }, + "StartPositionTicks": { + "type": "integer", + "description": "Gets or sets the start position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class PlayRequestDto." + }, + "PlaybackErrorCode": { + "enum": [ + "NotAllowed", + "NoCompatibleStream", + "RateLimitExceeded" + ], + "type": "string" + }, + "PlaybackInfoDto": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the playback userId.", + "format": "uuid", + "nullable": true + }, + "MaxStreamingBitrate": { + "type": "integer", + "description": "Gets or sets the max streaming bitrate.", + "format": "int32", + "nullable": true + }, + "StartTimeTicks": { + "type": "integer", + "description": "Gets or sets the start time in ticks.", + "format": "int64", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the audio stream index.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the subtitle stream index.", + "format": "int32", + "nullable": true + }, + "MaxAudioChannels": { + "type": "integer", + "description": "Gets or sets the max audio channels.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media source id.", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream id.", + "nullable": true + }, + "DeviceProfile": { + "allOf": [ + { + "$ref": "#/components/schemas/DeviceProfile" + } + ], + "description": "Gets or sets the device profile.", + "nullable": true + }, + "EnableDirectPlay": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct play.", + "nullable": true + }, + "EnableDirectStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable direct stream.", + "nullable": true + }, + "EnableTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable transcoding.", + "nullable": true + }, + "AllowVideoStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable video stream copy.", + "nullable": true + }, + "AllowAudioStreamCopy": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to allow audio stream copy.", + "nullable": true + }, + "AutoOpenLiveStream": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to auto open the live stream.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Plabyback info dto." + }, + "PlaybackInfoResponse": { + "type": "object", + "properties": { + "MediaSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaSourceInfo" + }, + "description": "Gets or sets the media sources." + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "ErrorCode": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaybackErrorCode" + } + ], + "description": "Gets or sets the error code.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackInfoResponse." + }, + "PlaybackProgressInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackProgressInfo." + }, + "PlaybackStartInfo": { + "type": "object", + "properties": { + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the subtitle stream.", + "format": "int32", + "nullable": true + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "PlaybackStartTimeTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "Brightness": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AspectRatio": { + "type": "string", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStartInfo." + }, + "PlaybackStopInfo": { + "type": "object", + "properties": { + "Item": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the item.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "format": "uuid" + }, + "SessionId": { + "type": "string", + "description": "Gets or sets the session id.", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the media version identifier.", + "nullable": true + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64", + "nullable": true + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the live stream identifier.", + "nullable": true + }, + "PlaySessionId": { + "type": "string", + "description": "Gets or sets the play session identifier.", + "nullable": true + }, + "Failed": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Session.PlaybackStopInfo is failed." + }, + "NextMediaType": { + "type": "string", + "nullable": true + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class PlaybackStopInfo." + }, + "PlayerStateInfo": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the now playing position ticks.", + "format": "int64", + "nullable": true + }, + "CanSeek": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can seek." + }, + "IsPaused": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is paused." + }, + "IsMuted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is muted." + }, + "VolumeLevel": { + "type": "integer", + "description": "Gets or sets the volume level.", + "format": "int32", + "nullable": true + }, + "AudioStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing audio stream.", + "format": "int32", + "nullable": true + }, + "SubtitleStreamIndex": { + "type": "integer", + "description": "Gets or sets the index of the now playing subtitle stream.", + "format": "int32", + "nullable": true + }, + "MediaSourceId": { + "type": "string", + "description": "Gets or sets the now playing media version identifier.", + "nullable": true + }, + "PlayMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayMethod" + } + ], + "description": "Gets or sets the play method.", + "nullable": true + }, + "RepeatMode": { + "allOf": [ + { + "$ref": "#/components/schemas/RepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + }, + "LiveStreamId": { + "type": "string", + "description": "Gets or sets the now playing live stream identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PlaylistCreationResult": { + "type": "object", + "properties": { + "Id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PlaystateCommand": { + "enum": [ + "Stop", + "Pause", + "Unpause", + "NextTrack", + "PreviousTrack", + "Seek", + "Rewind", + "FastForward", + "PlayPause" + ], + "type": "string", + "description": "Enum PlaystateCommand." + }, + "PlaystateRequest": { + "type": "object", + "properties": { + "Command": { + "allOf": [ + { + "$ref": "#/components/schemas/PlaystateCommand" + } + ], + "description": "Enum PlaystateCommand." + }, + "SeekPositionTicks": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "ControllingUserId": { + "type": "string", + "description": "Gets or sets the controlling user identifier.", + "nullable": true + } + }, + "additionalProperties": false + }, + "PluginInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name." + }, + "Version": { + "type": "string", + "description": "Gets or sets the version." + }, + "ConfigurationFileName": { + "type": "string", + "description": "Gets or sets the name of the configuration file.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description." + }, + "Id": { + "type": "string", + "description": "Gets or sets the unique id.", + "format": "uuid" + }, + "CanUninstall": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the plugin can be uninstalled." + }, + "HasImage": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this plugin has a valid image." + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/PluginStatus" + } + ], + "description": "Gets or sets a value indicating the status of the plugin." + } + }, + "additionalProperties": false, + "description": "This is a serializable stub class that is used by the api to provide information about installed plugins." + }, + "PluginStatus": { + "enum": [ + "Active", + "Restart", + "Deleted", + "Superceded", + "Malfunctioned", + "NotSupported", + "Disabled" + ], + "type": "string", + "description": "Plugin load status." + }, + "PreviousItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playing item identifier.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class PreviousItemRequestDto." + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "ProfileCondition": { + "type": "object", + "properties": { + "Condition": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionType" + } + ] + }, + "Property": { + "allOf": [ + { + "$ref": "#/components/schemas/ProfileConditionValue" + } + ] + }, + "Value": { + "type": "string", + "nullable": true + }, + "IsRequired": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProfileConditionType": { + "enum": [ + "Equals", + "NotEquals", + "LessThanEqual", + "GreaterThanEqual", + "EqualsAny" + ], + "type": "string" + }, + "ProfileConditionValue": { + "enum": [ + "AudioChannels", + "AudioBitrate", + "AudioProfile", + "Width", + "Height", + "Has64BitOffsets", + "PacketLength", + "VideoBitDepth", + "VideoBitrate", + "VideoFramerate", + "VideoLevel", + "VideoProfile", + "VideoTimestamp", + "IsAnamorphic", + "RefFrames", + "NumAudioStreams", + "NumVideoStreams", + "IsSecondaryAudio", + "VideoCodecTag", + "IsAvc", + "IsInterlaced", + "AudioSampleRate", + "AudioBitDepth", + "VideoRangeType" + ], + "type": "string" + }, + "ProgramAudio": { + "enum": [ + "Mono", + "Stereo", + "Dolby", + "DolbyDigital", + "Thx", + "Atmos" + ], + "type": "string" + }, + "PublicSystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFilters": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameGuidPair" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueryFiltersLegacy": { + "type": "object", + "properties": { + "Genres": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "OfficialRatings": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Years": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueItem": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueRequestDto": { + "type": "object", + "properties": { + "ItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the items to enqueue." + }, + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupQueueMode" + } + ], + "description": "Gets or sets the mode in which to add the new items." + } + }, + "additionalProperties": false, + "description": "Class QueueRequestDto." + }, + "QuickConnectDto": { + "required": [ + "Secret" + ], + "type": "object", + "properties": { + "Secret": { + "type": "string", + "description": "Gets or sets the quick connect secret." + } + }, + "additionalProperties": false, + "description": "The quick connect request body." + }, + "QuickConnectResult": { + "type": "object", + "properties": { + "Authenticated": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this request is authorized." + }, + "Secret": { + "type": "string", + "description": "Gets the secret value used to uniquely identify this request. Can be used to retrieve authentication information." + }, + "Code": { + "type": "string", + "description": "Gets the user facing code used so the user can quickly differentiate this request from others." + }, + "DeviceId": { + "type": "string", + "description": "Gets the requesting device id." + }, + "DeviceName": { + "type": "string", + "description": "Gets the requesting device name." + }, + "AppName": { + "type": "string", + "description": "Gets the requesting app name." + }, + "AppVersion": { + "type": "string", + "description": "Gets the requesting app version." + }, + "DateAdded": { + "type": "string", + "description": "Gets or sets the DateTime that this request was created.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Stores the state of an quick connect request." + }, + "RatingType": { + "enum": [ + "Score", + "Likes" + ], + "type": "string" + }, + "ReadyRequestDto": { + "type": "object", + "properties": { + "When": { + "type": "string", + "description": "Gets or sets when the request has been made by the client.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + }, + "IsPlaying": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the client playback is unpaused." + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist item identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ReadyRequest." + }, + "RecommendationDto": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "RecommendationType": { + "allOf": [ + { + "$ref": "#/components/schemas/RecommendationType" + } + ] + }, + "BaselineItemName": { + "type": "string", + "nullable": true + }, + "CategoryId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "RecommendationType": { + "enum": [ + "SimilarToRecentlyPlayed", + "SimilarToLikedItem", + "HasDirectorFromRecentlyPlayed", + "HasActorFromRecentlyPlayed", + "HasLikedDirector", + "HasLikedActor" + ], + "type": "string" + }, + "RecordingStatus": { + "enum": [ + "New", + "InProgress", + "Completed", + "Cancelled", + "ConflictedOk", + "ConflictedNotOk", + "Error" + ], + "type": "string" + }, + "RemoteImageInfo": { + "type": "object", + "properties": { + "ProviderName": { + "type": "string", + "description": "Gets or sets the name of the provider.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "ThumbnailUrl": { + "type": "string", + "description": "Gets or sets a url used for previewing a smaller version.", + "nullable": true + }, + "Height": { + "type": "integer", + "description": "Gets or sets the height.", + "format": "int32", + "nullable": true + }, + "Width": { + "type": "integer", + "description": "Gets or sets the width.", + "format": "int32", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "description": "Gets or sets the community rating.", + "format": "double", + "nullable": true + }, + "VoteCount": { + "type": "integer", + "description": "Gets or sets the vote count.", + "format": "int32", + "nullable": true + }, + "Language": { + "type": "string", + "description": "Gets or sets the language.", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageType" + } + ], + "description": "Gets or sets the type." + }, + "RatingType": { + "allOf": [ + { + "$ref": "#/components/schemas/RatingType" + } + ], + "description": "Gets or sets the type of the rating." + } + }, + "additionalProperties": false, + "description": "Class RemoteImageInfo." + }, + "RemoteImageResult": { + "type": "object", + "properties": { + "Images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteImageInfo" + }, + "description": "Gets or sets the images.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total record count.", + "format": "int32" + }, + "Providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the providers.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class RemoteImageResult." + }, + "RemoteSearchResult": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IndexNumberEnd": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ImageUrl": { + "type": "string", + "nullable": true + }, + "SearchProviderName": { + "type": "string", + "nullable": true + }, + "Overview": { + "type": "string", + "nullable": true + }, + "AlbumArtist": { + "allOf": [ + { + "$ref": "#/components/schemas/RemoteSearchResult" + } + ], + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RemoteSearchResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoteSubtitleInfo": { + "type": "object", + "properties": { + "ThreeLetterISOLanguageName": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + }, + "ProviderName": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Format": { + "type": "string", + "nullable": true + }, + "Author": { + "type": "string", + "nullable": true + }, + "Comment": { + "type": "string", + "nullable": true + }, + "DateCreated": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "CommunityRating": { + "type": "number", + "format": "float", + "nullable": true + }, + "DownloadCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "IsHashMatch": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "RemoveFromPlaylistRequestDto": { + "type": "object", + "properties": { + "PlaylistItemIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "description": "Gets or sets the playlist identifiers ot the items. Ignored when clearing the playlist." + }, + "ClearPlaylist": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the entire playlist should be cleared." + }, + "ClearPlayingItem": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the playing item should be removed as well. Used only when clearing the playlist." + } + }, + "additionalProperties": false, + "description": "Class RemoveFromPlaylistRequestDto." + }, + "RepeatMode": { + "enum": [ + "RepeatNone", + "RepeatAll", + "RepeatOne" + ], + "type": "string" + }, + "ReportDisplayType": { + "enum": [ + "None", + "Screen", + "Export", + "ScreenExport" + ], + "type": "string" + }, + "ReportExportType": { + "enum": [ + "CSV", + "Excel" + ], + "type": "string" + }, + "ReportFieldType": { + "enum": [ + "String", + "Boolean", + "Date", + "Time", + "DateTime", + "Int", + "Image", + "Object", + "Minutes" + ], + "type": "string" + }, + "ReportGroup": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Rows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReportRow" + } + } + }, + "additionalProperties": false + }, + "ReportHeader": { + "type": "object", + "properties": { + "HeaderFieldType": { + "allOf": [ + { + "$ref": "#/components/schemas/ReportFieldType" + } + ] + }, + "Name": { + "type": "string", + "nullable": true + }, + "FieldName": { + "allOf": [ + { + "$ref": "#/components/schemas/HeaderMetadata" + } + ] + }, + "SortField": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ItemViewType": { + "allOf": [ + { + "$ref": "#/components/schemas/ItemViewType" + } + ] + }, + "Visible": { + "type": "boolean" + }, + "DisplayType": { + "allOf": [ + { + "$ref": "#/components/schemas/ReportDisplayType" + } + ] + }, + "ShowHeaderLabel": { + "type": "boolean" + }, + "CanGroup": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ReportIncludeItemTypes": { + "enum": [ + "MusicArtist", + "MusicAlbum", + "Book", + "BoxSet", + "Episode", + "Video", + "Movie", + "MusicVideo", + "Trailer", + "Season", + "Series", + "Audio", + "BaseItem", + "Artist" + ], + "type": "string" + }, + "ReportItem": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Name": { + "type": "string", + "nullable": true + }, + "Image": { + "type": "string", + "nullable": true + }, + "CustomTag": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ReportPlaybackOptions": { + "type": "object", + "properties": { + "MaxDataAge": { + "type": "integer", + "format": "int32" + }, + "BackupPath": { + "type": "string" + }, + "MaxBackupFiles": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ReportResult": { + "type": "object", + "properties": { + "Rows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReportRow" + }, + "nullable": true + }, + "Headers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReportHeader" + }, + "nullable": true + }, + "Groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReportGroup" + }, + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "format": "int32" + }, + "IsGrouped": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ReportRow": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "HasImageTagsBackdrop": { + "type": "boolean" + }, + "HasImageTagsPrimary": { + "type": "boolean" + }, + "HasImageTagsLogo": { + "type": "boolean" + }, + "HasLocalTrailer": { + "type": "boolean" + }, + "HasLockData": { + "type": "boolean" + }, + "HasEmbeddedImage": { + "type": "boolean" + }, + "HasSubtitles": { + "type": "boolean" + }, + "HasSpecials": { + "type": "boolean" + }, + "Columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReportItem" + }, + "nullable": true + }, + "RowType": { + "allOf": [ + { + "$ref": "#/components/schemas/ReportIncludeItemTypes" + } + ] + }, + "UserId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "RepositoryInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Url": { + "type": "string", + "description": "Gets or sets the URL.", + "nullable": true + }, + "Enabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the repository is enabled." + } + }, + "additionalProperties": false, + "description": "Class RepositoryInfo." + }, + "ResponseProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string", + "nullable": true + }, + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "OrgPn": { + "type": "string", + "nullable": true + }, + "MimeType": { + "type": "string", + "nullable": true + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ScrollDirection": { + "enum": [ + "Horizontal", + "Vertical" + ], + "type": "string", + "description": "An enum representing the axis that should be scrolled." + }, + "SearchHint": { + "type": "object", + "properties": { + "ItemId": { + "type": "string", + "description": "Gets or sets the item id.", + "format": "uuid" + }, + "Id": { + "type": "string", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "MatchedTerm": { + "type": "string", + "description": "Gets or sets the matched term.", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "description": "Gets or sets the index number.", + "format": "int32", + "nullable": true + }, + "ProductionYear": { + "type": "integer", + "description": "Gets or sets the production year.", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "description": "Gets or sets the parent index number.", + "format": "int32", + "nullable": true + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the image tag.", + "nullable": true + }, + "ThumbImageTag": { + "type": "string", + "description": "Gets or sets the thumb image tag.", + "nullable": true + }, + "ThumbImageItemId": { + "type": "string", + "description": "Gets or sets the thumb image item identifier.", + "nullable": true + }, + "BackdropImageTag": { + "type": "string", + "description": "Gets or sets the backdrop image tag.", + "nullable": true + }, + "BackdropImageItemId": { + "type": "string", + "description": "Gets or sets the backdrop image item identifier.", + "nullable": true + }, + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "IsFolder": { + "type": "boolean", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "MediaType": { + "type": "string", + "description": "Gets or sets the type of the media.", + "nullable": true + }, + "StartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "EndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "Series": { + "type": "string", + "description": "Gets or sets the series.", + "nullable": true + }, + "Status": { + "type": "string", + "nullable": true + }, + "Album": { + "type": "string", + "description": "Gets or sets the album.", + "nullable": true + }, + "AlbumId": { + "type": "string", + "format": "uuid" + }, + "AlbumArtist": { + "type": "string", + "description": "Gets or sets the album artist.", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the artists.", + "nullable": true + }, + "SongCount": { + "type": "integer", + "description": "Gets or sets the song count.", + "format": "int32", + "nullable": true + }, + "EpisodeCount": { + "type": "integer", + "description": "Gets or sets the episode count.", + "format": "int32", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel identifier.", + "format": "uuid" + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the name of the channel.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SearchHintResult": { + "type": "object", + "properties": { + "SearchHints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchHint" + }, + "description": "Gets the search hints." + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets the total record count.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Class SearchHintResult." + }, + "SeekRequestDto": { + "type": "object", + "properties": { + "PositionTicks": { + "type": "integer", + "description": "Gets or sets the position ticks.", + "format": "int64" + } + }, + "additionalProperties": false, + "description": "Class SeekRequestDto." + }, + "SendCommand": { + "type": "object", + "properties": { + "GroupId": { + "type": "string", + "description": "Gets the group identifier.", + "format": "uuid" + }, + "PlaylistItemId": { + "type": "string", + "description": "Gets the playlist identifier of the playing item.", + "format": "uuid" + }, + "When": { + "type": "string", + "description": "Gets or sets the UTC time when to execute the command.", + "format": "date-time" + }, + "PositionTicks": { + "type": "integer", + "description": "Gets the position ticks.", + "format": "int64", + "nullable": true + }, + "Command": { + "allOf": [ + { + "$ref": "#/components/schemas/SendCommandType" + } + ], + "description": "Gets the command." + }, + "EmittedAt": { + "type": "string", + "description": "Gets the UTC time when this command has been emitted.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class SendCommand." + }, + "SendCommandType": { + "enum": [ + "Unpause", + "Pause", + "Stop", + "Seek" + ], + "type": "string", + "description": "Enum SendCommandType." + }, + "SendToUserType": { + "enum": [ + "All", + "Admins", + "Custom" + ], + "type": "string" + }, + "SeriesInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SeriesInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/SeriesInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "SeriesStatus": { + "enum": [ + "Continuing", + "Ended" + ], + "type": "string", + "description": "Enum SeriesStatus." + }, + "SeriesTimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "RecordAnyTime": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any time]." + }, + "SkipEpisodesInLibrary": { + "type": "boolean" + }, + "RecordAnyChannel": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record any channel]." + }, + "KeepUpTo": { + "type": "integer", + "format": "int32" + }, + "RecordNewOnly": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [record new only]." + }, + "Days": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DayOfWeek" + }, + "description": "Gets or sets the days.", + "nullable": true + }, + "DayPattern": { + "allOf": [ + { + "$ref": "#/components/schemas/DayPattern" + } + ], + "description": "Gets or sets the day pattern.", + "nullable": true + }, + "ImageTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Gets or sets the image tags.", + "nullable": true + }, + "ParentThumbItemId": { + "type": "string", + "description": "Gets or sets the parent thumb item id.", + "nullable": true + }, + "ParentThumbImageTag": { + "type": "string", + "description": "Gets or sets the parent thumb image tag.", + "nullable": true + }, + "ParentPrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the parent primary image item identifier.", + "nullable": true + }, + "ParentPrimaryImageTag": { + "type": "string", + "description": "Gets or sets the parent primary image tag.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SeriesTimerInfoDto." + }, + "SeriesTimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesTimerInfoDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ServerConfiguration": { + "type": "object", + "properties": { + "LogFileRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain log files.", + "format": "int32" + }, + "IsStartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is first run." + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "PreviousVersion": { + "type": "string", + "description": "Gets or sets the last known version that was ran using the configuration.", + "nullable": true + }, + "PreviousVersionStr": { + "type": "string", + "description": "Gets or sets the stringified PreviousVersion to be stored/loaded,\r\nbecause System.Version itself isn't xml-serializable.", + "nullable": true + }, + "EnableMetrics": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to enable prometheus metrics exporting." + }, + "EnableNormalizedItemByNameIds": { + "type": "boolean" + }, + "IsPortAuthorized": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is port authorized." + }, + "QuickConnectAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether quick connect is available for use on this server." + }, + "EnableCaseSensitiveItemIds": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable case sensitive item ids]." + }, + "DisableLiveTvChannelUserDataName": { + "type": "boolean" + }, + "MetadataPath": { + "type": "string", + "description": "Gets or sets the metadata path." + }, + "MetadataNetworkPath": { + "type": "string" + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred metadata language." + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code." + }, + "SortReplaceCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be replaced with a ' ' in strings to create a sort name." + }, + "SortRemoveCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets characters to be removed from strings to create a sort name." + }, + "SortRemoveWords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets words to be removed from strings to create a sort name." + }, + "MinResumePct": { + "type": "integer", + "description": "Gets or sets the minimum percentage of an item that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxResumePct": { + "type": "integer", + "description": "Gets or sets the maximum percentage of an item that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "MinResumeDurationSeconds": { + "type": "integer", + "description": "Gets or sets the minimum duration that an item must have in order to be eligible for playstate updates..", + "format": "int32" + }, + "MinAudiobookResume": { + "type": "integer", + "description": "Gets or sets the minimum minutes of a book that must be played in order for playstate to be updated.", + "format": "int32" + }, + "MaxAudiobookResume": { + "type": "integer", + "description": "Gets or sets the remaining minutes of a book that can be played while still saving playstate. If this percentage is crossed playstate will be reset to the beginning and the item will be marked watched.", + "format": "int32" + }, + "LibraryMonitorDelay": { + "type": "integer", + "description": "Gets or sets the delay in seconds that we will wait after a file system change to try and discover what has been added/removed\r\nSome delay is necessary with some items because their creation is not atomic. It involves the creation of several\r\ndifferent directories and files.", + "format": "int32" + }, + "ImageSavingConvention": { + "allOf": [ + { + "$ref": "#/components/schemas/ImageSavingConvention" + } + ], + "description": "Gets or sets the image saving convention." + }, + "MetadataOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetadataOptions" + } + }, + "SkipDeserializationForBasicTypes": { + "type": "boolean" + }, + "ServerName": { + "type": "string" + }, + "UICulture": { + "type": "string" + }, + "SaveMetadataHidden": { + "type": "boolean" + }, + "ContentTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValuePair" + } + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "EnableFolderView": { + "type": "boolean" + }, + "EnableGroupingIntoCollections": { + "type": "boolean" + }, + "DisplaySpecialsWithinSeasons": { + "type": "boolean" + }, + "CodecsUsed": { + "type": "array", + "items": { + "type": "string" + } + }, + "PluginRepositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryInfo" + } + }, + "EnableExternalContentInSuggestions": { + "type": "boolean" + }, + "ImageExtractionTimeoutMs": { + "type": "integer", + "format": "int32" + }, + "PathSubstitutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathSubstitution" + } + }, + "EnableSlowResponseWarning": { + "type": "boolean", + "description": "Gets or sets a value indicating whether slow server responses should be logged as a warning." + }, + "SlowResponseThresholdMs": { + "type": "integer", + "description": "Gets or sets the threshold for the slow response time warning in ms.", + "format": "int64" + }, + "CorsHosts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the cors hosts." + }, + "ActivityLogRetentionDays": { + "type": "integer", + "description": "Gets or sets the number of days we should retain activity logs.", + "format": "int32", + "nullable": true + }, + "LibraryScanFanoutConcurrency": { + "type": "integer", + "description": "Gets or sets the how the library scan fans out.", + "format": "int32" + }, + "LibraryMetadataRefreshConcurrency": { + "type": "integer", + "description": "Gets or sets the how many metadata refreshes can run concurrently.", + "format": "int32" + }, + "RemoveOldPlugins": { + "type": "boolean", + "description": "Gets or sets a value indicating whether older plugins should automatically be deleted from the plugin folder." + }, + "AllowClientLogUpload": { + "type": "boolean", + "description": "Gets or sets a value indicating whether clients should be allowed to upload logs." + } + }, + "additionalProperties": false, + "description": "Represents the server configuration." + }, + "ServerDiscoveryInfo": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Gets the address." + }, + "Id": { + "type": "string", + "description": "Gets the server identifier." + }, + "Name": { + "type": "string", + "description": "Gets the name." + }, + "EndpointAddress": { + "type": "string", + "description": "Gets the endpoint address.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The server discovery info model." + }, + "SessionInfo": { + "type": "object", + "properties": { + "PlayState": { + "allOf": [ + { + "$ref": "#/components/schemas/PlayerStateInfo" + } + ], + "nullable": true + }, + "AdditionalUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionUserInfo" + }, + "nullable": true + }, + "Capabilities": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientCapabilities" + } + ], + "nullable": true + }, + "RemoteEndPoint": { + "type": "string", + "description": "Gets or sets the remote end point.", + "nullable": true + }, + "PlayableMediaTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets the playable media types.", + "nullable": true, + "readOnly": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "UserId": { + "type": "string", + "description": "Gets or sets the user id.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Client": { + "type": "string", + "description": "Gets or sets the type of the client.", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time" + }, + "LastPlaybackCheckIn": { + "type": "string", + "description": "Gets or sets the last playback check in.", + "format": "date-time" + }, + "DeviceName": { + "type": "string", + "description": "Gets or sets the name of the device.", + "nullable": true + }, + "DeviceType": { + "type": "string", + "description": "Gets or sets the type of the device.", + "nullable": true + }, + "NowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client.", + "nullable": true + }, + "FullNowPlayingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItem" + } + ], + "description": "Class BaseItem.", + "nullable": true + }, + "NowViewingItem": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client.", + "nullable": true + }, + "DeviceId": { + "type": "string", + "description": "Gets or sets the device id.", + "nullable": true + }, + "ApplicationVersion": { + "type": "string", + "description": "Gets or sets the application version.", + "nullable": true + }, + "TranscodingInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodingInfo" + } + ], + "nullable": true + }, + "IsActive": { + "type": "boolean", + "description": "Gets a value indicating whether this instance is active.", + "readOnly": true + }, + "SupportsMediaControl": { + "type": "boolean", + "readOnly": true + }, + "SupportsRemoteControl": { + "type": "boolean", + "readOnly": true + }, + "NowPlayingQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItem" + }, + "nullable": true + }, + "NowPlayingQueueFullItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "nullable": true + }, + "HasCustomDeviceName": { + "type": "boolean" + }, + "PlaylistItemId": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "nullable": true + }, + "UserPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "SupportedCommands": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GeneralCommandType" + }, + "description": "Gets the supported commands.", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false, + "description": "Class SessionInfo." + }, + "SessionMessageType": { + "enum": [ + "ForceKeepAlive", + "GeneralCommand", + "UserDataChanged", + "Sessions", + "Play", + "SyncPlayCommand", + "SyncPlayGroupUpdate", + "Playstate", + "RestartRequired", + "ServerShuttingDown", + "ServerRestarting", + "LibraryChanged", + "UserDeleted", + "UserUpdated", + "SeriesTimerCreated", + "TimerCreated", + "SeriesTimerCancelled", + "TimerCancelled", + "RefreshProgress", + "ScheduledTaskEnded", + "PackageInstallationCancelled", + "PackageInstallationFailed", + "PackageInstallationCompleted", + "PackageInstalling", + "PackageUninstalled", + "ActivityLogEntry", + "ScheduledTasksInfo", + "ActivityLogEntryStart", + "ActivityLogEntryStop", + "SessionsStart", + "SessionsStop", + "ScheduledTasksInfoStart", + "ScheduledTasksInfoStop", + "KeepAlive" + ], + "type": "string", + "description": "The different kinds of messages that are used in the WebSocket api." + }, + "SessionUserInfo": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "description": "Gets or sets the user identifier.", + "format": "uuid" + }, + "UserName": { + "type": "string", + "description": "Gets or sets the name of the user.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class SessionUserInfo." + }, + "SetChannelMappingDto": { + "required": [ + "ProviderChannelId", + "ProviderId", + "TunerChannelId" + ], + "type": "object", + "properties": { + "ProviderId": { + "type": "string", + "description": "Gets or sets the provider id." + }, + "TunerChannelId": { + "type": "string", + "description": "Gets or sets the tuner channel id." + }, + "ProviderChannelId": { + "type": "string", + "description": "Gets or sets the provider channel id." + } + }, + "additionalProperties": false, + "description": "Set channel mapping dto." + }, + "SetPlaylistItemRequestDto": { + "type": "object", + "properties": { + "PlaylistItemId": { + "type": "string", + "description": "Gets or sets the playlist identifier of the playing item.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class SetPlaylistItemRequestDto." + }, + "SetRepeatModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupRepeatMode" + } + ], + "description": "Gets or sets the repeat mode." + } + }, + "additionalProperties": false, + "description": "Class SetRepeatModeRequestDto." + }, + "SetShuffleModeRequestDto": { + "type": "object", + "properties": { + "Mode": { + "allOf": [ + { + "$ref": "#/components/schemas/GroupShuffleMode" + } + ], + "description": "Gets or sets the shuffle mode." + } + }, + "additionalProperties": false, + "description": "Class SetShuffleModeRequestDto." + }, + "SongInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + }, + "AlbumArtists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "Album": { + "type": "string", + "nullable": true + }, + "Artists": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SortOrder": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string", + "description": "An enum representing the sorting order." + }, + "SpecialViewOptionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets view option name.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets view option id.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Special view option dto." + }, + "StartupConfigurationDto": { + "type": "object", + "properties": { + "UICulture": { + "type": "string", + "description": "Gets or sets UI language culture.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "PreferredMetadataLanguage": { + "type": "string", + "description": "Gets or sets the preferred language for the metadata.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup configuration DTO." + }, + "StartupRemoteAccessDto": { + "required": [ + "EnableAutomaticPortMapping", + "EnableRemoteAccess" + ], + "type": "object", + "properties": { + "EnableRemoteAccess": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable remote access." + }, + "EnableAutomaticPortMapping": { + "type": "boolean", + "description": "Gets or sets a value indicating whether enable automatic port mapping." + } + }, + "additionalProperties": false, + "description": "Startup remote access dto." + }, + "StartupUserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the username.", + "nullable": true + }, + "Password": { + "type": "string", + "description": "Gets or sets the user's password.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The startup user DTO." + }, + "SubtitleDeliveryMethod": { + "enum": [ + "Encode", + "Embed", + "External", + "Hls", + "Drop" + ], + "type": "string", + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "SubtitleOptions": { + "type": "object", + "properties": { + "SkipIfEmbeddedSubtitlesPresent": { + "type": "boolean" + }, + "SkipIfAudioTrackMatches": { + "type": "boolean" + }, + "DownloadLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "DownloadMovieSubtitles": { + "type": "boolean" + }, + "DownloadEpisodeSubtitles": { + "type": "boolean" + }, + "OpenSubtitlesUsername": { + "type": "string", + "nullable": true + }, + "OpenSubtitlesPasswordHash": { + "type": "string", + "nullable": true + }, + "IsOpenSubtitleVipAccount": { + "type": "boolean" + }, + "RequirePerfectMatch": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubtitlePlaybackMode": { + "enum": [ + "Default", + "Always", + "OnlyForced", + "None", + "Smart" + ], + "type": "string", + "description": "An enum representing a subtitle playback mode." + }, + "SubtitleProfile": { + "type": "object", + "properties": { + "Format": { + "type": "string", + "nullable": true + }, + "Method": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitleDeliveryMethod" + } + ], + "description": "Delivery method to use during playback of a specific subtitle format." + }, + "DidlMode": { + "type": "string", + "nullable": true + }, + "Language": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SyncPlayUserAccessType": { + "enum": [ + "CreateAndJoinGroups", + "JoinGroups", + "None" + ], + "type": "string", + "description": "Enum SyncPlayUserAccessType." + }, + "SystemInfo": { + "type": "object", + "properties": { + "LocalAddress": { + "type": "string", + "description": "Gets or sets the local address.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.", + "nullable": true + }, + "Version": { + "type": "string", + "description": "Gets or sets the server version.", + "nullable": true + }, + "ProductName": { + "type": "string", + "description": "Gets or sets the product name. This is the AssemblyProduct name.", + "nullable": true + }, + "OperatingSystem": { + "type": "string", + "description": "Gets or sets the operating system.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "StartupWizardCompleted": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the startup wizard is completed.", + "nullable": true + }, + "OperatingSystemDisplayName": { + "type": "string", + "description": "Gets or sets the display name of the operating system.", + "nullable": true + }, + "PackageName": { + "type": "string", + "description": "Gets or sets the package name.", + "nullable": true + }, + "HasPendingRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has pending restart." + }, + "IsShuttingDown": { + "type": "boolean" + }, + "SupportsLibraryMonitor": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [supports library monitor]." + }, + "WebSocketPortNumber": { + "type": "integer", + "description": "Gets or sets the web socket port number.", + "format": "int32" + }, + "CompletedInstallations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InstallationInfo" + }, + "description": "Gets or sets the completed installations.", + "nullable": true + }, + "CanSelfRestart": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance can self restart." + }, + "CanLaunchWebBrowser": { + "type": "boolean" + }, + "ProgramDataPath": { + "type": "string", + "description": "Gets or sets the program data path.", + "nullable": true + }, + "WebPath": { + "type": "string", + "description": "Gets or sets the web UI resources path.", + "nullable": true + }, + "ItemsByNamePath": { + "type": "string", + "description": "Gets or sets the items by name path.", + "nullable": true + }, + "CachePath": { + "type": "string", + "description": "Gets or sets the cache path.", + "nullable": true + }, + "LogPath": { + "type": "string", + "description": "Gets or sets the log path.", + "nullable": true + }, + "InternalMetadataPath": { + "type": "string", + "description": "Gets or sets the internal metadata path.", + "nullable": true + }, + "TranscodingTempPath": { + "type": "string", + "description": "Gets or sets the transcode path.", + "nullable": true + }, + "HasUpdateAvailable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has update available.", + "deprecated": true + }, + "EncoderLocation": { + "allOf": [ + { + "$ref": "#/components/schemas/FFmpegLocation" + } + ], + "description": "Enum describing the location of the FFmpeg tool.", + "deprecated": true + }, + "SystemArchitecture": { + "allOf": [ + { + "$ref": "#/components/schemas/Architecture" + } + ] + } + }, + "additionalProperties": false, + "description": "Class SystemInfo." + }, + "TaskCompletionStatus": { + "enum": [ + "Completed", + "Failed", + "Cancelled", + "Aborted" + ], + "type": "string", + "description": "Enum TaskCompletionStatus." + }, + "TaskInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "State": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskState" + } + ], + "description": "Gets or sets the state of the task." + }, + "CurrentProgressPercentage": { + "type": "number", + "description": "Gets or sets the progress.", + "format": "double", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "LastExecutionResult": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskResult" + } + ], + "description": "Gets or sets the last execution result.", + "nullable": true + }, + "Triggers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskTriggerInfo" + }, + "description": "Gets or sets the triggers.", + "nullable": true + }, + "Description": { + "type": "string", + "description": "Gets or sets the description.", + "nullable": true + }, + "Category": { + "type": "string", + "description": "Gets or sets the category.", + "nullable": true + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskInfo." + }, + "TaskResult": { + "type": "object", + "properties": { + "StartTimeUtc": { + "type": "string", + "description": "Gets or sets the start time UTC.", + "format": "date-time" + }, + "EndTimeUtc": { + "type": "string", + "description": "Gets or sets the end time UTC.", + "format": "date-time" + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/TaskCompletionStatus" + } + ], + "description": "Gets or sets the status." + }, + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "nullable": true + }, + "ErrorMessage": { + "type": "string", + "description": "Gets or sets the error message.", + "nullable": true + }, + "LongErrorMessage": { + "type": "string", + "description": "Gets or sets the long error message.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskExecutionInfo." + }, + "TaskState": { + "enum": [ + "Idle", + "Cancelling", + "Running" + ], + "type": "string", + "description": "Enum TaskState." + }, + "TaskTriggerInfo": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Gets or sets the type.", + "nullable": true + }, + "TimeOfDayTicks": { + "type": "integer", + "description": "Gets or sets the time of day.", + "format": "int64", + "nullable": true + }, + "IntervalTicks": { + "type": "integer", + "description": "Gets or sets the interval.", + "format": "int64", + "nullable": true + }, + "DayOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/DayOfWeek" + } + ], + "description": "Gets or sets the day of week.", + "nullable": true + }, + "MaxRuntimeTicks": { + "type": "integer", + "description": "Gets or sets the maximum runtime ticks.", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class TaskTriggerInfo." + }, + "ThemeMediaResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BaseItemDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + }, + "OwnerId": { + "type": "string", + "description": "Gets or sets the owner id.", + "format": "uuid" + } + }, + "additionalProperties": false, + "description": "Class ThemeMediaResult." + }, + "TimerEventInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string" + }, + "ProgramId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the Id of the recording.", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ExternalId": { + "type": "string", + "description": "Gets or sets the external identifier.", + "nullable": true + }, + "ChannelId": { + "type": "string", + "description": "Gets or sets the channel id of the recording.", + "format": "uuid" + }, + "ExternalChannelId": { + "type": "string", + "description": "Gets or sets the external channel identifier.", + "nullable": true + }, + "ChannelName": { + "type": "string", + "description": "Gets or sets the channel name of the recording.", + "nullable": true + }, + "ChannelPrimaryImageTag": { + "type": "string", + "nullable": true + }, + "ProgramId": { + "type": "string", + "description": "Gets or sets the program identifier.", + "nullable": true + }, + "ExternalProgramId": { + "type": "string", + "description": "Gets or sets the external program identifier.", + "nullable": true + }, + "Name": { + "type": "string", + "description": "Gets or sets the name of the recording.", + "nullable": true + }, + "Overview": { + "type": "string", + "description": "Gets or sets the description of the recording.", + "nullable": true + }, + "StartDate": { + "type": "string", + "description": "Gets or sets the start date of the recording, in UTC.", + "format": "date-time" + }, + "EndDate": { + "type": "string", + "description": "Gets or sets the end date of the recording, in UTC.", + "format": "date-time" + }, + "ServiceName": { + "type": "string", + "description": "Gets or sets the name of the service.", + "nullable": true + }, + "Priority": { + "type": "integer", + "description": "Gets or sets the priority.", + "format": "int32" + }, + "PrePaddingSeconds": { + "type": "integer", + "description": "Gets or sets the pre padding seconds.", + "format": "int32" + }, + "PostPaddingSeconds": { + "type": "integer", + "description": "Gets or sets the post padding seconds.", + "format": "int32" + }, + "IsPrePaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is pre padding required." + }, + "ParentBackdropItemId": { + "type": "string", + "description": "Gets or sets the Id of the Parent that has a backdrop if the item does not have one.", + "nullable": true + }, + "ParentBackdropImageTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the parent backdrop image tags.", + "nullable": true + }, + "IsPostPaddingRequired": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is post padding required." + }, + "KeepUntil": { + "allOf": [ + { + "$ref": "#/components/schemas/KeepUntil" + } + ] + }, + "Status": { + "allOf": [ + { + "$ref": "#/components/schemas/RecordingStatus" + } + ], + "description": "Gets or sets the status." + }, + "SeriesTimerId": { + "type": "string", + "description": "Gets or sets the series timer identifier.", + "nullable": true + }, + "ExternalSeriesTimerId": { + "type": "string", + "description": "Gets or sets the external series timer identifier.", + "nullable": true + }, + "RunTimeTicks": { + "type": "integer", + "description": "Gets or sets the run time ticks.", + "format": "int64", + "nullable": true + }, + "ProgramInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseItemDto" + } + ], + "description": "Gets or sets the program information.", + "nullable": true + } + }, + "additionalProperties": false + }, + "TimerInfoDtoQueryResult": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimerInfoDto" + }, + "description": "Gets or sets the items.", + "nullable": true + }, + "TotalRecordCount": { + "type": "integer", + "description": "Gets or sets the total number of records available.", + "format": "int32" + }, + "StartIndex": { + "type": "integer", + "description": "Gets or sets the index of the first record in Items.", + "format": "int32" + } + }, + "additionalProperties": false + }, + "TrailerInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "OriginalTitle": { + "type": "string", + "description": "Gets or sets the original title.", + "nullable": true + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "MetadataLanguage": { + "type": "string", + "description": "Gets or sets the metadata language.", + "nullable": true + }, + "MetadataCountryCode": { + "type": "string", + "description": "Gets or sets the metadata country code.", + "nullable": true + }, + "ProviderIds": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Gets or sets the provider ids.", + "nullable": true + }, + "Year": { + "type": "integer", + "description": "Gets or sets the year.", + "format": "int32", + "nullable": true + }, + "IndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ParentIndexNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "PremiereDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "IsAutomated": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TrailerInfoRemoteSearchQuery": { + "type": "object", + "properties": { + "SearchInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TrailerInfo" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "format": "uuid" + }, + "SearchProviderName": { + "type": "string", + "description": "Gets or sets the provider name to search within if set.", + "nullable": true + }, + "IncludeDisabledProviders": { + "type": "boolean", + "description": "Gets or sets a value indicating whether disabled providers should be included." + } + }, + "additionalProperties": false + }, + "TranscodeReason": { + "enum": [ + "ContainerNotSupported", + "VideoCodecNotSupported", + "AudioCodecNotSupported", + "SubtitleCodecNotSupported", + "AudioIsExternal", + "SecondaryAudioNotSupported", + "VideoProfileNotSupported", + "VideoLevelNotSupported", + "VideoResolutionNotSupported", + "VideoBitDepthNotSupported", + "VideoFramerateNotSupported", + "RefFramesNotSupported", + "AnamorphicVideoNotSupported", + "InterlacedVideoNotSupported", + "AudioChannelsNotSupported", + "AudioProfileNotSupported", + "AudioSampleRateNotSupported", + "AudioBitDepthNotSupported", + "ContainerBitrateExceedsLimit", + "VideoBitrateNotSupported", + "AudioBitrateNotSupported", + "UnknownVideoStreamInfo", + "UnknownAudioStreamInfo", + "DirectPlayError", + "VideoRangeTypeNotSupported" + ], + "type": "string" + }, + "TranscodeSeekInfo": { + "enum": [ + "Auto", + "Bytes" + ], + "type": "string" + }, + "TranscodingInfo": { + "type": "object", + "properties": { + "AudioCodec": { + "type": "string", + "nullable": true + }, + "VideoCodec": { + "type": "string", + "nullable": true + }, + "Container": { + "type": "string", + "nullable": true + }, + "IsVideoDirect": { + "type": "boolean" + }, + "IsAudioDirect": { + "type": "boolean" + }, + "Bitrate": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Framerate": { + "type": "number", + "format": "float", + "nullable": true + }, + "CompletionPercentage": { + "type": "number", + "format": "double", + "nullable": true + }, + "Width": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "Height": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "AudioChannels": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "HardwareAccelerationType": { + "allOf": [ + { + "$ref": "#/components/schemas/HardwareEncodingType" + } + ], + "nullable": true + }, + "TranscodeReasons": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscodeReason" + } + } + }, + "additionalProperties": false + }, + "TranscodingProfile": { + "type": "object", + "properties": { + "Container": { + "type": "string" + }, + "Type": { + "allOf": [ + { + "$ref": "#/components/schemas/DlnaProfileType" + } + ] + }, + "VideoCodec": { + "type": "string" + }, + "AudioCodec": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "EstimateContentLength": { + "type": "boolean", + "default": false + }, + "EnableMpegtsM2TsMode": { + "type": "boolean", + "default": false + }, + "TranscodeSeekInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/TranscodeSeekInfo" + } + ], + "default": "Auto" + }, + "CopyTimestamps": { + "type": "boolean", + "default": false + }, + "Context": { + "allOf": [ + { + "$ref": "#/components/schemas/EncodingContext" + } + ], + "default": "Streaming" + }, + "EnableSubtitlesInManifest": { + "type": "boolean", + "default": false + }, + "MaxAudioChannels": { + "type": "string", + "nullable": true + }, + "MinSegments": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "SegmentLength": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "BreakOnNonKeyFrames": { + "type": "boolean", + "default": false + }, + "Conditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProfileCondition" + } + } + }, + "additionalProperties": false + }, + "TransportStreamTimestamp": { + "enum": [ + "None", + "Zero", + "Valid" + ], + "type": "string" + }, + "TunerChannelMapping": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "nullable": true + }, + "ProviderChannelName": { + "type": "string", + "nullable": true + }, + "ProviderChannelId": { + "type": "string", + "nullable": true + }, + "Id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TunerHostInfo": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "nullable": true + }, + "Url": { + "type": "string", + "nullable": true + }, + "Type": { + "type": "string", + "nullable": true + }, + "DeviceId": { + "type": "string", + "nullable": true + }, + "FriendlyName": { + "type": "string", + "nullable": true + }, + "ImportFavoritesOnly": { + "type": "boolean" + }, + "AllowHWTranscoding": { + "type": "boolean" + }, + "EnableStreamLooping": { + "type": "boolean" + }, + "Source": { + "type": "string", + "nullable": true + }, + "TunerCount": { + "type": "integer", + "format": "int32" + }, + "UserAgent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TypeOptions": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "nullable": true + }, + "MetadataFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "MetadataFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetchers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageFetcherOrder": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "ImageOptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImageOption" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "UnratedItem": { + "enum": [ + "Movie", + "Trailer", + "Series", + "Music", + "Book", + "LiveTvChannel", + "LiveTvProgram", + "ChannelContent", + "Other" + ], + "type": "string", + "description": "An enum representing an unrated item." + }, + "UpdateLibraryOptionsDto": { + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "Gets or sets the library item id.", + "format": "uuid" + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "description": "Gets or sets library options.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateMediaPathRequestDto": { + "required": [ + "Name", + "PathInfo" + ], + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the library name." + }, + "PathInfo": { + "allOf": [ + { + "$ref": "#/components/schemas/MediaPathInfo" + } + ], + "description": "Gets or sets library folder path information." + } + }, + "additionalProperties": false, + "description": "Update library options dto." + }, + "UpdateUserEasyPassword": { + "type": "object", + "properties": { + "NewPassword": { + "type": "string", + "description": "Gets or sets the new sha1-hashed password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user easy password request body." + }, + "UpdateUserPassword": { + "type": "object", + "properties": { + "CurrentPassword": { + "type": "string", + "description": "Gets or sets the current sha1-hashed password.", + "nullable": true + }, + "CurrentPw": { + "type": "string", + "description": "Gets or sets the current plain text password.", + "nullable": true + }, + "NewPw": { + "type": "string", + "description": "Gets or sets the new plain text password.", + "nullable": true + }, + "ResetPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether to reset the password." + } + }, + "additionalProperties": false, + "description": "The update user password request body." + }, + "UploadSubtitleDto": { + "required": [ + "Data", + "Format", + "IsForced", + "Language" + ], + "type": "object", + "properties": { + "Language": { + "type": "string", + "description": "Gets or sets the subtitle language." + }, + "Format": { + "type": "string", + "description": "Gets or sets the subtitle format." + }, + "IsForced": { + "type": "boolean", + "description": "Gets or sets a value indicating whether the subtitle is forced." + }, + "Data": { + "type": "string", + "description": "Gets or sets the subtitle data." + } + }, + "additionalProperties": false, + "description": "Upload subtitles dto." + }, + "UserConfiguration": { + "type": "object", + "properties": { + "AudioLanguagePreference": { + "type": "string", + "description": "Gets or sets the audio language preference.", + "nullable": true + }, + "PlayDefaultAudioTrack": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [play default audio track]." + }, + "SubtitleLanguagePreference": { + "type": "string", + "description": "Gets or sets the subtitle language preference.", + "nullable": true + }, + "DisplayMissingEpisodes": { + "type": "boolean" + }, + "GroupedFolders": { + "type": "array", + "items": { + "type": "string" + } + }, + "SubtitleMode": { + "allOf": [ + { + "$ref": "#/components/schemas/SubtitlePlaybackMode" + } + ], + "description": "An enum representing a subtitle playback mode." + }, + "DisplayCollectionsView": { + "type": "boolean" + }, + "EnableLocalPassword": { + "type": "boolean" + }, + "OrderedViews": { + "type": "array", + "items": { + "type": "string" + } + }, + "LatestItemsExcludes": { + "type": "array", + "items": { + "type": "string" + } + }, + "MyMediaExcludes": { + "type": "array", + "items": { + "type": "string" + } + }, + "HidePlayedInLatest": { + "type": "boolean" + }, + "RememberAudioSelections": { + "type": "boolean" + }, + "RememberSubtitleSelections": { + "type": "boolean" + }, + "EnableNextEpisodeAutoPlay": { + "type": "boolean" + } + }, + "additionalProperties": false, + "description": "Class UserConfiguration." + }, + "UserDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "ServerId": { + "type": "string", + "description": "Gets or sets the server identifier.", + "nullable": true + }, + "ServerName": { + "type": "string", + "description": "Gets or sets the name of the server.\r\nThis is not used by the server and is for client-side usage only.", + "nullable": true + }, + "Id": { + "type": "string", + "description": "Gets or sets the id.", + "format": "uuid" + }, + "PrimaryImageTag": { + "type": "string", + "description": "Gets or sets the primary image tag.", + "nullable": true + }, + "HasPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has password." + }, + "HasConfiguredPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured password." + }, + "HasConfiguredEasyPassword": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance has configured easy password." + }, + "EnableAutoLogin": { + "type": "boolean", + "description": "Gets or sets whether async login is enabled or not.", + "nullable": true + }, + "LastLoginDate": { + "type": "string", + "description": "Gets or sets the last login date.", + "format": "date-time", + "nullable": true + }, + "LastActivityDate": { + "type": "string", + "description": "Gets or sets the last activity date.", + "format": "date-time", + "nullable": true + }, + "Configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/UserConfiguration" + } + ], + "description": "Gets or sets the configuration.", + "nullable": true + }, + "Policy": { + "allOf": [ + { + "$ref": "#/components/schemas/UserPolicy" + } + ], + "description": "Gets or sets the policy.", + "nullable": true + }, + "PrimaryImageAspectRatio": { + "type": "number", + "description": "Gets or sets the primary image aspect ratio.", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserDto." + }, + "UserItemDataDto": { + "type": "object", + "properties": { + "Rating": { + "type": "number", + "description": "Gets or sets the rating.", + "format": "double", + "nullable": true + }, + "PlayedPercentage": { + "type": "number", + "description": "Gets or sets the played percentage.", + "format": "double", + "nullable": true + }, + "UnplayedItemCount": { + "type": "integer", + "description": "Gets or sets the unplayed item count.", + "format": "int32", + "nullable": true + }, + "PlaybackPositionTicks": { + "type": "integer", + "description": "Gets or sets the playback position ticks.", + "format": "int64" + }, + "PlayCount": { + "type": "integer", + "description": "Gets or sets the play count.", + "format": "int32" + }, + "IsFavorite": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is favorite." + }, + "Likes": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is likes.", + "nullable": true + }, + "LastPlayedDate": { + "type": "string", + "description": "Gets or sets the last played date.", + "format": "date-time", + "nullable": true + }, + "Played": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this MediaBrowser.Model.Dto.UserItemDataDto is played." + }, + "Key": { + "type": "string", + "description": "Gets or sets the key.", + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Class UserItemDataDto." + }, + "UserPolicy": { + "type": "object", + "properties": { + "IsAdministrator": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is administrator." + }, + "IsHidden": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is hidden." + }, + "IsDisabled": { + "type": "boolean", + "description": "Gets or sets a value indicating whether this instance is disabled." + }, + "MaxParentalRating": { + "type": "integer", + "description": "Gets or sets the max parental rating.", + "format": "int32", + "nullable": true + }, + "BlockedTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableUserPreferenceAccess": { + "type": "boolean" + }, + "AccessSchedules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessSchedule" + }, + "nullable": true + }, + "BlockUnratedItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnratedItem" + }, + "nullable": true + }, + "EnableRemoteControlOfOtherUsers": { + "type": "boolean" + }, + "EnableSharedDeviceControl": { + "type": "boolean" + }, + "EnableRemoteAccess": { + "type": "boolean" + }, + "EnableLiveTvManagement": { + "type": "boolean" + }, + "EnableLiveTvAccess": { + "type": "boolean" + }, + "EnableMediaPlayback": { + "type": "boolean" + }, + "EnableAudioPlaybackTranscoding": { + "type": "boolean" + }, + "EnableVideoPlaybackTranscoding": { + "type": "boolean" + }, + "EnablePlaybackRemuxing": { + "type": "boolean" + }, + "ForceRemoteSourceTranscoding": { + "type": "boolean" + }, + "EnableContentDeletion": { + "type": "boolean" + }, + "EnableContentDeletionFromFolders": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableContentDownloading": { + "type": "boolean" + }, + "EnableSyncTranscoding": { + "type": "boolean", + "description": "Gets or sets a value indicating whether [enable synchronize]." + }, + "EnableMediaConversion": { + "type": "boolean" + }, + "EnabledDevices": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "EnableAllDevices": { + "type": "boolean" + }, + "EnabledChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllChannels": { + "type": "boolean" + }, + "EnabledFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "EnableAllFolders": { + "type": "boolean" + }, + "InvalidLoginAttemptCount": { + "type": "integer", + "format": "int32" + }, + "LoginAttemptsBeforeLockout": { + "type": "integer", + "format": "int32" + }, + "MaxActiveSessions": { + "type": "integer", + "format": "int32" + }, + "EnablePublicSharing": { + "type": "boolean" + }, + "BlockedMediaFolders": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "BlockedChannels": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + }, + "nullable": true + }, + "RemoteClientBitrateLimit": { + "type": "integer", + "format": "int32" + }, + "AuthenticationProviderId": { + "type": "string", + "nullable": true + }, + "PasswordResetProviderId": { + "type": "string", + "nullable": true + }, + "SyncPlayAccess": { + "allOf": [ + { + "$ref": "#/components/schemas/SyncPlayUserAccessType" + } + ], + "description": "Gets or sets a value indicating what SyncPlay features the user can access." + } + }, + "additionalProperties": false + }, + "UtcTimeResponse": { + "type": "object", + "properties": { + "RequestReceptionTime": { + "type": "string", + "description": "Gets the UTC time when request has been received.", + "format": "date-time" + }, + "ResponseTransmissionTime": { + "type": "string", + "description": "Gets the UTC time when response has been sent.", + "format": "date-time" + } + }, + "additionalProperties": false, + "description": "Class UtcTimeResponse." + }, + "ValidatePathDto": { + "type": "object", + "properties": { + "ValidateWritable": { + "type": "boolean", + "description": "Gets or sets a value indicating whether validate if path is writable." + }, + "Path": { + "type": "string", + "description": "Gets or sets the path.", + "nullable": true + }, + "IsFile": { + "type": "boolean", + "description": "Gets or sets is path file.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Validate path object." + }, + "VersionInfo": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "Gets or sets the version." + }, + "VersionNumber": { + "type": "string", + "description": "Gets the version as a System.Version.", + "readOnly": true + }, + "changelog": { + "type": "string", + "description": "Gets or sets the changelog for this version.", + "nullable": true + }, + "targetAbi": { + "type": "string", + "description": "Gets or sets the ABI that this version was built against.", + "nullable": true + }, + "sourceUrl": { + "type": "string", + "description": "Gets or sets the source URL.", + "nullable": true + }, + "checksum": { + "type": "string", + "description": "Gets or sets a checksum for the binary.", + "nullable": true + }, + "timestamp": { + "type": "string", + "description": "Gets or sets a timestamp of when the binary was built.", + "nullable": true + }, + "repositoryName": { + "type": "string", + "description": "Gets or sets the repository name." + }, + "repositoryUrl": { + "type": "string", + "description": "Gets or sets the repository url." + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Updates.VersionInfo class." + }, + "Video3DFormat": { + "enum": [ + "HalfSideBySide", + "FullSideBySide", + "FullTopAndBottom", + "HalfTopAndBottom", + "MVC" + ], + "type": "string" + }, + "VideoType": { + "enum": [ + "VideoFile", + "Iso", + "Dvd", + "BluRay" + ], + "type": "string", + "description": "Enum VideoType." + }, + "VirtualFolderInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name.", + "nullable": true + }, + "Locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Gets or sets the locations.", + "nullable": true + }, + "CollectionType": { + "allOf": [ + { + "$ref": "#/components/schemas/CollectionTypeOptions" + } + ], + "description": "Gets or sets the type of the collection.", + "nullable": true + }, + "LibraryOptions": { + "allOf": [ + { + "$ref": "#/components/schemas/LibraryOptions" + } + ], + "nullable": true + }, + "ItemId": { + "type": "string", + "description": "Gets or sets the item identifier.", + "nullable": true + }, + "PrimaryImageItemId": { + "type": "string", + "description": "Gets or sets the primary image item identifier.", + "nullable": true + }, + "RefreshProgress": { + "type": "number", + "format": "double", + "nullable": true + }, + "RefreshStatus": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Used to hold information about a user's list of configured virtual folders." + }, + "WakeOnLanInfo": { + "type": "object", + "properties": { + "MacAddress": { + "type": "string", + "description": "Gets the MAC address of the device.", + "nullable": true + }, + "Port": { + "type": "integer", + "description": "Gets or sets the wake-on-LAN port.", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Provides the MAC address and port for wake-on-LAN functionality." + }, + "XbmcMetadataOptions": { + "type": "object", + "properties": { + "UserId": { + "type": "string", + "nullable": true + }, + "ReleaseDateFormat": { + "type": "string" + }, + "SaveImagePathsInNfo": { + "type": "boolean" + }, + "EnablePathSubstitution": { + "type": "boolean" + }, + "EnableExtraThumbsDuplication": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "XmlAttribute": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Gets or sets the name of the attribute.", + "nullable": true + }, + "Value": { + "type": "string", + "description": "Gets or sets the value of the attribute.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Defines the MediaBrowser.Model.Dlna.XmlAttribute." + } + }, + "securitySchemes": { + "CustomAuthentication": { + "type": "apiKey", + "description": "API key header parameter", + "name": "Authorization", + "in": "header" + } + } + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.jellyfin/tools/swagger/scripts/modify-schema.mjs b/bundles/org.openhab.binding.jellyfin/tools/swagger/scripts/modify-schema.mjs new file mode 100644 index 0000000000000..65b7b86e291ba --- /dev/null +++ b/bundles/org.openhab.binding.jellyfin/tools/swagger/scripts/modify-schema.mjs @@ -0,0 +1,23 @@ +/** + * This script works around an issue with the openapi generator + * not parsing allOf types correctly. + * + * Originally part of the jellyfin-client-axios project: + * https://github.com/jellyfin/jellyfin-client-axios/blob/dfadff9b0b8749a04fb21d298b86624b20db1e5a/scripts/modifySchema.mjs + */ +import fs from 'fs/promises'; + +(async (file) => { + let txt = await fs.readFile(file); + const json = JSON.parse(txt, (_, value) => { + // Remove all "allOf" instances, this removes nullability/descriptions + if (!!value && typeof value === 'object' && 'allOf' in value && value.allOf.length === 1) { + return value.allOf[0]; + } + + return value; + }); + + txt = JSON.stringify(json); + await fs.writeFile(`${file}`, txt); +})(process.argv[2]);